push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
{
fetchurl,
lib,
stdenv,
libiconv,
libunistring,
help2man,
texinfo,
buildPackages,
}:
# Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
stdenv.mkDerivation rec {
pname = "libidn2";
version = "2.3.8";
src = fetchurl {
url = "https://ftp.gnu.org/gnu/libidn/libidn2-${version}.tar.gz";
hash = "sha256-9VeRG/YXFiHh9y/zX1sYJbs1tS7UUyXc3ukx5dPAeHo=";
};
strictDeps = true;
# Beware: non-bootstrap libidn2 is overridden by ./hack.nix
outputs = [
"bin"
"dev"
"out"
"info"
"devdoc"
];
enableParallelBuilding = true;
# The above patch causes the documentation to be regenerated, so the
# documentation tools are required.
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
help2man
texinfo
];
buildInputs = [ libunistring ] ++ lib.optional stdenv.hostPlatform.isDarwin libiconv;
depsBuildBuild = [ buildPackages.stdenv.cc ];
meta = {
homepage = "https://www.gnu.org/software/libidn/#libidn2";
description = "Free software implementation of IDNA2008 and TR46";
longDescription = ''
Libidn2 is believed to be a complete IDNA2008 and TR46 implementation,
but has yet to be as extensively used as the IDNA2003 Libidn library.
The installed C library libidn2 is dual-licensed under LGPLv3+|GPLv2+,
while the rest of the package is GPLv3+. See the file COPYING for
detailed information.
'';
mainProgram = "idn2";
license = with lib.licenses; [
lgpl3Plus
gpl2Plus
gpl3Plus
];
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ fpletz ];
};
}

View File

@@ -0,0 +1,45 @@
{
stdenv,
lib,
libidn2,
libunistring,
runCommandLocal,
patchelf,
}:
# Construct a copy of libidn2.* where all (transitive) libc references (in .bin)
# get replaced by a new one, so that there's no reference to bootstrap tools.
runCommandLocal "${libidn2.pname}-${libidn2.version}"
{
outputs = [
"bin"
"dev"
"out"
];
passthru = {
inherit (libidn2) out info devdoc; # no need to touch these store paths
};
inherit (libidn2) meta;
}
''
cp -r '${libidn2.bin}' "$bin"
chmod +w "$bin"/bin/*
patchelf \
--set-interpreter '${stdenv.cc.bintools.dynamicLinker}' \
--set-rpath '${
lib.concatMapStringsSep ":" (p: lib.getLib p + "/lib") [
stdenv.cc.libc
libunistring
libidn2
]
}' \
"$bin"/bin/*
cp -r '${libidn2.dev}' "$dev"
chmod +w "$dev"/nix-support/propagated-build-inputs
substituteInPlace "$dev"/nix-support/propagated-build-inputs \
--replace '${libidn2.bin}' "$bin"
substituteInPlace "$dev"/lib/pkgconfig/libidn2.pc \
--replace '${libidn2.dev}' "$dev"
ln -s '${libidn2.out}' "$out" # it's hard to be without any $out
''