LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
Search this Thread
Old 04-04-2011, 07:01 AM   #1
kjhambrick
Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware-64 -current
Posts: 57

Rep: Reputation: 25
compat32pkg bug ?


Sebastian --

Once again, thanks for the compat32pkg system !

This morning, I upgraded compat32pkg-1.2.110112-noarch-2_SeB to compat32pkg-1.3.110319-noarch-4_SeB.

I am confused by the output in version 1.3:
Code:
[root@kjhlt5 compat32pkg]# compat32pkg --check-updates layer-32

compat32pkg ver. 1.3.110319 (stable)

(WARNING) The system on /dld/slackware/slackware-current-32 relates to a version (13.1)
(WARNING) of Slackware older than installed version (13.37.0).

(WARNING) Install of packages to format compat32 built from packages on this mirror could
(WARNING) downgrade some of installed compat32 packages, which can lead to stability and/or
(WARNING) reliability issues for some of the installed 32-bit softwares.

[--check-updates] Started on Mon 04 Apr 2011 06:46:27 AM CDT     
[--check-updates]   Using mirror /dld/slackware/slackware-current-32
[--check-updates]   Local system is Slackware/x86_64 version 13.37.0
[--check-updates]   Mirrored system is Slackware/i486 version 13.1
[--check-updates]   Slackware-32 packages will be stored into /var/cache/compat32pkg/slackware-32
[--check-updates]   compat32 packages will be stored into /var/cache/compat32pkg/compat-32
[--check-updates]   Configuration file for "layer-32" : /etc/compat32pkg/multilib-32bit-packages.lst version 1.3.110327
                                                                                     
[--check-updates]   7 update(s) were found (0,156 sec.)

[--check-updates] Ended on Mon 04 Apr 2011 06:46:27 AM CDT
Note that the WARNINGS say my local repository is slackware-13.1 ...

Scared the you-know-what out of me so I looked:
Code:
cd /tmp && tar -Jxf /dld/slackware/slackware-current-32/slackware/a/aaa_base-13.37-i486-3.txz etc/slackware-version && cat ./etc/slackware-version && rm ./etc/slackware-version
This is the output:
Code:
Slackware 13.37.0
Did I mess something up ?

Thanks !

-- kjh

p.s. I did update the files in /etc/compat32pkg with the *.new files except that I did keep my old config because there were no changes to compat32pkg.conf

Note that compat32pkg.conf.new has a version stamp of 1.2 :

Code:
[root@kjhlt5 compat32pkg]# sdiff -w 160 -b --expand-tabs compat32pkg.conf compat32pkg.conf.new 
# -- configuration script for compat32pkg ver. 1.2.110112                         # -- configuration script for compat32pkg ver. 1.2.110112
#                                                                                 #
                                                                               >
  # -- WORKDIR is required and must refer to the working directory used by scr      # -- WORKDIR is required and must refer to the working directory used by scr
  #    "compat32pkg". By default, WORKDIR is set to "/var/lib/compat32pkg".         #    "compat32pkg". By default, WORKDIR is set to "/var/lib/compat32pkg".
  #                                                                                 #
WORKDIR=/var/lib/compat32pkg                                                      WORKDIR=/var/lib/compat32pkg

  # -- SLACK32PKG_CACHE is required and must refer to the directory where pack      # -- SLACK32PKG_CACHE is required and must refer to the directory where pack
  #    donwloaded from slackware-32 mirror will be stored. By default, SLACK32      #    donwloaded from slackware-32 mirror will be stored. By default, SLACK32
  #    is set to /var/cache/compat32pkg/slackware-32.                               #    is set to /var/cache/compat32pkg/slackware-32.
  #                                                                                 #
SLACK32PKG_CACHE=/var/cache/compat32pkg/slackware-32                              SLACK32PKG_CACHE=/var/cache/compat32pkg/slackware-32
                                                                                   
  # -- COMPAT32PKG_CACHE is required and must refer to the directory where con      # -- COMPAT32PKG_CACHE is required and must refer to the directory where con
  #    packages to format compat32 will be stored. By default, COMPAT32PKG_CAC      #    packages to format compat32 will be stored. By default, COMPAT32PKG_CAC
  #    set to /var/cache/compat32pkg/compat-32                                      #    set to /var/cache/compat32pkg/compat-32
  #                                                                                 #
