LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   slackpkg+ 1.8 (https://www.linuxquestions.org/questions/slackware-14/slackpkg-1-8-a-4175669481/)

mlangdn 02-10-2021 06:22 AM

This is also the result I got. This is a much cleaner look. Thanks!


Quote:

Originally Posted by zerouno (Post 6218621)
Run the first time
Code:

# slackpkg update

Updating the package lists...
        Downloading...
force to download ChangeLog
                ChangeLogs
    File: slackware            -> ChangeLog.txt        .. Downloading...
    File: multilib            -> ChangeLog.txt        .. Downloading...
    File: slackpkgplus        -> ChangeLog.txt        .. Downloading...
    File: multilib            -> CHECKSUMS.md5        .. Downloading...
    File: slackpkgplus        -> CHECKSUMS.md5        .. Downloading...
Files //var/lib/slackpkg/CHECKSUMS.md5.asc and /tmp/slackpkg.Pk8nSz/CHECKSUMS.md5.asc differ

        Downloading...
                Done.
                List of all files
    File: patches              -> MANIFEST.bz2        .. Cached.
    File: slackware64          -> MANIFEST.bz2        .. Downloading...
    File: extra                -> MANIFEST.bz2        .. Cached.
    File: pasture              -> MANIFEST.bz2        .. Cached.
    File: testing              -> MANIFEST.bz2        .. Downloading...
    File: multilib            -> MANIFEST.bz2        .. Downloading...
    File: slackpkgplus        -> MANIFEST.bz2        .. Downloading...
                Checksums
    File: slackware            -> CHECKSUMS.md5        .. Downloading...
    File: slackware            -> CHECKSUMS.md5.asc    .. Downloading...
    File: multilib            -> CHECKSUMS.md5.asc    .. Downloading...
    File: slackpkgplus        -> CHECKSUMS.md5.asc    .. Downloading...
                Package List
    File: slackware            -> FILELIST.TXT        .. Downloading...
    File: SBo                  -> SLACKBUILDS.TXT.gz  .. Cached.
                Package descriptions
    File: patches              -> PACKAGES.TXT        .. Cached.
    File: slackware64          -> PACKAGES.TXT        .. Downloading...
    File: extra                -> PACKAGES.TXT        .. Cached.
    File: pasture              -> PACKAGES.TXT        .. Cached.
    File: testing              -> PACKAGES.TXT        .. Downloading...
    File: multilib            -> PACKAGES.TXT        .. Downloading...
    File: slackpkgplus        -> PACKAGES.TXT        .. Downloading...
        Formatting lists to slackpkg style...
                Package List: using CHECKSUMS.md5 as source
                Package descriptions

Run second time:
Code:

# slackpkg update

Updating the package lists...
        Downloading...
force to download ChangeLog
                ChangeLogs
    File: slackware            -> ChangeLog.txt        .. Cached.
    File: multilib            -> ChangeLog.txt        .. Cached.
    File: slackpkgplus        -> ChangeLog.txt        .. Cached.
    File: multilib            -> CHECKSUMS.md5        .. Cached.
    File: slackpkgplus        -> CHECKSUMS.md5        .. Cached.
Files //var/lib/slackpkg/CHECKSUMS.md5.asc and /tmp/slackpkg.lsyv5E/CHECKSUMS.md5.asc differ

        Downloading...
                Done.
                List of all files
    File: patches              -> MANIFEST.bz2        .. Cached.
    File: slackware64          -> MANIFEST.bz2        .. Cached.
    File: extra                -> MANIFEST.bz2        .. Cached.
    File: pasture              -> MANIFEST.bz2        .. Cached.
    File: testing              -> MANIFEST.bz2        .. Cached.
    File: multilib            -> MANIFEST.bz2        .. Cached.
    File: slackpkgplus        -> MANIFEST.bz2        .. Cached.
                Checksums
    File: slackware            -> CHECKSUMS.md5        .. Cached.
    File: slackware            -> CHECKSUMS.md5.asc    .. Cached.
    File: multilib            -> CHECKSUMS.md5.asc    .. Cached.
    File: slackpkgplus        -> CHECKSUMS.md5.asc    .. Cached.
                Package List
    File: slackware            -> FILELIST.TXT        .. Cached.
    File: SBo                  -> SLACKBUILDS.TXT.gz  .. Cached.
                Package descriptions
    File: patches              -> PACKAGES.TXT        .. Cached.
    File: slackware64          -> PACKAGES.TXT        .. Cached.
    File: extra                -> PACKAGES.TXT        .. Cached.
    File: pasture              -> PACKAGES.TXT        .. Cached.
    File: testing              -> PACKAGES.TXT        .. Cached.
    File: multilib            -> PACKAGES.TXT        .. Cached.
    File: slackpkgplus        -> PACKAGES.TXT        .. Cached.
        Formatting lists to slackpkg style...
                Package List: using CHECKSUMS.md5 as source
                Package descriptions

slackpkg will recheck all files but it will not really redownload it.


chrisretusn 02-10-2021 06:45 AM

Is that what I am supposed to see? If so then something is definitely wrong here on my end. FYI, I like that listing a lot better than what I see.

My only download from the Internet is slackpkgplus, the rest are from "file:" so I guess being cached and not being cache are pretty much the same as for speed goes. ;)

