LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   slackpkg vs. third-party package repository (https://www.linuxquestions.org/questions/slackware-14/slackpkg-vs-third-party-package-repository-4175427364/)

zerouno 04-29-2013 06:00 AM

Slackpkg+ is now in rc1.

There are no changes to code, but I added new repositories and documentation (and marked it as release candidate 1 ;) )

slackpkg+-0.9rc1-noarch-3mt.txz

phenixia2003 04-29-2013 11:16 AM

1 Attachment(s)
Hello,

Quote:

Originally Posted by zerouno (Post 4941040)
Slackpkg+ is now in rc1.

There are no changes to code, but I added new repositories and documentation (and marked it as release candidate 1 ;) )

I found a small issue, and I have a new code suggestion.

First with the issue: In slackpkgplus.conf, there's :
Code:

# If you want a multilib system, uncomment the multilib repository and set:
#PKGS_PRIORITY=( multilib:.* )
#
# List repository you want to use (defined below)
REPOPLUS=( alienbob restricted slacky ponce )

This will be ok if PKGS_PRIORITY and PRIORITY are merged when you issue a "slackpkg update" but this is not the case because of this line #17 :

Code:

if [ ! -z "$PKGS_PRIORITY" -a "$CMD" != "update" ] ; then

I guess this was to simplify the change (in green) in this post. I'm ok with that, but in this case, slackpkgplus.conf should be changed as below :

Code:

# List repository you want to use (defined below)
#
#REPOPLUS=( alienbob restricted slacky ponce )
#
# If you want a multilib system, uncomment the multilib repository and
# add its name at start of REPOPLUS like in example below :
#
#REPOPLUS=( multilib alienbob restricted slacky ponce )
#
#
# If two or more repositories contains some same packages, you can specify
# from which repository (declared in REPOPLUS) you prefer to search it.
# The syntax is "<repository_name>:<pattern>". For instance :
#
#PKGS_PRIORITY=( alienbob:openjdk )
#
# pattern can be a package name, or a regular expression, so that you can
# also give priority to all the packages to any repository declared in
# REPOPLUS. For instance, when REPOPLUS=( alienbob restricted multilib )
# and you want to prioritize the multilib, then you will add multilib:.*
# at start of PKGS_PRIORITY like as below:
#
#PKGS_PRIORITY=( multilib:.* alienbob:openjdk )
#

Another point: When REPOPLUS has been modified, the user must issue a "slackpkg update" for the changes to take effect. This should be mentioned somewhere.

----

The new code suggestion I have is for the search feature. You will find the patch for slackpkg+ rc1 in attachment. Note that "file search" is not implemented.

Here are some examples with REPOPLUS=( multilib alienbob restricted slacky ) done on a Slackware-14.0 VM :

1. Searching for glibc

Code:

slackpkg search glibc 

DONE

The list below shows all packages with name matching "glibc".

[ Status          ] [ Repository              ] [ Package                                  ]
  upgrade                                          glibc-zoneinfo-2013b_multilib-noarch-1alien --> glibc-zoneinfo-2013b-noarch-1_slack14.0 
  upgrade                                          glibc-solibs-2.15_multilib-x86_64-7alien --> glibc-solibs-2.15-x86_64-7 
  upgrade                                          glibc-2.15_multilib-x86_64-7alien --> glibc-2.15-x86_64-7 
  upgrade                                          glibc-i18n-2.15_multilib-x86_64-7alien --> glibc-i18n-2.15-x86_64-7 
  upgrade                                          glibc-profile-2.15_multilib-x86_64-7alien --> glibc-profile-2.15-x86_64-7 
  uninstalled          multilib                    glibc-debug-2.15_multilib-x86_64-7alien 
  installed          multilib                    glibc-2.15_multilib-x86_64-7alien       
  installed          multilib                    glibc-i18n-2.15_multilib-x86_64-7alien   
  installed          multilib                    glibc-profile-2.15_multilib-x86_64-7alien 
  installed          multilib                    glibc-solibs-2.15_multilib-x86_64-7alien 
  installed          multilib                    glibc-zoneinfo-2013b_multilib-noarch-1alien

2. Searching for vlc

Code:

$ slackpkg search vlc

DONE

The list below shows all packages with name matching "vlc".

[ Status          ] [ Repository              ] [ Package                                  ]
  uninstalled          alienbob                    phonon-vlc-0.6.0-x86_64-1alien           
  uninstalled          alienbob                    npapi-vlc-20130408-x86_64-2alien         
  uninstalled          alienbob                    vlc-2.0.6-x86_64-2alien                 
  uninstalled          restricted                  npapi-vlc-20130408-x86_64-2alien         
  uninstalled          restricted                  vlc-2.0.6-x86_64-2alien

3. Searching for qt

Code:

slackpkg search qt

DONE

The list below shows all packages with name matching "qt".

