No description
Find a file
2026-10-02 00:07:47 +03:00
.gitignore working on ppc mac support, added more heliotrope error checking 2026-09-30 10:08:56 +03:00
build.c file removal is GO! i think feature complete for now :0 2026-10-01 14:32:11 +03:00
build.h INTERNET ACCESS BAYBEEEEEE 2026-09-27 17:00:20 +03:00
cli.c working on ppc mac support, added more heliotrope error checking 2026-09-30 10:08:56 +03:00
configure.ac ok quick little helio patch 2026-10-01 14:49:52 +03:00
heliotrope.c added da readme mista white 2026-10-02 00:00:01 +03:00
heliotrope.h added da readme mista white 2026-10-02 00:00:01 +03:00
install.c added da readme mista white 2026-10-02 00:00:01 +03:00
install.h file removal is GO! i think feature complete for now :0 2026-10-01 14:32:11 +03:00
LICENSE INTERNET ACCESS BAYBEEEEEE 2026-09-27 17:00:20 +03:00
main.h file removal is GO! i think feature complete for now :0 2026-10-01 14:32:11 +03:00
Makefile.am file removal is GO! i think feature complete for now :0 2026-10-01 14:32:11 +03:00
net.c working on ppc mac support, added more heliotrope error checking 2026-09-30 10:08:56 +03:00
net.h posix-2001 compat + ditched libcurl lmao + starting removal functionality 2026-09-29 13:12:37 +03:00
README.md wait fire idea 2026-10-02 00:07:47 +03:00

shima package manager

a simple package manager, built in C99 with POSIX-2001 compatibility

shima rin broken packages meme

compilation/installation

shima only depends on zlib (via heliotrope), so it can pretty much be compiled in any environment that you can think of (that supports C99 and POSIX-2001 at a minimum). if you'd like to compile it yourself, simply download a release tarball, run ./configure (or ./configure --enable-debug for ASan support which is recommended during development), and run make.

if you'd like to install shima system wide, all you need to do is place the binary (which can also be downloaded for various platforms) in /usr/bin, and create the following files/directories:

  • /etc/shima
  • /etc/shima/sources.list, putting http://pkg.yuru.ca/shima/x86_64/ inside (switch to whatever non-x86 platform you may be using)
  • /etc/shima/installed.list

which you can do with:

sudo mkdir -p /etc/shima && sudo echo "http://pkg.yuru.ca/shima/x86_64/" >> /etc/shima/sources.list && sudo touch /etc/shima/installed.list

after which, you can run sudo shima update to populate the package list.

usage

it is not recommended that you use shima on your own system unless you know what you're doing, as you likely already have a (better) package manager installed. take it from me, i accidentally overwrote glibc on my system while developing and if you know what that means you should be rightfully scared :p the best use case for shima is for POSIX compliant systems without a package manager already, such as macos.

with that warning out of the way, using shima is quite simple as an end user. shima update to update the package database with the latest information, shima install package to install a package (or shima install ./package for a local package), and shima remove package to remove.

package building

where it gets a little more complicated is if you'd like to make your own packages for shima. shima uses .campsite files to define many things about each package, like its name, version, compilation steps, and post-install commands to run. check out the prebuilt .campsite files on the pkg.yuru.ca server, or follow this example on how to create a basic .campsite file:

campsite v0.1

= info =
name: package
desc: a nice little package
pkgver: 1.0-shm0

= sources =
./package-1.0.zip

= depends =
dependency-6.7-shm0
# we can also add comments in here!

= prepare =
!~!shima
./configure --prefix=/usr
make -j$(nproc)
make install DESTDIR=\$(pwd)/shima

= post-install =
echo "hello :D"

licensing

shima is 100% written by me (yuiyamu), and is strictly and forever licensed under AGPLv3 ! ~ (˵•̀ᴗ - ˵ )