SlackOnly as a main third-party repository

I decided to try using SlackOnly as my primary source of third-party software. My system is Slackware64 -multilib and all settings below take this into account. I manage the official Slackware updates and AlienBob’s multilib layer with slackpkg, complemented by it’s extension slackpkg+.

The default Slackware64 14.1 mirror that slackpkg uses is set in /etc/slackpkg/mirrors. Configuration of slackpkg+ is done in /etc/slackpkg/slackpkgplus.conf. In my case, I just wanted a multilib system, therefore I made the following modifications:

# Configuration for slackpkg+. See /usr/doc/slackpkg+-*/README for more details

# Enable (on) / Disable (off) slackpkg+
SLACKPKGPLUS=on

# set to '0' to never show the download progress bar
# set to '1' to show the bar only in download packages (default)
# set to '2' to always show the download bar
# set to '3' for a debug mode
VERBOSE=2

# By default slackpkg+ deny to install 32bit packages.
#
# Set this flag to 'on' allow slackpkg+ to install 32bit packages on a 64bit slackware
# installation (possibly unsafe). Please, do not install both 32 and 64bit of the same
# package to avoid problems, and NEVER upgrade existant 64bit packages with relative 32bit package.
# Do not forget to install the multilibs.
ALLOW32BIT=off

# Enable (1) / Disable (0) the official slackpkg blacklist. May be useful to temporarily skip
# the slackware blacklist. You can also override it from command line:
# 'USEBL=0 slackpkg upgrade-all'
USEBL=1

# Add custom option to 'wget'.
# You can solve the repository indisponibility issue by set a timeout here
WGETOPTS="--timeout=20 --tries=2"

# Enable (on) / Disable (off) notification events (see notifymsg.conf)
#ENABLENOTIFY=off

# Enable (on) / Disable (off) the greylist feature. See /etc/slackpkg/greylist
GREYLIST=on

# If two or more repositories contains some same packages, you can specify
# from which repository you prefer to search it.
# The syntax is "<repository_name>:<package_name>"
# Accepts regular expressions. To give priority to an entire repository use "<repository_name>"

# Examples:
#PKGS_PRIORITY=( restricted:vlc )
# OR
#PKGS_PRIORITY=( myrepo )
#
# if you have two reporitories to give priority you must set both in the same line
#PKGS_PRIORITY=( myrepo restricted:vlc )
#
# if you want to install 'ktown' repository you must set it here
#PKGS_PRIORITY=( ktown )
# and read special instruction on /usr/doc/slackpkg+-*/repositories.txt
#
# If you want a multilib system, uncomment the multilib repository and set:
PKGS_PRIORITY=( multilib )
#
# (Use /usr/doc/slackpkg+-*/setupmultilib.sh to setup a multilib configuration)
#
# For both multilib and ktown set
#PKGS_PRIORITY=( multilib ktown )

# Otherwise you can try to upgrade a package from a repository that contains a package with the
# same tag of the already installed package. Tipically that means to upgrade a package from the
# same author of the already installed package.
# Note that this method may not works properly where two repositories contains a package with the
# same tag.
# Set TAG_PRIORITY to 'on' to enable this function
TAG_PRIORITY=off

# List repositories you want to use (defined below)
# remember to launch 'slackpkg update' if you modify that row.
REPOPLUS=( slackpkgplus multilib )


# Define mirrors (uncomment one or more mirror; remember to add it to REPOPLUS)
# GPG Note: after adding a repository, you must to run 'slackpkg update gpg'
#           some repositories as salixos or slackel, have a partial GPG support;
#           for that repositories you may need to run slackpkg with 'slackpkg -checkgpg=off ...'

# Slackware 14.1 - x86_64
MIRRORPLUS['multilib']=http://taper.alienbase.nl/mirrors/people/alien/multilib/14.1/
#MIRRORPLUS['alienbob']=http://taper.alienbase.nl/mirrors/people/alien/sbrepos/14.1/x86_64/
#MIRRORPLUS['restricted']=http://taper.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.1/x86_64/
#MIRRORPLUS['slacky']=http://repository.slacky.eu/slackware64-14.1/

# use this to keep the slackpkg+ package updated
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/

# Slackware current - x86_64
#MIRRORPLUS['multilib']=http://taper.alienbase.nl/mirrors/people/alien/multilib/current/

# Local repository:
#MIRRORPLUS['alienbob']=file://repositories/alien/sbrepos/14.1/x86/
#
# Local packages (you do not need metadata nor 'slackpkg update' command):
#MIRRORPLUS['myrepo']=dir://repositories/mypackages/


#
# Supported Repositories (see /usr/doc/slackpkg+-* for details and notes):
#