This is my listing:
Code:

slackpkg update               

Updating the package lists...
        Downloading...
force to download ChangeLog
                ChangeLogs
'/home/slackware/slackware64-current/ChangeLog.txt' -> '/tmp/slackpkg.JAbffF/ChangeLog.txt'
'/home/non-slack/slackbuilds/ChangeLog.txt' -> '/tmp/slackpkg.JAbffF/nonslack.txt'
    File: slackpkgplus        -> ChangeLog.txt        .. Cached.
'/home/non-slack/multilib/ChangeLog.txt' -> '/tmp/slackpkg.JAbffF/multilib.txt'
'/home/non-slack/alienbob_restricted/ChangeLog.txt' -> '/tmp/slackpkg.JAbffF/restricted.txt'
'/home/non-slack/alienbob/ChangeLog.txt' -> '/tmp/slackpkg.JAbffF/alienbob.txt'
'/home/non-slack/slackbuilds/CHECKSUMS.md5' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-nonslack'
    File: slackpkgplus        -> CHECKSUMS.md5        .. Cached.
'/home/non-slack/multilib/current/CHECKSUMS.md5' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-multilib'
'/home/non-slack/alienbob_restricted/current/x86_64/CHECKSUMS.md5' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-restricted'
'/home/non-slack/alienbob/current/x86_64/CHECKSUMS.md5' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-alienbob'
Files //var/lib/slackpkg/CHECKSUMS.md5.asc and /tmp/slackpkg.JAbffF/CHECKSUMS.md5.asc differ

        Downloading...
                Done.
                List of all files
'/home/slackware/slackware64-current/patches/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/patches-MANIFEST.bz2'
'/home/slackware/slackware64-current/testing/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/testing-MANIFEST.bz2'
'/home/slackware/slackware64-current/slackware64/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/slackware64-MANIFEST.bz2'
'/home/slackware/slackware64-current/extra/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/extra-MANIFEST.bz2'
'/home/non-slack/slackbuilds/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_nonslack-MANIFEST.bz2'
    File: slackpkgplus        -> MANIFEST.bz2        .. Cached.
'/home/non-slack/multilib/current/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_multilib-MANIFEST.bz2'
'/home/non-slack/alienbob_restricted/current/x86_64/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_restricted-MANIFEST.bz2'
'/home/non-slack/alienbob/current/x86_64/MANIFEST.bz2' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_alienbob-MANIFEST.bz2'
                Checksums
'/home/slackware/slackware64-current/CHECKSUMS.md5' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5'
'/home/slackware/slackware64-current/CHECKSUMS.md5.asc' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5.asc'
'/home/non-slack/slackbuilds/CHECKSUMS.md5.asc' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-nonslack.asc'
    File: slackpkgplus        -> CHECKSUMS.md5.asc    .. Cached.
'/home/non-slack/multilib/current/CHECKSUMS.md5.asc' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-multilib.asc'
'/home/non-slack/alienbob_restricted/current/x86_64/CHECKSUMS.md5.asc' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-restricted.asc'
'/home/non-slack/alienbob/current/x86_64/CHECKSUMS.md5.asc' -> '/tmp/slackpkg.JAbffF/CHECKSUMS.md5-alienbob.asc'
                Package List
