SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Regarding improvement of "install-new" function to support 3rd-party repositories, I would definitely prefer option (2): i.e. make it optional so user has to manually select in config file which repository(ies) to be added to appear in "install-new".
Quote:
In case of (2). Do you want the list of changes found in repositories to be :
a) never printed
c) part of the output of "slackpkg update"
d) part of the output of "slackpkg check-update"
To stay consistent with what slackpkg does with the official Slackware repository, I would vote for option a). List of new packages in a 3rd-party repository would only be listed with command "slackpkg install-new" ,of course the repository must first have been "selected" for "install-new". I'm not aware of another way to list the new Slackware packages using slackpkg.
Notice that the official install-new shown all new packages from the previous stable release to the latest new package, and not from the latest slackpkg update command or the latest install-new command unless you install or blacklist the new packages.
If you do that for a thirdy party repository started empty, slackpkg install-new will show the same output of slackpkg install repository that is not useful becouse I dont think that a user want install an entire repository that contains heterogeneous or conflicting packages. A similar install-new may be useful for repositories that suppose you want fully install as multilib, ktown, gsb... that contains multiple package for a single purpose; if you run slackpkg upgrade ktown may be needed to run slackpkg install ktown. If you run slackpkg upgrade alienbob I don't think that you need to run slackpkg install alienbob.
Notice that the official install-new shown all new packages from the previous stable release to the latest new package, and not from the latest slackpkg update command or the latest install-new command unless you install or blacklist the new packages.
Just an idea: For a given repository, all the changes collected when running "slackpkg update" could be merged, version by version :
If you do that for a thirdy party repository started empty, slackpkg install-new will show the same output of slackpkg install repository
What do you mean by "third party repository started empty ?" A repository with 0 packages, then you add 10, etc
For a given repository R, "slackpkg install R" will only show the uninstalled packages, and, slackpkg install-new, will only show the packages identified as new.
For a repository R, when you run "slackpkg update", a snapshot of available packages is taken, then the data are fetched from the repository, and a new snapshot is taken. When these snapshots are different, the changes are collected :
Code:
R=(no packages) => slackpkg update => no new packages found in R => install-new will show nothing from R
R=(a,b,c) => slackpkg update => new(a,b,c) found in R => install-new will show (a,b,c) from R
R=(a,b,c,d) => slackpkg update => new(d) found in R => install-new will show (d) from R
R=(a,b,c,d) => slackpkg update => no change found => install-new will show (d) from R
...
Important:
Keep in mind that implementation of "install-new" I sent last day is incomplete and must be (really) considered as a work in progress. It needs more attention, because it does not take care of defined priorities, nor the packages that could have been installed manually or by any other ways.
regarding the install-new functionality for now I would wait.
In the development tree I added other features.
All feature from the stable and now:
- Added ALLOW32BIT flag to allow to install 32bit packages on a 64bit system
- Added an install log in /var/lib/slackpkg/install.log; launching "/usr/libexec/slackpkg/makeinstlog.sh -t" TRY to detect the repository from which the packages was installed
- Added WGETOPTS
- Added the greylist
- Added ALLOW32BIT flag to allow to install 32bit packages on a 64bit system
About this, It would be great to automatically put 32-bit packages on greylist (I didn't check if this can be done at runtime) when user runs "slackpkg upgrade" / "slackpkg upgrade-all". With that, the user would have to explicitly select the 32-bit packages he wants to upgrade, and this will prevent him to mistakenly upgrade some of installed packages with 32-bit version.
I wrote a small patch for slackpkg+ (slackpkgplus-1.3.0-2mt_20140404_2SeB.patch.txt) which solves this small bug, and adds a small improvement so that the command slackpkg check-updates reports the repositories which have been changed since the last update.
Here is an example of the new output of check-updates :
Code:
$ /usr/sbin/slackpkg check-updates
News on ChangeLog.txt
[ Repository ] [ Status ]
slackware AVAILABLE UPDATES
slackpkgplus Up to date
restricted Up to date
alienbob AVAILABLE UPDATES
multilib Up to date
The name of each updated repository is saved in ~/.slackpkg/updated-repos.txt. When there's no update, this file is empty.
With that, you can create a crontab entry to be notified through a tooltip inside your preferred DE when updates are available. For instance, to check updates every 2 hours at the top of the hour :
Code:
0 */2 * * * export DISPLAY=:0 && /usr/sbin/slackpkg &>/dev/null check-updates && [ -s ~/.slackpkg/updated-repos.txt ] && notify-send -i dialog-warning "[ S L A C K P K G + ]" "Available updates in repositories: $(cat ~/.slackpkg/updated-repos.txt|tr '\n' ','|sed 's/,$//' )"
Note: the crontab entry above is for non-root users only: notify-send does not work when run as root. To workaround this, users who really want to run notify-send as root, can use this wrapper.
Examples:
1. Kde
2. Xfce
Greetings.
--
SeB
Last edited by phenixia2003; 04-11-2014 at 02:48 AM.
Currently I don't have my GPG-KEY , so I can't update the repository metadata (so it is not available with slackpkg upgrade slackpkg+), but I uploaded the new package on sourceforge.
Now that you have a notification you just need to add a quick start button that runs "slackpkg" update and upgrade, both graphically and automatically. Then you will have removed one of the "major fictions" of Slackware. That being, that it doesn't have a package manager.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.