User:Bassmadrigal/sandbox:Slackware-repositories

Repositories
There are no official repositories for Slackware. The only official packages Slackware provides are available on the installation media. However, there are many third-party repositories for Slackware; some are standalone repositories and others are for distributions that are Slackware-based but retain package compatibility with Slackware. Many of these can be searched at once using pkgs.net, which is a Linux package search engine. However, mixing and matching dependencies from multiple repositories can lead to two or more packages that require different versions of the same dependency, which is a form of Dependency Hell. Slackware itself won't provide any dependency resolution for these packages, however some projects will provide a list of dependencies that are not included with Slackware with the files for the package, commonly with a .dep extension.

Due to the possibility of dependency issues, many users choose to compile their own programs using community-provided SlackBuilds. SlackBuilds are shell scripts that will create an installable Slackware package from a provided software tarball. Since SlackBuilds are scripts, they aren't limited to just compiling a program's source; they can also be used to repackage pre-compiled binaries provided by projects or other distributions' repositories into proper Slackware packages. SlackBuilds that compile sources have several advantages over pre-built packages: since they build from the original author's source code, the user does not have to trust a third-party packager; furthermore the local compilation process allows for machine-specific optimization. In comparison to manual compilation and installation of software, SlackBuilds provide cleaner integration to the system by utilizing Slackware's package manager. Some SlackBuilds will come with an additional file with metadata that allows automated tools to download the source, verify the source is not corrupted, and calculate additional dependencies that are not part of Slackware. Some repositories will include both SlackBuilds and the resulting Slackware packages, allowing users to either build their own or install a pre-built package.

The only officially endorsed SlackBuilds repository is SlackBuilds.org, commonly referred to as SBo. This is a community-supported project offering SlackBuilds for building software not included with Slackware. Users are able to submit new SlackBuilds for software to the site and, once approved, they become the "package maintainer". They are then responsible for providing updates to the SlackBuild, either to fix issues or to build newer versions provided by upstream. To ensure all programs can be compiled and used, any required dependencies of the software not included with Slackware are required to be documented and be available on the site. All submissions are tested by the site's administrators before being added to the repository. The administrators intend for the build process to be nearly identical to the way Slackware's official packages are built, mainly to ensure Volkerding was "sympathetic of our cause". This allows SlackBuilds that Volkerding deems worthy to be pulled into regular Slackware with minimal changes to the script. It also prevent users from suggesting Volkerding to change his scripts to match SBo's. SBo provides templates for SlackBuilds and the additional metadata files and they encourage package maintainers to not deviate unless necessary.

Two Slackware team members, Eric Hameleers and Robby Workman each have their own repository of pre-compiled packages along with the SlackBuilds and source files used to create the packages. While most packages are just additional software not included in Slackware that they felt was worth their time to maintain, some packages are used as a testbed for future upgrades to Slackware, most notably, Hameleers provides "Ktown" packages for newer versions of KDE. He also maintains Slackware's "multilib" repository, enabling Slackware64 to run and compile 32bit packages.