diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d4e75170cc18..c5060e78ff0a 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -203,6 +203,12 @@ fingerprint = "D292 365E 3C46 A5AA 75EE B30B 78DB 7EDE 3540 794B"; }]; }; + _48cf = { + name = "czapek"; + email = "czapek1337@gmail.com"; + github = "48cf"; + githubId = 32851089; + }; _6543 = { email = "6543@obermui.de"; github = "6543"; diff --git a/pkgs/by-name/li/limine/package.nix b/pkgs/by-name/li/limine/package.nix new file mode 100644 index 000000000000..cb1beb378a7b --- /dev/null +++ b/pkgs/by-name/li/limine/package.nix @@ -0,0 +1,66 @@ +# Builds limine with all available features. + +{ + # Helpers + stdenv +, fetchurl +, lib +, # Dependencies + llvmPackages +, mtools +, nasm +}: + +let + version = "7.3.0"; +in +# The output of the derivation is a tool to create bootable images using Limine +# as bootloader for various platforms and corresponding binary and helper files. +stdenv.mkDerivation { + inherit version; + pname = "limine"; + # We don't use the Git source but the release tarball, as the source has a + # `./bootstrap` script performing network access to download resources. + # Packaging that in Nix is very cumbersome. + src = fetchurl { + url = "https://github.com/limine-bootloader/limine/releases/download/v${version}/limine-${version}.tar.gz"; + sha256 = "sha256-iPi6u3iZOJfVRERrJVgH6q16aANnSGgBL5AtNuANrao="; + }; + + nativeBuildInputs = [ + llvmPackages.bintools + # gcc is used for the host tool, while clang is used for the bootloader. + llvmPackages.clang + llvmPackages.lld + mtools + nasm + ]; + + configureFlags = [ + "--enable-all" + ]; + + installFlags = [ "destdir=$out" "manprefix=/share" ]; + + outputs = [ "out" "doc" "dev" "man" ]; + + meta = with lib; { + homepage = "https://limine-bootloader.org/"; + description = "Limine Bootloader"; + # Caution. Some submodules have different licenses. + license = [ + licenses.bsd2 # limine, flanterm + licenses.bsd0 # freestanding-toolchain, freestanding-headers + licenses.asl20 # cc-runtime + licenses.mit # limine-efi, stb + licenses.zlib # tinf + ]; + # The platforms on that the Liminine binary and helper tools can run, not + # necessarily the platforms for that bootable images can be created. + platforms = platforms.unix; + maintainers = [ + maintainers._48cf + maintainers.phip1611 + ]; + }; +}