SLACKPKGPLUS.CONF(5)

NOME
slackpkgplus.conf - Configuration file for slackpkg+

DESCRIPTION
The slackpkgplus.conf file contains the slackpkg+ configuration, a plugin for slackpkg that allows the addition of third-party repositories in slackpkg(5). The slackpkgplus.conf file is a sequence of shell script variables (also called "settings"), and each variable controls one aspect of slackpkg+. Comments begin with the # character and end at end of the line, and comments may appear anywhere inside the slackpkgplus.conf file. If some variable appears more than once in the file, slackpkg will use the value that was defined last. Many variables can be overridden from the command line writing them BEFORE the command. If you need to override the value of VARIABLE, write VARIABLE=value on the command line, just before slackpkg. Multiple variables can be overridden.
DOWNLOADONLY=on slackpkg upgrade-all
Each setting has a default value that is used if the variable is not present in the file or is commented out. It does not necessarly correspond with the value set in the sample configuration file. Here is the list of available settings:
VARIABLE values default can override
Main settings
SLACKPKGPLUS on/off on yes
MIRRORPLUS[] strings - no
REPOPLUS list - no
PKGS_PRIORITY list - no
TAG_PRIORITY on/off off yes
Download settings
VERBOSE 0,1,2,3 1 yes
USETERSE on/off off yes
PROXY string - yes
WGETOPTS string - yes
DOWNLOADCMD string wget yes
CHECKDISKSPACE on/off off no
DOWNLOADONLY on/off off yes
CACHEUPDATE on/off off yes
SEARCH_CLOG_INPARENT on/off off no
STRICTGPG on/off on yes
Search settings
ALLOW32BIT on/off off yes
USEBL off/on on yes
LEGACYBL off/on off yes
GREYLIST on/off on yes
SENSITIVE_SEARCH on/off on yes
WW_FILE_SEARCH on/off on yes
SBO[] strings - no
Display settings
SHOWORDER string package no
DETAILED_INFO string none yes
ENABLENOTIFY on/off off no
Plugins
In this section you can put the settings to enable, disable or configure the extra plugins. To know the available variable read the documentation inside the plugin (see FILES section in that man page). For each configuration change is necessary or otherwise appropriate to re-run slackpkg update. Here are the details for each setting.

SLACKPKGPLUS
    Enable/Disable slackpkg+. If you want to disable slackpkg+ without uninstall it, sets this variale to off.

MIRRORPLUS
    This is the main (and the only really necessary) configuration variable for slackpkg+ to set. It is used to specify the repositories from which to install third-party packages. You can specify more than one repository by adding multiple lines. Each repository has a name that have must be specified in square brackets.
    MIRRORPLUS['slackpkgplus']=https://slakfinder.org/slackpkg+15/
    You can specify remote repositories in http/https/ftp or local repositories (with or without metadata). For details on repository types refer to the documentation. Each time you add a new repository you may need to lauch the command slackpkg update gpg to download the GPG key.

REPOPLUS
    The addition of more third-party repository has as consequence that the one software can be in more than one source, with the same package name, but built in a different way, with different options and different version. In the package selection, at installation time, slackpkg can show just one. The variable REPOPLUS is to specify the search order in the repositories. Example:
    REPOPLUS=( slackpkgplus alienbob slacky )
    In this case launching slackpkg install openjdk the package will be taken from the alienbob's repository, if present, otherwise look in slacky. For example, if you later want to upgrade the package from the repository slacky launch explicitly:
    slackpkg upgrade slacky:openjdk