[ Status          ] [ Repository              ] [ Package                                  ]
  installed                                        kdevelop-pg-qt-1.0.0-x86_64-1           
  installed                                        perlqt-4.8.5-x86_64-1                   
  installed                                        qtruby-4.8.5-x86_64-1                   
  installed                                        smokeqt-4.8.5-x86_64-1                   
  installed                                        libdbusmenu-qt-0.9.2-x86_64-2           
  installed                                        polkit-qt-1-0.103.0-x86_64-1             
  installed                                        qt-4.8.2-x86_64-4                       
  installed                                        qtscriptgenerator-0.2.0-x86_64-1         
  installed          multilib                    qt-compat32-4.8.2-x86_64-4compat32       
  uninstalled          slacky                      razorqt-0.5.1-x86_64-1sl                 
  uninstalled          slacky                      qt3-3.3.8b-x86_64-1sl                   
  uninstalled          slacky                      avidemux-qt4-2.5.6-x86_64-2sl           
  uninstalled          slacky                      bitcoin-qt-0.7.1-x86_64-1sl             
  uninstalled          slacky                      qtransmission-2.75-x86_64-1sl


Edit (Important) :

I found another small issue with multilib repository and install-new. The CHECKSUMS.md5 of this multilib repository contains 2 entries for each compat32 packages :
Code:

cb98e611b682d5607bef143c353e6ea1  ./slackware64-compat32/a-compat32/aaa_elflibs-compat32-14.0-x86_64-4compat32.txz
cb98e611b682d5607bef143c353e6ea1  ./aaa_elflibs-compat32-14.0-x86_64-4compat32.txz
...
d92209cd6ac9bbb65e50e4e905306224  ./slackware64-compat32/a-compat32/bzip2-compat32-1.0.6-x86_64-1compat32.txz
d92209cd6ac9bbb65e50e4e905306224  ./bzip2-compat32-1.0.6-x86_64-1compat32.txz
...
d26a96832f9baa5c1ce3697eaf94eeef  ./slackware64-compat32/a-compat32/cups-compat32-1.5.4-x86_64-2compat32.txz
d26a96832f9baa5c1ce3697eaf94eeef  ./cups-compat32-1.5.4-x86_64-2compat32.txz
...

This leads "slackpkg install-new" to add all the "compat32" packages in the list of new packages. To fix this, apply the patch below to slackpkgplus.sh (0.9rc1)

Code:

--- slackpkgplus.sh        2013-04-30 09:53:45.698893304 +0200
+++ slackpkgplus-install-new-fix.sh        2013-04-30 09:56:27.855502576 +0200
@@ -246,7 +246,7 @@
  if [ "$CMD" == "install-new" ] ; then
    ls -1 /var/log/packages/*compat32 2>/dev/null | rev | cut -f1 -d/ | cut -f4- -d- | rev | sort > $TMPDIR/installed-compat32-packages.lst
   
-    grep "[[:digit:]]\+compat32[ ]" $WORKDIR/pkglist | cut -f2 -d" " | sort > $TMPDIR/available-compat32-packages.lst
+    grep "[[:digit:]]\+compat32[ ]" $WORKDIR/pkglist | cut -f2 -d" " | sort -u > $TMPDIR/available-compat32-packages.lst
 
    NEWCOMPAT32PKGS=$(comm -3 $TMPDIR/installed-compat32-packages.lst  $TMPDIR/available-compat32-packages.lst)


Greetings.

--
SeB

zerouno 04-30-2013 07:57 AM

Quote:

Originally Posted by phenixia2003 (Post 4941236)
First with the issue: In slackpkgplus.conf, there's :
Code:

# If you want a multilib system, uncomment the multilib repository and set:
#PKGS_PRIORITY=( multilib:.* )
#
# List repository you want to use (defined below)
REPOPLUS=( alienbob restricted slacky ponce )

This will be ok if PKGS_PRIORITY and PRIORITY are merged when you issue a "slackpkg update" but this is not the case because of this line #17 :

Code:

if [ ! -z "$PKGS_PRIORITY" -a "$CMD" != "update" ] ; then

I guess this was to simplify the change (in green) in this post. I'm ok with that, but in this case, slackpkgplus.conf should be changed as below :

Code:

# List repository you want to use (defined below)
#
#REPOPLUS=( alienbob restricted slacky ponce )
#
# If you want a multilib system, uncomment the multilib repository and
# add its name at start of REPOPLUS like in example below :
#
#REPOPLUS=( multilib alienbob restricted slacky ponce )
#
#
# If two or more repositories contains some same packages, you can specify
# from which repository (declared in REPOPLUS) you prefer to search it.
# The syntax is "<repository_name>:<pattern>". For instance :
#
#PKGS_PRIORITY=( alienbob:openjdk )
#
# pattern can be a package name, or a regular expression, so that you can
# also give priority to all the packages to any repository declared in
# REPOPLUS. For instance, when REPOPLUS=( alienbob restricted multilib )
# and you want to prioritize the multilib, then you will add multilib:.*
# at start of PKGS_PRIORITY like as below:
#
#PKGS_PRIORITY=( multilib:.* alienbob:openjdk )
#


Writting documentation (the examples) and putting the workaround "$CMD" != "update", I supposed as implicit that if a user add a repository in PKGS_PRIORITY and/or if he uncomment a MIRRORPLUS[], he will add also the repository in REPOPLUS, but in effect that may not be true.

I think that as workaround this may be sufficient:
Code:

-  REPOPLUS=${REPOPLUS[*]}
+  REPOPLUS=$(echo "${REPOPLUS[*]} ${PKGS_PRIORITY[*]} ${!MIRRORPLUS[*]}"|sed 's/ /\n/g'|sed 's/:.*//'|awk '{if(!a[$1]++)print $1}')

