/archzfs

Package and repository sources for ZFS on Arch Linux

Primary LanguageShell

Zettabyte File System for Arch Linux

This project contains the build scripts for archzfs. Two types of packages are supported, Git packages and LTS packages.

The Git packages include zfs-git, zfs-utils-git, spl-git, and spl-utils-git. These track the mainline kernel releases in arch. Since Arch is bleeding edge, so too are these packages. They usually pull from zfsonlinux master branch up to the latest commit that add supports for latest kernel version.

The LTS packages include zfs-lts, zfs-utils-lts, spl-lts, and spl-utils-lts. These track the linux-lts packages in arch and are only built using stable zfsonlinux releases. These packages are the best bet for those concerned with stability.

These packages must be re-built for each kernel release.

Licenses

The license of the Arch Linux package sources is MIT.

The license of ZFS is CDDL.

The license of SPL is LGPL.

Dependencies

build.sh uses clean-chroot-manager to build packages in a systemd namespace container.

How to use this Repository

Submitting changes

The Arch User Repository v4 requires package updates to be submitted through Git. Unfortunately, this makes working with the archzfs build scripts on Github slightly more complicated. The actual PKGBUILDS in the archzfs repo are set as git submodules which reference the aur4 git repo and a commit hash. Github does not support external submodules, and thus PR requests are no longer possible on PKGBUILDS and mkinitcpio hook scripts.

Contributions are still very much appreciated! To submit a contribution, please open an issue in Github and within the description post a git generated patch of the changes. This is only temporary until AUR supports some kind of "pull request" type system.

Clone

git clone https://github.com/archzfs/archzfs.git --recursive

Update

  1. Set the appropriate variables in conf.sh

    • Repository base path

      The parent directory of the demz-repo-core and demz-repo-archiso repos.

    • GPG signing key

      Used to sign the packages and repo database.

    • Your email address

      Used for reporting changes changes in scraper.sh. Mutt and msmtp are used for sending email. Required only if scraper.sh or verifier.sh are going to be used.

    • SSH remote login

      Used in verifier.sh for making sure the local demz-repo-* are in sync with the remote repos.

  2. Set the appropriate kernel versions in conf.sh.

  3. Update the PKGBUILDs

    Use ./build git update to update the archzfs-git PKGBUILDS using the conf.sh variables.

    Use ./build lts update to update the archzfs-lts PKGBUILDS using the conf.sh variables.

    ./build.sh (git|lts) update-test uses the AZB_LINUX_TEST_* variables. Using the test values are useful for test building the zfs packages against the Linux kernel version in the official testing repo. Mostly used on minor Linux kernel updates (3.12 -> 3.13).

  4. Build the packages

    Use ./build.sh (git|lts) make -u to build the packages, update the clean chroot in the process.

    It is possible to use ./build.sh (git|lts) update make -u in one shot.

    If you want to see command output only, use ./build.sh (git|lts) make -n. Add the -d to see debugging output.

  5. Add packages to the repo

    Use ./repo.sh (git|lts) core -n to what changes will occur without actually making them.

    ./repo.sh (git|lts) core will add the package versions defined by AZB_LINUX_VERSION to the demz-repo-core repository.

  6. Push the package sources to AUR.

    Push to AUR4 using push.sh (git|lts) aur4. This commits the latest changes to each individual package repo (for AUR) and uses git push to push to AUR.