PKGS_PRIORITY
    The previous setting has some limitations.
    In the last example the slacky openjdk package replaced the alienbob openjdk package. However after launching the command slackpkg upgrade-all would be reinstalled the package from alienbob repository. Also, if a package is also present in the official Slackware repositories, this package can not be installed. The variable PKGS_PRIORITY is similar to REPOPLUS but allows a more widespread choice of the order of research both at the repository level and at individual packet level. Moreover the packages in the repositories configured in this variable can be installed even if present in the official repositories.
    PKGS_PRIORITY=( slacky:openjdk multilib )
    In this case slackpkg upgrade-all would update the package openjdk from the repository slacky and all other packages from other reporitories. Another case where you need to use this option it the multilib repositorie as it need to overwrite some official Slackware packages (for multilib please read the documentation carefully). You can fully replace the variable REPOPLUS with PKGS_PRIORITY, but if you do that please you are aware that you could upgrade Slackware official packages with those third-party, so make sure the autority of the source.

TAG_PRIORITY
    When installing many packages from many repositories forcing them from the command line as explained above, it is not always easy to maintain a good PKGS_PRIORITY. In this case, it comes to help the variable TAG_PRIORITY. By setting this variable to on the logic of calculating priority for the packages upgrade changes, and the repository is calculated by trying to maintain - where possible - the tag of the package currently installed.
    The idea is that the openjdk of slacky package is openjdk-7u40_b60-x86_64-1sl.txz, and every upgrade the tag will always remain sl, while that of alienbob will always alien and hardly (even if not impossible) you will find the openjdk package with tag sl in any other repository (unless this is not copied from the source repository and not re-packaged by the owner of the destination repository).
    So in all probability the package will be updated with a package written by the same author of the currently installed package. Note that if the author of the currently installed package removes it from its repository and the package is also present in another repository, the package will be updated with the latter, even if the tag is different. We therefore recommend to always pay attention to the sources from which it is proposed updating packages. The setting is disabled by default.