so if the user forgot to add a repository in REPOPLUS (I forgot that few minutes ago :) ), slackpkg+ automatically add it.


Quote:

The new code suggestion I have is for the search feature. You will find the patch for slackpkg+ rc1 in attachment. Note that "file search" is not implemented.
...
I found another small issue with multilib repository and install-new
Thankyou for fix.

zerouno 04-30-2013 08:33 AM

What do you think to add an option in slackpkgplus.conf for multilib?

similar to
[code]# Set this option to make you 64bit system a multilib system
# (install some 32bit libraries so you can launch some 32bit-only
# packages as skype, wine and other)
#COMPAT32=enable[/compat]
if COMPAT32 is set to 'enable', slackpkg+ simply autoadd multilib:.* in PKGS_PRIORITY and in REPOPLUS.
Also if COMPAT32 is set to 'enable', slackpkg+ may allow to use the 32bit-only repository

zerouno 04-30-2013 09:11 AM

rc2 is released.
slackpkg+-0.9rc2-noarch-1mt.txz

it include all fix (but comments in slackpkgplus.conf)

phenixia2003 04-30-2013 09:18 AM

Hello,

For me there's nothing to add about the multilib. This is well designed and well documented.

But, it would be a good idea to include something to notify the user to issue a "slackpkg update" when the REPOPLUS has been changed since the last "update".

I said that because I recently got some trouble to understand why slackpkg was unable to see some packages: I had added a repository into REPOPLUS but I had forgotten to issue "slackpkg update". This could be easily implemented using a simple file in /var/lib/slackpkg


--
SeB

zerouno 04-30-2013 09:39 AM

Yes, for now I added "# remember to launch 'slackpkg update' if you modify that row." only.
Next I will do some documentation.

zerouno 04-30-2013 10:49 AM

Code:

  # Test repositories
  for pp in ${REPOPLUS[*]};do
    echo "${MIRRORPLUS[$pp]}"|grep -q -e ^http:// -e ^https:// -e ^ftp:// -e ^file://
    if [ $? -ne 0 ];then
      echo "Repository '$pp' not configured." >> $TMPDIR/error.log
      echo "Add:" >> $TMPDIR/error.log
      echo "MIRRORPLUS['$pp']=http://repoaddres/..." >> $TMPDIR/error.log
      echo "See documentation in /usr/doc/slackpkg+-* for details" >> $TMPDIR/error.log
      cleanup
    fi
  done
  # post a warning if slackpkgplus.conf is newer than pkglist, but do not block execution.
  if [ /etc/slackpkgplus.conf -nt /var/lib/slackpkg/pkglist -a "$CMD" != "update" ];then
    echo
    echo "NOTICE: remember to re-run 'slackpkg update' after modifing slackpkgplus.conf"
    echo
  fi


phenixia2003 04-30-2013 11:10 AM

Hello,

Quote:

Originally Posted by zerouno (Post 4941959)
Code:

  # Test repositories
  for pp in ${REPOPLUS[*]};do
    echo "${MIRRORPLUS[$pp]}"|grep -q -e ^http:// -e ^https:// -e ^ftp:// -e ^file://
    if [ $? -ne 0 ];then
      echo "Repository '$pp' not configured." >> $TMPDIR/error.log
      echo "Add:" >> $TMPDIR/error.log
      echo "MIRRORPLUS['$pp']=http://repoaddres/..." >> $TMPDIR/error.log
      echo "See documentation in /usr/doc/slackpkg+-* for details" >> $TMPDIR/error.log
      cleanup
    fi
  done
  # post a warning if slackpkgplus.conf is newer than pkglist, but do not block execution.
  if [ /etc/slackpkgplus.conf -nt /var/lib/slackpkg/pkglist -a "$CMD" != "update" ];then
    echo
    echo "NOTICE: remember to re-run 'slackpkg update' after modifing slackpkgplus.conf"
    echo
  fi


That seems good for me. Just add a sleep (10 sec ?) after the NOTICE, so that the user will have the time to read it.

--
SeB

fl0 05-01-2013 11:48 AM

Hi,

i have installed slackpkg+ and activated only ponce current repo, running slackware64 current, i edit slackpkgplus.conf and run slackpkg update gpg and slackpkg update, but i alwys got these error
Code:

ERROR: Verification of the  gpg signature on CHECKSUMS.md5
                      failed! This could mean that the file is out of date
                      or has been tampered with.


Ideas?

regards fl0