COMPAT32PKG_CACHE=/var/cache/compat32pkg/compat-32                                COMPAT32PKG_CACHE=/var/cache/compat32pkg/compat-32

  # -- DEFAULT_MIRROR is optionnal and should be used to define the default mi      # -- DEFAULT_MIRROR is optionnal and should be used to define the default mi
  #    will be used by compat32pkg when user does not provide one on the comma      #    will be used by compat32pkg when user does not provide one on the comma
  #    default, there's no default mirrored.                                        #    default, there's no default mirrored.
  #                                                                                 #
  # When defined, DEFAULT_MIRROR can refer to :                                     # When defined, DEFAULT_MIRROR can refer to :
  #    + A local directory containing a valid Slackware-32 tree.                    #    + A local directory containing a valid Slackware-32 tree.
  #    + The URL of an official Slackware-32 mirror.                                #    + The URL of an official Slackware-32 mirror.
  #    + The key introduced by an "at symbol" of one of the mirrors given into      #    + The key introduced by an "at symbol" of one of the mirrors given into
  #      the file /etc/compat32pkg/mirrors                                          #      the file /etc/compat32pkg/mirrors
  #                                                                                 #
  #    Examples:                                                                    #    Examples:
  #      DEFAULT_MIRROR=ftp://ftp.lip6.fr/pub/linux/distributions/slackware/sl      #      DEFAULT_MIRROR=ftp://ftp.lip6.fr/pub/linux/distributions/slackware/sl
  #      DEFAULT_MIRROR=~/mirrors/slack-13.0                                        #      DEFAULT_MIRROR=~/mirrors/slack-13.0
  #      DEFAULT_MIRROR=@France-13.1                                                #      DEFAULT_MIRROR=@France-13.1
  #      DEFAULT_MIRROR=@DVD                                                        #      DEFAULT_MIRROR=@DVD
  #                                                                                 # 
DEFAULT_MIRROR="/dld/slackware/slackware-current-32"                           |  DEFAULT_MIRROR=""

  # -- PKGS_PRECEDENCE_ORDER is required. This must be an array containing          # -- PKGS_PRECEDENCE_ORDER is required. This must be an array containing 
  #    the packages precedence order, from the most important to the least          #    the packages precedence order, from the most important to the least 
  #    important, given by patterns of kind "baseref".                              #    important, given by patterns of kind "baseref".
  #                                                                                 #
  #    The order given in this array allows to :                                    #    The order given in this array allows to :
  #                                                                                 #
  #      + force installation of given packages in a given order. This is           #      + force installation of given packages in a given order. This is
  #        the case of the package aaa_elflibs which has to be installed            #        the case of the package aaa_elflibs which has to be installed
  #        before all others packages. Indeed, as this package has to be            #        before all others packages. Indeed, as this package has to be 
  #        processed first when installing Slackware, it also has to be             #        processed first when installing Slackware, it also has to be 
  #        processed first in the case of the multilib. Otherwise,  this            #        processed first in the case of the multilib. Otherwise,  this 
  #        might lead to downgrading some libraries as this is clearly              #        might lead to downgrading some libraries as this is clearly 
  #        explained here: http://connie.slackware.com/~mozes/docs/aaa_elflibs      #        explained here: http://connie.slackware.com/~mozes/docs/aaa_elflibs
  #                                                                                 #
  #      + give the priority to the more recent/stable packages when                #      + give the priority to the more recent/stable packages when 
  #        running compat32pkg in mode: --convert, --install, --check-updates,      #        running compat32pkg in mode: --convert, --install, --check-updates,
  #        --list-updates, --convert-updates, and --upgrade. This is the            #        --list-updates, --convert-updates, and --upgrade. This is the 
  #        case with packages from "patches/packages" which are always              #        case with packages from "patches/packages" which are always 
  #        more recent that those in "slackware"                                    #        more recent that those in "slackware"
  #                                                                                 #