#Supports GPG
#slackpkgplus:  http://slakfinder.org/slackpkg+/
#multilib:      http://taper.alienbase.nl/mirrors/people/alien/multilib/{13.37,14.0,14.1,current}/
#alienbob:      http://taper.alienbase.nl/mirrors/people/alien/sbrepos/{13.37,14.0,14.1,current}/{x86,x86_64}/
#ktown:         http://taper.alienbase.nl/mirrors/alien-kde/{13.37,14.0,14.1,current}/{latest,testing}/{x86,x86_64}/
#restricted:    http://taper.alienbase.nl/mirrors/people/alien/restricted_sbrepos/{13.37,14.0,14.1,current}/{x86,x86_64}/
#slacky:        http://repository.slacky.eu/slackware{,64}-{13.37,14.0,14.1}/
#mled-desktop:  http://www.microlinux.fr/microlinux/desktop-14.1-{32,64}bit/
#mled-extras:   http://www.microlinux.fr/microlinux/extras-14.1-{32,64}bit/
#mles:          http://www.microlinux.fr/microlinux/server-{14.0,14.1}-{32,64}bit/
#msb:           http://slackware.org.uk/msb/{14.0,14.1}/{1.6,1.8,1.10}/{x86,x86_64}/
#slackers:      http://ponce.cc/slackers/repository/
#slacke18:      http://ngc891.blogdns.net/pub/slacke18/slackware{,64,arm}-14.1/
#studioware:    http://studioware.org/files/packages/slackware{,64}-{13.37,14.0,14.1}/
#slackonly:     http://slackonly.com/pub/packages/{14.1,current}-{x86,x86_64}/
#rlworkman:     http://rlworkman.net/pkgs/{13.37,14.0,14.1}/
#
#Does NOT support GPG
#salixos(*):    http://download.salixos.org/{i486,x86_64}/{13.37,14.0,14.1}/
#slackel(*):    http://www.slackel.gr/repo/{i486,x86_64}/{current,kde5}/

You may notice that the SlackOnly repository is listed in the configuration file of slackpkg+. However, the SlackOnly repository is rather big, so having a dependency resolution for it is something that I need.

Therefore, I decided to use slapt-get to manage the installation of third party packages from SlackOnly 14.1-x86_64. It even has a nice graphical front end called gslapt, which can be used to specify mirrors with different priority. I set Slackware64 14.1 mirror as OFFICIAL, AlienBob’s multilib as PREFERRED and SlackOnly as DEFAULT:

slaptgetrepo

In this way, slapt-get will not insist on upgrading the multilib versions of glibc-* and gcc-* with the official ones. The first mirror in the list is deselected, because it points to slackware.com, which can be slow. Instead, I specified the same mirror that I had selected for slackpkg from /etc/slackpkg/mirrors. The jaos.org mirror keeps slapt-get and gslapt updated.

Since some of my packages are compiled from SBo, I do not want slapt-get to replace them with their SlackOnly versions. Therefore, I added the _SBo tag to the excludes list:

slaptgetexclude

The above settings are stored in /etc/slapt-get/slapt-getrc:

WORKINGDIR=/var/slapt-get
EXCLUDE=^aaa_elflibs,^devs,^glibc-.*,^kernel-.*,^udev,.*-[0-9]+dl$,i[3456]86,[0-9]+_SBo
#DISABLED=ftp://ftp.slackware.com/pub/slackware/slackware64-14.1/:OFFICIAL
SOURCE=http://software.jaos.org/slackpacks/14.1-x86_64/:OFFICIAL
SOURCE=ftp://ftp1.uninett.no/slackware/slackware64-14.1/:OFFICIAL
SOURCE=http://taper.alienbase.nl/mirrors/people/alien/multilib/14.1/:PREFERRED
SOURCE=http://packages.slackonly.com/pub/packages/14.1-x86_64/

At the moment, some packages at SlackOnly (those built prior to March 2015) lack dependencies information. In such case, I follow the dependencies from SlackBuilds.org, but I hope this will be fixed in the near future.

In conclusion, I continue using slackpkg(+) to manage what I consider to be my ‘stock’ system: Slackware64 -multilib. Separately, slapt-get does an excellent job with the packages from SlackOnly. I continue to build packages from SBo by sbopkg, however now I install most (if not all) of their dependencies from SlackOnly.


7 Comments on “SlackOnly as a main third-party repository”

  1. Anonymous says:

    After adding the slackonly repo I’m getting a lot of ‘regex failed package name’ strings when I run ‘slapt-get –update’. Is it because of that the PACKAGES.TXT contains a lot of blank package names actually or what?
    And another Q: I have no official repos in slapt-getrc but I still see all official packages when run ‘slapt-get –list’. Does it look somewhere in the package cache? Thank you in advance.

  2. slackalaxy says:

    I really do not know about the ‘regex failed package name’. Could you post the error as an example?

    about the official packages: you mean that you see also the non-installed ones?

  3. Panagiotis says:

    The ‘regex failed package name’ is because some meta files missing the field of package name. This is happening only in 14.1-x86 repo. Thanks for reporting i will fix this right now.

  4. […] SlackOnly as a main third-party repository (2015-11-02) […]

  5. i have some problem here

    Retrieving package data [http://packages.slackonly.com/pub/packages/14.1-x86/]…regex failed on [PACKAGE NAME: ]

    :(

  6. slackalaxy says:

    Hi, please contact Panagiotis about this.

  7. hi, Porteus is a nice work. i like. thanks for information, i look Panagiotis contact on slackonly :D


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s