alyvine the port manager

home / codeberg / blog / sjon / alyvine / ufti / ports / 9rc



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/