Alyvine
is port manager written on POSIX shell for compatibility and hackable code, not on GNU bash, not on C and other programming languages
Usage
It very simple and small, but have very, VERY small port base, but you can wrote your own port:
name=doba
version=git
release=1
source="https://codeberg.org/snchart/doba/archive/main.tar.gz"
build(){
cd $name
make CFLAGS=$CFLAGS DESTDIR=$PKG CC=$CC
}
That's just example, you can make your own port on that base, but dont remove cd $name and variables, they are important and alyvine wont be able to build package without them. When you wrote your package, i recommend you to generate checksum for source archive:
$ sha256sum main.tar.gz > checksums
Make sure you installed achive, you can do it with fetch or f flag(it's optional if you gonna just build package)
$ avmk fetch
After that, you can build package using build or b option:
# avmk build
If you didn't generated checksum, add --ignore-checksums or -ic flag
# avmk build -ic
after you build package without errors, you can install it with
# avadd /path/to/the/package.avp.tar.xz
Built packages usually located in /var/cache/alyvine/pkg/ directory, after installation, file list will be at /var/cache/alyvine/list/, to remove the package you can just type:
# avdel /path/to/the/list/package
...or even just
# cat /path/to/the/list/package | while read -r line do [ -f $line ] && rm -rvf "$line"; done
But i recommend you to just use avdel because it safer and better, innit?
Also, it have /etc/alyvine.conf but it's kinda useless so don't edit it unless you dont like clang or something in CFLAGS
CC=/path/to/cc
CXX=/path/to/c++
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j$(nproc)"
I honestly recommend you to use full clang/gcc path. If you want clean source dir, add -cs or --clean-sources flag:
# avmk --clean-sources
When you already manually installed source code tarball(for example you dont have internet access), you can use --not-fetch or -nf flag
# avmk build --not-fetch
I added this feature because I was adding musl into ports and musl.libc.org doesn't worked for me, but I already had a tarball
Installation
Since 0.3.1, Alyvine uses ninja/samu to install, before, it used makefiles
# samu utils
# mkdir -p /var/cache/alyvine && cd /var/cache/alyvine
# mkdir src work list pkg
Next, clone the repository
# mkdir -p /usr/ports
# git clone https://codeberg.org/snchart/ports /usr/ports/