ponce 05-01-2013 12:34 PM

GPG check is not working ATM: I've tried the latest version (rc2) and notified of this zerouno.

If you want to use my personal repository until slackpkg+ gets fixed, disable GPG checking in /etc/slackpkg/slackpkg.conf.

Consider also that my repositories are made of the packages I use on my installations, built with what I need: if you need only some stuff and not the whole it's up to you to check for dependencies for single packages on SBo (some are built using also optional ones).

And be advised also that everything available there is up for grabs but with no warranty (especially if not used on a slackware full install) as it's meant just for my personal use (and, generally, works for me).

zerouno 05-01-2013 04:40 PM

:doh: a very very small, but very very fatal bug!!! (I forgot a '$' before CHECKGPG)

rc3 release solve also a bug that deny to use a local slackware mirror.


Slackpkg+ is moved on http://slakfinder.org/slackpkg+/

ponce 05-02-2013 12:21 AM

I found that the GPG check cannot work with my repository, because inside /usr/libexec/slackpkg/core-functions.sh there's this block
Code:

        case $ARCH in                                                                                                                                                       
                i386|i486|i586|i686)                                                                                                                                       
                        ARCH=[i]*[3456x]86[^_]*                                                                                                                             
                        SLACKKEY=${SLACKKEY:-"Slackware Linux Project <security@slackware.com>"}                                                                           
                        PKGMAIN=${PKGMAIN:-slackware}                                                                                                                       
                ;;                                                                                                                                                         
                x86-64|x86_64|X86-64|X86_64)                                                                                                                               
                        ARCH=x86[_64]*                                                                                                                                     
                        SLACKKEY=${SLACKKEY:-"Slackware Linux Project <security@slackware.com>"}                                                                           
                        PKGMAIN=${PKGMAIN:-slackware64}                                                                                                                     
                ;;                                                                                                                                                         
                s390)                                                                                                                                                       
                        ARCH=s390                                                                                                                                           
                        # Slack390 didn't have signed packages                                                                                                             
                        CHECKGPG=off                                                                                                                                       
                        PKGMAIN=${PKGMAIN:-slackware}                                                                                                                       
                ;;                                                                                                                                                         
                arm*)                                                                                                                                                       
                        ARCH=arm[v5tel]*                                                                                                                                   
                        SLACKKEY=${SLACKKEY:-"ARMedslack Security (ARMedslack Linux Project Security) <security@armedslack.org>"}                                           
                        PKGMAIN=${PKGMAIN:-slackware}                                                                                                                       
                ;;                                                                                                                                                         
                powerpc|ppc)                                                                                                                                               
                        ARCH=powerpc                                                                                                                                       
                        SLACKKEY=${SLACKKEY:-"Slackintosh-Project Sign <slackdev@workaround.ch>"}                                                                           
                        PKGMAIN=${PKGMAIN:-slackintosh}                                                                                                                     
                ;;                                                                                                                                                         
                *)                                                                                                                                                         
                        ARCH=none                                                                                                                                           
                ;;                                                                                                                                                         
        esac

and my key is not signed by "Slackware Linux Project <security@slackware.com>".

maybe it's better to not include my repo in /etc/slackpkg/slackpkgplus.conf.

bartgymnast 05-02-2013 04:55 AM

I was wondering some things.
Are you purely going to make the 3rd party repositories accessable.
Or are you also thinking about adding some features ?

I was thinking about the following to name 2.

- search in the description of packages,
- search the packages that aren't in the repositories but are installed

zerouno 05-02-2013 05:05 AM

slackpkg+ was bird to add 3rd party repositories support, and slackpkg 1.0 will do only this.

I dont known what will do slackpkg 2.0; I dont known if I will have time to devel it.
For now you can use slakfinder.org to a good search and then use slackpkg+ to install.

ponce 05-02-2013 06:25 AM

Quote:

Originally Posted by ponce (Post 4943128)
I found that the GPG check cannot work with my repository, because inside /usr/libexec/slackpkg/core-functions.sh there's this block
...
maybe it's better to not include my repo in /etc/slackpkg/slackpkgplus.conf.

Ignore this, GPG checks works fine, it's me being an arsehole: I had a default key for signing specified in ~/.gnupg/gpg.conf different from the one I was using in ~/.genrpc and the gen_repos_files script was signing the stuff with my old default key regardless of the one specified in its configuration file.
I'll update signatures soon in my repos.

phenixia2003 05-02-2013 10:12 AM

1 Attachment(s)
Hello,

Another code suggestion for file-search. You will find the patch for slackpkg+ 0.9rc3 in attachment. Here is a sample :

Code:

slackpkg file-search qt 

DONE

The list below shows the packages that contains "qt" file.

