Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-10-05 18:04:03 +00:00 committed by GitHub
commit 653bcc0ea9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
109 changed files with 3396 additions and 1186 deletions

View File

@ -1076,6 +1076,9 @@ benchmark component.
`disableLibraryProfiling drv`
: Sets the `enableLibraryProfiling` argument to `false` for `drv`.
`disableParallelBuilding drv`
: Sets the `enableParallelBuilding` argument to `false` for `drv`.
#### Library functions in the Haskell package sets {#haskell-package-set-lib-functions}
Some library functions depend on packages from the Haskell package sets. Thus they are

View File

@ -535,7 +535,7 @@ checkConfigError 'A submoduleWith option is declared multiple times with conflic
# _type check
checkConfigError 'Expected a module, but found a value of type .*"flake".*, while trying to load a module into .*/module-imports-_type-check.nix' config.ok.config ./module-imports-_type-check.nix
checkConfigOutput '^true$' "$@" config.enable ./declare-enable.nix ./define-enable-with-top-level-mkIf.nix
checkConfigOutput '^true$' config.enable ./declare-enable.nix ./define-enable-with-top-level-mkIf.nix
checkConfigError 'Expected a module, but found a value of type .*"configuration".*, while trying to load a module into .*/import-configuration.nix.' config ./import-configuration.nix
checkConfigError 'please only import the modules that make up the configuration' config ./import-configuration.nix

View File