VERBOSE
    This variable specifies the level of detail of the wget(1) output (which is the downloader that is used by default unless otherwise specified). The original slackpkg ny default launches a classic wget with default options that then shows the scroll bar.
    When downloading the metadata repositories with slackpkg update, the original version must download a few files, while slackpkg+ downloads many files, which can make the output difficult to read. With this setting you can specify how many output should show wget. Possible values are 0,1,2,3:
    0) In both metadatas download and packages download, wget does not show the scroll bar but just the downloaded url (wget -nv)
    1) In metadatas download does not show the scroll bar while in the packages download it is shown (default in slackpkg+)
    2) In both metadatas download and packages download, wget does show the scroll bar (default in origina slackpkg)
    3) Extended wget output and more other error reporting options; also temporary files are not deleted at the end of process. Use in case of troubleshooting and when you report a bug to the developers. This setting is ignored (or partially ignored if it is set to 3 if you are using another downloader with setting DOWNLOADCMD (see below).

USETERSE
    Set this variable to on to use the TERSE option of installpkg(8), upgradepkg(8), removepkg(8). Install displaying only a single description line to stdout instead full description and coplete filelist.

PROXY
    Use proxy when needed
    PROXY=192.168.0.1:3128
    If empty use the system settings (enviroment variable http_proxy and https_proxy). Set to off to disable the proxy.

WGETOPTS
    Here you can specify additional options to wget. A typical is
    WGETOPTS="--timeout=20 --tries=2"
    That way if a repository is not responding right away due temporary problems another attempt is made, but if it still fails no infinity other attempts are made (the default wget is 20 attempts).
    Refer to the documentation of wget(1) for all available options. This setting is ignored if you are using another downloader with variable DOWNLOADCMD (see below).

DOWNLOADCMD
    In case you want to use a downloader instead wget (eg curl(1) or aria2 that is a tool for parallel download to speed up the download) you can specify it in this variable. In value we consider that is called with:
    $DOWNLOADCMD destinationfile url
    For example:
    DOWNLOADCMD="curl -v -o"
    For details see the documentation.

CHECKDISKSPACE
    Allow slackpkg+ to check needed diskspace to download packages. Also it check needed space to install it in install/install-new process.

DOWNLOADONLY
    In the packages download, with this variable, you can specify to not install them, but only to download them. They will be left to the package cache. It may be useful for example, in the case of large upgrade, to download all in the night and install them in daytime.
    The original slackpkg to do this you can use slackpkg download but this feature is not fully implemented in slackpkg+. The typical use of this setting is not set in the configuration file but by performing overwriting from the command line:
    DOWNLOADONLY=on slackpkg upgrade-all
    For details see the documentation.

CACHEUPDATE
    At each slackpkg update (even with slackpkg+) each time download all the metadatas (ChangeLog.txt, CHECKSUMS.md5 ...). This, especially in large repositories, may take a long time. Very often (especially when are configured many repositories), there is a re-download many times of metadatas that have not changes, with useless bandwidth and time consumption. Setting CACHEUPDATE to on a caching system is activated. Temporary files are not deleted after the download, as is usual, but are stored in a local cache. The next update checks whether the file has been changed (only by downloading the http header) and only if so is downloaded.
    This greatly speeds up the update process. Besides setting this to on, it will be pulled out of a very minimal and concise output that stands out immediately evident what is going on and if there are download errors. The output of wget (or downloader set from DOWNLOADCMD) is hidden, unless you set VERBOSE=3. The setting is disabled by default.

SEARCH_CLOG_INPARENT
    Starting from slackpkg+ 1.7, the package selection dialog is able to show the changelog of the package (if available).
    The ChangeLog.txt is sought in the main root of the repository, but some repository does not have it in that position but the previous (parent) directory.
    slackpkg+ is able to look for in these urls, but research out of the main url sometimes cause problems. Setting SEARCH CLOG_INPARENT=off the file ChangeLog.txt will be searched only in the main url where are also metadata.

STRICTGPG
    Almost all third-party repositories have a GPG key, so it is almost always possible to install packages without disabling the checkgpg from the file slackpkg.conf or from the command line (-checkgpg=off).
    The standard for the official repositories (those of slackware) is that all packages are all signed with the GPG-KEY in the repository root.
    Lo slackpkg originale verifica che la chiave sia quella giusta con l'opzione SLACKKEY in slackpkg.conf The official slackpkg verify that the key is the right one with the SLACKKEY in slackpkg.conf On slackpkg+ this control is not there and technically the owner of the third-party repository can copy packages and signatures from the official repository or other repository and put them in his repository.
    Starting from slackpkg+ 1.7, a "strict" GPG check is made, so that the published packages must be signed with his own GPG key. This increases the security of the repository.
    Because of this it is important that every time you add a repository or rename it, you re-launch the slackpkg update gpg to reread their own repository keys. However some repository - for they structure - can not meet this requirement. Setting STRICTGPG=off resets the classic behavior of slackpkg+ 1.6 and earlier about the GPG checking.
    Use this setting consciously and following the instructions that usually the owner of the repository provides in these cases.

ALLOW32BIT
    Normally on a 64bit system you should only install 64bit and noarch packages. If a repository also contains 32-bit packages, these will not be indexed (and then found in searches and installations). However, someone may want to also install the 32-bit packages on a 64bit system. Setting ALLOW32BIT=on 32bit packages will be treated the same as those 64bit. Note that if a repository contains, for the same package, either the 32bit and 64bit version, it is not predictable which package will be shown. Obviously, this variable is only available for 64bit systems. On 32bit systems it is automatically excluded from indexing the packages 64bit if any. The setting is off by default. If you set it to on also remember to install multilib from alienbob or equivalent to ensure the proper 32bit dependencies for the packages you want to install.

USEBL
    Slackpkg honors the blacklist of the classic slackpkg. However, if you want to disable this variable set to off. The typical use of this setting is from the command line to disable it. For example in slackpkg you can blacklist the internationalization packages putting l10n in the blacklist files to avoid installing the 100 different language packages. When you want to install the italian Libreoffice package you can run:
    USEBL=off slackpkg install libreoffice-l10n-it

LEGACYBL
    Slackpkg 15.0.2 introduces a new blacklist system that may not work properly with third party repositories. If you set LEGACYBL=on, slackpkg+ will rollback the blacklist syntax to the same of Slackware 14.2 That older syntax does grep -wE in pkglist of specified regex.

GREYLIST
    To avoid to temporarily disable the blacklist to install/upgrade the packagekde-l10n-it as above, slackpkg+ provides a greylisting system. Populating the file greylist (see below in the section FILES), the packages that match will be displayed in the dialog box but disabled by default so that the user does not have to disable all not needed packages every time. Setting GREYLIST=off in the configuration, this feature is disabled.

SENSITIVE_SEARCH
    In slackpkg search the search is in "case sensitive" mode that respecting differences between upper and lower case, so slackpkg search mplayer is not the same as slackpkg search MPlayer. The same is true for the file-search. Setting SENSITIVE_SEARCH=off will be possible to search in "case insensitive" that is, without making differences between upper and lower case. Note that this option does not affect the behavior of slackpkg install or upgrade and the other, for which the package should be entered exactly as it is, with the correct uppercase and lowercase letters.

WW_FILE_SEARCH
    WW means "Whole Word". The slackpkg file-search command by default looks for files in Whole Word mode (using the command grep -w), and slackpkg files-search libext2 will not find any result. Setting WW_FILE_SEARCH=off command file-search will also look for substrings, so the above command will find the e2fsprogs for the presence of the file libext2fs.a. Note that the search for too short strings can pull out hundreds and hundreds of results and take a long time.

SBO
    The slackpkg search command allow you to search packages in the SlackBuilds.org repositories for 14.2 and current SBO contains the urls of SlackBuilds.org repository. It it is not set, the search will be skipped. Note that slackpkg+ does not replace sbopkg o similar tools, but is only useful to know if a package is present on SBo. The user can download it via slackpkg download <package>, then build it, or he can use sbopkg instead.

SHOWORDER
    Usually the packages in the dialog box are listed alphabetically by package.
    Especially when there are large updates this could make it difficult to revisiting the package list. Sometimes it would be better to sort them by repository, so you can see immediately the group of packages that are in a repository or the other. For someone may be preferable in order to show them how they are distributed in the directories of the repository (path), so that - for the official repository of slackware - would be shown first ones from the package group [A] then those group [AP] etc .... Sometimes it can be useful for sorting tag or package architecture. Accepted values for this option are
    package Order by package name (default)
    repository Order by repository name
    tag Order by package tag
    path Order by location in the repository
    arch Order by architecture

DETAILED_INFO
    The slackpkg info usually shows only the basic metadata, i.e. NAME LOCATION SIZE DESCRIPTION. With the variable DETAILED_INFO you can show more detail. Accepted values for this option are
    none Show only metadata above (default)
    basic Adds the repository details and url
    filelist Also show the complete filelist of the package
    You can also use this setting from the command line. For example:
    DETAILED_INFO=basic slackpkg info slackpkg
    DETAILED_INFO=filelist slackpkg info kernel-source|less

ENABLENOTIFY
    Some packages require some post-installation activities to be done manually; for example after updating the kernel you have to recompile some kernel module of third-party driver, or re-installed some packages that may have been overwritten, and very often we forget these operations. Setting ENABLENOTIFY=on you enable a notification system but it must be configured appropriately. See the documentation and the file notifymsg.conf for details.

TERSESEARCH
    Show a terse output for slackpkg search.
    Replace first column with sometime shorter and colorized. Available value are:
    off ) No modifications
    on ) [unin] uninstalled, [inst] installed, [upgr] upgrade, [mask] uninstalled/masked
    tiny) [-] uninstalled, [I] installed, [U] upgrade, [M] uninstalled/masked

