QUICK NOTE: USPM will be under maintenance mode until the full release of Wombat Linux Once finalized, USPM will continue development.
Ultra Simple Package Manager (USPM) is a suite of executables that overall allow for the management of packages.
PLEASE NOTE: Releases on this GitHub WILL NOT work on Wombat Linux or other Musl-based systems, please use the provided uspm package for that specific operating system.
Here is a list of the current tools:
- uspm: The main application that allows for the installation and uninstallation of software packages and their dependencies.
- uspm-mkpkg: This optional application is useful for those who want to design USPM packages
- uspm-extended: This optional application adds more commands and functions to
uspmand is only there for those who want it. It can also be set to replace uspm in the build phase. - uspm-chksum: This optional application is useful to get checksums of generated package files.
The project also contains libuspp, or Ultra Simple Package Processor, which contains the functions necessary to enable
all the functionality of uspm
All packages come in .uspm files, which are just tarballs. Within the tarball there must be two included files.
PACKAGECODE is the install/uninstall script, it contains all the code necessary to install that package.
This package requires at leastcJSON (found here), zlib, a tar program, a
crypto library (either openssl or libressl) and libcurl
There are 2 ways to install:
- Through Make (this requires GCC) [not recommended]
git clone https://github.com/afroraydude/uspm.git
cd uspm
make uspm
make install- Through CMake (clang or gcc)
git clone https://github.com/afroraydude/uspm.git
cd uspm
mkdir build
cd build
cmake ..
make
make installCompile the package from source
Place all compiled files in a folder
Make a folder with the name of the package and place the previous folder in that
Run
uspm-mkpkgand follow instructionsExit the directory, you should now have a
.uspmpackage file. ex:
mkdir -p /tmp/package/files mkdir build
cd build
../configure --prefix=/tmp/package/files/
make make install
cd /tmp/package
uspm-mkpkgCompile the package from source
Place all compiled files in a folder
Make a folder with the name of the package and place the previous folder in that
Inside the package folder, create two files:
PACKAGECODEandPACAKGEDATAIn PACKAGECODE, include all the code necessary to migrate the compiled files into the system so that they are usable, put it in a function that can be called by
PACKAGECODE install(NOTE: This must be a shell script)In PACKAGECODE, include all the code necessary to allow for an uninstallation of all files, in a function that can be called by
PACKAGECODE uninstallIn PACKAGEDATA, include the version and dependencies (ex:
{"version":"1.0.0", "dependencies":{"test":"1.0.0","test2":"1.0.0"}})Archive the whole directory into a tarball and make sure the extension is
.uspmDone!
Example PACKAGEDATA file
{
"version": "1.0.0",
"dependencies": {"uspm": "1.0.0"}
}Example PACKAGECODE file
cd package
# Install if [ $1=='install' ]
then
cp -R files/* /usr/
# Uninstallelif [ $1=='uninstall' ]
then
rm /usr/local/bin/example
fi```