home / codeberg / blog / docs



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

# 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/