@ -23800,6 +23800,13 @@
githubId = 1108325;
name = "Théo Zimmermann";
};
zimward = {
name = "zimward";
github = "zimward";
githubId = 96021122;
matrix = "@memoryfragmentation:matrix.org";
keys = [ { fingerprint = "CBF7 FA5E F4B5 8B68 5977 3E3E 4CAC 61D6 A482 FCD9"; } ];
};
zlepper = {
name = "Rasmus Hansen";
github = "zlepper";

View File

@ -58,7 +58,7 @@
let
cfg = config.boot.initrd.systemd;
in
lib.mkIf cfg.tpm2.enable {
lib.mkIf (cfg.enable && cfg.tpm2.enable) {
boot.initrd.systemd.additionalUpstreamUnits = [
"tpm2.target"
"systemd-tpm2-setup-early.service"

View File

@ -44,17 +44,19 @@ buildDotnetModule rec {
gm convert $src/GalaxyBudsClient/Resources/icon_white.ico $out/share/icons/hicolor/256x256/apps/${meta.mainProgram}.png
'';
desktopItems = makeDesktopItem {
name = meta.mainProgram;
exec = meta.mainProgram;
icon = meta.mainProgram;
desktopName = meta.mainProgram;
genericName = "Galaxy Buds Client";
comment = meta.description;
type = "Application";
categories = [ "Settings" ];
startupNotify = true;
};
desktopItems = [
(makeDesktopItem {
name = meta.mainProgram;
exec = meta.mainProgram;
icon = meta.mainProgram;
desktopName = meta.mainProgram;
genericName = "Galaxy Buds Client";
comment = meta.description;
type = "Application";
categories = [ "Settings" ];
startupNotify = true;
})
];
meta = with lib; {
mainProgram = "GalaxyBudsClient";

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "texstudio";
version = "4.8.3";
version = "4.8.4";
src = fetchFromGitHub {
owner = "texstudio-org";
repo = "texstudio";
rev = finalAttrs.version;
hash = "sha256-/8Y8hz/rqKc5yZ/pdfy6gikufoSx0au3niv2r7o5cRc=";
hash = "sha256-gGL9eM0OsUg34GXFsz5LJ738WSl8L8mGfOcZZPNceT4=";
};
nativeBuildInputs = [

View File

@ -11,18 +11,20 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper copyDesktopItems ];
desktopItems = makeDesktopItem {
type = "Application";
name = pname;
desktopName = "Conduktor";
genericName = meta.description;
exec = pname;
icon = fetchurl {
url = "https://github.com/conduktor/builds/raw/v${version}/.github/resources/Conduktor.png";
sha256 = "0s7p74qclvac8xj2m22gfxx5m2c7cf0nqpk5sb049p2wvryhn2j4";
};
comment = "A beautiful and fully-featured desktop client for Apache Kafka";
};
desktopItems = [
(makeDesktopItem {
type = "Application";
name = pname;
desktopName = "Conduktor";
genericName = meta.description;
exec = pname;
icon = fetchurl {
url = "https://github.com/conduktor/builds/raw/v${version}/.github/resources/Conduktor.png";
sha256 = "0s7p74qclvac8xj2m22gfxx5m2c7cf0nqpk5sb049p2wvryhn2j4";
};
comment = "A beautiful and fully-featured desktop client for Apache Kafka";
})
];
dontConfigure = true;
dontBuild = true;

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "wthrr";
version = "1.2.0";
version = "1.2.1";
src = fetchFromGitHub {
owner = "ttytm";
repo = "wthrr-the-weathercrab";
rev = "v${version}";
hash = "sha256-3bWO2Gl8/B2p4k/6QhlT46RvyMJJs7WkVcX35vWN2Fk=";
hash = "sha256-8o84FFdcEPRtbsxWCc97tTGGownxlhpIM71GiBRT6uM=";
};
cargoHash = "sha256-8Uy+8UpCQyLaLsulpgC1w2XI9aqj2P5ebBlXqpuDIc4=";
cargoHash = "sha256-gHvPz8DZ6wSfMCzh8vx7Wv8pfP3P7p5EeRCTo4b30cw=";
nativeBuildInputs = [
pkg-config

View File

@ -50,7 +50,7 @@ let
# https://mozilla.github.io/policy-templates/
, extraPolicies ? {}
, extraPoliciesFiles ? []
, libName ? browser.libName or "firefox" # Important for tor package or the like
, libName ? browser.libName or applicationName # Important for tor package or the like
, nixExtensions ? null
}:

View File

@ -31,7 +31,6 @@
, rnnoise
, microsoft-gsl
, boost
, wayland
, libicns
, darwin
}:
@ -46,13 +45,13 @@ let
in
stdenv.mkDerivation rec {
pname = "kotatogram-desktop";
version = "0-unstable-2024-09-01";
version = "0-unstable-2024-09-27";
src = fetchFromGitHub {
owner = "kotatogram";
repo = "kotatogram-desktop";
rev = "e30c1857bf38c354467f4e6a2a37b1252b4e28e6";
hash = "sha256-kmJeqaDAVKhMWwcazy+gGB+55Kao67RJrlLvZQ+AtqY=";
rev = "0581eb6219343b3cfcbb81124b372df1039b7568";
hash = "sha256-rvn8GZmHdMkVutLUe/LmUNIawlb9VgU3sYhPwZ2MWsI=";
fetchSubmodules = true;
};
@ -114,7 +113,6 @@ stdenv.mkDerivation rec {
libpulseaudio
hunspell
jemalloc
wayland
] ++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
Cocoa
CoreFoundation

View File

@ -20,14 +20,14 @@
let
pname = "qownnotes";
appname = "QOwnNotes";
version = "24.9.7";
version = "24.9.8";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
hash = "sha256-n5Il8DnEK6emZANv6IMUpaEsHZ/hoPl4jNaXCuo7X5g=";
hash = "sha256-G5PLz1GzjfPM5tj3rtwJt4hR3v+oSq2bVr/llTSFbNk=";
};
nativeBuildInputs = [

View File

@ -1,17 +1,29 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, intltool
, gtk3, glib, curl, goocanvas2, gpsd
, hamlib, wrapGAppsHook3
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
pkg-config,
intltool,
autoreconfHook,
gtk3,
glib,
curl,
goocanvas2,
gpsd,
hamlib,
wrapGAppsHook3,
}:
let
version = "2.2.1";
in stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "gpredict";
inherit version;
version = "2.2.1";
src = fetchurl {
url = "https://github.com/csete/gpredict/releases/download/v${version}/gpredict-${version}.tar.bz2";
sha256 = "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7";
src = fetchFromGitHub {
owner = "csete";
repo = "gpredict";
rev = "v${version}";
hash = "sha256-+hgjImfT3nWMBYwde7+KC/hzd84pwQbpoJvaJSNG4E8=";
};
patches = [
@ -22,12 +34,32 @@ in stdenv.mkDerivation {
url = "https://github.com/csete/gpredict/commit/c565bb3d48777bfe17114b5d01cd81150521f056.patch";
sha256 = "1jhy9hpqlachq32bkij60q3dxkgi1kkr80rm29jjxqpmambf406a";
})
# Updates URLs for TLE files
# https://github.com/csete/gpredict/pull/305
(fetchpatch {
name = "TLE-urls.patch";
url = "https://github.com/csete/gpredict/commit/8f60f856921e8ee143cd6e2d34a9183778cb0fbf.patch";
hash = "sha256-X/nKrqh5sjxDMLhA9LQek8AsJFqhvK/k8Ep3ug/0rMI=";
})
];
nativeBuildInputs = [ pkg-config intltool wrapGAppsHook3 ];
buildInputs = [ curl glib gtk3 goocanvas2 gpsd hamlib ];
nativeBuildInputs = [
pkg-config
intltool
wrapGAppsHook3
autoreconfHook
];
buildInputs = [
curl
glib
gtk3
goocanvas2
gpsd
hamlib
];
meta = with lib; {
meta = {
description = "Real time satellite tracking and orbit prediction";
mainProgram = "gpredict";
longDescription = ''
@ -37,9 +69,12 @@ in stdenv.mkDerivation {
well. Gpredict uses the SGP4/SDP4 algorithms, which are compatible with the
NORAD Keplerian elements.
'';
license = licenses.gpl2Only;
platforms = platforms.linux;
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
homepage = "http://gpredict.oz9aec.net/";
maintainers = [ maintainers.markuskowa maintainers.cmcdragonkai ];
maintainers = with lib.maintainers; [
markuskowa
cmcdragonkai
];
};
}

View File

@ -26,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "stellarium";
version = "24.2";
version = "24.3";
src = fetchFromGitHub {
owner = "Stellarium";
repo = "stellarium";
rev = "v${finalAttrs.version}";
hash = "sha256-tqyLwlf8hugixZSsFCZPTtchO3VXk3m/nX1kuDoLOAY=";
hash = "sha256-shDp2tCOynMiEuTSx4TEK8V9h3EsMDq+kkZFhldrinM=";
};
patches = [

View File

@ -33,14 +33,16 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
desktopItems = makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = "iNavFlight configuration tool";
desktopName = "iNav Configurator";
genericName = "Flight controller configuration tool";
};
desktopItems = [
(makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = "iNavFlight configuration tool";
desktopName = "iNav Configurator";
genericName = "Flight controller configuration tool";
})
];
meta = with lib; {
description = "INav flight control system configuration tool";

View File

@ -112,8 +112,13 @@ rustPlatform.buildRustPackage rec {
};
tests = {
test = nixosTests.terminal-emulators.rio;
version = testers.testVersion { package = rio; };
} // lib.optionalAttrs stdenv.buildPlatform.isLinux {
# FIXME: Restrict test execution inside nixosTests for Linux devices as ofborg
# 'passthru.tests' nixosTests are failing on Darwin architectures.
#
# Ref: https://github.com/NixOS/nixpkgs/issues/345825
test = nixosTests.terminal-emulators.rio;
};
};

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "ghorg";
version = "1.10.0";
version = "1.11.0";
src = fetchFromGitHub {
owner = "gabrie30";
repo = "ghorg";
rev = "v${version}";
sha256 = "sha256-MZGpH8fvSERSMUxGa1JX4mb8d/p3aDztgRH1FQA8f/Y=";
sha256 = "sha256-tsR7cBpDa311rLI1CTXD2LLl3j2PxkBeQsjkUP99iIo=";
};
doCheck = false;

View File

@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "git-cliff";
version = "2.6.0";
version = "2.6.1";
src = fetchFromGitHub {
owner = "orhun";
repo = "git-cliff";
rev = "v${version}";
hash = "sha256-GRvZ9jdooduFylTGgUQNjdnD2Aa+jT5faV0/c3GBpqw=";
hash = "sha256-le/E+26N/SEam9Rvo2xzB2cFly65FO0RA+Xvh9NOSfE=";
};
cargoHash = "sha256-vgVTHTEKfjWJzxDQ5w0dwp9qxyN5sgbBseXHN25bx9o=";
cargoHash = "sha256-QC/7MctcfGWQpSSz/mS6czHh37llJl7aWJgyaa/WvB0=";
# attempts to run the program on .git in src which is not deterministic
doCheck = false;

View File

@ -0,0 +1,88 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
jdk11,
atlassian-plugin-sdk,
testers,
writeShellScript,
common-updater-scripts,
curl,
jq,
yq,
}:
let
mavenGroupIdUrl = "https://packages.atlassian.com/maven/public/com/atlassian/amps";
in
stdenv.mkDerivation rec {
pname = "atlassian-plugin-sdk";
version = "9.1.1";
src = fetchurl {
url = "${mavenGroupIdUrl}/atlassian-plugin-sdk/${version}/atlassian-plugin-sdk-${version}.tar.gz";
hash = "sha256-sEAe1eif9qXvIOu8RfZ4MWngEO5yCjU74g4Crd85J3Y=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ jdk11 ];
unpackPhase = "tar -xzf $src";
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r atlassian-plugin-sdk-${version}/* $out
rm $out/bin/*.bat
for file in "$out"/bin/*; do
wrapProgram $file --set JAVA_HOME "${jdk11}"
done
runHook postInstall
'';
passthru = {
tests.version = testers.testVersion {
package = atlassian-plugin-sdk;
command = "atlas-version";
version = "atlassian-plugin-sdk-${version}";
};
updateScript = writeShellScript "update-atlassian-plugin-sdk" ''
set -o errexit
export PATH="${
lib.makeBinPath [
curl
jq
yq
common-updater-scripts
]
}:$PATH"
NEW_VERSION=$(curl -s ${mavenGroupIdUrl}/atlassian-plugin-sdk/maven-metadata.xml | xq -r '.metadata.versioning.latest')
if [[ "${version}" = "$NEW_VERSION" ]]; then
echo "The new version same as the old version."
exit 0
fi
DOWNLOAD_URL="${mavenGroupIdUrl}/atlassian-plugin-sdk/${version}/atlassian-plugin-sdk-$NEW_VERSION.tar.gz"
NIX_HASH=$(nix hash to-sri sha256:$(nix-prefetch-url $DOWNLOAD_URL))
update-source-version "atlassian-plugin-sdk" "$NEW_VERSION" "$NIX_HASH" "$DOWNLOAD_URL"
'';
};
meta = with lib; {
description = "Atlassian Plugin SDK";
homepage = "https://developer.atlassian.com/server/framework/atlassian-sdk/";
license = licenses.asl20;
maintainers = with maintainers; [ pathob ];
platforms = platforms.linux;
mainProgram = "atlas-mvn";
};
}

View File

@ -92,6 +92,12 @@ dependencies = [
"libc",
]
[[package]]
name = "anes"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
[[package]]
name = "anstream"
version = "0.6.14"
@ -231,11 +237,13 @@ dependencies = [
"base64 0.22.1",
"bytes",
"cc",
"criterion",
"cxx",
"cxx-build",
"digest",
"displaydoc",
"ed25519-compact",
"fastcdc",
"futures",
"hex",
"lazy_static",
@ -250,7 +258,6 @@ dependencies = [
"sha2",
"tempfile",
"tokio",
"tokio-test",
"version-compare",
"wildmatch",
"xdg",
@ -309,7 +316,6 @@ dependencies = [
"digest",
"displaydoc",
"enum-as-inner",
"fastcdc",
"futures",
"hex",
"http-body-util",
@ -327,7 +333,6 @@ dependencies = [
"serde_with",
"sha2",
"tokio",
"tokio-test",
"tokio-util",
"toml",
"tower-http",
@ -1050,6 +1055,12 @@ dependencies = [
"either",
]
[[package]]
name = "cast"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
version = "1.1.13"
@ -1088,6 +1099,33 @@ dependencies = [
"windows-targets 0.52.5",
]
[[package]]
name = "ciborium"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
dependencies = [
"ciborium-io",
"ciborium-ll",
"serde",
]
[[package]]
name = "ciborium-io"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
[[package]]
name = "ciborium-ll"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
dependencies = [
"ciborium-io",
"half",
]
[[package]]
name = "clap"
version = "4.5.4"
@ -1307,6 +1345,44 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "criterion"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
dependencies = [
"anes",
"cast",
"ciborium",
"clap",
"criterion-plot",
"futures",
"is-terminal",
"itertools 0.10.5",
"num-traits",
"once_cell",
"oorandom",
"plotters",
"rayon",
"regex",
"serde",
"serde_derive",
"serde_json",
"tinytemplate",
"tokio",
"walkdir",
]
[[package]]
name = "criterion-plot"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
dependencies = [
"cast",
"itertools 0.10.5",
]
[[package]]
name = "crossbeam-channel"
version = "0.5.13"
@ -1316,6 +1392,25 @@ dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
dependencies = [
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-queue"
version = "0.3.11"
@ -1331,6 +1426,12 @@ version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
name = "crunchy"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
[[package]]
name = "crypto-bigint"
version = "0.4.9"
@ -1698,6 +1799,11 @@ name = "fastcdc"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a71061d097bfa9a5a4d2efdec57990d9a88745020b365191d37e48541a1628f2"
dependencies = [
"async-stream",
"tokio",
"tokio-stream",
]
[[package]]
name = "fastrand"
@ -1956,6 +2062,16 @@ dependencies = [
"tracing",
]
[[package]]
name = "half"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
dependencies = [
"cfg-if",
"crunchy",
]
[[package]]
name = "hashbrown"
version = "0.12.3"
@ -2388,12 +2504,32 @@ version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
[[package]]
name = "is-terminal"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
dependencies = [
"hermit-abi",
"libc",
"windows-sys 0.52.0",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
[[package]]
name = "itertools"
version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
dependencies = [
"either",
]
[[package]]
name = "itertools"
version = "0.12.1"
@ -2642,8 +2778,9 @@ dependencies = [
[[package]]
name = "nix-base32"
version = "0.1.2-alpha.0"
source = "git+https://github.com/zhaofengli/nix-base32.git?rev=b850c6e9273d1c39bd93abb704a53345f5be92eb#b850c6e9273d1c39bd93abb704a53345f5be92eb"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2628953ed836273ee4262e3708a8ef63ca38bd8a922070626eef7f9e5d8d536"
[[package]]
name = "nom"
@ -2776,6 +2913,12 @@ version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "oorandom"
version = "11.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9"
[[package]]
name = "openssl-probe"
version = "0.1.5"
@ -3002,6 +3145,34 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
name = "plotters"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3"
dependencies = [
"num-traits",
"plotters-backend",
"plotters-svg",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "plotters-backend"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7"
[[package]]
name = "plotters-svg"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705"
dependencies = [
"plotters-backend",
]
[[package]]
name = "portable-atomic"
version = "1.6.0"
@ -3088,7 +3259,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
dependencies = [
"anyhow",
"itertools",
"itertools 0.12.1",
"proc-macro2",
"quote",
"syn 2.0.66",
@ -3168,6 +3339,26 @@ dependencies = [
"getrandom",
]
[[package]]
name = "rayon"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
"crossbeam-deque",
"crossbeam-utils",
]
[[package]]
name = "redox_syscall"
version = "0.4.1"
@ -4069,7 +4260,7 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c"
dependencies = [
"itertools",
"itertools 0.12.1",
"nom",
"unicode_categories",
]
@ -4459,6 +4650,16 @@ dependencies = [
"time-core",
]
[[package]]
name = "tinytemplate"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "tinyvec"
version = "1.6.0"
@ -4546,19 +4747,6 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokio-test"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7"
dependencies = [
"async-stream",
"bytes",
"futures-core",
"tokio",
"tokio-stream",
]
[[package]]
name = "tokio-util"
version = "0.7.11"

View File

@ -11,13 +11,13 @@
}:
rustPlatform.buildRustPackage {
pname = "attic";
version = "0-unstable-2024-08-19";
version = "0-unstable-2024-10-04";
src = fetchFromGitHub {
owner = "zhaofengli";
repo = "attic";
rev = "acf3c351f8de47c6857f31948ab253f9c7ce2a6f";
hash = "sha256-jcY81r8PdMQ9dCGhT0YLZzxPj3kQJXyWCmvQLXbR1EI=";
rev = "61ebdef2e263c091f24807b07701be5cb8068dea";
hash = "sha256-whgxjoDF7aey3xWy2b9Dp+NHsszK6By+raEbygcSU6w=";
};
nativeBuildInputs = [
@ -34,9 +34,6 @@ rustPlatform.buildRustPackage {
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"nix-base32-0.1.2-alpha.0" = "sha256-wtPWGOamy3+ViEzCxMSwBcoR4HMMD0t8eyLwXfCDFdo=";
};
};
cargoBuildFlags = lib.concatMapStrings (c: "-p ${c} ") crates;
@ -56,6 +53,8 @@ rustPlatform.buildRustPackage {
fi
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Multi-tenant Nix Binary Cache";
homepage = "https://github.com/zhaofengli/attic";

View File

@ -0,0 +1,40 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p wget nix-prefetch-github jq coreutils
# shellcheck shell=bash
if [ -n "$GITHUB_TOKEN" ]; then
TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
fi
if [[ $# -gt 1 || $1 == -* ]]; then
echo "Regenerates packaging data for attic."
echo "Usage: $0 [git commit]"
exit 1
fi
set -x
cd "$(dirname "$0")"
rev="$1"
set -euo pipefail
if [ -z "$rev" ]; then
rev="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/zhaofengli/attic/commits?per_page=1" | jq -r '.[0].sha')"
fi
date="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/zhaofengli/attic/commits/$rev" | jq -r '.commit.author.date' | cut -dT -f1)"
version="0-unstable-$date"
# Sources
src_hash=$(nix-prefetch-github zhaofengli attic --rev "$rev" | jq -r .hash)
# Cargo.lock
src="https://raw.githubusercontent.com/zhaofengli/attic/$rev"
wget "${TOKEN_ARGS[@]}" "$src/Cargo.lock" -O Cargo.lock
sed -i -E -e "s#version = \".*\"#version = \"$version\"#" package.nix
sed -i -E -e "s#rev = \".*\"#rev = \"$rev\"#" package.nix
sed -i -E -e "s#hash = \".*\"#hash = \"$src_hash\"#" package.nix

View File

@ -1,12 +1,19 @@
{ lib, python3, fetchFromGitHub, glibcLocales, git }:
{
lib,
python3,
fetchFromGitHub,
git,
}:
let
changeVersion = overrideFunc: version: hash: overrideFunc (oldAttrs: rec {
inherit version;
src = oldAttrs.src.override {
inherit version hash;
};
});
changeVersion =
overrideFunc: version: hash:
overrideFunc (oldAttrs: rec {
inherit version;
src = oldAttrs.src.override {
inherit version hash;
};
});
localPython = python3.override {
self = localPython;
@ -33,16 +40,9 @@ localPython.pkgs.buildPythonApplication rec {
postPatch = ''
# https://github.com/aws/aws-elastic-beanstalk-cli/pull/469
substituteInPlace setup.py --replace "scripts=['bin/eb']," ""
substituteInPlace setup.py --replace-fail "scripts=['bin/eb']," ""
'';
nativeBuildInputs = with localPython.pkgs; [
];
buildInputs = [
glibcLocales
];
propagatedBuildInputs = with localPython.pkgs; [
blessed
botocore
@ -95,7 +95,7 @@ localPython.pkgs.buildPythonApplication rec {
homepage = "https://aws.amazon.com/elasticbeanstalk/";
description = "Command line interface for Elastic Beanstalk";
changelog = "https://github.com/aws/aws-elastic-beanstalk-cli/blob/${version}/CHANGES.rst";
maintainers = with maintainers; [ eqyiel kirillrdy ];
maintainers = with maintainers; [ kirillrdy ];
license = licenses.asl20;
mainProgram = "eb";
};

View File

@ -12,13 +12,13 @@
buildNpmPackage rec {
pname = "blockbench";
version = "4.11.0";
version = "4.11.1";
src = fetchFromGitHub {
owner = "JannisX11";
repo = "blockbench";
rev = "v${version}";
hash = "sha256-SmG8JMHdFTGkxLCTTbD1IhjQgmsRMvxQsB4rluHy6yI=";
hash = "sha256-a+55seE5tFxTmdTn4qDFWWW6C6FzO8Vgjvfow/tBqf0=";
};
nativeBuildInputs =
@ -28,7 +28,7 @@ buildNpmPackage rec {
copyDesktopItems
];
npmDepsHash = "sha256-vbwoKijDt7TbXfU8Il5dwnfyGc2HsbLdAJhQzYuq6eo=";
npmDepsHash = "sha256-0hS+AjfYvkdxyM6CtXYgvjt49GmcCvyAdEFWfK8uaHc=";
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;

View File

@ -0,0 +1,47 @@
{
cmake,
fetchFromGitHub,
lib,
python3,
stdenv,
unstableGitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "canokey-usbip";
version = "0-unstable-2024-03-11";
src = fetchFromGitHub {
owner = "canokeys";
repo = "canokey-usbip";
rev = "cc7087277096f185401b05143f9a028711d43557";
hash = "sha256-+7sGW2eGelRQ2TDvgUITbPdcsXo7Pp6Pp+r3RmyQAZM=";
fetchSubmodules = true;
};
postPatch = ''
sed -i 's/COMMAND git describe.*\(>>.*\)/COMMAND echo ${finalAttrs.src.rev} \1/' canokey-core/CMakeLists.txt
'';
nativeBuildInputs = [
cmake
python3
];
postInstall = ''
install -D --target-directory=$out/bin canokey-usbip
'';
passthru.updateScript = unstableGitUpdater {
hardcodeZeroVersion = true;
};
meta = {
description = "CanoKey USB/IP Virt Card";
homepage = "https://github.com/canokeys/canokey-usbip";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.jmbaur ];
mainProgram = "canokey-usbip";
platforms = lib.platforms.all;
};
})

View File

@ -7,16 +7,16 @@
buildGoModule rec {
pname = "civo";
version = "1.0.91";
version = "1.1.91";
src = fetchFromGitHub {
owner = "civo";
repo = "cli";
rev = "v${version}";
hash = "sha256-xqDElK3/pkE4tobFurXQd1lVyp3hgmlBjjSD6CN90jU=";
hash = "sha256-1RemtyaIyL5OqAfl+njL/DeFXPMUT5vghXwHOjmsgl0=";
};
vendorHash = "sha256-oXwtMMclkU1hunMCMBGvN8xbNtmYBEnCvGBUKhlfv3g=";
vendorHash = "sha256-dzhSfC864ievkbM0Mt6itlAzlk3211tQmpFrCYFR0s8=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -7,16 +7,16 @@
}:
buildGoModule rec {
pname = "cloudflare-dynamic-dns";
version = "4.3.3";
version = "4.3.5";
src = fetchFromGitHub {
owner = "zebradil";
repo = "cloudflare-dynamic-dns";
rev = "refs/tags/${version}";
hash = "sha256-zmcNr1r0lx5RclZtc5LX6v07IjhFAKaNnIOeDTWhfVQ=";
hash = "sha256-9WJeWWgI96+LjMFl7TkDc7udsLvi54eAN3Y9iv2e+F4=";
};
vendorHash = "sha256-L2XtIZE5D1ehoEE45Ig/IMcQS/JgKSxFmMALkNwWDCA=";
vendorHash = "sha256-KtTZcFYzJOH2qwoeHYfksXN7sDVV9ERCFVrrqzdh3M0=";
subPackages = ".";

View File

@ -8,16 +8,16 @@
buildNpmPackage rec {
pname = "dotenvx";
version = "1.14.1";
version = "1.14.2";
src = fetchFromGitHub {
owner = "dotenvx";
repo = "dotenvx";
rev = "refs/tags/v${version}";
hash = "sha256-PdX8picIFqeZZCMP0ABoWpySERSy0leAvp0XyjTW1Rc=";
hash = "sha256-SlZ18ToGbC+c5ffuYFGeOy30w90ukBO0qKxD+HNVt3E=";
};
npmDepsHash = "sha256-lo+R0YP50FIN+syj6VqCeEBFr7EZ6NSVXAhafG5JsI0=";
npmDepsHash = "sha256-KaqSCtraMmQHe7Tcs/2CVaQcmazgHkV5K4T64lHEVP4=";
dontNpmBuild = true;

View File

@ -59,21 +59,23 @@ flutter324.buildFlutterApplication rec {
# Based on https://github.com/ente-io/ente/blob/main/auth/linux/packaging/rpm/make_config.yaml
# and https://github.com/ente-io/ente/blob/main/auth/linux/packaging/ente_auth.appdata.xml
desktopItems = makeDesktopItem {
name = "ente_auth";
exec = "ente_auth";
icon = "ente-auth";
desktopName = "Ente Auth";
genericName = "Ente Authentication";
comment = "Open source 2FA authenticator, with end-to-end encrypted backups";
categories = [ "Utility" ];
keywords = [
"Authentication"
"2FA"
];
mimeTypes = [ "x-scheme-handler/enteauth" ];
startupNotify = false;
};
desktopItems = [
(makeDesktopItem {
name = "ente_auth";
exec = "ente_auth";
icon = "ente-auth";
desktopName = "Ente Auth";
genericName = "Ente Authentication";
comment = "Open source 2FA authenticator, with end-to-end encrypted backups";
categories = [ "Utility" ];
keywords = [
"Authentication"
"2FA"
];
mimeTypes = [ "x-scheme-handler/enteauth" ];
startupNotify = false;
})
];
postInstall = ''
FAV=$out/app/data/flutter_assets/assets/icons/auth-icon.png

View File

@ -0,0 +1,35 @@
{
lib,
rustPlatform,
fetchFromGitHub,
testers,
i3-back,
}:
rustPlatform.buildRustPackage rec {
pname = "i3-back";
version = "0.3.2";
src = fetchFromGitHub {
owner = "Cretezy";
repo = "i3-back";
rev = "refs/tags/v${version}";
hash = "sha256-xGfX7ttWrcIVhy+MkR5RZr2DCAwIKwGu7zkafHcrjaE=";
};
# The tool needs a nightly compiler.
RUSTC_BOOTSTRAP = 1;
cargoHash = "sha256-Ot8f/58bAlpDSB11l14paCx2yjVoAYaHVIXaOzT1z/c=";
passthru.tests.version = testers.testVersion { package = i3-back; };
meta = {
description = "i3/Sway utility to switch focus to your last focused window";
homepage = "https://github.com/Cretezy/i3-back";
changelog = "https://github.com/Cretezy/i3-back/blob/main/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ gabyx ];
platforms = lib.platforms.linux;
mainProgram = "i3-back";
};
}

View File

@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "ktor-cli";
version = "0.2.1";
src = fetchFromGitHub {
owner = "ktorio";
repo = "ktor-cli";
rev = "refs/tags/${version}";
hash = "sha256-rIXyLqXEfbw0YR8+0N5XyntsB8H0D5DvJTneatuC48s=";
};
subPackages = "cmd/ktor";
vendorHash = "sha256-gu/tuQPScSN0qsNd3fz/tz1ck6OGj/lupnNd/xLJxmk=";
ldflags = [
"-s"
"-w"
"-X main.Version=${version}"
];
meta = {
description = "Command-line tool for creating Ktor projects";
homepage = "https://github.com/ktorio/ktor-cli";
changelog = "https://github.com/ktorio/ktor-cli/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ nartsiss ];
mainProgram = "ktor";
};
}

View File

@ -5,11 +5,11 @@
stdenvNoCC.mkDerivation rec {
pname = "lxgw-neoxihei";
version = "1.206";
version = "1.207";
src = fetchurl {
url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
hash = "sha256-jsLQLD5dfzguFkk7Q3oHe5Jd6h+XA/Qkg9MqyqHQ8v4=";
hash = "sha256-voFR2qkomj1CRv4OWtrYJmpVxoUl6db/HnkaobCmBzY=";
};
dontUnpack = true;

View File

@ -1,16 +1,18 @@
{ lib
, rustPlatform
, fetchFromGitHub
, fetchNpmDeps
, npmHooks
, nodejs
, python3
, pkg-config
, sqlite
, zstd
, stdenv
, darwin
, open-policy-agent
{
lib,
rustPlatform,
fetchFromGitHub,
fetchNpmDeps,
npmHooks,
nodejs,
python3,
pkg-config,
sqlite,
zstd,
stdenv,
darwin,
open-policy-agent,
cctools,
}:
rustPlatform.buildRustPackage rec {
@ -27,8 +29,8 @@ rustPlatform.buildRustPackage rec {
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"sea-query-0.32.0-rc.1" = "sha256-Q/NFiIBu8L5rQj4jwcIo8ACmAhLBy4HSTcJv06UdK8E=";
};
"sea-query-0.32.0-rc.1" = "sha256-Q/NFiIBu8L5rQj4jwcIo8ACmAhLBy4HSTcJv06UdK8E=";
};
};
npmDeps = fetchNpmDeps {
@ -45,16 +47,18 @@ rustPlatform.buildRustPackage rec {
npmHooks.npmConfigHook
nodejs
(python3.withPackages (ps: [ ps.setuptools ])) # Used by gyp
];
] ++ lib.optional stdenv.isDarwin cctools; # libtool used by gyp;
buildInputs = [
sqlite
zstd
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk_11_0.frameworks.CoreFoundation
darwin.apple_sdk_11_0.frameworks.Security
darwin.apple_sdk_11_0.frameworks.SystemConfiguration
];
buildInputs =
[
sqlite
zstd
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk_11_0.frameworks.CoreFoundation
darwin.apple_sdk_11_0.frameworks.Security
darwin.apple_sdk_11_0.frameworks.SystemConfiguration
];
env = {
ZSTD_SYS_USE_PKG_CONFIG = true;
@ -95,5 +99,8 @@ rustPlatform.buildRustPackage rec {
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ teutat3s ];
mainProgram = "mas-cli";
# Note: broken on x86_64-darwin because of aligned_alloc, can be revisited after
# https://github.com/NixOS/nixpkgs/pull/346043 is merged
badPlatforms = [ "x86_64-darwin" ];
};
}

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "openapi-tui";
version = "0.9.4";
version = "0.10.0";
src = fetchFromGitHub {
owner = "zaghaghi";
repo = "openapi-tui";
rev = version;
hash = "sha256-y8A43FV3PfYHaMMHE3uGRBaftga/pVSivCfV4iwUROA=";
hash = "sha256-EUWL16cHgPF88CoCD9sqnxLOlmWoe1tu5ps01AYwwzc=";
};
cargoHash = "sha256-I1eTJDtQM9WKluOZJGfQT4Wn9TFyTu6ZcPFuh8wZIWI=";
cargoHash = "sha256-sINwuMgBbc/Xn73Gy+Wwb0QtIHGGB02fVyz/K/tg5Ys=";
OPENSSL_NO_VENDOR = true;

View File

@ -6,13 +6,13 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "plasma-plugin-blurredwallpaper";
version = "3.1.0";
version = "3.2.0";
src = fetchFromGitHub {
owner = "bouteillerAlan";
repo = "blurredwallpaper";
rev = "v${finalAttrs.version}";
hash = "sha256-+MjnVsGHqitQytxiAH39Kx9SXuTEFfIC14Ayzu4yE4I=";
hash = "sha256-P/N7g/cl2K0R4NKebfqZnr9WQkHPSvHNbKbWiOxs76k=";
};
installPhase = ''

View File

@ -35,11 +35,11 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "PortfolioPerformance";
version = "0.71.1";
version = "0.71.2";
src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${finalAttrs.version}/PortfolioPerformance-${finalAttrs.version}-linux.gtk.x86_64.tar.gz";
hash = "sha256-bZZTsL2jf4m6Gvc9cXDbAsiPoluljnb1AKshMM4325Q=";
hash = "sha256-TVrxYz6hFWn2C0CrBnNCPxkfQkTjCXkNSeQp6eC/fjc=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
qt6,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "project-lemonlime";
version = "0.3.5";
src = fetchFromGitHub {
owner = "Project-LemonLime";
repo = "Project_LemonLime";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-h/aE1+ED+RkXqFcsb23rboA+Dd7kiom3XiIRqb4oYkQ=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
qt6.wrapQtAppsHook
];
cmakeFlags = [
(lib.cmakeBool "LEMON_QT6" true)
];
buildInputs = [
qt6.qtbase
qt6.qttools
qt6.qtwayland
];
meta = {
description = "Lightweight evaluation system based on Lemon + LemonPlus for OI competitions";
homepage = "https://github.com/Project-LemonLime/Project_LemonLime";
changelog = "https://github.com/Project-LemonLime/Project_LemonLime/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
sigmanificient
bot-wxt1221
];
platforms = lib.platforms.unix;
mainProgram = "lemon";
};
})

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "protols";
version = "0.6.0";
version = "0.6.2";
src = fetchFromGitHub {
owner = "coder3101";
repo = "protols";
rev = "refs/tags/${version}";
hash = "sha256-oxcC+PRQ+gyYyg5r9C3N7lP8ZJj+8sqJMA+Ovoxq+P4=";
hash = "sha256-2dP3papZsZxvpSfgGTdoRVSZTcOC0iHPBfMmlzB5iJQ=";
};
cargoHash = "sha256-rrurR/3OgjaAAq5Z9RTFOC6j13eBI34+z+aTLQkKjV4=";
cargoHash = "sha256-94URDioPZXKSSFINTdPBYcES2eGCbhJ46tvcVRWt06o=";
meta = {
description = "Protocol Buffers language server written in Rust";

View File

@ -1,7 +1,7 @@
{ lib
, buildDotnetModule
, dotnetCorePackages
, fetchFromGitHub
, fetchzip
, libX11
, libgdiplus
, ffmpeg
@ -27,10 +27,8 @@ buildDotnetModule rec {
pname = "ryujinx";
version = "1.1.1401"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
src = fetchFromGitHub {
owner = "Ryujinx";
repo = "Ryujinx";
rev = "5dbba07e33e83c9047dcbb701c9655edbbe89086";
src = fetchzip {
url = "https://archive.org/download/ryujinx-5dbba-07e-33e-83c-9047dcbb-701c-9655edbbe-89086.tar/Ryujinx-5dbba07e33e83c9047dcbb701c9655edbbe89086.tar.gz";
hash = "sha256-UeJ3KE5e5H9crqroAxjmxYTf/Z4cbj41a6/1HW2nLcA=";
};

View File

@ -0,0 +1,12 @@
diff --git a/src/SplitCode.h b/src/SplitCode.h
index 45c199c..fb05250 100644
--- a/src/SplitCode.h
+++ b/src/SplitCode.h
@@ -18,6 +18,7 @@
#include <stack>
#include <cmath>
#include <iomanip>
+#include <cstdint>
#if defined(_MSVC_LANG)
#define SPLITCODE_CPP_VERSION _MSVC_LANG

View File

@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
libcxx,
zlib,
}:
let
version = "0.30.0";
in
stdenv.mkDerivation {
pname = "splitcode";
inherit version;
src = fetchFromGitHub {
owner = "pachterlab";
repo = "splitcode";
rev = "v${version}";
hash = "sha256-g38pJFP9uA2P5ktogAPXKgPtsEJn5vtnK5HClqqezmg=";
};
patches = [ ./add-stdint.patch ];
nativeBuildInputs = [ cmake ];
buildInputs = [
libcxx
zlib
];
doCheck = true;
checkPhase = ''
mkdir func_tests
cp $src/func_tests/* ./func_tests/
bash ./func_tests/runtests.sh
'';
meta = {
description = "Tool for flexible, efficient parsing, interpreting, and editing of technical sequences in sequencing reads";
homepage = "https://github.com/pachterlab/splitcode";
license = lib.licenses.bsd2;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ zimward ];
mainProgram = "splitcode";
};
}

View File

@ -26,7 +26,7 @@ let
# See upstream issue for rocksdb 9.X support
# https://github.com/stalwartlabs/mail-server/issues/407
rocksdb = rocksdb_8_11;
version = "0.10.0";
version = "0.10.2";
in
rustPlatform.buildRustPackage {
pname = "stalwart-mail";
@ -36,21 +36,11 @@ rustPlatform.buildRustPackage {
owner = "stalwartlabs";
repo = "mail-server";
rev = "refs/tags/v${version}";
hash = "sha256-9qk7+LJntEmCIuxp0707OOHBVkywlAJA1QmWllR9ZHg=";
hash = "sha256-wH26uwaYzfqiamiJ/oosVEiTfCOItwVGbHdRh6Ykpgk=";
fetchSubmodules = true;
};
cargoHash = "sha256-O1LuEHH5VD/6875Psfp5N/oWYlo1cuTlHzwcgG9RrpI=";
patches = [
# Remove "PermissionsStartOnly" from systemd service files,
# which is deprecated and conflicts with our module's ExecPreStart.
# Upstream PR: https://github.com/stalwartlabs/mail-server/pull/528
(fetchpatch {
url = "https://github.com/stalwartlabs/mail-server/pull/528/commits/6e292b3d7994441e58e367b87967c9a277bce490.patch";
hash = "sha256-j/Li4bYNE7IppxG3FGfljra70/rHyhRvDgOkZOlhMHY=";
})
];
cargoHash = "sha256-1AFDyZpkcvFzWBczMAPfajmhBmVl4ou4JdKnrK2KlQI=";
nativeBuildInputs = [
pkg-config
@ -58,22 +48,31 @@ rustPlatform.buildRustPackage {
rustPlatform.bindgenHook
];
buildInputs = [
bzip2
openssl
sqlite
zstd
] ++ lib.optionals stdenv.hostPlatform.isLinux [
foundationdb
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.CoreFoundation
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
];
buildInputs =
[
bzip2
openssl
sqlite
zstd
]
++ lib.optionals stdenv.hostPlatform.isLinux [ foundationdb ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.CoreFoundation
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
];
# skip defaults on darwin because foundationdb is not available
buildNoDefaultFeatures = stdenv.hostPlatform.isDarwin;
buildFeatures = lib.optional (stdenv.hostPlatform.isDarwin) [ "sqlite" "postgres" "mysql" "rocks" "elastic" "s3" "redis" ];
buildFeatures = lib.optional (stdenv.hostPlatform.isDarwin) [
"sqlite"
"postgres"
"mysql"
"rocks"
"elastic"
"s3"
"redis"
];
env = {
OPENSSL_NO_VENDOR = true;
@ -154,11 +153,16 @@ rustPlatform.buildRustPackage {
tests.stalwart-mail = nixosTests.stalwart-mail;
};
meta = with lib; {
meta = {
description = "Secure & Modern All-in-One Mail Server (IMAP, JMAP, SMTP)";
homepage = "https://github.com/stalwartlabs/mail-server";
changelog = "https://github.com/stalwartlabs/mail-server/blob/${version}/CHANGELOG";
license = licenses.agpl3Only;
maintainers = with maintainers; [ happysalada onny oddlama ];
changelog = "https://github.com/stalwartlabs/mail-server/blob/main/CHANGELOG.md";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
happysalada
onny
oddlama
pandapip1
];
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "stc";
version = "1.5";
version = "1.5.3";
src = fetchFromGitHub {
owner = "tenox7";
repo = pname;
rev = version;
sha256 = "sha256-Hv8md27LUB/d1MNqNEw7UX7r3tMYdguuGP3xOI2LWBk=";
sha256 = "sha256-QdU480at8VvuHpYmEKagnBotjM7ikOsVLJeedJ2qtjw=";
};
vendorHash = "sha256-TnWCviLstm6kS34cNkrVGS9RZ21cVX/jmx8d+KytB0c=";

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "tippecanoe";
version = "2.62.4";
version = "2.64.0";
src = fetchFromGitHub {
owner = "felt";
repo = "tippecanoe";
rev = finalAttrs.version;
hash = "sha256-mHeBzXJ4d60tJ1xAN8YldP94GCE8Ch1cvJqMD0ZaV34=";
hash = "sha256-5HMyqUdoNFwZccXlsFms4C+jyfMVLCiCcFapC6y7e+M=";
};
buildInputs = [ sqlite zlib ];

View File

@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec {
pname = "typos-lsp";
# Please update the corresponding VSCode extension too.
# See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
version = "0.1.26";
version = "0.1.27";
src = fetchFromGitHub {
owner = "tekumara";
repo = "typos-lsp";
rev = "refs/tags/v${version}";
hash = "sha256-wyVNHWMxkRjfo2qOrAOIwUyTYdRyvwD+AfEBoLSchrA=";
hash = "sha256-WiU6SRhW7LBDFJ/6qv0X/H86FiTYadN02iyi87oQRBY=";
};
cargoHash = "sha256-1wvDMAS0q0UzGb/jUNyq7G4cBxeRc+MSn7er378jaOw=";
cargoHash = "sha256-v9CwoLfqww5UNsVONAWb2D9F/ljq/YXTCCjrJaJWENE=";
# fix for compilation on aarch64
# see https://github.com/NixOS/nixpkgs/issues/145726

View File

@ -49,23 +49,23 @@ let
# and often with different versions. We write them on three lines
# like this (rather than using {}) so that the updater script can
# find where to edit them.
versions.aarch64-darwin = "6.2.0.40111";
versions.x86_64-darwin = "6.2.0.40111";
versions.x86_64-linux = "6.2.0.1855";
versions.aarch64-darwin = "6.2.3.40682";
versions.x86_64-darwin = "6.2.3.40682";
versions.x86_64-linux = "6.2.3.2056";
srcs = {
aarch64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
name = "zoomusInstallerFull.pkg";
hash = "sha256-/oi10pi9Xykmfo0UA1cDPzlB4xUQxAr8rkEoUpp1fQM=";
hash = "sha256-kpncl6ZVs/O2TXtBhZ/2049jJuUdYlIaxtLX3wIfpVE=";
};
x86_64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
hash = "sha256-CZm0lrBYGHkPpdLu0sE/V+ADwglk/btSNvdzPRaeysI=";
hash = "sha256-gB8pM3EYmA5jF2s/XobV5hk71q16x76nG6M20rWatzE=";
};
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
hash = "sha256-Ej8BRySQso62VE7e4XjXFGsvlB9cEVceha/WVhTBG4E=";
hash = "sha256-dEQdyYEGXMwABulPHK3fLgHo0ZMF5BT6RnqzD23Al38=";
};
};

View File

@ -5,11 +5,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbip-country-lite";
version = "2024-09";
version = "2024-10";
src = fetchurl {
url = "https://download.db-ip.com/free/dbip-country-lite-${finalAttrs.version}.mmdb.gz";
hash = "sha256-Y3uLIETUMfR/IEXfhqz3srAJxe8yM7oRi+DrA2tL15Y=";
hash = "sha256-MeAhfDY2jdX2WDsNGNjvH/JeCo9C1hx3PWyk8am9Ut0=";
};
dontUnpack = true;

View File

@ -1,6 +1,6 @@
{
"commit": "4670ba3f52eae6737137ddcb817182f3daad4f26",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/4670ba3f52eae6737137ddcb817182f3daad4f26.tar.gz",
"sha256": "18q5shdmh12147502135q6132rmzp29qfjhwrcjwidl0pi9ki70i",
"msg": "Update from Hackage at 2024-08-19T17:17:03Z"
"commit": "5d97d9c05e76d8cecb68f1e9063afb39ca0fb26b",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/5d97d9c05e76d8cecb68f1e9063afb39ca0fb26b.tar.gz",
"sha256": "1ic4wn5immv06m1m2cq6mzrrgrxbidxmj39licxlkmnm9jlwzjwr",
"msg": "Update from Hackage at 2024-09-03T10:29:19Z"
}

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "erg";
version = "0.6.44";
version = "0.6.45";
src = fetchFromGitHub {
owner = "erg-lang";
repo = "erg";
rev = "v${version}";
hash = "sha256-Pw6q3qmYehTPnB3MyDi8Q5tC018H3zLsZAXWuc+abjE=";
hash = "sha256-P6AIe3IadY64ydGShlRmgZ1pITiAA8G59Oe8P2ktDqM=";
};
cargoHash = "sha256-uO+j1kmoCLy00P0QHGy30XVPyG1tH4FU6YvTfWxxvWE=";
cargoHash = "sha256-5h/0MqaRmjFkeg50Y7WpEDl+VWpR0d4NnqIzoZHeKZ8=";
nativeBuildInputs = [
makeWrapper

View File

@ -1,4 +1,4 @@
{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, buildPackages, targetPackages
# build-tools
, bootPkgs
@ -32,14 +32,19 @@
, # If enabled, use -fPIC when compiling static libs.
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
, enableProfiledLibs ? true
# Exceeds Hydra output limit (at the time of writing ~3GB) when cross compiled to riscv64.
# A riscv64 cross-compiler fits into the limit comfortably.
, enableProfiledLibs ? !stdenv.hostPlatform.isRiscV64
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
, # Whether to build terminfo.
enableTerminfo ? !stdenv.targetPlatform.isWindows
enableTerminfo ? !(stdenv.targetPlatform.isWindows
# terminfo can't be built for cross
|| (stdenv.buildPlatform != stdenv.hostPlatform)
|| (stdenv.hostPlatform != stdenv.targetPlatform))
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
@ -55,25 +60,31 @@
, enableHaddockProgram ?
# Disabled for cross; see note [HADDOCK_DOCS].
(stdenv.targetPlatform == stdenv.hostPlatform)
(stdenv.buildPlatform == stdenv.hostPlatform && stdenv.targetPlatform == stdenv.hostPlatform)
, # Whether to disable the large address space allocator
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
disableLargeAddressSpace ? stdenv.targetPlatform.isiOS
, # Whether to build an unregisterised version of GHC.
# GHC will normally auto-detect whether it can do a registered build, but this
# option will force it to do an unregistered build when set to true.
# See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/unregisterised
enableUnregisterised ? false
}@args:
assert !enableIntegerSimple -> gmp != null;
# Cross cannot currently build the `haddock` program for silly reasons,
# see note [HADDOCK_DOCS].
assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
assert (stdenv.buildPlatform != stdenv.hostPlatform || stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
# GHC does not support building when all 3 platforms are different.
assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == stdenv.targetPlatform;
let
libffi_name = if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then "libffi" else "libffi_3_3";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
inherit (bootPkgs) ghc;
# TODO(@Ericson2314) Make unconditional
targetPrefix = lib.optionalString
(targetPlatform != hostPlatform)
@ -86,6 +97,8 @@ let
endif
BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"}
BUILD_SPHINX_PDF = NO
WITH_TERMINFO = ${if enableTerminfo then "YES" else "NO"}
'' +
# Note [HADDOCK_DOCS]:
# Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock`
@ -134,7 +147,9 @@ let
pkgsBuildTarget.targetPackages.stdenv.cc
] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
buildCC = buildPackages.stdenv.cc;
targetCC = builtins.head toolsForTarget;
installCC = pkgsHostTarget.targetPackages.stdenv.cc;
# toolPath calculates the absolute path to the name tool associated with a
# given `stdenv.cc` derivation, i.e. it picks the correct derivation to take
@ -145,12 +160,13 @@ let
tools = {
"cc" = cc;
"c++" = cc;
as = cc.bintools.bintools;
as = cc.bintools;
ar = cc.bintools.bintools;
ranlib = cc.bintools.bintools;
nm = cc.bintools.bintools;
readelf = cc.bintools.bintools;
ar = cc.bintools;
ranlib = cc.bintools;
nm = cc.bintools;
readelf = cc.bintools;
objdump = cc.bintools;
ld = cc.bintools;
"ld.gold" = cc.bintools;
@ -169,6 +185,9 @@ let
if stdenv.targetPlatform.isDarwin
then cc.bintools
else cc.bintools.bintools;
# clang is used as an assembler on darwin with the LLVM backend
clang = cc;
}.${name};
in
"${tools}/bin/${tools.targetPrefix}${name}";
@ -185,14 +204,40 @@ let
(lib.optionalString enableIntegerSimple "-integer-simple")
];
in
libffi_name =
if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64
then "libffi"
else "libffi_3_3";
# C compiler, bintools and LLVM are used at build time, but will also leak into
# the resulting GHC's settings file and used at runtime. This means that we are
# currently only able to build GHC if hostPlatform == buildPlatform.
assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
# These libraries are library dependencies of the standard libraries bundled
# by GHC (core libs) users will link their compiled artifacts again. Thus,
# they should be taken from targetPackages.
#
# We need to use pkgsHostTarget if we are cross compiling a native GHC compiler,
# though (when native compiling GHC, pkgsHostTarget == targetPackages):
#
# 1. targetPackages would be empty(-ish) in this situation since we can't
# execute cross compiled compilers in order to obtain the libraries
# that would be in targetPackages.
# 2. pkgsHostTarget is fine to use since hostPlatform == targetPlatform in this
# situation.
# 3. The core libs used by the final GHC (stage 2) for user artifacts are also
# used to build stage 2 GHC itself, i.e. the core libs are both host and
# target.
targetLibs =
let
basePackageSet =
if hostPlatform != targetPlatform
then targetPackages
else pkgsHostTarget;
in
{
inherit (basePackageSet) gmp ncurses;
# dynamic inherits are not possible in Nix
libffi = basePackageSet.${libffi_name};
};
in
stdenv.mkDerivation (rec {
version = "8.10.7";
@ -277,6 +322,8 @@ stdenv.mkDerivation (rec {
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
done
# Stage0 (build->build) which builds stage 1
export GHC="${bootPkgs.ghc}/bin/ghc"
# GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools.
export CC="${toolPath "cc" targetCC}"
@ -289,6 +336,7 @@ stdenv.mkDerivation (rec {
export RANLIB="${toolPath "ranlib" targetCC}"
export READELF="${toolPath "readelf" targetCC}"
export STRIP="${toolPath "strip" targetCC}"
export OBJDUMP="${toolPath "objdump" targetCC}"
'' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
export OTOOL="${toolPath "otool" targetCC}"
export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}"
@ -297,8 +345,22 @@ stdenv.mkDerivation (rec {
export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
'' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
# LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
# The executable we specify via $CLANG is used as an assembler (exclusively, it seems, but this isn't
# clarified in any user facing documentation). As such, it'll be called on assembly produced by $CC
# which usually comes from the darwin stdenv. To prevent a situation where $CLANG doesn't understand
# the assembly it is given, we need to make sure that it matches the LLVM version of $CC if possible.
# It is unclear (at the time of writing 2024-09-01) whether $CC should match the LLVM version we use
# for llc and opt which would require using a custom darwin stdenv for targetCC.
export CLANG="${
if targetCC.isClang
then toolPath "clang" targetCC
else "${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
}"
'' + ''
# No need for absolute paths since these tools only need to work during the build
export CC_STAGE0="$CC_FOR_BUILD"
export LD_STAGE0="$LD_FOR_BUILD"
export AR_STAGE0="$AR_FOR_BUILD"
echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@ -329,21 +391,26 @@ stdenv.mkDerivation (rec {
done
'';
# Although it is usually correct to pass --host, we don't do that here because
# GHC's usage of build, host, and target is non-standard.
# See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ]
++ lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" ]
++ lib.optional (buildPlatform != hostPlatform || targetPlatform != hostPlatform) "target";
# `--with` flags for libraries needed for RTS linker
configureFlags = [
"--datadir=$doc/share/doc/ghc"
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ lib.optionals enableTerminfo [
"--with-curses-includes=${lib.getDev targetLibs.ncurses}/include"
"--with-curses-libraries=${lib.getLib targetLibs.ncurses}/lib"
] ++ lib.optionals (args.${libffi_name} != null) [
"--with-system-libffi"
"--with-ffi-includes=${targetPackages.${libffi_name}.dev}/include"
"--with-ffi-libraries=${targetPackages.${libffi_name}.out}/lib"
"--with-ffi-includes=${targetLibs.libffi.dev}/include"
"--with-ffi-libraries=${targetLibs.libffi.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
"--with-gmp-includes=${targetLibs.gmp.dev}/include"
"--with-gmp-libraries=${targetLibs.gmp.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
"--with-iconv-includes=${libiconv}/include"
"--with-iconv-libraries=${libiconv}/lib"
@ -355,6 +422,8 @@ stdenv.mkDerivation (rec {
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ lib.optionals (disableLargeAddressSpace) [
"--disable-large-address-space"
] ++ lib.optionals enableUnregisterised [
"--enable-unregisterised"
];
# Make sure we never relax`$PATH` and hooks support for compatibility.
@ -365,17 +434,35 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [
perl autoreconfHook autoconf automake m4 python3
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
bootPkgs.ghc-settings-edit
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
autoSignDarwinBinariesHook
] ++ lib.optionals enableDocs [
sphinx
];
# Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs.
# See also GHC, {CC,LD,AR}_STAGE0 in preConfigure.
depsBuildBuild = [
# N.B. We do not declare bootPkgs.ghc in any of the stdenv.mkDerivation
# dependency lists to prevent the bintools setup hook from adding ghc's
# lib directory to the linker flags. Instead we tell configure about it
# via the GHC environment variable.
buildCC
# stage0 builds terminfo unconditionally, so we always need ncurses
ncurses
];
# For building runtime libs
depsBuildTarget = toolsForTarget;
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
# Prevent stage0 ghc from leaking into the final result. This was an issue
# with GHC 9.6.
disallowedReferences = [
bootPkgs.ghc
];
buildInputs = [ bash ] ++ (libDeps hostPlatform);
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@ -402,6 +489,39 @@ stdenv.mkDerivation (rec {
requiredSystemFeatures = [ "big-parallel" ];
postInstall = ''
settingsFile="$out/lib/${targetPrefix}${passthru.haskellCompilerName}/settings"
# Make the installed GHC use the host->target tools.
ghc-settings-edit "$settingsFile" \
"C compiler command" "${toolPath "cc" installCC}" \
"Haskell CPP command" "${toolPath "cc" installCC}" \
"C++ compiler command" "${toolPath "c++" installCC}" \
"ld command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \
"Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \
"ar command" "${toolPath "ar" installCC}" \
"ranlib command" "${toolPath "ranlib" installCC}"
''
+ lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
ghc-settings-edit "$settingsFile" \
"otool command" "${toolPath "otool" installCC}" \
"install_name_tool command" "${toolPath "install_name_tool" installCC}"
''
+ lib.optionalString useLLVM ''
ghc-settings-edit "$settingsFile" \
"LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \
"LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt"
''
+ lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
ghc-settings-edit "$settingsFile" \
"LLVM clang command" "${
# See comment for CLANG in preConfigure
if installCC.isClang
then toolPath "clang" installCC
else "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang"
}"
''
+ ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
'';
@ -427,7 +547,8 @@ stdenv.mkDerivation (rec {
guibou
] ++ lib.teams.haskell.members;
timeout = 24 * 3600;
inherit (ghc.meta) license platforms;
platforms = lib.platforms.all;
inherit (bootPkgs.ghc.meta) license;
};
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {

View File

@ -12,6 +12,7 @@
, stdenv
, pkgsBuildTarget
, pkgsHostTarget
, buildPackages
, targetPackages
, fetchpatch
@ -58,15 +59,23 @@
, # If enabled, use -fPIC when compiling static libs.
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
, enableProfiledLibs ? true
# Exceeds Hydra output limit (at the time of writing ~3GB) when cross compiled to riscv64.
# A riscv64 cross-compiler fits into the limit comfortably.
, enableProfiledLibs ? !stdenv.hostPlatform.isRiscV64
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic && !isGhcjs
, # Whether to build terminfo.
# FIXME(@sternenseemann): This actually doesn't influence what hadrian does,
# just what buildInputs etc. looks like. It would be best if we could actually
# tell it what to do like it was possible with make.
enableTerminfo ? !(stdenv.targetPlatform.isWindows
|| stdenv.targetPlatform.isGhcjs)
|| stdenv.targetPlatform.isGhcjs
# terminfo can't be built for cross
|| (stdenv.buildPlatform != stdenv.hostPlatform)
|| (stdenv.hostPlatform != stdenv.targetPlatform))
, # Libdw.c only supports x86_64, i686 and s390x as of 2022-08-04
enableDwarf ? (stdenv.targetPlatform.isx86 ||
@ -117,9 +126,8 @@
-- no way to set this via the command line
finalStage :: Stage
finalStage = ${
# Always build the stage 2 compiler if possible. Note we can currently
# assume hostPlatform == buildPlatform.
# TODO(@sternenseemann): improve this condition when we can cross-compile GHC
# Always build the stage 2 compiler if possible.
# TODO(@sternensemann): unify condition with make-built GHCs
if stdenv.hostPlatform.canExecute stdenv.targetPlatform
then "Stage2" # native compiler or “native” cross e.g. pkgsStatic
else "Stage1" # cross compiler
@ -178,6 +186,15 @@
hash = "sha256-MpvTmFFsNiPDoOp9BhZyWeapeibQ77zgEV+xzZ1UAXs=";
})
]
++ lib.optionals (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.8") [
# Fix unlit being installed under a different name than is used in the
# settings file: https://gitlab.haskell.org/ghc/ghc/-/issues/23317
(fetchpatch {
name = "ghc-9.6-fix-unlit-path.patch";
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/8fde4ac84ec7b1ead238cb158bbef48555d12af9.patch";
hash = "sha256-3+CyRBpebEZi8YpS22SsdGQHqi0drR7cCKPtKbR3zyE=";
})
]
++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [
# Prevent the paths module from emitting symbols that we don't use
# when building with separate outputs.
@ -222,15 +239,25 @@
, # Whether to disable the large address space allocator
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
disableLargeAddressSpace ? stdenv.targetPlatform.isiOS
, # Whether to build an unregisterised version of GHC.
# GHC will normally auto-detect whether it can do a registered build, but this
# option will force it to do an unregistered build when set to true.
# See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/unregisterised
enableUnregisterised ? false
}:
assert !enableNativeBignum -> gmp != null;
# GHC does not support building when all 3 platforms are different.
assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == stdenv.targetPlatform;
# It is currently impossible to cross-compile GHC with Hadrian.
assert stdenv.buildPlatform == stdenv.hostPlatform;
let
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
inherit (bootPkgs) ghc;
# TODO(@Ericson2314) Make unconditional
targetPrefix = lib.optionalString
(targetPlatform != hostPlatform)
@ -265,7 +292,12 @@ let
else pkgsBuildTarget.targetPackages.stdenv.cc)
] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
buildCC = buildPackages.stdenv.cc;
targetCC = builtins.head toolsForTarget;
installCC =
if targetPlatform.isGhcjs
then pkgsHostTarget.emscripten
else pkgsHostTarget.targetPackages.stdenv.cc;
# toolPath calculates the absolute path to the name tool associated with a
# given `stdenv.cc` derivation, i.e. it picks the correct derivation to take
@ -276,12 +308,13 @@ let
tools = {
"cc" = cc;
"c++" = cc;
as = cc.bintools.bintools;
as = cc.bintools;
ar = cc.bintools.bintools;
ranlib = cc.bintools.bintools;
nm = cc.bintools.bintools;
readelf = cc.bintools.bintools;
ar = cc.bintools;
ranlib = cc.bintools;
nm = cc.bintools;
readelf = cc.bintools;
objdump = cc.bintools;
ld = cc.bintools;
"ld.gold" = cc.bintools;
@ -300,6 +333,9 @@ let
if stdenv.targetPlatform.isDarwin
then cc.bintools
else cc.bintools.bintools;
# clang is used as an assembler on darwin with the LLVM backend
clang = cc;
}.${name};
in
"${tools}/bin/${tools.targetPrefix}${name}";
@ -316,14 +352,34 @@ let
(lib.optionalString enableNativeBignum "-native-bignum")
];
in
# These libraries are library dependencies of the standard libraries bundled
# by GHC (core libs) users will link their compiled artifacts again. Thus,
# they should be taken from targetPackages.
#
# We need to use pkgsHostTarget if we are cross compiling a native GHC compiler,
# though (when native compiling GHC, pkgsHostTarget == targetPackages):
#
# 1. targetPackages would be empty(-ish) in this situation since we can't
# execute cross compiled compilers in order to obtain the libraries
# that would be in targetPackages.
# 2. pkgsHostTarget is fine to use since hostPlatform == targetPlatform in this
# situation.
# 3. The core libs used by the final GHC (stage 2) for user artifacts are also
# used to build stage 2 GHC itself, i.e. the core libs are both host and
# target.
targetLibs = {
inherit
(if hostPlatform != targetPlatform then targetPackages else pkgsHostTarget)
elfutils
gmp
libffi
ncurses;
};
# C compiler, bintools and LLVM are used at build time, but will also leak into
# the resulting GHC's settings file and used at runtime. This means that we are
# currently only able to build GHC if hostPlatform == buildPlatform.
assert !targetPlatform.isGhcjs -> targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
# Our Cabal compiler name
haskellCompilerName = "ghc-${version}";
in
stdenv.mkDerivation ({
pname = "${targetPrefix}ghc${variantSuffix}";
@ -346,6 +402,13 @@ stdenv.mkDerivation ({
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
done
# No need for absolute paths since these tools only need to work during the build
export CC_STAGE0="$CC_FOR_BUILD"
export LD_STAGE0="$LD_FOR_BUILD"
export AR_STAGE0="$AR_FOR_BUILD"
# Stage0 (build->build) which builds stage 1
export GHC="${bootPkgs.ghc}/bin/ghc"
# GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools.
export CC="${toolPath "cc" targetCC}"
@ -358,6 +421,7 @@ stdenv.mkDerivation ({
export RANLIB="${toolPath "ranlib" targetCC}"
export READELF="${toolPath "readelf" targetCC}"
export STRIP="${toolPath "strip" targetCC}"
export OBJDUMP="${toolPath "objdump" targetCC}"
'' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
export OTOOL="${toolPath "otool" targetCC}"
export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}"
@ -366,7 +430,17 @@ stdenv.mkDerivation ({
export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
'' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
# LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
# The executable we specify via $CLANG is used as an assembler (exclusively, it seems, but this isn't
# clarified in any user facing documentation). As such, it'll be called on assembly produced by $CC
# which usually comes from the darwin stdenv. To prevent a situation where $CLANG doesn't understand
# the assembly it is given, we need to make sure that it matches the LLVM version of $CC if possible.
# It is unclear (at the time of writing 2024-09-01) whether $CC should match the LLVM version we use
# for llc and opt which would require using a custom darwin stdenv for targetCC.
export CLANG="${
if targetCC.isClang
then toolPath "clang" targetCC
else "${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
}"
'' +
lib.optionalString (stdenv.hostPlatform.isLinux && hostPlatform.libc == "glibc") ''
export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
@ -433,14 +507,16 @@ stdenv.mkDerivation ({
# `--with` flags for libraries needed for RTS linker
configureFlags = [
"--datadir=$doc/share/doc/ghc"
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ lib.optionals enableTerminfo [
"--with-curses-includes=${lib.getDev targetLibs.ncurses}/include"
"--with-curses-libraries=${lib.getLib targetLibs.ncurses}/lib"
] ++ lib.optionals (libffi != null && !targetPlatform.isGhcjs) [
"--with-system-libffi"
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
"--with-ffi-includes=${targetLibs.libffi.dev}/include"
"--with-ffi-libraries=${targetLibs.libffi.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
"--with-gmp-includes=${targetLibs.gmp.dev}/include"
"--with-gmp-libraries=${targetLibs.gmp.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
"--with-iconv-includes=${libiconv}/include"
"--with-iconv-libraries=${libiconv}/lib"
@ -454,14 +530,16 @@ stdenv.mkDerivation ({
"--disable-large-address-space"
] ++ lib.optionals enableDwarf [
"--enable-dwarf-unwind"
"--with-libdw-includes=${lib.getDev targetPackages.elfutils}/include"
"--with-libdw-libraries=${lib.getLib targetPackages.elfutils}/lib"
"--with-libdw-includes=${lib.getDev targetLibs.elfutils}/include"
"--with-libdw-libraries=${lib.getLib targetLibs.elfutils}/lib"
] ++ lib.optionals targetPlatform.isDarwin [
# Darwin uses llvm-ar. GHC will try to use `-L` with `ar` when it is `llvm-ar`
# but it doesnt currently work because Cabal never uses `-L` on Darwin. See:
# https://gitlab.haskell.org/ghc/ghc/-/issues/23188
# https://github.com/haskell/cabal/issues/8882
"fp_cv_prog_ar_supports_dash_l=no"
] ++ lib.optionals enableUnregisterised [
"--enable-unregisterised"
];
# Make sure we never relax`$PATH` and hooks support for compatibility.
@ -471,11 +549,13 @@ stdenv.mkDerivation ({
dontAddExtraLibs = true;
nativeBuildInputs = [
perl ghc hadrian bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
perl hadrian bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
# autoconf and friends are necessary for hadrian to create the bindist
autoconf automake m4
# Python is used in a few scripts invoked by hadrian to generate e.g. rts headers.
python3
# Tool used to update GHC's settings file in postInstall
bootPkgs.ghc-settings-edit
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
autoSignDarwinBinariesHook
] ++ lib.optionals enableDocs [
@ -484,8 +564,25 @@ stdenv.mkDerivation ({
# For building runtime libs
depsBuildTarget = toolsForTarget;
# Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs.
# See also GHC, {CC,LD,AR}_STAGE0 in preConfigure.
depsBuildBuild = [
# N.B. We do not declare bootPkgs.ghc in any of the stdenv.mkDerivation
# dependency lists to prevent the bintools setup hook from adding ghc's
# lib directory to the linker flags. Instead we tell configure about it
# via the GHC environment variable.
buildCC
# stage0 builds terminfo unconditionally, so we always need ncurses
ncurses
];
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
# Prevent stage0 ghc from leaking into the final result. This was an issue
# with GHC 9.6.
disallowedReferences = [
bootPkgs.ghc
];
buildInputs = [ bash ] ++ (libDeps hostPlatform);
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@ -553,19 +650,49 @@ stdenv.mkDerivation ({
# leave bindist directory
popd
settingsFile="$out/lib/${targetPrefix}${haskellCompilerName}/lib/settings"
# Make the installed GHC use the host->target tools.
ghc-settings-edit "$settingsFile" \
"C compiler command" "${toolPath "cc" installCC}" \
"Haskell CPP command" "${toolPath "cc" installCC}" \
"C++ compiler command" "${toolPath "c++" installCC}" \
"ld command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \
"Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \
"ar command" "${toolPath "ar" installCC}" \
"ranlib command" "${toolPath "ranlib" installCC}"
''
+ lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
ghc-settings-edit "$settingsFile" \
"otool command" "${toolPath "otool" installCC}" \
"install_name_tool command" "${toolPath "install_name_tool" installCC}"
''
+ lib.optionalString useLLVM ''
ghc-settings-edit "$settingsFile" \
"LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \
"LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt"
''
+ lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
ghc-settings-edit "$settingsFile" \
"LLVM clang command" "${
# See comment for CLANG in preConfigure
if installCC.isClang
then toolPath "clang" installCC
else "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang"
}"
''
+ ''
# Install the bash completion file.
install -Dm 644 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
'';
passthru = {
inherit bootPkgs targetPrefix;
inherit bootPkgs targetPrefix haskellCompilerName;
inherit llvmPackages;
inherit enableShared;
# Our Cabal compiler name
haskellCompilerName = "ghc-${version}";
# Expose hadrian used for bootstrapping, for debugging purposes
inherit hadrian;
@ -581,7 +708,8 @@ stdenv.mkDerivation ({
guibou
] ++ lib.teams.haskell.members;
timeout = 24 * 3600;
inherit (ghc.meta) license platforms;
platforms = lib.platforms.all;
inherit (bootPkgs.ghc.meta) license;
};
dontStrip = targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm;

View File

@ -3,7 +3,7 @@
, url ? "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz"
}:
{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, buildPackages, targetPackages
# build-tools
, bootPkgs
@ -35,14 +35,19 @@
, # If enabled, use -fPIC when compiling static libs.
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
, enableProfiledLibs ? true
# Exceeds Hydra output limit (at the time of writing ~3GB) when cross compiled to riscv64.
# A riscv64 cross-compiler fits into the limit comfortably.
, enableProfiledLibs ? !stdenv.hostPlatform.isRiscV64
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic
, # Whether to build terminfo.
enableTerminfo ? !stdenv.targetPlatform.isWindows
enableTerminfo ? !(stdenv.targetPlatform.isWindows
# terminfo can't be built for cross
|| (stdenv.buildPlatform != stdenv.hostPlatform)
|| (stdenv.hostPlatform != stdenv.targetPlatform))
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
@ -58,24 +63,33 @@
, enableHaddockProgram ?
# Disabled for cross; see note [HADDOCK_DOCS].
(stdenv.targetPlatform == stdenv.hostPlatform)
(stdenv.buildPlatform == stdenv.hostPlatform && stdenv.targetPlatform == stdenv.hostPlatform)
, # Whether to disable the large address space allocator
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
disableLargeAddressSpace ? stdenv.targetPlatform.isiOS
, # Whether to build an unregisterised version of GHC.
# GHC will normally auto-detect whether it can do a registered build, but this
# option will force it to do an unregistered build when set to true.
# See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/unregisterised
# Registerised RV64 compiler produces programs that segfault
# See https://gitlab.haskell.org/ghc/ghc/-/issues/23957
enableUnregisterised ? stdenv.hostPlatform.isRiscV64 || stdenv.targetPlatform.isRiscV64
}:
assert !enableNativeBignum -> gmp != null;
# Cross cannot currently build the `haddock` program for silly reasons,
# see note [HADDOCK_DOCS].
assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
assert (stdenv.buildPlatform != stdenv.hostPlatform || stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
# GHC does not support building when all 3 platforms are different.
assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == stdenv.targetPlatform;
let
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
inherit (bootPkgs) ghc;
# TODO(@Ericson2314) Make unconditional
targetPrefix = lib.optionalString
(targetPlatform != hostPlatform)
@ -88,6 +102,8 @@ let
endif
BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"}
BUILD_SPHINX_PDF = NO
WITH_TERMINFO = ${if enableTerminfo then "YES" else "NO"}
'' +
# Note [HADDOCK_DOCS]:
# Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock`
@ -134,7 +150,9 @@ let
pkgsBuildTarget.targetPackages.stdenv.cc
] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
buildCC = buildPackages.stdenv.cc;
targetCC = builtins.head toolsForTarget;
installCC = pkgsHostTarget.targetPackages.stdenv.cc;
# toolPath calculates the absolute path to the name tool associated with a
# given `stdenv.cc` derivation, i.e. it picks the correct derivation to take
@ -145,12 +163,13 @@ let
tools = {
"cc" = cc;
"c++" = cc;
as = cc.bintools.bintools;
as = cc.bintools;
ar = cc.bintools.bintools;
ranlib = cc.bintools.bintools;
nm = cc.bintools.bintools;
readelf = cc.bintools.bintools;
ar = cc.bintools;
ranlib = cc.bintools;
nm = cc.bintools;
readelf = cc.bintools;
objdump = cc.bintools;
ld = cc.bintools;
"ld.gold" = cc.bintools;
@ -169,6 +188,9 @@ let
if stdenv.targetPlatform.isDarwin
then cc.bintools
else cc.bintools.bintools;
# clang is used as an assembler on darwin with the LLVM backend
clang = cc;
}.${name};
in
"${tools}/bin/${tools.targetPrefix}${name}";
@ -185,14 +207,30 @@ let
(lib.optionalString enableNativeBignum "-native-bignum")
];
in
# These libraries are library dependencies of the standard libraries bundled
# by GHC (core libs) users will link their compiled artifacts again. Thus,
# they should be taken from targetPackages.
#
# We need to use pkgsHostTarget if we are cross compiling a native GHC compiler,
# though (when native compiling GHC, pkgsHostTarget == targetPackages):
#
# 1. targetPackages would be empty(-ish) in this situation since we can't
# execute cross compiled compilers in order to obtain the libraries
# that would be in targetPackages.
# 2. pkgsHostTarget is fine to use since hostPlatform == targetPlatform in this
# situation.
# 3. The core libs used by the final GHC (stage 2) for user artifacts are also
# used to build stage 2 GHC itself, i.e. the core libs are both host and
# target.
targetLibs = {
inherit
(if hostPlatform != targetPlatform then targetPackages else pkgsHostTarget)
gmp
libffi
ncurses;
};
# C compiler, bintools and LLVM are used at build time, but will also leak into
# the resulting GHC's settings file and used at runtime. This means that we are
# currently only able to build GHC if hostPlatform == buildPlatform.
assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
in
stdenv.mkDerivation (rec {
pname = "${targetPrefix}ghc${variantSuffix}";
@ -282,6 +320,8 @@ stdenv.mkDerivation (rec {
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
done
# Stage0 (build->build) which builds stage 1
export GHC="${bootPkgs.ghc}/bin/ghc"
# GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools.
export CC="${toolPath "cc" targetCC}"
@ -294,6 +334,7 @@ stdenv.mkDerivation (rec {
export RANLIB="${toolPath "ranlib" targetCC}"
export READELF="${toolPath "readelf" targetCC}"
export STRIP="${toolPath "strip" targetCC}"
export OBJDUMP="${toolPath "objdump" targetCC}"
'' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
export OTOOL="${toolPath "otool" targetCC}"
export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}"
@ -302,9 +343,24 @@ stdenv.mkDerivation (rec {
export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
'' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
# LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
# The executable we specify via $CLANG is used as an assembler (exclusively, it seems, but this isn't
# clarified in any user facing documentation). As such, it'll be called on assembly produced by $CC
# which usually comes from the darwin stdenv. To prevent a situation where $CLANG doesn't understand
# the assembly it is given, we need to make sure that it matches the LLVM version of $CC if possible.
# It is unclear (at the time of writing 2024-09-01) whether $CC should match the LLVM version we use
# for llc and opt which would require using a custom darwin stdenv for targetCC.
export CLANG="${
if targetCC.isClang
then toolPath "clang" targetCC
else "${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
}"
''
+ ''
# No need for absolute paths since these tools only need to work during the build
export CC_STAGE0="$CC_FOR_BUILD"
export LD_STAGE0="$LD_FOR_BUILD"
export AR_STAGE0="$AR_FOR_BUILD"
echo -n "${buildMK}" > mk/build.mk
''
+ lib.optionalString (lib.versionOlder version "9.2" || lib.versionAtLeast version "9.4") ''
@ -346,21 +402,26 @@ stdenv.mkDerivation (rec {
'MinBootGhcVersion="8.10"'
'';
# Although it is usually correct to pass --host, we don't do that here because
# GHC's usage of build, host, and target is non-standard.
# See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ]
++ lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" ]
++ lib.optional (buildPlatform != hostPlatform || targetPlatform != hostPlatform) "target";
# `--with` flags for libraries needed for RTS linker
configureFlags = [
"--datadir=$doc/share/doc/ghc"
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ lib.optionals enableTerminfo [
"--with-curses-includes=${lib.getDev targetLibs.ncurses}/include"
"--with-curses-libraries=${lib.getLib targetLibs.ncurses}/lib"
] ++ lib.optionals (libffi != null) [
"--with-system-libffi"
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
"--with-ffi-includes=${targetLibs.libffi.dev}/include"
"--with-ffi-libraries=${targetLibs.libffi.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
"--with-gmp-includes=${targetLibs.gmp.dev}/include"
"--with-gmp-libraries=${targetLibs.gmp.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
"--with-iconv-includes=${libiconv}/include"
"--with-iconv-libraries=${libiconv}/lib"
@ -372,6 +433,8 @@ stdenv.mkDerivation (rec {
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ lib.optionals (disableLargeAddressSpace) [
"--disable-large-address-space"
] ++ lib.optionals enableUnregisterised [
"--enable-unregisterised"
];
# Make sure we never relax`$PATH` and hooks support for compatibility.
@ -382,7 +445,8 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [
perl autoconf automake m4 python3
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
bootPkgs.ghc-settings-edit
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
autoSignDarwinBinariesHook
] ++ lib.optionals enableDocs [
@ -393,10 +457,27 @@ stdenv.mkDerivation (rec {
xattr
];
# Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs.
# See also GHC, {CC,LD,AR}_STAGE0 in preConfigure.
depsBuildBuild = [
# N.B. We do not declare bootPkgs.ghc in any of the stdenv.mkDerivation
# dependency lists to prevent the bintools setup hook from adding ghc's
# lib directory to the linker flags. Instead we tell configure about it
# via the GHC environment variable.
buildCC
# stage0 builds terminfo unconditionally, so we always need ncurses
ncurses
];
# For building runtime libs
depsBuildTarget = toolsForTarget;
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
# Prevent stage0 ghc from leaking into the final result. This was an issue
# with GHC 9.6.
disallowedReferences = [
bootPkgs.ghc
];
buildInputs = [ bash ] ++ (libDeps hostPlatform);
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@ -423,6 +504,39 @@ stdenv.mkDerivation (rec {
requiredSystemFeatures = [ "big-parallel" ];
postInstall = ''
settingsFile="$out/lib/${targetPrefix}${passthru.haskellCompilerName}/settings"
# Make the installed GHC use the host->target tools.
ghc-settings-edit "$settingsFile" \
"C compiler command" "${toolPath "cc" installCC}" \
"Haskell CPP command" "${toolPath "cc" installCC}" \
"C++ compiler command" "${toolPath "c++" installCC}" \
"ld command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \
"Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \
"ar command" "${toolPath "ar" installCC}" \
"ranlib command" "${toolPath "ranlib" installCC}"
''
+ lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
ghc-settings-edit "$settingsFile" \
"otool command" "${toolPath "otool" installCC}" \
"install_name_tool command" "${toolPath "install_name_tool" installCC}"
''
+ lib.optionalString useLLVM ''
ghc-settings-edit "$settingsFile" \
"LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \
"LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt"
''
+ lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
ghc-settings-edit "$settingsFile" \
"LLVM clang command" "${
# See comment for CLANG in preConfigure
if installCC.isClang
then toolPath "clang" installCC
else "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang"
}"
''
+ ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
'';
@ -448,7 +562,8 @@ stdenv.mkDerivation (rec {
guibou
] ++ lib.teams.haskell.members;
timeout = 24 * 3600;
inherit (ghc.meta) license platforms;
platforms = lib.platforms.all;
inherit (bootPkgs.ghc.meta) license;
};
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {

View File

@ -43,14 +43,16 @@ mkCoqDerivation rec {
runHook postInstall
'';
desktopItems = makeDesktopItem {
name = "coqide";
exec = "coqide";
icon = "coq";
desktopName = "CoqIDE";
comment = "Graphical interface for the Coq proof assistant";
categories = [ "Development" "Science" "Math" "IDE" "GTK" ];
};
desktopItems = [
(makeDesktopItem {
name = "coqide";
exec = "coqide";
icon = "coq";
desktopName = "CoqIDE";
comment = "Graphical interface for the Coq proof assistant";
categories = [ "Development" "Science" "Math" "IDE" "GTK" ];
})
];
meta = with lib; {
homepage = "https://coq.inria.fr";

View File

@ -185,6 +185,13 @@ self: super: {
http-api-data = doJailbreak super.http-api-data;
tasty-discover = doJailbreak super.tasty-discover;
# Out of date test data: https://github.com/ocharles/weeder/issues/176
weeder = appendPatch (pkgs.fetchpatch {
name = "weeder-2.9.0-test-fix-expected.patch";
url = "https://github.com/ocharles/weeder/commit/56028d0c80fe89d4f2ae25275aedb72714fec7da.patch";
sha256 = "10zkvclyir3zf21v41zdsvg68vrkq89n64kv9k54742am2i4aygf";
}) super.weeder;
# Allow aeson == 2.1.*
# https://github.com/hdgarrood/aeson-better-errors/issues/23
aeson-better-errors = lib.pipe super.aeson-better-errors [
@ -404,7 +411,7 @@ self: super: {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "1h0vbz95jgj8c380rpy688frnbwind5c2y3ylaw06l2l3j6gdaq3";
sha256 = "0j037sis64gnrll7ajg48cvzzvxqsrhj7vnhiwcqv8wbmbfv0avn";
# delete android and Android directories which cause issues on
# darwin (case insensitive directory). Since we don't need them
# during the build process, we can delete it to prevent a hash
@ -1461,6 +1468,11 @@ self: super: {
'';
}) super.hledger-flow;
# xmonad-contrib >= 0.18.1 for latest XMonad
xmonad-contrib_0_18_1 = super.xmonad-contrib_0_18_1.override {
xmonad = self.xmonad_0_18_0;
};
# Chart-tests needs and compiles some modules from Chart itself
Chart-tests = overrideCabal (old: {
# https://github.com/timbod7/haskell-chart/issues/233
@ -2048,6 +2060,11 @@ self: super: {
tls = self.tls_2_0_6;
});
# Requests version 2 of tls, can be removed once it's the default
diohsc = super.diohsc.overrideScope (self: super: {
tls = self.tls_2_0_6;
});
# Need https://github.com/obsidiansystems/cli-extras/pull/12 and more
cli-extras = doJailbreak super.cli-extras;
@ -2445,9 +2462,7 @@ self: super: {
# See: https://gitlab.haskell.org/ghc/ghc/-/issues/17188
#
# Overwrite the build cores
raaz = overrideCabal (drv: {
enableParallelBuilding = false;
}) super.raaz;
raaz = disableParallelBuilding super.raaz;
# https://github.com/andreymulik/sdp/issues/3
sdp = disableLibraryProfiling super.sdp;
@ -2552,8 +2567,9 @@ self: super: {
relative = "dependent-sum-template";
}) super.dependent-sum-template;
# Too strict bounds on chell: https://github.com/fpco/haskell-filesystem/issues/24
system-fileio = doJailbreak super.system-fileio;
# doJailbreak: too strict bounds on chell: https://github.com/fpco/haskell-filesystem/issues/24
# dontCheck: tests don't typecheck after ghc 8.4 (possibly introduced by api change of unix library)
system-fileio = doJailbreak (dontCheck super.system-fileio);
# Bounds too strict on base and ghc-prim: https://github.com/tibbe/ekg-core/pull/43 (merged); waiting on hackage release
ekg-core = assert super.ekg-core.version == "0.1.1.7"; doJailbreak super.ekg-core;

View File

@ -83,9 +83,6 @@ self: super: ({
with-utf8 = addExtraLibrary pkgs.libiconv super.with-utf8;
with-utf8_1_1_0_0 = addExtraLibrary pkgs.libiconv super.with-utf8_1_1_0_0;
# the system-fileio tests use canonicalizePath, which fails in the sandbox
system-fileio = dontCheck super.system-fileio;
git-annex = overrideCabal (drv: {
# We can't use testFlags since git-annex side steps the Cabal test mechanism
preCheck = drv.preCheck or "" + ''

View File

@ -69,7 +69,6 @@ self: super: {
hpc-coveralls = doJailbreak super.hpc-coveralls; # https://github.com/guillaume-nargeot/hpc-coveralls/issues/82
http-api-data = doJailbreak super.http-api-data;
persistent-sqlite = dontCheck super.persistent-sqlite;
system-fileio = dontCheck super.system-fileio; # avoid dependency on broken "patience"
unicode-transforms = dontCheck super.unicode-transforms;
wl-pprint-extras = doJailbreak super.wl-pprint-extras; # containers >=0.4 && <0.6 is too tight; https://github.com/ekmett/wl-pprint-extras/issues/17
RSA = dontCheck super.RSA; # https://github.com/GaloisInc/RSA/issues/14

View File

@ -5,7 +5,6 @@ with haskellLib;
let
inherit (pkgs) lib;
disableParallelBuilding = haskellLib.overrideCabal (drv: { enableParallelBuilding = false; });
in
self: super: {
@ -55,9 +54,6 @@ self: super: {
unix = null;
xhtml = null;
# https://gitlab.haskell.org/ghc/ghc/-/issues/23392
gi-gtk = disableParallelBuilding super.gi-gtk;
#
# Version upgrades
#
@ -67,14 +63,18 @@ self: super: {
aeson = doDistribute self.aeson_2_2_3_0;
apply-refact = doDistribute self.apply-refact_0_14_0_0;
attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_2_0;
auto-update = super.auto-update_0_2_1;
extensions = doDistribute self.extensions_0_1_0_2;
fourmolu = doDistribute self.fourmolu_0_16_2_0;
hashable = doDistribute self.hashable_1_4_7_0;
integer-conversion = doDistribute self.integer-conversion_0_1_1;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_1_20240511;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0;
http2 = super.http2_5_3_4;
lens = doDistribute self.lens_5_3_2;
lukko = doDistribute self.lukko_0_1_2;
network-control = super.network-control_0_1_3;
network-run = super.network-run_0_4_0;
ormolu = doDistribute self.ormolu_0_7_7_0;
primitive = doDistribute (dontCheck self.primitive_0_9_0_0); # tests introduce a recursive dependency via hspec
quickcheck-instances = doDistribute self.quickcheck-instances_0_3_31;
@ -82,6 +82,7 @@ self: super: {
rerebase = doDistribute self.rerebase_1_21_1;
scientific = doDistribute self.scientific_0_3_8_0;
semirings = doDistribute self.semirings_0_7;
time-manager = super.time-manager_0_1_0;
th-abstraction = doDistribute self.th-abstraction_0_7_0_0;
uuid-types = doDistribute self.uuid-types_1_0_6;
@ -101,9 +102,11 @@ self: super: {
#
base64 = doJailbreak super.base64; # base <4.20
commutative-semigroups = doJailbreak super.commutative-semigroups; # base <4.20
dejafu = doJailbreak super.dejafu; # containers <0.7
floskell = doJailbreak super.floskell; # base <4.20
lucid = doJailbreak super.lucid; # base <4.20
tar = doJailbreak super.tar; # base <4.20
tasty-coverage = doJailbreak super.tasty-coverage; # base <4.20, filepath <1.5
tree-diff = doJailbreak super.tree-diff; # base <4.20
time-compat = doJailbreak super.time-compat; # base <4.20
@ -123,6 +126,9 @@ self: super: {
lukko_0_1_2 = dontCheck super.lukko_0_1_2; # doesn't compile with tasty ==1.4.*
resolv = dontCheck super.resolv; # doesn't compile with filepath ==1.5.*
primitive-unlifted = dontCheck super.primitive-unlifted; # doesn't compile with primitive ==0.9.*
bsb-http-chunked = pkgs.haskell.lib.dontCheck super.bsb-http-chunked; # https://github.com/sjakobi/bsb-http-chunked/issues/45
hinotify = pkgs.haskell.lib.dontCheck super.hinotify; # https://github.com/kolmodin/hinotify/issues/38
warp = pkgs.haskell.lib.dontCheck super.warp_3_4_1; # test suite assumes it can freely call curl
haskell-language-server = disableCabalFlag "retrie" (disableCabalFlag "hlint" (disableCabalFlag "stylishhaskel" (super.haskell-language-server.override {stylish-haskell = null;retrie = null;apply-refact=null;hlint = null;})));

View File

@ -3,7 +3,6 @@
let
inherit (pkgs) lib;
disableParallelBuilding = haskellLib.overrideCabal (drv: { enableParallelBuilding = false; });
in
self: super: {
@ -53,6 +52,4 @@ self: super: {
unix = null;
xhtml = null;
# https://gitlab.haskell.org/ghc/ghc/-/issues/23392
gi-gtk = disableParallelBuilding super.gi-gtk;
}

View File

@ -15,8 +15,6 @@ let
builtins.throw "Check if '${msg}' was resolved in ${pkg.pname} ${pkg.version} and update or remove this";
jailbreakForCurrentVersion = p: v: checkAgainAfter p v "bad bounds" (doJailbreak p);
# Workaround for a ghc-9.6 issue: https://gitlab.haskell.org/ghc/ghc/-/issues/23392
disableParallelBuilding = overrideCabal (drv: { enableParallelBuilding = false; });
in
self: super: {
@ -109,9 +107,6 @@ self: super: {
package-version # doctest <0.21, tasty-hedgehog <1.4
;
# Avoid triggering an issue in ghc-9.6.2
gi-gtk = disableParallelBuilding super.gi-gtk;
# Pending text-2.0 support https://github.com/gtk2hs/gtk2hs/issues/327
gtk = doJailbreak super.gtk;

View File

@ -5,7 +5,6 @@ with haskellLib;
let
inherit (pkgs.stdenv.hostPlatform) isDarwin;
disableParallelBuilding = haskellLib.overrideCabal (drv: { enableParallelBuilding = false; });
in
self: super: {
@ -146,7 +145,4 @@ self: super: {
sha256 = "sha256-umjwgdSKebJdRrXjwHhsi8HBqotx1vFibY9ttLkyT/0=";
}) super.reflex;
# https://gitlab.haskell.org/ghc/ghc/-/issues/23392
gi-gtk = disableParallelBuilding super.gi-gtk;
}

View File

@ -2,12 +2,6 @@
with haskellLib;
let
disableParallelBuilding = overrideCabal (drv: {
enableParallelBuilding = false;
});
in
# cabal2nix doesn't properly add dependencies conditional on arch(javascript)
(self: super: {

View File

@ -158,6 +158,7 @@ broken-packages:
- amqp-conduit # failure in job https://hydra.nixos.org/build/233228080 at 2023-09-02
- amqp-worker # failure in job https://hydra.nixos.org/build/236675859 at 2023-10-04
- analyze # failure in job https://hydra.nixos.org/build/233251441 at 2023-09-02
- anansi # failure in job https://hydra.nixos.org/build/273451545 at 2024-10-01
- anansi-pandoc # failure in job https://hydra.nixos.org/build/233252389 at 2023-09-02
- android-activity # failure in job https://hydra.nixos.org/build/233203400 at 2023-09-02
- android # failure in job https://hydra.nixos.org/build/233222148 at 2023-09-02
@ -611,6 +612,7 @@ broken-packages:
- cabal2ebuild # failure in job https://hydra.nixos.org/build/233221248 at 2023-09-02
- cabal2ghci # failure in job https://hydra.nixos.org/build/233233018 at 2023-09-02
- cabal2json # failure in job https://hydra.nixos.org/build/233196099 at 2023-09-02
- cabal-add # failure in job https://hydra.nixos.org/build/273461296 at 2024-10-01
- cabal-audit # failure in job https://hydra.nixos.org/build/233193414 at 2023-09-02
- cabal-auto-expose # failure in job https://hydra.nixos.org/build/233195440 at 2023-09-02
- cabal-build-programs # failure in job https://hydra.nixos.org/build/257091363 at 2024-04-27
@ -799,8 +801,13 @@ broken-packages:
- clanki # failure in job https://hydra.nixos.org/build/233196970 at 2023-09-02
- clarifai # failure in job https://hydra.nixos.org/build/233229480 at 2023-09-02
- CLASE # failure in job https://hydra.nixos.org/build/233234459 at 2023-09-02
- clash-prelude # failure in job https://hydra.nixos.org/build/233252128 at 2023-09-02
- clashilator # failure in job https://hydra.nixos.org/build/273442437 at 2024-10-01
- clash-multisignal # failure in job https://hydra.nixos.org/build/273463331 at 2024-10-01
- clash-prelude-quickcheck # failure in job https://hydra.nixos.org/build/273453747 at 2024-10-01
- Clash-Royale-Hack-Cheats # failure in job https://hydra.nixos.org/build/233216034 at 2023-09-02
- clash-systemverilog # failure in job https://hydra.nixos.org/build/273453889 at 2024-10-01
- clash-verilog # failure in job https://hydra.nixos.org/build/273466517 at 2024-10-01
- clash-vhdl # failure in job https://hydra.nixos.org/build/273460098 at 2024-10-01
- ClasshSS # failure in job https://hydra.nixos.org/build/255688076 at 2024-04-16
- ClassLaws # failure in job https://hydra.nixos.org/build/233243019 at 2023-09-02
- classy-effects-base # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/237233636 at 2023-10-21
@ -1319,7 +1326,6 @@ broken-packages:
- dijkstra-simple # failure in job https://hydra.nixos.org/build/233218373 at 2023-09-02
- DimensionalHash # failure in job https://hydra.nixos.org/build/233230945 at 2023-09-02
- dino # failure in job https://hydra.nixos.org/build/252725815 at 2024-03-16
- diohsc # failure in job https://hydra.nixos.org/build/259625302 at 2024-05-15
- diophantine # failure in job https://hydra.nixos.org/build/233229215 at 2023-09-02
- diplomacy # failure in job https://hydra.nixos.org/build/233207895 at 2023-09-02
- direct-binary-files # failure in job https://hydra.nixos.org/build/233246387 at 2023-09-02
@ -1329,6 +1335,7 @@ broken-packages:
- directory-ospath-streaming # failure in job https://hydra.nixos.org/build/233240003 at 2023-09-02
- direct-plugins # failure in job https://hydra.nixos.org/build/233211547 at 2023-09-02
- direm # failure in job https://hydra.nixos.org/build/233211496 at 2023-09-02
- dirstream # failure in job https://hydra.nixos.org/build/273442606 at 2024-10-01
- disco # failure in job https://hydra.nixos.org/build/233212298 at 2023-09-02
- discordian-calendar # failure in job https://hydra.nixos.org/build/233218124 at 2023-09-02
- discord-types # failure in job https://hydra.nixos.org/build/233251778 at 2023-09-02
@ -2791,6 +2798,7 @@ broken-packages:
- hs2ps # failure in job https://hydra.nixos.org/build/233258362 at 2023-09-02
- hsakamai # failure in job https://hydra.nixos.org/build/252722933 at 2024-03-16
- hsaml2 # failure in job https://hydra.nixos.org/build/233252618 at 2023-09-02
- hs-asapo # failure in job https://hydra.nixos.org/build/273456994 at 2024-10-01
- hsautogui # failure in job https://hydra.nixos.org/build/253687662 at 2024-03-31
- hsay # failure in job https://hydra.nixos.org/build/233218925 at 2023-09-02
- hsbc # failure in job https://hydra.nixos.org/build/233206310 at 2023-09-02
@ -4809,6 +4817,7 @@ broken-packages:
- proof-assistant-bot # failure in job https://hydra.nixos.org/build/234974688 at 2023-09-13
- proof-combinators # failure in job https://hydra.nixos.org/build/233210521 at 2023-09-02
- PropaFP # failure in job https://hydra.nixos.org/build/233206496 at 2023-09-02
- propeller # failure in job https://hydra.nixos.org/build/273449652 at 2024-10-01
- Proper # failure in job https://hydra.nixos.org/build/233194417 at 2023-09-02
- properties # failure in job https://hydra.nixos.org/build/233240862 at 2023-09-02
- property-list # failure in job https://hydra.nixos.org/build/233254907 at 2023-09-02
@ -5500,6 +5509,7 @@ broken-packages:
- sint # failure in job https://hydra.nixos.org/build/233238431 at 2023-09-02
- siphash # failure in job https://hydra.nixos.org/build/233199344 at 2023-09-02
- sitepipe # failure in job https://hydra.nixos.org/build/233201989 at 2023-09-02
- si-timers # failure in job https://hydra.nixos.org/build/273467737 at 2024-10-01
- sixfiguregroup # failure in job https://hydra.nixos.org/build/233252141 at 2023-09-02
- sixty-five-oh-two # failure in job https://hydra.nixos.org/build/252714578 at 2024-03-16
- sized-grid # failure in job https://hydra.nixos.org/build/233239056 at 2023-09-02
@ -5783,7 +5793,9 @@ broken-packages:
- strict-ghc-plugin # failure in job https://hydra.nixos.org/build/233246830 at 2023-09-02
- strict-impl-params # failure in job https://hydra.nixos.org/build/252732248 at 2024-03-16
- strictly # failure in job https://hydra.nixos.org/build/233197142 at 2023-09-02
- strict-mvar # failure in job https://hydra.nixos.org/build/273459853 at 2024-10-01
- strict-optics # failure in job https://hydra.nixos.org/build/267983907 at 2024-07-31
- strict-stm # failure in job https://hydra.nixos.org/build/273449297 at 2024-10-01
- strict-tuple-lens # failure in job https://hydra.nixos.org/build/233194548 at 2023-09-02
- strict-writer # failure in job https://hydra.nixos.org/build/252725649 at 2024-03-16
- string-class # failure in job https://hydra.nixos.org/build/233230041 at 2023-09-02
@ -5888,7 +5900,6 @@ broken-packages:
- system-command # failure in job https://hydra.nixos.org/build/233239356 at 2023-09-02
- systemd-ntfy # failure in job https://hydra.nixos.org/build/236686880 at 2023-10-04
- system-extra # failure in job https://hydra.nixos.org/build/233203137 at 2023-09-02
- system-fileio # failure in job https://hydra.nixos.org/build/252731084 at 2024-03-16
- system-inotify # failure in job https://hydra.nixos.org/build/233206871 at 2023-09-02
- system-lifted # failure in job https://hydra.nixos.org/build/233236013 at 2023-09-02
- system-linux-proc # failure in job https://hydra.nixos.org/build/233209447 at 2023-09-02
@ -6095,6 +6106,7 @@ broken-packages:
- tiger # failure in job https://hydra.nixos.org/build/233249333 at 2023-09-02
- TigerHash # failure in job https://hydra.nixos.org/build/233208162 at 2023-09-02
- tightrope # failure in job https://hydra.nixos.org/build/233215237 at 2023-09-02
- tiktoken # failure in job https://hydra.nixos.org/build/273448419 at 2024-10-01
- tikzsd # failure in job https://hydra.nixos.org/build/233224431 at 2023-09-02
- timecalc # failure in job https://hydra.nixos.org/build/233207970 at 2023-09-02
- time-extras # failure in job https://hydra.nixos.org/build/233204030 at 2023-09-02
@ -6262,6 +6274,7 @@ broken-packages:
- typed-process-effectful # failure in job https://hydra.nixos.org/build/236684332 at 2023-10-04
- typedquery # failure in job https://hydra.nixos.org/build/233215307 at 2023-09-02
- typed-session # failure in job https://hydra.nixos.org/build/270089993 at 2024-08-31
- typed-session-state-algorithm # failure in job https://hydra.nixos.org/build/273462641 at 2024-10-01
- typed-spreadsheet # failure in job https://hydra.nixos.org/build/233248967 at 2023-09-02
- typed-time # failure in job https://hydra.nixos.org/build/233246930 at 2023-09-02
- typed-wire # failure in job https://hydra.nixos.org/build/233237626 at 2023-09-02
@ -6318,6 +6331,7 @@ broken-packages:
- unboxed # failure in job https://hydra.nixos.org/build/233219555 at 2023-09-02
- unboxed-references # failure in job https://hydra.nixos.org/build/233192713 at 2023-09-02
- unbreak # failure in job https://hydra.nixos.org/build/233242560 at 2023-09-02
- uncertain # failure in job https://hydra.nixos.org/build/273461304 at 2024-10-01
- unescaping-print # failure in job https://hydra.nixos.org/build/252736030 at 2024-03-16
- unfix-binders # failure in job https://hydra.nixos.org/build/233259262 at 2023-09-02
- unfoldable # failure in job https://hydra.nixos.org/build/252721990 at 2024-03-16

View File

@ -34,8 +34,8 @@ default-package-overrides:
- chs-cabal < 0.1.1.2 # Incompatible with Cabal < 3.12
# 2024-08-17: Stackage doesn't contain hnix-store-core >= 0.8 yet, so we need to restrict hnix-store-remote
- hnix-store-remote < 0.7
# 2024-08-26: test failure for >= 2.9 https://github.com/ocharles/weeder/issues/176
- weeder < 2.9.0
# 2024-09-12: match xmonad 0.17.* from Stackage LTS
- xmonad-contrib < 0.18.1
extra-packages:

View File

@ -483,7 +483,6 @@ dont-distribute-packages:
- ampersand
- amqp-streamly
- analyze-client
- anansi
- anansi-hscolour
- anatomy
- animate-example
@ -572,6 +571,7 @@ dont-distribute-packages:
- aviation-weight-balance
- awesomium
- awesomium-glut
- aws-arn
- aws-configuration-tools
- aws-dynamodb-conduit
- aws-dynamodb-streams
@ -673,7 +673,6 @@ dont-distribute-packages:
- bitmaps
- bittorrent
- bla
- blacktip
- blakesum-demo
- blastxml
- blatex
@ -824,7 +823,6 @@ dont-distribute-packages:
- chu2
- chuchu
- chunks
- circuit-notation
- citation-resolve
- citeproc-hs-pandoc-filter
- clac
@ -832,17 +830,7 @@ dont-distribute-packages:
- claferIG
- claferwiki
- clash
- clash-ghc
- clash-lib
- clash-lib-hedgehog
- clash-multisignal
- clash-prelude-hedgehog
- clash-prelude-quickcheck
- clash-shake
- clash-systemverilog
- clash-verilog
- clash-vhdl
- clashilator
- classify-frog
- classy-effects
- classy-effects-th
@ -1144,7 +1132,6 @@ dont-distribute-packages:
- direct-rocksdb
- directory-contents
- dirfiles
- dirstream
- discogs-haskell
- discord-gateway
- discord-hs
@ -1440,6 +1427,8 @@ dont-distribute-packages:
- frpnow-gtk
- frpnow-gtk3
- frpnow-vty
- fs-api
- fs-sim
- ftdi
- ftp-client-conduit
- ftree
@ -2280,7 +2269,6 @@ dont-distribute-packages:
- hyperpublic
- i
- iException
- ice40-prim
- ide-backend
- ide-backend-server
- ideas-math
@ -2337,6 +2325,7 @@ dont-distribute-packages:
- introduction-test
- intset
- invertible-hlist
- io-classes-mtl
- ion
- ipatch
- ipc
@ -2573,7 +2562,6 @@ dont-distribute-packages:
- linnet-conduit
- linux-ptrace
- lio-eci11
- lion
- liquid-base
- liquid-bytestring
- liquid-containers
@ -3157,7 +3145,7 @@ dont-distribute-packages:
- poseidon
- poseidon-postgis
- postgresql-common-persistent
- postgresql-libpq_0_10_2_0
- postgresql-libpq_0_11_0_0
- postgresql-pure
- postgresql-simple-ltree
- postgresql-simple-queue
@ -3306,6 +3294,7 @@ dont-distribute-packages:
- rc
- rdf4h-vocab-activitystreams
- rdioh
- rds-data
- react-flux-servant
- reactive
- reactive-banana-sdl
@ -3403,8 +3392,6 @@ dont-distribute-packages:
- restricted-workers
- rethinkdb-model
- rethinkdb-wereHamster
- retroclash-lib
- retroclash-sim
- rewrite
- rewriting
- rezoom
@ -3556,11 +3543,11 @@ dont-distribute-packages:
- seqloc-datafiles
- sequor
- serdoc-binary
- serial-test-generators
- serpentine
- serv
- serv-wai
- servant-aeson-generics-typescript
- servant-auth-client_0_4_2_0
- servant-auth-hmac
- servant-auth-token
- servant-auth-token-acid
@ -4297,7 +4284,6 @@ dont-distribute-packages:
- yesod-raml-bin
- yesod-raml-docs
- yesod-raml-mock
- yesod-routes-flow
- yesod-routes-typescript
- yesod-session-redis
- yesod-worker

File diff suppressed because it is too large Load Diff

View File

@ -184,6 +184,13 @@ rec {
markBrokenVersion = version: drv: assert drv.version == version; markBroken drv;
markUnbroken = overrideCabal (drv: { broken = false; });
/* disableParallelBuilding drops the -j<n> option from the GHC
command line for the given package. This can be useful in rare
situations where parallel building of a package causes GHC to
fail for some reason.
*/
disableParallelBuilding = overrideCabal (drv: { enableParallelBuilding = false; });
enableLibraryProfiling = overrideCabal (drv: { enableLibraryProfiling = true; });
disableLibraryProfiling = overrideCabal (drv: { enableLibraryProfiling = false; });

View File

@ -176,6 +176,8 @@ rec {
markBrokenVersion = compose.markBrokenVersion;
markUnbroken = compose.markUnbroken;
disableParallelBuilding = compose.disableParallelBuilding;
enableLibraryProfiling = compose.enableLibraryProfiling;
disableLibraryProfiling = compose.disableLibraryProfiling;

View File

@ -17,6 +17,8 @@ self: super: {
# from the latest master instead of the current version on Hackage.
cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix { };
ghc-settings-edit = self.callPackage ../tools/haskell/ghc-settings-edit { };
# https://github.com/channable/vaultenv/issues/1
vaultenv = self.callPackage ../tools/haskell/vaultenv { };

View File

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-BiRuPQEKVJYYgfUsglIuxrBoJBFiQ0ygQmAFrVvCz4Q=";
};
doCheck = true;
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
mesonBuildType = "release";
@ -32,13 +32,15 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ];
strictDeps = true;
nativeCheckInputs = [
cmake
libpng
];
buildInputs = [
zlib
libpng
];
nativeBuildInputs = [

View File

@ -27,7 +27,7 @@
buildPythonPackage rec {
pname = "craft-application";
version = "4.2.4";
version = "4.2.5";
pyproject = true;
disabled = pythonOlder "3.10";
@ -36,7 +36,7 @@ buildPythonPackage rec {
owner = "canonical";
repo = "craft-application";
rev = "refs/tags/${version}";
hash = "sha256-Z9jiIVPh/DozFHoE478VQWinpohOOQplkxFP2ZyAySE=";
hash = "sha256-Y/Eci0ByE1HxUcxWhpQq0F2Ef1xkXZMBDGmUSIyPKII=";
};
postPatch = ''

View File

@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "edk2-pytool-library";
version = "0.21.11";
version = "0.21.12";
pyproject = true;
disabled = pythonOlder "3.10";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "tianocore";
repo = "edk2-pytool-library";
rev = "refs/tags/v${version}";
hash = "sha256-5d/IEa7IGbQ2FIAl6Y8tBJIzCNDPibmhy35CSpcWQ8A=";
hash = "sha256-PIQ/OrZnm+WOlvTzCHb64/bj7/JGKBEbh6lHD0Pm0ro=";
};
build-system = [

View File

@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "imbalanced-learn";
version = "0.12.3";
version = "0.12.4";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-WwB5agFBnpECvUJeJ8MZ1Y0fbPLfp1HgLtf07fZ8PBs=";
hash = "sha256-gVO6OF0pawfZfgkBomJKhsBrSMlML5LaOlNUgnaXt6M=";
};
nativeBuildInputs = [ setuptools ];

View File

@ -1,52 +0,0 @@
{
lib,
buildPythonPackage,
boto3,
cachecontrol,
fetchFromGitHub,
iso3166,
python-dateutil,
requests,
responses,
polyline,
pytestCheckHook,
uritemplate,
}:
buildPythonPackage rec {
pname = "mapbox";
version = "0.18.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "mapbox";
repo = "mapbox-sdk-py";
rev = "0.18.0";
sha256 = "123wsa4j11ps5pkjgylbmw4gnzh2vi22swgmvy50w26glkszh075";
};
propagatedBuildInputs = [
boto3
cachecontrol
iso3166
python-dateutil
requests
polyline
uritemplate
];
nativeCheckInputs = [
pytestCheckHook
responses
];
meta = with lib; {
homepage = "https://github.com/mapbox/mapbox-sdk-py";
license = licenses.mit;
description = "Mapbox SDK for Python";
longDescription = "Low-level client API for Mapbox web services.";
maintainers = with maintainers; [ ersin ];
# ImportError: cannot import name 'Mapping' from 'collections'
# and archived upstreamed
broken = true;
};
}

View File

@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "oelint-parser";
version = "5.0.0";
version = "5.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "priv-kweihmann";
repo = "oelint-parser";
rev = "refs/tags/${version}";
hash = "sha256-7LEjo/Z9mk2gx2vzDKz5cFR5bDTDgjIVVOquj0o/+0I=";
hash = "sha256-0cCcbnipijQgWH+08eZbE6Cqcx5cenrb+bQlf3h04tw=";
};
pythonRelaxDeps = [ "regex" ];

View File

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "optree";
version = "0.12.1";
version = "0.13.0";
pyproject = true;
disabled = pythonOlder "3.7";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "metaopt";
repo = "optree";
rev = "refs/tags/v${version}";
hash = "sha256-4GvB9Z7qnEjsUSl+x5wd8czV80F50MwJdlNdylUU0zY=";
hash = "sha256-HuzfQ1arAF/DbJd9MF0jAxfzWvOHtAfkEMUF+aPfaII=";
};
dontUseCmakeConfigure = true;

View File

@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "twilio";
version = "9.3.2";
version = "9.3.3";
pyproject = true;
disabled = pythonOlder "3.7";
@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "twilio";
repo = "twilio-python";
rev = "refs/tags/${version}";
hash = "sha256-XAJmAdwBF6HM0E89gAP4AOg1vepumJ8O39V0lKr9iDw=";
hash = "sha256-Yb5eeg8m21gjx9ZS7Z/N46p7LGfIBCdrmGoHpD+B+as=";
};
build-system = [ setuptools ];

View File

@ -11,14 +11,14 @@
buildPythonPackage rec {
pname = "uvcclient";
version = "0.12.1";
version = "0.12.2";
pyproject = true;
src = fetchFromGitHub {
owner = "kk7ds";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-ilZTRoSuoJMWlyRfvY/PpTBbr+d6wx+T3cVyW3ZkXlY=";
hash = "sha256-V7xIvZ9vIXHPpkEeJZ6QedWk+4ZVNwCzj5ffLyixFz4=";
};
build-system = [ poetry-core ];

View File

@ -14,21 +14,21 @@ let
channels = {
stable = {
version = "2.14.3";
version = "2.15.1";
hash = {
x86_64-linux = "sha256-CDQmixywYDLj3ABqTEnaUftITSFGA/wGAfe0IFoU64g=";
x86_64-darwin = "sha256-TDpoby2lBw8W6zJrHgF/AQFQL+j9dv3d21VLsiSd1sk=";
aarch64-linux = "sha256-L+2YOMgH1cCl4o1VFZk1dC258/XStgiH9lr9PEQOPSo=";
aarch64-darwin = "sha256-hG3HsJ+DIjwB5ehT+Hd3EZduvjNXYTZLYbAYCRWWiQ8=";
x86_64-linux = "sha256-DB/3iUkgWzAI+3DEQB8heYkG6apUARDulQ4lKDAPN1I=";
x86_64-darwin = "sha256-62tjAC3WtWC8eIkh9dPi2Exksp2gDHyXEU2tCavKZ4Q=";
aarch64-linux = "sha256-957GdH5sDjbjxEt8LXKPBM7vht7T6JizVwYYhbitdpw=";
aarch64-darwin = "sha256-ckcd1u9dgg9LKhr47Yw8dJKkR7hawPie4QNyySH8vyM=";
};
};
mainline = {
version = "2.15.0";
version = "2.16.0";
hash = {
x86_64-linux = "sha256-zM5l3vkLKuDdZHTgVTYfvfYTGLCpDnA2GZDh5PLQ9rs=";
x86_64-darwin = "sha256-AbW92RMaPfusve5DxRaT3npeN2zVzrBOBL3XGN8235I=";
aarch64-linux = "sha256-13FZc1zMmaxfDp0bXBFzf2gcO6wkiA932C5m9oon2GQ=";
aarch64-darwin = "sha256-UP08DncRvM1NjtMOfanDnXGySK1RrCUta5lbIvJ7vto=";
x86_64-linux = "sha256-Uk9oGiLSHBCINAzQg88tlHyMw/OGfdmCw2/NXJs5wbQ=";
x86_64-darwin = "sha256-Bbayv00NDJGUA4M4KyG4XCXIiaQSf4JSgy5VvLSVmAM=";
aarch64-linux = "sha256-nV02uO+UkNNvQDIkh2G+9H8gvk9DOSYyIu4O3nwkYXk=";
aarch64-darwin = "sha256-C9Nm8dW3V25D7J/3ABO5oLGL4wcSCsAXtQNZABwVpWs=";
};
};
};

View File

@ -7,13 +7,13 @@
buildGoModule rec {
pname = "clickhouse-backup";
version = "2.6.1";
version = "2.6.2";
src = fetchFromGitHub {
owner = "Altinity";
repo = "clickhouse-backup";
rev = "v${version}";
hash = "sha256-IaRM0wxG/8O12SuCls9MAtiobPHhuDFoFDaT3ZOn2Hk=";
hash = "sha256-t9sRhcNKFvTTysornYf/7JQ7mkasTunnzKR4pYCAOk0=";
};
vendorHash = "sha256-n3rlijycZ5qZtR/e+Z/UPCcr47p4wN3kFgfWr+73WAQ=";

View File

@ -35,6 +35,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ jre ];
sourceRoot = ".";
installPhase =
let addJars = dir: ''
for jar in ${dir}/*.jar; do

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "google-java-format";
version = "1.23.0";
version = "1.24.0";
src = fetchurl {
url = "https://github.com/google/google-java-format/releases/download/v${version}/google-java-format-${version}-all-deps.jar";
sha256 = "sha256-fGN1rCS0glvmu+YZAOi1ixo+iUShNnqDYyEPntLQhXA=";
sha256 = "sha256-gS+AX1gRJGDt8BvyAqjmHQ/R81wNT6vVQiBkB3bsV6E=";
};
dontUnpack = true;

View File

@ -0,0 +1,2 @@
import Distribution.Simple
main = defaultMain

View File

@ -0,0 +1,31 @@
{
mkDerivation,
base,
containers,
lib,
}:
mkDerivation {
pname = "ghc-settings-edit";
version = "0.1.0";
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./Setup.hs
./ghc-settings-edit.lhs
./ghc-settings-edit.cabal
];
};
isLibrary = false;
isExecutable = true;
executableHaskellDepends = [
base
containers
];
license = [
lib.licenses.mit
lib.licenses.bsd3
];
description = "Tool for editing GHC's settings file";
mainProgram = "ghc-settings-edit";
}

View File

@ -0,0 +1,22 @@
cabal-version: 2.2
name: ghc-settings-edit
version: 0.1.0
synopsis: Tool for editing GHC's settings file
-- TODO: description for hackage
-- TODO: category for hackage
license: MIT AND BSD-3-Clause
author: sternenseemann
-- FIXME: must be email for potential Hackage upload
maintainer: @NixOS/haskell
copyright: © 2024 The Nixpkgs/NixOS contributors
stability: experimental
build-type: Simple
bug-reports: https://github.com/NixOS/nixpkgs/issues
executable ghc-settings-edit
default-language: Haskell2010
-- TODO: bounds for hackage
build-depends: base
, containers
main-is: ghc-settings-edit.lhs
hs-source-dirs: .

View File

@ -0,0 +1,109 @@
ghc-settings-edit is a small tool for changing certain fields in the settings
file that is part of every GHC installation (usually located at
lib/ghc-$version/lib/settings or lib/ghc-$version/settings). This is sometimes
necessary because GHC's build process leaks the tools used at build time into
the final settings file. This is fine, as long as the build and host platform
of the GHC build is the same since it will be possible to execute the tools
used at build time at run time. In case we are cross compiling GHC itself,
the settings file needs to be changed so that the correct tools are used in the
final installation. The GHC build system itself doesn't allow for this due to
its somewhat peculiar bootstrapping mechanism.
This tool was originally written by sternenseemann and is licensed under the MIT
license (as is nixpkgs) as well as the BSD 3 Clause license since it incorporates
some code from GHC. It is primarily intended for use in nixpkgs, so it should be
considered unstable: No guarantees about the stability of its command line
interface are made at this time.
> -- SPDX-License-Identifier: MIT AND BSD-3-Clause
> {-# LANGUAGE LambdaCase #-}
> module Main where
ghc-settings-edit requires no additional dependencies to the ones already
required to bootstrap GHC. This means that it only depends on GHC and core
libraries shipped with the compiler (base and containers). This property should
be preserved going forward as to not needlessly complicate bootstrapping GHC
in nixpkgs. Additionally, a wide range of library versions and thus GHC versions
should be supported (via CPP if necessary).
> import Control.Monad (foldM)
> import qualified Data.Map.Lazy as Map
> import System.Environment (getArgs, getProgName)
> import Text.Read (readEither)
Note that the containers dependency is needed to represent the contents of the
settings file. In theory, [(String, String)] (think lookup) would suffice, but
base doesn't provide any facilities for updating such lists. To avoid needlessly
reinventing the wheel here, we depend on an extra core library.
> type SettingsMap = Map.Map String String
ghc-settings-edit accepts the following arguments:
- The path to the settings file which is edited in place.
- For every field in the settings file to be updated, two arguments need to be
passed: the name of the field and its new value. Any number of these pairs
may be provided. If a field is missing from the given settings file,
it won't be added (see also below).
> usage :: String -> String
> usage name = "Usage: " ++ name ++ " FILE [KEY NEWVAL [KEY2 NEWVAL2 ...]]"
The arguments and the contents of the settings file are fed into the performEdits
function which implements the main logic of ghc-settings-edit (except IO).
> performEdits :: [String] -> String -> Either String String
> performEdits editArgs settingsString = do
First, the settings file is parsed and read into the SettingsMap structure. For
parsing, we can simply rely read, as GHC uses the familiar Read/Show format
(plus some formatting) for storing its settings. This is the main reason
ghc-settings-edit is written in Haskell: We don't need to roll our own parser.
> settingsMap <- Map.fromList <$> readEither settingsString
We also need to parse the remaining command line arguments (after the path)
which means splitting them into pairs of arguments describing the individual
edits. We use the chunkList utility function from GHC for this which is vendored
below. Since it doesn't guarantee that all sublists have the exact length given,
we'll have to check the length of the returned “pairs” later.
> let edits = chunkList 2 editArgs
Since each edit is a transformation of the SettingsMap, we use a fold to go
through the edits. The Either monad allows us to bail out if one is malformed.
The use of Map.adjust ensures that fields that aren't present in the original
settings file aren't added since the corresponding GHC installation wouldn't
understand them. Note that this is done silently which may be suboptimal:
It could be better to fail.
> show . Map.toList <$> foldM applyEdit settingsMap edits
> where
> applyEdit :: SettingsMap -> [String] -> Either String SettingsMap
> applyEdit m [key, newValue] = Right $ Map.adjust (const newValue) key m
> applyEdit _ _ = Left "Uneven number of edit arguments provided"
main just wraps performEdits and takes care of reading from and writing to the
given file.
> main :: IO ()
> main =
> getArgs >>= \case
> (settingsFile:edits) -> do
> orig <- readFile settingsFile
> case performEdits edits orig of
> Right edited -> writeFile settingsFile edited
> Left errorMsg -> error errorMsg
> _ -> do
> name <- getProgName
> error $ usage name
As mentioned, chunkList is taken from GHC, specifically GHC.Utils.Misc of GHC
verson 9.8.2. We don't depend on the ghc library directly (which would be
possible in theory) since there are no stability guarantees or deprecation
windows for the ghc's public library.
> -- | Split a list into chunks of /n/ elements
> chunkList :: Int -> [a] -> [[a]]
> chunkList _ [] = []
> chunkList n xs = as : chunkList n bs where (as,bs) = splitAt n xs

View File

@ -39,15 +39,17 @@ let
hash = "sha256-4T0j2ctHmgWOSCmFG2PZCLJS57nIa5MxmJBpMYzy9FI=";
};
desktopItems = makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = meta.description;
desktopName = nameApp;
genericName = "Java Profiler Tool";
categories = [ "Development" ];
};
desktopItems = [
(makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = meta.description;
desktopName = nameApp;
genericName = "Java Profiler Tool";
categories = [ "Development" ];
})
];
linux = stdenv.mkDerivation {
inherit pname version src desktopItems;

View File

@ -1,12 +1,12 @@
{ stdenv, lib, fetchzip, jdk, makeWrapper, coreutils, curl }:
stdenv.mkDerivation rec {
version = "0.118.0";
version = "0.119.0";
pname = "jbang";
src = fetchzip {
url = "https://github.com/jbangdev/jbang/releases/download/v${version}/${pname}-${version}.tar";
sha256 = "sha256-W3vjKZd2Qh/P652im9U9QWCzBHW1uIM8t5nYIjwkfI8=";
sha256 = "sha256-ebwBRzgpYEomboY+hMok8KmOaNR4hRaPy7SxjHbLeYU=";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "minizinc";
version = "2.8.6";
version = "2.8.7";
src = fetchFromGitHub {
owner = "MiniZinc";
repo = "libminizinc";
rev = finalAttrs.version;
sha256 = "sha256-mWbkCm6nfN4rJpiCfVPo2K29oV2fInMGbFv4J8NDbaw=";
sha256 = "sha256-2JCTOgnzGeh106YBkLPM46MgnB4XHZmdMXNn1P0OBqA=";
};
nativeBuildInputs = [ bison cmake flex jq ];

View File

@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
# not need to know binutils' BINDIR at all. It's an absolute path
# where libraries are stored.
./plugins-no-BINDIR.patch
] ++ lib.optionals buildPlatform.isDarwin [
] ++ lib.optionals hostPlatform.isDarwin [
# Note: Conditional to avoid Linux rebuilds on staging-next. Remove the conditional with the next update.
# ld64 needs `-undefined dynamic_lookup` to link `libctf-nobfd.dylib`, but the Darwin
# version detection in `libtool.m4` fails to detect the Darwin version correctly.
@ -122,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optionals targetPlatform.isVc4 [ flex ]
;
buildInputs = [ zlib gettext ] ++ lib.optionals buildPlatform.isDarwin [ CoreServices ];
buildInputs = [ zlib gettext ] ++ lib.optionals hostPlatform.isDarwin [ CoreServices ];
inherit noSysDirs;

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "pyenv";
version = "2.4.13";
version = "2.4.14";
src = fetchFromGitHub {
owner = "pyenv";
repo = "pyenv";
rev = "refs/tags/v${version}";
hash = "sha256-PwM/CFWAmWM3cairzWh76NXeD/iZHVKZsaaQjv/HLGI=";
hash = "sha256-SOCXr/btqub4affamyBH04rIXFb0oh3Hizpn1pFjfTA=";
};
nativeBuildInputs = [

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "qc";
version = "0.5.1";
version = "0.6.0";
src = fetchFromGitHub {
owner = "qownnotes";
repo = "qc";
rev = "v${version}";
hash = "sha256-SrvcRF2yRGGPTk835ykG+NH9WPoc/bXO5tSj43Q7T3g=";
hash = "sha256-+Mkg8x9f6oqPqPrk6iCHH69+k0jhQGfjtbJwJPLc7Dw=";
};
vendorHash = "sha256-7t5rQliLm6pMUHhtev/kNrQ7AOvmA/rR93SwNQhov6o=";
vendorHash = "sha256-Cg1Op/4okIi2UTtqWnR0N3iMWzrYEaYxmXzvWIibftg=";
ldflags = [
"-s" "-w" "-X=github.com/qownnotes/qc/cmd.version=${version}"

View File

@ -18,15 +18,17 @@ stdenv.mkDerivation rec {
configureFlags = [ "--with-gtk" "--with--board3d" ];
desktopItems = makeDesktopItem {
desktopName = "GNU Backgammon";
name = pname;
genericName = "Backgammon";
comment = meta.description;
exec = pname;
icon = pname;
categories = [ "Game" "GTK" "StrategyGame" ];
};
desktopItems = [
(makeDesktopItem {
desktopName = "GNU Backgammon";
name = pname;
genericName = "Backgammon";
comment = meta.description;
exec = pname;
icon = pname;
categories = [ "Game" "GTK" "StrategyGame" ];
})
];
meta = with lib;
{ description = "World class backgammon application";

View File

@ -48,14 +48,16 @@ stdenv.mkDerivation rec {
libXi
]));
desktopItems = makeDesktopItem {
name = "vintagestory";
desktopName = "Vintage Story";
exec = "vintagestory";
icon = "vintagestory";
comment = "Innovate and explore in a sandbox world";
categories = [ "Game" ];
};
desktopItems = [
(makeDesktopItem {
name = "vintagestory";
desktopName = "Vintage Story";
exec = "vintagestory";
icon = "vintagestory";
comment = "Innovate and explore in a sandbox world";
categories = [ "Game" ];
})
];
installPhase = ''
runHook preInstall

View File

@ -1,33 +1,34 @@
{ lib
, stdenv
, fetchurl
, pkg-config
, nixosTests
, boost
, yaml-cpp
, libsodium
, sqlite
, protobuf
, openssl
, systemd
, mariadb-connector-c
, postgresql
, lua
, openldap
, geoip
, curl
, unixODBC
, lmdb
, tinycdb
{
lib,
stdenv,
fetchurl,
pkg-config,
nixosTests,
boost,
yaml-cpp,
libsodium,
sqlite,
protobuf,
openssl,
systemd,
mariadb-connector-c,
postgresql,
lua,
openldap,
geoip,
curl,
unixODBC,
lmdb,
tinycdb,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "pdns";
version = "4.9.1";
version = "4.9.2";
src = fetchurl {
url = "https://downloads.powerdns.com/releases/pdns-${finalAttrs.version}.tar.bz2";
hash = "sha256-MNlnG48IR3Tby6IPWlOjE00IIqsu3D75aNoDDmMN0Jo=";
hash = "sha256-9XBkBCcEH0xcVHDRbv+VGnA4w1PdxGGydQKQzpmy48I=";
};
# redact configure flags from version output to reduce closure size
patches = [ ./version.patch ];
@ -52,34 +53,38 @@ stdenv.mkDerivation (finalAttrs: {
tinycdb
];
# Configure phase requires 64-bit time_t even on 32-bit platforms.
env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.hostPlatform.is32bit [
"-D_TIME_BITS=64"
"-D_FILE_OFFSET_BITS=64"
]);
configureFlags = [
"--disable-silent-rules"
"--enable-dns-over-tls"
"--enable-unit-tests"
"--enable-reproducible"
"--enable-tools"
"--enable-ixfrdist"
"--enable-systemd"
"--with-libsodium"
"--with-sqlite3"
"--with-libcrypto=${openssl.dev}"
(lib.enableFeature stdenv.hostPlatform.is32bit "experimental-64bit-time_t-support-on-glibc")
(lib.enableFeature false "silent-rules")
(lib.enableFeature true "dns-over-tls")
(lib.enableFeature true "unit-tests")
(lib.enableFeature true "reproducible")
(lib.enableFeature true "tools")
(lib.enableFeature true "ixfrdist")
(lib.enableFeature true "systemd")
(lib.withFeature true "libsodium")
(lib.withFeature true "sqlite3")
(lib.withFeatureAs true "libcrypto" (lib.getDev openssl))
(lib.withFeatureAs true "modules" "")
(lib.withFeatureAs true "dynmodules" (
lib.concatStringsSep " " [
"bind"
"geoip"
"gmysql"
"godbc"
"gpgsql"
"gsqlite3"
"ldap"
"lmdb"
"lua2"
"pipe"
"remote"
"tinydns"
]
))
"sysconfdir=/etc/pdns"
];
# nix destroy with-modules arguments, when using configureFlags
preConfigure = ''
configureFlagsArray+=(
"--with-modules="
"--with-dynmodules=bind geoip gmysql godbc gpgsql gsqlite3 ldap lmdb lua2 pipe remote tinydns"
)
'';
# We want the various utilities to look for the powerdns config in
# /etc/pdns, but to actually install the sample config file in
# $out
@ -92,12 +97,18 @@ stdenv.mkDerivation (finalAttrs: {
nixos = nixosTests.powerdns;
};
__structuredAttrs = true;
meta = with lib; {
description = "Authoritative DNS server";
homepage = "https://www.powerdns.com";
platforms = platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
license = licenses.gpl2Only;
maintainers = with maintainers; [ mic92 disassembler nickcao ];
maintainers = with maintainers; [
mic92
disassembler
nickcao
];
};
})

View File

@ -6,16 +6,16 @@
buildGoModule rec {
pname = "mtail";
version = "3.0.8";
version = "3.0.9";
src = fetchFromGitHub {
owner = "google";
repo = "mtail";
rev = "v${version}";
hash = "sha256-Rnpf0RgGltSrUPHra5LbvVmS9jftcimYM2Zc39xoxDk=";
hash = "sha256-ZyQpTxWBCU+pmulEXi/Y2PimbNMsUlbEFj8r+gTOTA0=";
};
vendorHash = "sha256-30V+SS+fl1qmK/0i7eB4OGI6pv232kNIMPclRyTNWww=";
vendorHash = "sha256-96r2UWM5HUF69BOGW6buV6juJEDYoiBPmR5iGNmI5WA=";
ldflags = [
"-X=main.Branch=main"

View File

@ -71,6 +71,7 @@ rustPlatform.buildRustPackage rec {
--replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
substituteInPlace ./quickwit-proto/build.rs \
--replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
cp /build/cargo-vendor-dir/Cargo.lock /build/source/quickwit/Cargo.lock
'';
sourceRoot = "${src.name}/quickwit";
@ -96,10 +97,6 @@ rustPlatform.buildRustPackage rec {
};
};
cargoPatches =[
./update-time-for-rust-1.80.patch
];
CARGO_PROFILE_RELEASE_LTO = "fat";
CARGO_PROFILE_RELEASE_CODEGEN_UNITS = "1";

View File

@ -1,28 +0,0 @@
diff --git a/Cargo.lock b/Cargo.lock
index db5e22e6..6d48db37 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8225,9 +8225,9 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.34"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
"itoa",
@@ -8258,9 +8258,9 @@ dependencies = [
[[package]]
name = "time-macros"
-version = "0.2.17"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
"num-conv",
"time-core",

View File

@ -6,13 +6,13 @@
stdenvNoCC.mkDerivation rec {
pname = "nu_scripts";
version = "0-unstable-2024-09-26";
version = "0-unstable-2024-10-03";
src = fetchFromGitHub {
owner = "nushell";
repo = pname;
rev = "e10ffbaaa7dc8c9ecd300e72d5f0b6c7e6691175";
hash = "sha256-CT4CI/oKidy7nwiqEbDJxKDuinrcjGQBke9bwwOcD8A=";
rev = "743ccc08ee9b46703b1afaf4d77b59bf723a6d41";
hash = "sha256-4vGUZtDkywHIc1sgu5jU+95rQfl9B2eoGWzfH7xSMac=";
};
installPhase = ''

View File

@ -146,6 +146,8 @@ let
pkgs.pkgsCross.mips64el-linux-gnuabi64.stdenv
pkgs.pkgsCross.mips64el-linux-gnuabin32.stdenv
pkgs.pkgsCross.mingwW64.stdenv
# Uses the expression that is used by the most cross-compil_ed_ GHCs
pkgs.pkgsCross.riscv64.haskell.compiler.native-bignum.ghc948
] ++ lib.optionals (with pkgs.stdenv.buildPlatform; isx86_64 && isLinux) [
# Musl-to-glibc cross on the same architecture tends to turn up

View File

@ -9,14 +9,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "s3ql";
version = "5.2.1";
version = "5.2.2";
pyproject = true;
src = fetchFromGitHub {
owner = "s3ql";
repo = "s3ql";
rev = "refs/tags/s3ql-${version}";
hash = "sha256-85J0ymGe9V6f95Ycdq84dY+UiybhPdFXZzuIBb1nD5c=";
hash = "sha256-D+fUl9UpJ7vxoVzB6MlrgnyAqEYbUkc+0w6iepYuZnk=";
};
build-system = with python3.pkgs; [ setuptools ];

View File

@ -51,13 +51,15 @@ buildPythonApplication rec {
tinycss2
];
desktopItems = makeDesktopItem {
name = pname;
exec = "gaphor";
icon = "gaphor";
comment = meta.description;
desktopName = "Gaphor";
};
desktopItems = [
(makeDesktopItem {
name = pname;
exec = "gaphor";
icon = "gaphor";
comment = meta.description;
desktopName = "Gaphor";
})
];
# Disable automatic wrapGAppsHook3 to prevent double wrapping
dontWrapGApps = true;

Some files were not shown because too many files have changed in this diff Show More