'/home/slackware/slackware64-current/FILELIST.TXT' -> '/tmp/slackpkg.JAbffF/FILELIST.TXT'
                Package descriptions
'/home/slackware/slackware64-current/patches/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/patches-PACKAGES.TXT'
'/home/slackware/slackware64-current/testing/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/testing-PACKAGES.TXT'
'/home/slackware/slackware64-current/slackware64/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/slackware64-PACKAGES.TXT'
'/home/slackware/slackware64-current/extra/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/extra-PACKAGES.TXT'
'/home/non-slack/slackbuilds/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_nonslack-PACKAGES.TXT'
    File: slackpkgplus        -> PACKAGES.TXT        .. Cached.
'/home/non-slack/multilib/current/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_multilib-PACKAGES.TXT'
'/home/non-slack/alienbob_restricted/current/x86_64/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_restricted-PACKAGES.TXT'
'/home/non-slack/alienbob/current/x86_64/PACKAGES.TXT' -> '/tmp/slackpkg.JAbffF/SLACKPKGPLUS_alienbob-PACKAGES.TXT'
        Formatting lists to slackpkg style...
                Package List: using CHECKSUMS.md5 as source
                Package descriptions


zerouno 02-10-2021 07:08 AM

file:// do not need caching :), so it's a correct output.

chrisretusn 02-10-2021 08:13 AM

I know I am being a pest, but why is your output above prettier that my output, was that an edited output for clarity. I switched all of my repositories to https: and excluded my own repository. This is what I get on the second update:
Code:

slackpkg update

Updating the package lists...
        Downloading...
force to download ChangeLog
                ChangeLogs
'/home/slackware/slackware64-current/ChangeLog.txt' -> '/tmp/slackpkg.eMOlYe/ChangeLog.txt'
    File: slackpkgplus        -> ChangeLog.txt        .. Cached.
    File: multilib            -> ChangeLog.txt        .. Cached.
    File: restricted          -> ChangeLog.txt        .. Cached.
    File: alienbob            -> ChangeLog.txt        .. Cached.
    File: slackpkgplus        -> CHECKSUMS.md5        .. Cached.
    File: multilib            -> CHECKSUMS.md5        .. Cached.
    File: restricted          -> CHECKSUMS.md5        .. Cached.
    File: alienbob            -> CHECKSUMS.md5        .. Cached.
Files //var/lib/slackpkg/CHECKSUMS.md5.asc and /tmp/slackpkg.eMOlYe/CHECKSUMS.md5.asc differ

        Downloading...
                Done.
                List of all files
'/home/slackware/slackware64-current/patches/MANIFEST.bz2' -> '/tmp/slackpkg.eMOlYe/patches-MANIFEST.bz2'
'/home/slackware/slackware64-current/testing/MANIFEST.bz2' -> '/tmp/slackpkg.eMOlYe/testing-MANIFEST.bz2'
'/home/slackware/slackware64-current/slackware64/MANIFEST.bz2' -> '/tmp/slackpkg.eMOlYe/slackware64-MANIFEST.bz2'
'/home/slackware/slackware64-current/extra/MANIFEST.bz2' -> '/tmp/slackpkg.eMOlYe/extra-MANIFEST.bz2'
    File: slackpkgplus        -> MANIFEST.bz2        .. Cached.
    File: multilib            -> MANIFEST.bz2        .. Cached.
    File: restricted          -> MANIFEST.bz2        .. Cached.
    File: alienbob            -> MANIFEST.bz2        .. Cached.
                Checksums
'/home/slackware/slackware64-current/CHECKSUMS.md5' -> '/tmp/slackpkg.eMOlYe/CHECKSUMS.md5'
'/home/slackware/slackware64-current/CHECKSUMS.md5.asc' -> '/tmp/slackpkg.eMOlYe/CHECKSUMS.md5.asc'
    File: slackpkgplus        -> CHECKSUMS.md5.asc    .. Cached.
    File: multilib            -> CHECKSUMS.md5.asc    .. Cached.
    File: restricted          -> CHECKSUMS.md5.asc    .. Cached.
    File: alienbob            -> CHECKSUMS.md5.asc    .. Cached.
                Package List
'/home/slackware/slackware64-current/FILELIST.TXT' -> '/tmp/slackpkg.eMOlYe/FILELIST.TXT'
                Package descriptions