PKGS_PRECEDENCE_ORDER=( \                                                         PKGS_PRECEDENCE_ORDER=( \
                        "slackware/a/aaa_elflibs" \                                                                                       "slackware/a/aaa_elfli
                        "patches/packages/.*" \                                                                                           "patches/packages/.*" 
                        "slackware/.*" \                                                                                                  "slackware/.*" \
                        "extra/.*" \                                                                                                      "extra/.*" \
                        "testing/.*" \                                                                                                    "testing/.*" \
                        "pasture/.*" \                                                                                                    "pasture/.*" \
                      )                                                                                                           )


  # -- PREVENT_INCOMPATIBILITIES is required. It allows to enable or disable        # -- PREVENT_INCOMPATIBILITIES is required. It allows to enable or disable
  #    the mechanism to preventing accidental incompatibilities. By default,        #    the mechanism to preventing accidental incompatibilities. By default,
  #    this mechanism is enabled.                                                   #    this mechanism is enabled.
  #                                                                                 #
  # PREVENT_INCOMPATIBILITIES can be set to $TRUE (enable the mechanism), or,       # PREVENT_INCOMPATIBILITIES can be set to $TRUE (enable the mechanism), or,
  # to $FALSE (disable the mechanism).                                              # to $FALSE (disable the mechanism).
  #                                                                                 #
PREVENT_INCOMPATIBILITIES=$TRUE                                                   PREVENT_INCOMPATIBILITIES=$TRUE

  # -- MULTILIB_PACKAGES is optional. When present, this must be an array cont      # -- MULTILIB_PACKAGES is optional. When present, this must be an array cont
  #    basenames of the packages that provide  the 64-bit part of the multilib      #    basenames of the packages that provide  the 64-bit part of the multilib
  #                                                                                 #
  #    MULTILIB_PACKAGES is used to checking of installation of the 64-bit par      #    MULTILIB_PACKAGES is used to checking of installation of the 64-bit par
  #    when executing of compat32pkg in mode "--install" or "--upgrade". When       #    when executing of compat32pkg in mode "--install" or "--upgrade". When 
  #    the packages given by MULTILIB_PACKAGES are not installed, the user is       #    the packages given by MULTILIB_PACKAGES are not installed, the user is 
  #    packages to format compat32 which are installed, and those about to be       #    packages to format compat32 which are installed, and those about to be 
  #    be unusable.                                                                 #    be unusable.
  #                                                                                 #
MULTILIB_PACKAGES=( \                                                             MULTILIB_PACKAGES=( \
                        "glibc" \                                                                                                 "glibc" \
                        "glibc-i18n" \                                                                                            "glibc-i18n" \
                        "glibc-profile" \                                                                                         "glibc-profile" \
                        "glibc-solibs" \                                                                                          "glibc-solibs" \
                        "glibc-zoneinfo" \                                                                                        "glibc-zoneinfo" \
                        "gcc" \                                                                                                   "gcc" \
                        "gcc-g++" \                                                                                               "gcc-g++" \
                        "gcc-gfortran" \                                                                                          "gcc-gfortran" \
                        "gcc-gnat" \                                                                                              "gcc-gnat" \
                        "gcc-java" \                                                                                              "gcc-java" \
                        "gcc-objc" \                                                                                              "gcc-objc" \
                  )                                                                                                       )



            ##################################################################                ##################################################################
            #                            -- Developer Section --                              #                            -- Developer Section --              
            ##################################################################                ##################################################################


        ###                                                                                                       ###
        # As this script is included into the script compat32pkg, it implicitl                                    # As this script is included into the script c
        # inherits of the following declaration:                                                                  # inherits of the following declaration:
        #                                                                                                         #
        #  TRUE  = 0                                                                                              #  TRUE  = 0
        #  FALSE = 1                                                                                              #  FALSE = 1
        #  DEVEL = $TRUE in case of development version of compat32pkg, $FALSE                                    #  DEVEL = $TRUE in case of development versio
        #          otherwise                                                                                      #          otherwise
        ###                                                                                                       ###
                                                                                                                  

  # -- The code below will be executed only in case of development version          # -- The code below will be executed only in case of development version 
  #    of compat32pkg. Users do not have to worry about that.                       #    of compat32pkg. Users do not have to worry about that.
  #                                                                                 #