[ Status          ] [ Repository              ] [ Package                                  ]
  installed                                        kde-runtime-4.8.5-x86_64-1               
  installed                                        kdeartwork-4.8.5-x86_64-1               
  installed                                        kdevelop-pg-qt-1.0.0-x86_64-1           
  installed                                        marble-4.8.5-x86_64-1                   
  installed                                        smokeqt-4.8.5-x86_64-1                   
  installed                                        PyQt-4.9.1-x86_64-3                     
  installed                                        QScintilla-2.6.1-x86_64-3               
  installed                                        akonadi-1.7.2-x86_64-1                   
  installed                                        libdbusmenu-qt-0.9.2-x86_64-2           
  installed                                        phonon-4.6.0-x86_64-1                   
  installed                                        polkit-qt-1-0.103.0-x86_64-1             
  installed                                        qca-2.0.2-x86_64-1                       
  installed                                        qca-cyrus-sasl-2.0.0_beta3-x86_64-1     
  installed                                        qca-gnupg-2.0.0_beta3-x86_64-1           
  installed                                        qca-ossl-2.0.0_beta3-x86_64-2           
  installed                                        qt-4.8.2-x86_64-4                       
  installed                                        qtscriptgenerator-0.2.0-x86_64-1         
  installed                                        scim-1.4.14-x86_64-2                     
  installed                                        scim-bridge-0.4.16-x86_64-5             
  uninstalled                                      mplayerplug-in-3.55-x86_64-1             
  uninstalled                                      recordmydesktop-0.3.8.1-x86_64-3         
  installed          multilib                    qt-compat32-4.8.2-x86_64-4compat32       
  uninstalled          alienbob                    calibre-0.9.28-x86_64-1alien             
  uninstalled          alienbob                    gecko-mediaplayer-1.0.7-x86_64-1alien   
  uninstalled          alienbob                    recordmydesktop-0.3.8.1-x86_64-3alien   
  uninstalled          alienbob                    teamspeak-client-3.0.10-x86_64-1alien   

You can search specific packages using "slackpkg search package".


Hope this helps.

Greetings.

--
SeB

fl0 05-02-2013 11:53 PM

Quote:

Originally Posted by ponce (Post 4942796)
GPG check is not working ATM: I've tried the latest version (rc2) and notified of this zerouno.

If you want to use my personal repository until slackpkg+ gets fixed, disable GPG checking in /etc/slackpkg/slackpkg.conf.

Consider also that my repositories are made of the packages I use on my installations, built with what I need: if you need only some stuff and not the whole it's up to you to check for dependencies for single packages on SBo (some are built using also optional ones).

And be advised also that everything available there is up for grabs but with no warranty (especially if not used on a slackware full install) as it's meant just for my personal use (and, generally, works for me).

Hi,

sure, i know that the repository is primary for you and there is no warrenty.

with the new slackpkg+ version, my error is fixed, thx

regards fl0

zerouno 05-03-2013 08:34 AM

Slackpkg+ is now under github and under dedicated repository.

So to upgrade slackpkg+ you only need to add in slackpkgplus.conf

MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/

then launch
slackpkg update gpg
slackpkg update

then
slackpkg upgrade slackpkg+
or
slackpkg upgrade-all

Code:

# slackpkg search slackpkg

DONE

The list below shows all packages with name matching "slackpkg".

[ Status          ] [ Repository              ] [ Package                                  ]
  installed                                        slackpkg-2.82.0-noarch-8                 
  upgrade              slackpkgplus                slackpkg+-0.9rc2-noarch-1mt --> slackpkg+-0.9rc3-noarch-1mt

there are no other update for now. I've to solve a minor bug, but I've no time now.

zerouno 05-03-2013 05:12 PM

pushed a patch that solve 'slackpkg search slackpkg'

now the prefix is upcase, so the file-search patch need to be adapted.

phenixia2003 05-05-2013 05:31 AM

1 Attachment(s)
Hello,

Quote:

Originally Posted by zerouno (Post 4944446)
pushed a patch that solve 'slackpkg search slackpkg'

now the prefix is upcase, so the file-search patch need to be adapted.

Adapted the patch for "file-search" following your changes. The new patch is in attachment. It was created using this slackpkgplus.sh version.


Greetings.

--
SeB

zerouno 05-05-2013 09:45 AM

version 0.9.1 released

Alien Bob 06-01-2013 09:54 AM

The PKGS_PRIORITY keyword is not working for me. I have this in my slackpkgplus.conf:
Code:

PKGS_PRIORITY=( restricted:vlc )
but this seems to be ignored.

By accident I still had the older vlc-2.0.6 package in my "alienbob" repository, and slackpkg would offer an "upgrade" from my manually installed 2.0.7 to that 2.0.6 version in the "alienbob" repo even though it should give priority to the 2.0.7 version in the "restricted" repository.
Code:

# slackpkg search vlc

DONE

The list below shows all packages with name matching "vlc".

[ Status          ] [ Repository              ] [ Package                                  ]
  installed          alienbob                    phonon-vlc-0.6.0-x86_64-1alien           
  installed          alienbob                    npapi-vlc-20130408-x86_64-1alien         
  upgrade              alienbob                    vlc-2.0.7-x86_64-1alien --> vlc-2.0.6-x86_64-2alien 
  installed          restricted                  npapi-vlc-20130408-x86_64-1alien         
  installed          restricted                  vlc-2.0.7-x86_64-1alien                 

