diff options
author | Peder Bergebakken Sundt <pbsds@hotmail.com> | 2023-12-15 02:07:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-15 02:07:23 +0100 |
commit | 239c6fbc9df59192bcd9bf65a0b0ac74504c4101 (patch) | |
tree | 8e30edf168f583529e84bda5d12bf11104951396 /pkgs/by-name | |
parent | adf2347f8b49860d7c82e98f17b4a4b7a72709fd (diff) | |
parent | a47d6e0fd6edf862d53ea8554a181f810acb21b5 (diff) | |
download | nixlib-239c6fbc9df59192bcd9bf65a0b0ac74504c4101.tar nixlib-239c6fbc9df59192bcd9bf65a0b0ac74504c4101.tar.gz nixlib-239c6fbc9df59192bcd9bf65a0b0ac74504c4101.tar.bz2 nixlib-239c6fbc9df59192bcd9bf65a0b0ac74504c4101.tar.lz nixlib-239c6fbc9df59192bcd9bf65a0b0ac74504c4101.tar.xz nixlib-239c6fbc9df59192bcd9bf65a0b0ac74504c4101.tar.zst nixlib-239c6fbc9df59192bcd9bf65a0b0ac74504c4101.zip |
Merge pull request #271476 from onemoresuza/hare
hare: unstable-2023-10-23 -> unstable-2023-11-27; harec: unstable-2023-10-22 -> unstable-2023-11-29
Diffstat (limited to 'pkgs/by-name')
-rw-r--r-- | pkgs/by-name/ha/hare/001-tzdata.patch | 28 | ||||
-rw-r--r-- | pkgs/by-name/ha/hare/package.nix | 91 | ||||
-rw-r--r-- | pkgs/by-name/ha/hare/setup-hook.sh | 9 | ||||
-rw-r--r-- | pkgs/by-name/ha/harec/package.nix | 63 |
4 files changed, 191 insertions, 0 deletions
diff --git a/pkgs/by-name/ha/hare/001-tzdata.patch b/pkgs/by-name/ha/hare/001-tzdata.patch new file mode 100644 index 000000000000..bb510514eb53 --- /dev/null +++ b/pkgs/by-name/ha/hare/001-tzdata.patch @@ -0,0 +1,28 @@ +diff --git a/time/chrono/+freebsd.ha b/time/chrono/+freebsd.ha +index 26d78ab1..6861bfe8 100644 +--- a/time/chrono/+freebsd.ha ++++ b/time/chrono/+freebsd.ha +@@ -2,7 +2,7 @@ + // (c) Hare authors <https://harelang.org> + + def LOCALTIME_PATH: str = "/etc/localtime"; +-def ZONEINFO_PREFIX: str = "/usr/share/zoneinfo/"; ++def ZONEINFO_PREFIX: str = "@tzdata@/share/zoneinfo/"; + + // The filepath of the system's "leap-seconds.list" file, which contains UTC/TAI + // leap second data. +diff --git a/time/chrono/+linux.ha b/time/chrono/+linux.ha +index 600f606c..8d5617e2 100644 +--- a/time/chrono/+linux.ha ++++ b/time/chrono/+linux.ha +@@ -2,8 +2,8 @@ + // (c) Hare authors <https://harelang.org> + + def LOCALTIME_PATH: str = "/etc/localtime"; +-def ZONEINFO_PREFIX: str = "/usr/share/zoneinfo/"; ++def ZONEINFO_PREFIX: str = "@tzdata@/share/zoneinfo/"; + + // The filepath of the system's "leap-seconds.list" file, which contains UTC/TAI + // leap second data. +-export def UTC_LEAPSECS_FILE: str = "/usr/share/zoneinfo/leap-seconds.list"; ++export def UTC_LEAPSECS_FILE: str = "@tzdata@/share/zoneinfo/leap-seconds.list"; diff --git a/pkgs/by-name/ha/hare/package.nix b/pkgs/by-name/ha/hare/package.nix new file mode 100644 index 000000000000..c509955c6f09 --- /dev/null +++ b/pkgs/by-name/ha/hare/package.nix @@ -0,0 +1,91 @@ +{ lib +, stdenv +, fetchFromSourcehut +, binutils-unwrapped +, harec +, makeWrapper +, qbe +, scdoc +, tzdata +, substituteAll +}: + +let + # We use harec's override of qbe until 1.2 is released, but the `qbe` argument + # is kept to avoid breakage. + qbe = harec.qbeUnstable; + # https://harelang.org/platforms/ + arch = stdenv.hostPlatform.uname.processor; + platform = lib.strings.toLower stdenv.hostPlatform.uname.system; +in +stdenv.mkDerivation (finalAttrs: { + pname = "hare"; + version = "unstable-2023-11-27"; + + outputs = [ "out" "man" ]; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "hare"; + rev = "d94f355481a320fb2aec13ef62cb3bfe2416f5e4"; + hash = "sha256-Mpl3VO4xvLCKHeYr/FPuS6jl8CkyeqDz18mQ6Zv05oc="; + }; + + patches = [ + # Replace FHS paths with nix store + (substituteAll { + src = ./001-tzdata.patch; + inherit tzdata; + }) + ]; + + nativeBuildInputs = [ + harec + makeWrapper + qbe + scdoc + ]; + + buildInputs = [ + binutils-unwrapped + harec + qbe + tzdata + ]; + + makeFlags = [ + "HARECACHE=.harecache" + "PREFIX=${builtins.placeholder "out"}" + "PLATFORM=${platform}" + "ARCH=${arch}" + ]; + + enableParallelBuilding = true; + + # Append the distribution name to the version + env.LOCALVER = "nixpkgs"; + + strictDeps = true; + + doCheck = true; + + preConfigure = '' + ln -s config.example.mk config.mk + ''; + + postFixup = '' + wrapProgram $out/bin/hare \ + --prefix PATH : ${lib.makeBinPath [binutils-unwrapped harec qbe]} + ''; + + setupHook = ./setup-hook.sh; + + meta = { + homepage = "https://harelang.org/"; + description = "Systems programming language designed to be simple, stable, and robust"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ onemoresuza ]; + mainProgram = "hare"; + inherit (harec.meta) platforms badPlatforms; + }; +}) diff --git a/pkgs/by-name/ha/hare/setup-hook.sh b/pkgs/by-name/ha/hare/setup-hook.sh new file mode 100644 index 000000000000..d2d2c34354d6 --- /dev/null +++ b/pkgs/by-name/ha/hare/setup-hook.sh @@ -0,0 +1,9 @@ +addHarepath () { + for haredir in third-party stdlib; do + if [[ -d "$1/src/hare/$haredir" ]]; then + addToSearchPath HAREPATH "$1/src/hare/$haredir" + fi + done +} + +addEnvHooks "$hostOffset" addHarepath diff --git a/pkgs/by-name/ha/harec/package.nix b/pkgs/by-name/ha/harec/package.nix new file mode 100644 index 000000000000..cbcb53b1ac4e --- /dev/null +++ b/pkgs/by-name/ha/harec/package.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchFromSourcehut +, qbe +, fetchgit +}: +let + # harec needs the dbgfile and dbgloc features implemented up to this commit. + # This can be dropped once 1.2 is released, for a possible release date see: + # https://lists.sr.ht/~mpu/qbe/%3CZPkmHE9KLohoEohE%40cloudsdale.the-delta.net.eu.org%3E + qbe' = qbe.overrideAttrs (_old: { + version = "1.1-unstable-2023-08-18"; + src = fetchgit { + url = "git://c9x.me/qbe.git"; + rev = "36946a5142c40b733d25ea5ca469f7949ee03439"; + hash = "sha256-bqxWFP3/aw7kRoD6ictbFcjzijktHvh4AgWAXBIODW8="; + }; + }); +in +stdenv.mkDerivation (finalAttrs: { + pname = "harec"; + version = "unstable-2023-11-29"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "harec"; + rev = "ec3193e3870436180b0f3df82b769adc57a1c099"; + hash = "sha256-HXQIgFC4YVDJjo5xbyg1ea3jWYKLEwKkD1KFzWFz9UI= "; + }; + + nativeBuildInputs = [ + qbe' + ]; + + buildInputs = [ + qbe' + ]; + + strictDeps = true; + enableParallelBuilding = true; + + doCheck = true; + + passthru = { + # We create this attribute so that the `hare` package can access the + # overwritten `qbe`. + qbeUnstable = qbe'; + }; + + meta = { + homepage = "https://harelang.org/"; + description = "Bootstrapping Hare compiler written in C for POSIX systems"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ onemoresuza ]; + mainProgram = "harec"; + # The upstream developers do not like proprietary operating systems; see + # https://harelang.org/platforms/ + # UPDATE: https://github.com/hshq/harelang provides a MacOS port + platforms = with lib.platforms; + lib.intersectLists (freebsd ++ linux) (aarch64 ++ x86_64 ++ riscv64); + badPlatforms = lib.platforms.darwin; + }; +}) |