'/home/slackware/slackware64-current/patches/PACKAGES.TXT' -> '/tmp/slackpkg.eMOlYe/patches-PACKAGES.TXT'
'/home/slackware/slackware64-current/testing/PACKAGES.TXT' -> '/tmp/slackpkg.eMOlYe/testing-PACKAGES.TXT'
'/home/slackware/slackware64-current/slackware64/PACKAGES.TXT' -> '/tmp/slackpkg.eMOlYe/slackware64-PACKAGES.TXT'
'/home/slackware/slackware64-current/extra/PACKAGES.TXT' -> '/tmp/slackpkg.eMOlYe/extra-PACKAGES.TXT'
    File: slackpkgplus        -> PACKAGES.TXT        .. Cached.
    File: multilib            -> PACKAGES.TXT        .. Cached.
    File: restricted          -> PACKAGES.TXT        .. Cached.
    File: alienbob            -> PACKAGES.TXT        .. Cached.
        Formatting lists to slackpkg style...
                Package List: using CHECKSUMS.md5 as source
                Package descriptions


zerouno 02-10-2021 08:20 AM

set VERBOSE=0

chrisretusn 02-10-2021 08:46 AM

I tried that earlier, same output.

slackpkgplus.conf:
Code:

SLACKPKGPLUS=on
VERBOSE=0
USETERSE=off
ALLOW32BIT=on
USEBL=on
WGETOPTS="--timeout=20 --tries=2"
SEARCH_CLOG_INPARENT=on
CACHEUPDATE=on
ENABLENOTIFY=on
GREYLIST=on
SENSITIVE_SEARCH=off
WW_FILE_SEARCH=off
SHOWORDER=package
DETAILED_INFO=basic
STRICTGPG=on
PKGS_PRIORITY=( slackware64:id3lib ) # 2018-01-09, also in alienbob
PKGS_PRIORITY+=( slackware64:gcc ) # 2020-09-17, give slackware packages priority over multilib.
PKGS_PRIORITY+=( slackpkgplus multilib restricted alienbob )
TAG_PRIORITY=off
REPOPLUS=( slackpkgplus multilib restricted alienbob )
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+dev/
MIRRORPLUS['multilib']=https://bear.alienbase.nl/mirrors/people/alien/multilib/current/
MIRRORPLUS['alienbob']=https://bear.alienbase.nl/mirrors/people/alien/sbrepos/current/x86_64/
MIRRORPLUS['restricted']=https://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/current/x86_64/


drgibbon 02-10-2021 08:38 PM

Quote:

Originally Posted by zerouno (Post 6218601)
slackpkg 15 introduce a new way to check if there are news on changelog.
Unfortunately this is incompatible with slackpkg prior 15.0, and unfortunately slackpkg+ have to work both with slackware current and slackware 14.2
So it use an ibrid way to check it.

My suggest is to use CACHEUPDATE=on in slackpkgplus.conf, so it will not really redownload all files any time.

I hope to find a solution to fix that saving the compatibility with slackware 14.2.

I'm not sure I understand completely. With the default settings, there are two issues that I can see:

1) `slackpkg update` always acts like there are updates, even when there's nothing to update.
Specifically, on every run (with VERBOSE=3) I see something like this:
Code:

Files //var/lib/slackpkg/CHECKSUMS.md5.asc and /tmp/slackpkg.9Nstx0/CHECKSUMS.md5.asc differ
But why should they differ if nothing changed? On the user end, the outcome is that unlike with regular slackpkg, I never see this prompt anymore:
Code:

No changes in ChangeLog.txt between your last update and now.
Do you really want to download all other files (y/N)?

2) `slackpkg check-updates` pulls the whole ChangeLog
With the default slackpkg+ settings, `slackpkg check-updates` will download the entire ChangeLog from each repo to see if there are updates. That's pretty inefficient/slow, couldn't slackpkg+ just use the method of comparing cached vs upstream CHECKSUMS.md5.asc file on both 14.2 and -current? Or at a minimum, use that method if slackpkg-15 is detected?

drgibbon 02-25-2021 07:13 AM

Any chance to have slackpkg+ "check-updates" return 1 if there are updates? (to bring it inline with slackpkg-15.0):
Code:

Mon Feb 8 05:13:26 UTC 2021
[...]
 ap/slackpkg-15.0-noarch-1.txz: Upgraded.