You can search specific files using "slackpkg file-search file".

Eric

Alien Bob 06-01-2013 10:01 AM

Update: I think this was caused by having multiple PKGS_PRIORITY lines in slackpkgplus.conf... only the value for the last variable definitions was kept because new variable definitions overrule the older ones.

I changed this to a single line for PKGS_PRIORITY with multiple definitions, like this:
Code:

PKGS_PRIORITY=( multilib:.* restricted:vlc restricted:ffmpeg )
ald now "slackpkg upgrade-all" no longer wants to "upgrade" from vlc-2.0.7 to vlc-2.0.6. Problem solved.

Eric

chess 06-29-2013 10:14 PM

This is very interesting -- I was thinking about maybe making the msb packages (http://slackware.org.uk/msb/) compatible with slackpkg+ but I'm not sure what exactly needs to be changed. And it also looks like we have to separate copies of GPG.TXT, FILELIST.TXT and other metadata type files duplicated in each architecture's directory?

Edit: We already use Eric's gen_repo script but any suggestions on best practice for repo layout in regards to slackpkg+ would be appreciated. Thanks.

Alien Bob 06-30-2013 05:50 AM

Quote:

Originally Posted by chess (Post 4980994)
This is very interesting -- I was thinking about maybe making the msb packages (http://slackware.org.uk/msb/) compatible with slackpkg+ but I'm not sure what exactly needs to be changed. And it also looks like we have to separate copies of GPG.TXT, FILELIST.TXT and other metadata type files duplicated in each architecture's directory?

Edit: We already use Eric's gen_repo script but any suggestions on best practice for repo layout in regards to slackpkg+ would be appreciated. Thanks.

I had the same discussion with kikinovak for his MLED repository. Using my gen_repos_files.sh script you basically have two options:
  1. Create separate ChangeLog.txt for each architecture (so, one goes into msb/14.0/x86/ and another goes into msb/14.0/x86 _64/) and you run the gen_repos_files.sh script twice - handle each repository separately. This is what kikinovak does with his MLED/MLES repositories.
  2. Create a single ChangeLog.txt in the root of your repository tree (inside msb/) and then use the "REPO_SUBDIRS" variable inside the script to tell the script to generate separate FILELIST.TXT MANIFEST.TXT PACKAGES.TXT etc... files in each of those subdirectories, making them useable with slackpkg+ . In your case it would probably look like 'REPO_SUBDIRS="14.0/x86 14.0/x86_64"'. This is how I do it with my multilib repository.
Remember that you can put the configuration variables in a separate file instead of editing the script. Point the USERDEFS environment variable to that file when calling the script.

The Slackware user will then add http://slackware.org.uk/msb/14.0/x86_64/ or http://slackware.org.uk/msb/14.0/x86/ to his/her slackpkg+ configuration.

chess 06-30-2013 08:08 AM

Perfect, thank you Eric!

kikinovak 06-30-2013 10:05 AM

Quote:

Originally Posted by chess (Post 4980994)
Edit: We already use Eric's gen_repo script but any suggestions on best practice for repo layout in regards to slackpkg+ would be appreciated. Thanks.

Eric persuaded me to use his gen_repo script on my own MLED and MLES repos here:

http://www.microlinux.fr/slackware/

After some initial fiddling, it works great. And managing my own repos with slackpkg+ is way more comfortable. I definitely recommend it.

Niki

zerouno 07-01-2013 07:06 AM

Quote:

Originally Posted by Alien Bob (Post 4981124)
The Slackware user will then add http://slackware.org.uk/msb/14.0/x86_64/ or http://slackware.org.uk/msb/14.0/x86/ to his/her slackpkg+ configuration.

Yes, this is the best.
However slackpkg+ does support the multiarch repositories (during update slackpkg+ skip packages that are not for the running platform).

chess 07-01-2013 08:54 AM

Can GPG-KEY stay in the root directory (http://slackware.org.uk/msb/) or does it need to be copied into the subdirectories like http://slackware.org.uk/msb/14.0/x86 and http://slackware.org.uk/msb/14.0/x86_64?

zerouno 07-01-2013 08:58 AM

GPG-KEY file MUST to be at the same level of CHECKSUMS.md5
so if you want to create two repositories (for x86 and x86_64) you need to duplicate that file.

chess 07-01-2013 09:50 AM

Ok, thanks.

chess 07-01-2013 10:45 PM

@zerouno, I modified our msb repo per the previous posts and things are showing up in slackpkg fine but I'm getting GPG errors when trying to install a package. And when I go into one of the subdirectories like http://slackware.org.uk/msb/14.0/x86_64/ and run 'md5sum -c CHECKSUMS.md5 | less' it also gives errors and says it can't find the packages listed but they are there. I'm missing something simple, I'm sure.

Here is relevant excerpt from /etc/slackpkg/slackpkgplus.conf:

Code:

REPOPLUS=( slackpkgplus alienbob restricted msb )
...
MIRRORPLUS['msb']=http://slackware.org.uk/msb/14.0/x86_64/

and in the gen_repos script I have:

Code:

REPO_SUBDIRS=${REPO_SUBDIRS:-"14.0/x86 14.0/x86_64"}
Is the problem that I also have the CHECKSUMS and other related meta files at the top root level (http://slackware.org.uk/msb/?

Thanks.

zerouno 07-02-2013 04:27 AM

Code:

fec4583cc4d18010cc56c053a1c07d2e  ./PACKAGES.TXT
should be
Code:

fec4583cc4d18010cc56c053a1c07d2e ./PACKAGES.TXT
with only a space separator.

I dont use gen_repos, so I dont know why it fails to create this file.

Raveriux 07-05-2013 06:19 AM

Just a small suggestion. Can AlienBob when he compiles packages for his Ktown repository modify his scripts so the packages would end something different than alien. maybe alienkde or alienktown. it would be mush easier to blacklist packages from ktown not to be upgraded using slackpkg+.

Alien Bob 07-05-2013 07:53 AM

Quote:

Originally Posted by zerouno (Post 4982357)
Code:

fec4583cc4d18010cc56c053a1c07d2e  ./PACKAGES.TXT
should be
Code:

fec4583cc4d18010cc56c053a1c07d2e ./PACKAGES.TXT
with only a space separator.

I dont use gen_repos, so I dont know why it fails to create this file.

Check the official Slackware files, all md5sum lines also have 2 spaces.

Eric

Slax-Dude 07-05-2013 08:20 AM

Quote:

Originally Posted by Raveriux (Post 4984611)
Just a small suggestion. Can AlienBob when he compiles packages for his Ktown repository modify his scripts so the packages would end something different than alien. maybe alienkde or alienktown. it would be mush easier to blacklist packages from ktown not to be upgraded using slackpkg+.

I think the ktown packages are outside the "alienbob" repository, so they should not be upgraded by slackpkg+
And it's a shame :(

zerouno 07-05-2013 08:36 AM

In effect md5sum from official CHECKSUMS.md5 fail :D

slackware64 current

$ md5sum --version
md5sum (GNU coreutils) 8.21

$ wget http://slackware.osuosl.org/slackwar.../ANNOUNCE.14_0
$ wget http://slackware.osuosl.org/slackwar.../CHECKSUMS.md5

edit CHECKSUMS.md5 and drop all md5 row except ANNOUNCE.14_0 (the first):
Code:

These are the MD5 message digests for the files in this directory.
If you want to test your files, use 'md5sum' and compare the values to
the ones listed here.

To test all these files, use this command:

tail +13 CHECKSUMS.md5 | md5sum -c --quiet - | less

'md5sum' can be found in the GNU coreutils package on ftp.gnu.org in
/pub/gnu, or at any GNU mirror site.

MD5 message digest                Filename
2da2c97473fd60413c84b99a003e661c  ./ANNOUNCE.14_0

Code:

$ md5sum -c CHECKSUMS.md5..
md5sum:  ./ANNOUNCE.14_0: No such file or directory
 ./ANNOUNCE.14_0: FAILED open or read
md5sum: WARNING: 12 lines are improperly formatted
md5sum: WARNING: 1 listed file could not be read

md5sum search "<space>./ANNOUNCE.14_0"

The header introduce an anomaly.

Official CHECKSUMS.md5 ask for "tail +13 CHECKSUMS.md5 | md5sum -c --quiet - | less" to check

Code:

$ tail +13 CHECKSUMS.md5.. | md5sum -c -
./ANNOUNCE.14_0: OK

Insert some space before the word 'site' (line 10)

Code:

These are the MD5 message digests  for the files in this directory.
If you want to test your files, use 'md5sum' and compare the values to
the ones listed here.

To test all these files, use this command:

tail +13 CHECKSUMS.md5 | md5sum -c --quiet - | less

'md5sum' can be found in the  GNU coreutils package on ftp.gnu.org in
/pub/gnu, or at any GNU mirror    site.

MD5 message digest                Filename
2da2c97473fd60413c84b99a003e661c  ./ANNOUNCE.14_0

the check generate a warning, but does not fails.

Code:

$ md5sum -c CHECKSUMS.md5
./ANNOUNCE.14_0: OK
md5sum: WARNING: 12 lines are improperly formatted


Why?... I dont know!!

Raveriux 07-05-2013 08:48 AM

Quote:

Originally Posted by Slax-Dude (Post 4984661)
I think the ktown packages are outside the "alienbob" repository, so they should not be upgraded by slackpkg+
And it's a shame :(

But slackpkg tries to upgrade Ktown packages with ones from the stock distribution. An if the you blacklist them not to be checked by slackpkg you also blacklist all Alienbob packages, because of blacklisting "[0-9]alien", so you need to blacklist each of Ktown packages by name.

Slax-Dude 07-05-2013 09:00 AM

Quote:

Originally Posted by Raveriux (Post 4984674)
But slackpkg tries to upgrade Ktown packages with ones from the stock distribution. An if the you blacklist them not to be checked by slackpkg you also blacklist all Alienbob packages, because of blacklisting "[0-9]alien", so you need to blacklist each of Ktown packages by name.

My point is: if the ktown is not part of the alienbob repository, it will not be managed by slackpkg+, so you will have to install them manually if you want them in your slackware.
Since you are already manually installing them, it would be of no consequence to you if you add "kde" to the slackpkg blacklist.
This way, slackpkg+ will not try to "upgrade" the ktown packages to the official slackware kde packages.

I hope it is clearer now :)

Raveriux 07-05-2013 09:09 AM

Quote:

Originally Posted by Slax-Dude (Post 4984683)
My point is: if the ktown is not part of the alienbob repository, it will not be managed by slackpkg+, so you will have to install them manually if you want them in your slackware.
Since you are already manually installing them, it would be of no consequence to you if you add "kde" to the slackpkg blacklist.
This way, slackpkg+ will not try to "upgrade" the ktown packages to the official slackware kde packages.

I hope it is clearer now :)

The problem is that the package group "kde" does not cover all the packages that are in Ktown.

Slax-Dude 07-05-2013 09:38 AM

Quote:

Originally Posted by Raveriux (Post 4984691)
The problem is that the package group "kde" does not cover all the packages that are in Ktown.

It doesn't have to.
Just has to cover the kde packages in the official repository.

Just add "kde" to the blacklist then issue "slackpkg search kde" and you will see your troubles are gone, unless I misunderstood the problem you were trying to fix.

Raveriux 07-05-2013 01:48 PM

Quote:

Originally Posted by Slax-Dude (Post 4984704)
It doesn't have to.
Just has to cover the kde packages in the official repository.

Just add "kde" to the blacklist then issue "slackpkg search kde" and you will see your troubles are gone, unless I misunderstood the problem you were trying to fix.

But the packages in ktown /deps and /tools will be upgraded to stock distribution when you run slackpkg.

Alien Bob 07-05-2013 03:52 PM

I added a bit of extra fluff to my ktown repository just now. Below the Slackware version directories ('13.37', '14.0' and soon again 'current') I have added a symlink which I guarantee points to the latest version of KDE which I have available for that Slackware release. I call that symlink 'latest'.

Now, if you are running Slackware 14.0 64-bit with multilib, use slackpkg+ and want to keep up to date with the latest KDE from 'ktown', yuo should mention 'ktown' in /etc/slackpkg/slackpkgplus.conf like this (at the moment, taper.alienbase.nl and alien.slackbook .org are the only repositories with the new file structure):
Code:

PKGS_PRIORITY=( multilib:.* ktown:.* restricted:vlc )
REPOPLUS=( slackpkgplus ktown multilib alienbob restricted )
MIRRORPLUS['ktown']=http://taper.alienbase.nl/mirrors/alien-kde/14.0/latest/x86_64/

... and then run "slackpkg update" you will be able to upgrade to the latest KDE, and the deps will be upgraded too.

For 32-bit Slackware 13.37 and if you do not care about vlc, that would become:
Code:

PKGS_PRIORITY=( ktown:.* )
REPOPLUS=( slackpkgplus ktown alienbob restricted )
MIRRORPLUS['ktown']=http://taper.alienbase.nl/mirrors/alien-kde/13.37/latest/x86/

Try it! Give me your feedback.

Eric

Raveriux 07-09-2013 02:58 AM

I think in http://taper.alienbase.nl/mirrors/al...latest/x86_64/ GPG key is missing. Everything else works well.

Slax-Dude 07-09-2013 07:10 AM

It works great!
Thanks Eric!

I updated KDE to your latest build on my test slackware64_14 system and it went smooth as silk.
No problems whatsoever.

HUGE thanks to zerouno for creating this wonderful plugin :)
With it, slackware is much more extensible than before by adding third party repositories to the official one.

Alien Bob 07-09-2013 07:19 AM

Quote:

Originally Posted by Raveriux (Post 4986779)
I think in http://taper.alienbase.nl/mirrors/al...latest/x86_64/ GPG key is missing. Everything else works well.

Ah, a small omission in my updated gen_repos_files.sh script. I will fix that and have the GPG-KEY files in every repository.

Cheers, Eric

samac 07-09-2013 04:23 PM

Thanks all for this really great plugin.

@Alien Bob

Just followed your instructions for ktown repository and everything seemed to go OK but nepomuk-widgets were not installed. I have fixed the problem with Dolphin, but I thought that I should let you know.

samac

Alien Bob 07-09-2013 04:31 PM

Quote:

Originally Posted by samac (Post 4987276)
Just followed your instructions for ktown repository and everything seemed to go OK but nepomuk-widgets were not installed

Well how exactly did you install KDE then? Can you show the commands you used?

Eric

samac 07-09-2013 04:35 PM

I added the repository information to slackpkg+ then ran slackpkg update, slackpkg install-new, slackpkg upgrade-all.

samac


All times are GMT -5. The time now is 07:57 PM.