EXIT STATUS

0   Successful slackpkg execution.

1   Something wrong happened.

2   Something fatal happened (please do not ignore it).

20  No package found to be downloaded, installed, reinstalled, upgraded, or removed.

50  Slackpkg itself was upgraded and you need to re-run it.

100 There are pending updates.

FILES

/etc/slackpkg/slacpkgplus.conf
    The main configuration file where there are all the parameters above.
    For any change you have to re-run slackpkg update.

/etc/slackpkg/greylist
    The greylisting file. Accepts the syntax of the file blacklist of slackpkg. Examples:
    - Enable greylisting for all third-party packages add: SLACKPKGPLUS_.*
    - Enable greylisting for all internationalization packages: l10n

/usr/doc/slackpkg+-*/
    The directory with the documentation slackpkg and other miscellaneous things: ChangeLog.txt:
    The slackpkg+ changelog.
    CHANGES:
    The complete list of changes from two stable release; read it to get a description of the new features introduced.
    README:
    The documentation slackpkg+. Read it to learn more about using slackpkg+.
    repositories.txt:
    A summary list of repositories. !!WARNING!! This list is meant to be indicative only and is not an official list of supported repositories.
    repositories.lst:
    The very extensive list and checked (with automated scripts to verify if the repository is present; please not consider this list as a 100% reliable, always made a personal check)
    checkrepos.sh:
    Script used to generate the previous list. It connects to the url found in a file and check for metadata.
    setupmultilib.sh:
    Scripts used to configure slackpkg+ to install multilib of alienbob and to do the first installation.
    slackpkg+.SlackBuild:
    The SlackBuild of slackpkg+. Only to be used for consultation; being thrown out of the directory of sources will fail.
    slackpkgplus.x86.sample:
    The sample configuration file for 32bit architectures.
    slackpkgplus.x86_64.sample:
    The sample configuration file for 64bit architectures.

