# Slapt-get

slapt-get is an APT-like package management system for Slackware. Slapt-get tries to emulate the features of Debian's (apt-get) as closely as possible.
Released under the terms of the GNU General Public License, slapt-get is free software.

## Features

slapt-get builds functionality on top of the native Slackware package tools (installpkg, upgradepkg and removepkg) enabling package query, remote fetching, system updates, integrated changelog information, and many optional advanced features such as dependency resolution, package conflicts, suggestions, checksum and public key verification, and transfer resumption.
slapt-get uses the libcurl cURL library for transport. libcurl provides support for ftp, ftps, http, https, file:// and other resource types along with transfer resume for incomplete downloads. slapt-get also uses the GNU Privacy Guard library to validate signatures.
slapt-get provides a simple configuration file format that includes an exclusion mechanism for use with the system upgrade option as well as declarations for all desired package sources. Each package source can optionally be tagged with a specific priority in order to override the package version comparison and honor upstream software downgrades as might be the case when Slackware reverts to a previous version of a package.

## Dependencies

slapt-get does not provide dependency resolution for packages included within the Slackware distribution. It does, however, provide a framework for dependency resolution in Slackware compatible packages similar in fashion to the hand-tuned method APT utilizes. Several package sources and Slackware based distributions take advantage of this functionality. Hard, soft, and conditional dependencies along with package conflicts and complementary package suggestions can be expressed using the slapt-get framework.
Adding dependency information requires no modification to the packages themselves. Rather, the package listing file, PACKAGES.TXT, is used to specify these relationships. This file is provided by Patrick Volkerding and is similar to the Packages.gz file in use by Debian. Several scripts are available to generate the PACKAGES.TXT file from a group of packages. The file format used by Patrick Volkerding is extended by adding a few extra lines per package. slapt-get then parses this file during source downloads. Typically, third party packages store the dependency information within the package itself for later extraction into the PACKAGES.TXT. The inclusion of this information within the Slackware package format does not inhibit the ability for Slackware pkgtools to install these packages. This information is silently ignored and discarded after the package is installed.

## Package sources

slapt-get works with official Slackware mirrors and third party package repositories such as http://www.slacky.eu/. slapt-get looks for support files, PACKAGES.TXT and CHECKSUMS.md5, in the repository for package information. These files provide package names, versions, sizes (both compressed and uncompressed), checksums, as well as a package description. These files can be extended, as discussed in the previous section, to add dependency listings, conflict information, and package suggestions. These files can also proxy for other remote sources by specifying a MIRROR declaration for each package.

## GSlapt

GSlapt is a GTK+ frontend to libslapt, the slapt-get library which provides advanced package management for Slackware and its derivatives. Inspired by the functionality present in Synaptic, Gslapt aims to bring the ease of use enjoyed by Debian and its derivatives to the Slackware world.
GSlapt was written primarily to supersede the vlapt (x)dialog slapt-get frontend used by VectorLinux.

## Distributions

Besides Slackware, slapt-get and GSlapt are included by several other distributions, including:
* Absolute Linux
* Salix OS
* Slamd64
* VectorLinux
* Wolvix