if [ $DEVEL -eq $TRUE ]; then                                                     if [ $DEVEL -eq $TRUE ]; then
        echo ""                                                                           echo ""
        echo "(Info) developement version of compat32pkg detected. Overwriting            echo "(Info) developement version of compat32pkg detected. Overwriting
        echo "(Info) WORKDIR, SLACK32PKG_CACHE, COMPAT32PKG_CACHE, DEFAULT_MIR            echo "(Info) WORKDIR, SLACK32PKG_CACHE, COMPAT32PKG_CACHE, DEFAULT_MIR

        WORKDIR=/tmp/compat32pkg-devel                                                    WORKDIR=/tmp/compat32pkg-devel
        SLACK32PKG_CACHE=${WORKDIR}/cache/slackware-32                                    SLACK32PKG_CACHE=${WORKDIR}/cache/slackware-32
        COMPAT32PKG_CACHE=${WORKDIR}/cache/compat-32                                      COMPAT32PKG_CACHE=${WORKDIR}/cache/compat-32
        DEFAULT_MIRROR=@France-13.0                                                       DEFAULT_MIRROR=@France-13.0
fi                                                                                fi
 
Old 04-04-2011, 09:45 AM   #2
phenixia2003
Member
 
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 284

Rep: Reputation: 162Reputation: 162
Hello,

Quote:
Originally Posted by kjhambrick View Post
This morning, I upgraded compat32pkg-1.2.110112-noarch-2_SeB to compat32pkg-1.3.110319-noarch-4_SeB.

I am confused by the output in version 1.3:
[CODE][root@kjhlt5 compat32pkg]# compat32pkg --check-updates layer-32

compat32pkg ver. 1.3.110319 (stable)

(WARNING) The system on /dld/slackware/slackware-current-32 relates to a version (13.1)
(WARNING) of Slackware older than installed version (13.37.0).

(WARNING) Install of packages to format compat32 built from packages on this mirror could
(WARNING) downgrade some of installed compat32 packages, which can lead to stability and/or
(WARNING) reliability issues for some of the installed 32-bit softwares.
Well, this comes from the way compat32pkg finds the version of slackware on the given repository. To make the story short, this works as below :

When the repository contains the file CURRENT.WARNING, compat32pkg assumes that the repository relates to slackware-current,
otherwise, it searches for the version of slackware the following way :

When the repository contains a file ANNOUNCE.XX_Y, compat32pkg assumes that the repository relates to slackware-XX.Y, otherwise,
compat32pkg assumes that the version of slackware on the repository is given by the greatest version of the packages aaa_base,
aaa_elflibs, and pkgtools available on the repository.
If you look inside your repository, you'll see that the file CURRENT.WARNING is not here anymore, and, that there's a file ANNOUNCE.13_1, which implies that compat32pkg erroneously assumes that your repository relates to slackware-13.1. As the packages aaa_base, aaa_elflibs, and pkgtools are currently in revision 13.37, compat32pkg should had found the good version for your repository if the file ANNOUNCE.13_1 was not there ...

You can get rid of those warnings, and confirmations (in case of install/upgrade) , by setting the variable PREVENT_INCOMPATIBILITIES to $FALSE into /etc/compat32pkg/compat32pkg.conf as below :

Code:
PREVENT_INCOMPATIBILITIES=$FALSE
Even if that only affects slackware-current since, I guess, it has reached RC status, I'm going to change that point, so that, when the file "ANNOUNCE.XX_Y" is present and there's no file "CURRENT.WARNING", compat32pkg will assume that version of the repository is given by the greatest from aaa_base, aaa_elflibs, pkgtools, and ANNOUNCE.XX_Y.

Quote:
Originally Posted by kjhambrick View Post
p.s. I did update the files in /etc/compat32pkg with the *.new files except that I did keep my old config because there were no changes to compat32pkg.conf