/usr/libexec/slackpkg/functions.d/zchangelog.sh
    This plugin populates a global changelog /var/lib/slackpkg/RepoChangeLog.txt to each slackpkg update with a list of all tracked changes. Read the note into the file. It is disabled by default. To enable it, put PLUGIN_ZCHANGELOG=enable in configuration; to view the output on screen put also the PLUGIN_ZCHANGELOG_SHOW=on setting in configuration. Please, read the note into the file for more informations.

/usr/libexec/slackpkg/functions.d/zlookkerne.sh
    Questo plugin add the ability to rebuild the initrd and to run lilo or EFI lilo everytime you upgrade the kernel. Note that slackpkg-15.0 removed the automatic run of lilo replacing it with a simple advice message. It is disabled by default. To enable it put PLUGIN_ZLOOKKERNEL=enable in configuration. Also you can add PLUGIN_ZLOOKKERNEL_PROMPT=on to avoid to ask confirm to every step, and PLUGIN_ZLOOKKERNEL_IMAGE=/boot/vmlinuz-generic to monitor it instead vmlinuz. Please, read the note into the file for more informations.

NOTES

Disclaimer
    slackpkg+ is a slackpkg plugin, but this not means that it can be considered an official tool of slackware, and is not supported by the slackware team. The slackpkg+ author is in no way related to the authors of the individual repository, nor for the contents thereof, nor for the proper functioning of hosting. The third-party packages are not supported by the Slackware team so they do not guarantee for their operation and shall not be liable for any damage that may be made to the system. Be sure of the authority of repositories before you use it in slackpkg+.

Support
    If you have questions or you find bugs you can report to the author by writing an email address to info@slakfinder.eu. You can also follow the official italian discussion in slacky.eu:
    http://www.slacky.eu/forum/viewtopic.php?t=34536
    or in english in linuxquestions.org:
    https://www.linuxquestions.org/questions/slackware-14/slackpkg-1-8-a-4175669481/

Thanks
    Much of the slackpkg+ code is written by phenixia2003 of LinuxQuestions; he deserves a big thank. For all other contributors search for "thank" in the ChangeLog.
    Thanks also to those who have tested, reported, recommended, or simply used slackpkg+
    But the biggest thanks goes to those who compile packages, generates and maintains the repository, without which slackpkg+ has no reason to exist.

SEE ALSO
slackpkg(8) pkgtool(8) installpkg(8) upgradepkg(8) removepkg(8) slackpkg.conf(5)