[...]
Another backwards-incompatibility warning: check-updates will now return 1 if
      there are updates available - this will make it easier to use this feature
      with cron (thanks to Peter Hyman).


zerouno 02-25-2021 08:06 AM

ehm. I think that there is a bug in slackpkg. It seems to return 0 always.

Code:

# SLACKPKGPLUS=off slackpkg check-updates

Slackpkg: Updated packages are available since last check.

# echo $?
0

# SLACKPKGPLUS=off slackpkg check-updates

Slackpkg: No updated packages since last check.

# echo $?
0

When it will be fixed I may align slackpkg+ to the same.

drgibbon 02-25-2021 08:29 AM

That's odd, I tested slackpkg 15.0 a few days ago and it returned a 1 when there were updates. I'll wait until there are some updates and check it out.

zerouno 02-25-2021 09:15 AM

with or without slackpkg+ ?

drgibbon 02-25-2021 09:32 AM

Without, if I recall correctly.

zerouno 02-25-2021 09:34 AM

slackpkg exits 1 only if there is an error, so verify if you had an error.


@rworkman

from the code:

the function checkchangelog() returns 1 or 0 as described. However this works internally.

the difference with slackpkg 2.8x is about the output:

slackpkg 2.8x:
No updated packages since last check. - in standard output
Updated packages are available since last check - in standard output

slackpkg 15:
Slackpkg: No updated packages since last check. - in standard output
Slackpkg: Updated packages are available since last check. - in standard error

description on git log:
Code:

    * Modify check-updates to output need to update to stderr so cron
      jobs will notify sysadmin.


phenixia2003 02-25-2021 09:38 AM

Hello,

Quote:

Originally Posted by zerouno (Post 6224373)
ehm. I think that there is a bug in slackpkg. It seems to return 0 always.

Code:

# SLACKPKGPLUS=off slackpkg check-updates

Slackpkg: Updated packages are available since last check.

# echo $?
0

# SLACKPKGPLUS=off slackpkg check-updates

Slackpkg: No updated packages since last check.

# echo $?
0


In checkchangelog(), we have :
Code:

...
if diff --brief ${WORKDIR}/CHECKSUMS.md5.asc $TMPDIR/CHECKSUMS.md5.asc ; then
                return 0
        else
                return 1
        fi
}

checkchangelog returns 1 when the compared checksums are different. However, in usr/sbin/slackpkg, we have :
Code:

        if checkchangelog 1>/dev/null 2>/dev/null ; then
                        echo "Slackpkg: No updated packages since last check."
                else
                        echo "Slackpkg: Updated packages are available since last check." >&2
                fi

The exit-code returned by checkchangelog is overriden by the exit-code of the statement 'echo "Slackpkg: Updated packages are available since last check'.

The fix for that seems simple: add an 'exit 1' after that echo. But in this case, cleanup() is not executed and slackpkg refuses to start on next run :
Code:

$ slackpkg check-updates
Another instance of slackpkg is running If this is not correct, you can remove /var/lock/slackpkg.* files and run slackpkg again.

Here is a proposed patch :
Code:

--- /media/sf_sandbox_tmp/TEST/slackpkg15/usr/libexec/slackpkg/core-functions.sh        2021-02-21 06:52:29.000000000 +0100
+++ /usr/libexec/slackpkg/core-functions.sh        2021-02-25 16:58:19.105228553 +0100
@@ -8,6 +8,11 @@
 #
 function cleanup() {
        local retval=0
+
+        if [ "${CMD}" = "check-updates" ] && [ "${PENDING_UPDATES}" = "yes" ] ; then
+          retval=1
+        fi
+
        [ "$SPINNING" = "off" ] || tput cnorm
        if [ -e $TMPDIR/error.log ]; then
                retval=1
@@ -1040,9 +1045,11 @@
 Please check your mirror and try again."
                cleanup
        fi
+
        if diff --brief ${WORKDIR}/CHECKSUMS.md5.asc $TMPDIR/CHECKSUMS.md5.asc ; then
                return 0
        else
+                PENDING_UPDATES=yes
                return 1
        fi
 }



--
SeB

chrisretusn 02-25-2021 10:08 AM

Never mind. Didn't read the rest of the thread before posting.


All times are GMT -5. The time now is 06:19 AM.