[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Slackware ARM project web site | Forum | Slackware ARM development documentation | Slackware ARM installation guides

Slackware AArch64 - Additional Software Repositories

Whilst Slackware has a broad set of software applications in the distribution, there are plenty of others that you may wish to use.

SlackBuilds.org caters for this by providing build recipes to compile the software from source.

Example

For this example we will build the package 'pzip' because it requires no dependencies. Other packages may require dependencies, in which case you will need to follow this example for each dependency before you're able to build the application you want to use.

Prepare the build environment on your local machine

Elevate yourself to the root user:

su - 

Create a directory to hold the SlackBuilds.org recipes and application source archives:

mkdir -p /usr/src/slackbuilds
cd /usr/src/slackbuilds
Import the GPG key for the SlackBuilds.org project
wget https://slackbuilds.org/GPG-KEY
gpg --import GPG-KEY

The output from gpg should look similar to this:

gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 9C7BA3B6: public key "SlackBuilds.org Development Team <slackbuilds-devel@slackbuilds.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no ultimately trusted keys found

Locate the package you're interested in

Open the SlackBuilds.org web site and enter the name of the package.

Select the version of Slackware you're using from the drop down menu on the right hand side.

For Slackware -current (the development trunk), select the latest version of Slackware.

Download the components

Typically there are a minimum of three assets to download:

  1. The SlackBuilds.org build recipe archive.
  2. The build recipe archive's GPG signature
  3. The source archive of the software application
Download the SlackBuilds.org recipe archive

Right click on the URLs for the SlackBuilds.org recipe archive:

Use wget to download the assets.

Type wget and paste the URL into the shell/terminal window

wget https://slackbuilds.org/slackbuilds/15.0/system/p7zip.tar.gz
Download the SlackBuilds.org recipe archive digital signature

Right click on the URL for the SlackBuilds.org recipe archive digital signature. Type wget and paste the URL into the shell/terminal window:

wget https://slackbuilds.org/slackbuilds/15.0/system/p7zip.tar.gz.asc

Verify the SlackBuilds.org recipe archive

gpg --verify p7zip.tar.gz.asc
gpg: assuming signed data in `p7zip.tar.gz'
gpg: Signature made Sat 28 Jan 2023 01:30:52 AM GMT using DSA key ID 9C7BA3B6
gpg: Good signature from "SlackBuilds.org Development Team <slackbuilds-devel@slackbuilds.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D307 6BC3 E783 EE74 7F09  B8B7 0368 EF57 9C7B A3B6

You should see Good signature from “SlackBuilds.org

Unpack the SlackBuilds recipe archive

tar xf p7zip.tar.gz
cd p7zip

Download the software's source archive

Right-click the URL of the software's source archive:

Use wget again to download it:

wget https://github.com/p7zip-project/p7zip/archive/v17.04/p7zip-17.04.tar.gz

Verify the integrity of the source archive

MD5 sums are displayed on the SlackBuilds page for the software archives:

You need to compare this to the version you have downloaded and ensure they match.

openssl md5 p7zip-17.04.tar.gz
MD5(p7zip-17.04.tar.gz)= 00acfd6be87848231722d2d53f89e4a5

You can either compare this visually or use a command to do it. You can copy and paste the md5sum from the web page into the shell:

[ "$( openssl md5 p7zip-17.04.tar.gz | awk '{print $2}' )" = "00acfd6be87848231722d2d53f89e4a5" ] && echo good
good

Adjust the SlackBuild build recipe for AArch64

An update to the SlackBuilds templates was made for new additions to the SlackBuilds.org repository, but at present (April 2023) most/all packages will require minor changes to handle Slackware AArch64.

Fortunately in 99% of the cases we can use a single command to fix them up. Paste in the following command:

sed -i '/^elif \[ "\$ARCH" = "x86_64" \]; then$/ s/x86_64/aarch64/' p7zip.SlackBuild

Build the package

./p7zip.SlackBuild

If the package builds successfully it will be stored in /tmp:

Build failures due to compiler flags

In some cases the use of the -fPIC compiler flag may cause a build to fail. In such cases the compiler will inform you of this directly, and you must remove it.

Open the p7zip.SlackBuild in your favourite text editor.

Locate the following section:

Remove -fPIC from the SLKCFLAGS variable so that it looks like this:

Save the edited build script and re-build.

Build failures due to other reasons

The vast majority of the SlackBuilds.org package maintainers do not test their packages on ARM, and so some packages may fail to build. In such cases if you're able to fix it yourself, you should do so and submit the fix to the maintainer.

If you are unable to resolve it, you can post to the Slackware ARM forum on LinuxQuestions for help.

Install the package

installpkg /tmp/p7zip-17.04-aarch64-1_SBo.tgz
 slackwarearm:sft-repos ()