nixpkgs/pkgs/by-name/ha/hare/package.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

101 lines
2.1 KiB
Nix
Raw Normal View History

hare: unstable-2023-04-23 -> unstable-2023-10-22; harec: unstable-2023-04-23 -> unstable-2023-10-23 And also the following refactoring: hare: 1. Replace `NIX_BUILD_TOP` usage with `mktemp` 2. Enable parallel building 3. Get rid of `config-template.mk`, by using `makeFlagsArray` instead 4. Move `wrapProgram` call to `postFixup` 5. Set the `LOCALVER` environment variable to `nix`, so that the `hare version` command outputs `dev-nix`[1] 6. Set `meta` attribute `mainProgram` 7. Make the package accessible through `all-packages.nix` instead of `aliases.nix` 8. Move package path from `pkgs/development/compilers/hare/hare` to `pkgs/development/compilers/hare`, since the scope is now made at `pkgs/top-level/hare-packages.nix` harec: 1. Remove `hardeningDisable = [ "fortify" ];`, since both harec and hare compile normally with it enabled 2. Enable parallel building 3. Set `meta` attribute `mainProgram` 4. Make the package accessible through `all-packages.nix` instead of `aliases.nix` 5. Move package path from `pkgs/development/compilers/hare/harec` to `pkgs/development/compilers/harec`, since the scope is now made at `pkgs/top-level/hare-packages.nix` harePackages: 1. Move hare packages scope from `pkgs/development/compilers/hare/default.nix` to `pkgs/top-level/hare-packages.nix` 2. Remove `hare` and `harec` from `aliases.nix`, moving them to `all-packages.nix` 3. Change the `callPackage` argument in `all-packages.nix` from `../development/compilers/hare` to `./hare-packages.nix` [1]: https://git.sr.ht/~sircmpwn/hare/tree/1048620a7a25134db370bf24736efff1ffcb2483/item/scripts/version#L2 Co-authored-by: starzation <nixpkgs@starzation.net>
2023-11-08 00:25:05 +00:00
{ lib
, stdenv
, fetchFromSourcehut
, binutils-unwrapped
, harec
, makeWrapper
, qbe
, scdoc
}:
hare: unstable-2023-04-23 -> unstable-2023-10-22; harec: unstable-2023-04-23 -> unstable-2023-10-23 And also the following refactoring: hare: 1. Replace `NIX_BUILD_TOP` usage with `mktemp` 2. Enable parallel building 3. Get rid of `config-template.mk`, by using `makeFlagsArray` instead 4. Move `wrapProgram` call to `postFixup` 5. Set the `LOCALVER` environment variable to `nix`, so that the `hare version` command outputs `dev-nix`[1] 6. Set `meta` attribute `mainProgram` 7. Make the package accessible through `all-packages.nix` instead of `aliases.nix` 8. Move package path from `pkgs/development/compilers/hare/hare` to `pkgs/development/compilers/hare`, since the scope is now made at `pkgs/top-level/hare-packages.nix` harec: 1. Remove `hardeningDisable = [ "fortify" ];`, since both harec and hare compile normally with it enabled 2. Enable parallel building 3. Set `meta` attribute `mainProgram` 4. Make the package accessible through `all-packages.nix` instead of `aliases.nix` 5. Move package path from `pkgs/development/compilers/hare/harec` to `pkgs/development/compilers/harec`, since the scope is now made at `pkgs/top-level/hare-packages.nix` harePackages: 1. Move hare packages scope from `pkgs/development/compilers/hare/default.nix` to `pkgs/top-level/hare-packages.nix` 2. Remove `hare` and `harec` from `aliases.nix`, moving them to `all-packages.nix` 3. Change the `callPackage` argument in `all-packages.nix` from `../development/compilers/hare` to `./hare-packages.nix` [1]: https://git.sr.ht/~sircmpwn/hare/tree/1048620a7a25134db370bf24736efff1ffcb2483/item/scripts/version#L2 Co-authored-by: starzation <nixpkgs@starzation.net>
2023-11-08 00:25:05 +00:00
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;
in
stdenv.mkDerivation (finalAttrs: {
pname = "hare";
version = "unstable-2023-10-23";
hare: unstable-2023-04-23 -> unstable-2023-10-22; harec: unstable-2023-04-23 -> unstable-2023-10-23 And also the following refactoring: hare: 1. Replace `NIX_BUILD_TOP` usage with `mktemp` 2. Enable parallel building 3. Get rid of `config-template.mk`, by using `makeFlagsArray` instead 4. Move `wrapProgram` call to `postFixup` 5. Set the `LOCALVER` environment variable to `nix`, so that the `hare version` command outputs `dev-nix`[1] 6. Set `meta` attribute `mainProgram` 7. Make the package accessible through `all-packages.nix` instead of `aliases.nix` 8. Move package path from `pkgs/development/compilers/hare/hare` to `pkgs/development/compilers/hare`, since the scope is now made at `pkgs/top-level/hare-packages.nix` harec: 1. Remove `hardeningDisable = [ "fortify" ];`, since both harec and hare compile normally with it enabled 2. Enable parallel building 3. Set `meta` attribute `mainProgram` 4. Make the package accessible through `all-packages.nix` instead of `aliases.nix` 5. Move package path from `pkgs/development/compilers/hare/harec` to `pkgs/development/compilers/harec`, since the scope is now made at `pkgs/top-level/hare-packages.nix` harePackages: 1. Move hare packages scope from `pkgs/development/compilers/hare/default.nix` to `pkgs/top-level/hare-packages.nix` 2. Remove `hare` and `harec` from `aliases.nix`, moving them to `all-packages.nix` 3. Change the `callPackage` argument in `all-packages.nix` from `../development/compilers/hare` to `./hare-packages.nix` [1]: https://git.sr.ht/~sircmpwn/hare/tree/1048620a7a25134db370bf24736efff1ffcb2483/item/scripts/version#L2 Co-authored-by: starzation <nixpkgs@starzation.net>
2023-11-08 00:25:05 +00:00
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "hare";
rev = "1048620a7a25134db370bf24736efff1ffcb2483";
hash = "sha256-slQPIhrcM+KAVAvjuRnqNdEAEr4Xa4iQNVEpI7Wl+Ks=";
};
nativeBuildInputs = [
binutils-unwrapped
harec
makeWrapper
qbe
scdoc
];
buildInputs = [
binutils-unwrapped
harec
qbe
];
# Append the distribution name to the version
env.LOCALVER = "nix";
configurePhase =
let
# https://harelang.org/platforms/
arch =
if stdenv.isx86_64 then "x86_64"
else if stdenv.isAarch64 then "aarch64"
else if stdenv.hostPlatform.isRiscV && stdenv.is64bit then "riscv64"
else "unsupported";
platform =
if stdenv.isLinux then "linux"
else if stdenv.isFreeBSD then "freebsd"
else "unsupported";
in
''
runHook preConfigure
cp config.example.mk config.mk
makeFlagsArray+=(
PREFIX="${builtins.placeholder "out"}"
HARECACHE="$(mktemp -d --tmpdir harecache.XXXXXXXX)"
BINOUT="$(mktemp -d --tmpdir bin.XXXXXXXX)"
PLATFORM="${platform}"
ARCH="${arch}"
)
runHook postConfigure
'';
doCheck = true;
postFixup =
let
binPath = lib.makeBinPath [
binutils-unwrapped
harec
qbe
];
in
''
wrapProgram $out/bin/hare --prefix PATH : ${binPath}
'';
setupHook = ./setup-hook.sh;
strictDeps = true;
enableParallelBuilding = true;
meta = {
homepage = "https://harelang.org/";
description =
"A 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;
};
})