Note that compat32pkg.conf.new has a version stamp of 1.2 :
Cause I didn't change this file (no new variable, nor removal, nor change) since 1.2 (PKGS_PRECEDENCE_ORDER was updated)


Cheers

--
SeB
 
1 members found this post helpful.
Old 04-04-2011, 12:05 PM   #3
kjhambrick
Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware-64 -current
Posts: 57

Original Poster
Rep: Reputation: 25
Sebastian --

Thanks for the Feedback !

Maybe the snippet below would work to detect the software version in the repo from the aaa_base package file ?

How dangerous is it to set the PREVENT_INCOMPATIBILITIES=$FALSE ?

Thanks again !

-- kjh

Code:
MyLocalRepo="/dld/slackware/slackware-current-32"                                     # hard-coded for this example

MyAAABase="`find $MyLocalRepo -name '*aaa_base*t?z' -print`"

My32BitVersion="`tar -OJxf $MyAAABase 'etc/slackware-version' |awk '{ print $2 }'`"  # That's the letter-O ...

My64BitVersion="`awk '{ print $2 }' /etc/slackware-version`"

if [ "$My32BitVersion" != "$My64BitVersion" ]
then
   echo "version mismatch"
else
   echo "good to go"
fi
-- kjh
 
Old 04-04-2011, 02:05 PM   #4
phenixia2003
Member
 
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 284

Rep: Reputation: 162Reputation: 162
Quote:
Originally Posted by kjhambrick View Post

How dangerous is it to set the PREVENT_INCOMPATIBILITIES=$FALSE ?
No real danger for the system, but as compat32pkg will not check whether the given repository is compatible with
the installed system, this could lead to breaking the "32-bit compatibility layer" and the installed 32-bit softwares.
The mechanism for preventing incompatibilities is especially made for stunned users ... like me . Some examples:

Code:
$ cat /etc/slackware-version
13.1.0.0.0

$ compat32pkg --mirror ftp://mirrors.kernel.org/slackware/slackware-13.0 --upgrade layer-32

$ compat32pkg --mirror ftp://mirrors.kernel.org/slackware/slackware64-13.1 --upgrade layer-32

Quote:
Originally Posted by kjhambrick View Post
Maybe the snippet below would work to detect the software version in the repo from the aaa_base package file ?
Many thanks for this. However, compat32pkg has already all it needs to find version number from the aaa_base,aaa_elflibs,
and pkgtools packages (look at lines 548-553 into /usr/libexec/compat32pkg/compat32pkg.sh). To be more precise, the code that I have to change is from 526 to 558, and it should look like this (not tested) :

Code:
 else
   l_version=${l_info/\.\/ANNOUNCE\./}
   l_version=${l_version//_/\.}

   local l_newerPkgVer=$($GREP_CMD --only-matching \
                                   --regexp "[/]a[/]\(aaa_base\|aaa_elflibs\|pkgtools\).*[.]t[bglx]z$" $g_MIRROR_CHECKSUMS_FILE \
					| \
			$REV_CMD | $CUT_CMD --fields=3 --delimiter="-" | \
			$REV_CMD | $SORT_CMD --version-sort --reverse | \
			$GREP_CMD --max-count 1 --regexp ".*")

    [ $(CompareVersion "$l_version" "$l_newerPkgVer") == $OLDER_VERSION ] && l_version=$l_newerPkgVer
  fi
If you want, you can check this and tell me if this did the trick...

Cheers.
--
SeB
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[ANN] compat32pkg-1.3.110319 is out ! phenixia2003 Slackware 6 03-27-2011 01:02 PM
[SOLVED] compat32pkg - .conf.new Warnings ? kjhambrick Slackware 2 03-02-2011 04:18 AM
[ANN] compat32pkg 1.2.110112 phenixia2003 Slackware 6 02-25-2011 04:31 AM
First release of compat32pkg. A simple tool for managing package to format compat32.. phenixia2003 Slackware 12 09-24-2010 07:02 AM
LXer: 2008 CES: Bug Labs Introduces BUG, BUGbase. So Cool! LXer Syndicated Linux News 0 01-09-2008 01:21 AM


All times are GMT -5. The time now is 09:39 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration