Merge remote-tracking branch 'origin/staging-next'
* origin/staging-next: (62 commits) Re-Revert "lua: fix on darwin by using makeBinaryWrapper (#172749)" openldap: fix cross-compilation makeBinaryWrapper: fix codesign on aarch64-darwin python3Packages.ldap: fix linking with openldap 2.5+ Revert "lua: fix on darwin by using makeBinaryWrapper (#172749)" wine: enable parallel build again pkgsi686Linux.gdb: fix formatting for 32-bit systems gtk4: Fix incorrect merge nixos/openldap: use upstream unit defaults openldap: update maintainers openldap: 2.4.58 -> 2.6.2 Revert "Add mingwW64-llvm cross-system." lua: fix on darwin by using makeBinaryWrapper (#172749) python310Packages.python-mimeparse: execute tests pandas: fix darwin build gtk3: 3.24.33 -> 3.24.33-2022-03-11 gtk4: patch fixing g-c-c crashes e2fsprogs: patch for CVE-2022-1304 firefox-unwrapped: fix cross compilation rustc: expose correct llvmPackages for cross compile ...
This commit is contained in:
commit
3673f148b3
@ -869,7 +869,7 @@ makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
|
||||
makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
|
||||
```
|
||||
|
||||
There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh` for the `makeWrapper` implementation and in `nixpkgs/pkgs/build-support/setup-hooks/make-binary-wrapper.sh` for the `makeBinaryWrapper` implementation.
|
||||
There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh` for the `makeWrapper` implementation and in `nixpkgs/pkgs/build-support/setup-hooks/make-binary-wrapper/make-binary-wrapper.sh` for the `makeBinaryWrapper` implementation.
|
||||
|
||||
`wrapProgram` is a convenience function you probably want to use most of the time, implemented by both `makeWrapper` and `makeBinaryWrapper`.
|
||||
|
||||
|
@ -116,6 +116,11 @@
|
||||
have been removed.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
PostgreSQL now defaults to major version 14.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The new
|
||||
@ -698,6 +703,18 @@
|
||||
the IPv6 loopback address (<literal>::1</literal>).
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>openldap</literal> (and therefore the slapd LDAP
|
||||
server) were updated to version 2.6.2. The project introduced
|
||||
backwards-incompatible changes, namely the removal of the bdb,
|
||||
hdb, ndb, and shell backends in slapd. Therefore before
|
||||
updating, dump your database <literal>slapcat -n 1</literal>
|
||||
in LDIF format, and reimport it after updating your
|
||||
<literal>services.openldap.settings</literal>, which
|
||||
represents your <literal>cn=config</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>openssh</literal> has been update to 8.9p1, changing
|
||||
|
@ -45,6 +45,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
- Pulseaudio has been upgraded to version 15.0 and now optionally [supports additional Bluetooth audio codecs](https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/#supportforldacandaptxbluetoothcodecsplussbcxqsbcwithhigher-qualityparameters) like aptX or LDAC, with codec switching support being available in `pavucontrol`. This feature is disabled by default but can be enabled by using `hardware.pulseaudio.package = pkgs.pulseaudioFull;`.
|
||||
Existing 3rd party modules that provided similar functionality, like `pulseaudio-modules-bt` or `pulseaudio-hsphfpd` are deprecated and have been removed.
|
||||
|
||||
- PostgreSQL now defaults to major version 14.
|
||||
|
||||
- The new [`postgresqlTestHook`](https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook) runs a PostgreSQL server for the duration of package checks.
|
||||
|
||||
- [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details.
|
||||
@ -246,6 +248,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- In the ncdns module, the default value of `services.ncdns.address` has been changed to the IPv6 loopback address (`::1`).
|
||||
|
||||
- `openldap` (and therefore the slapd LDAP server) were updated to version 2.6.2. The project introduced backwards-incompatible changes, namely the removal of the bdb, hdb, ndb, and shell backends in slapd. Therefore before updating, dump your database `slapcat -n 1` in LDIF format, and reimport it after updating your `services.openldap.settings`, which represents your `cn=config`.
|
||||
|
||||
- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
|
||||
|
||||
- `git` no longer hardcodes the path to openssh' ssh binary to reduce the amount of rebuilds. If you are using git with ssh remotes and do not have a ssh binary in your enviroment consider adding `openssh` to it or switching to `gitFull`.
|
||||
|
@ -268,9 +268,14 @@ in {
|
||||
};
|
||||
|
||||
systemd.services.openldap = {
|
||||
description = "LDAP server";
|
||||
description = "OpenLDAP Server Daemon";
|
||||
documentation = [
|
||||
"man:slapd"
|
||||
"man:slapd-config"
|
||||
"man:slapd-mdb"
|
||||
];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
preStart = let
|
||||
settingsFile = pkgs.writeText "config.ldif" (lib.concatStringsSep "\n" (attrsToLdif "cn=config" cfg.settings));
|
||||
|
||||
@ -306,7 +311,7 @@ in {
|
||||
"${openldap}/libexec/slapd" "-u" cfg.user "-g" cfg.group "-F" configDir
|
||||
"-h" (lib.concatStringsSep " " cfg.urlList)
|
||||
]);
|
||||
Type = "forking";
|
||||
Type = "notify";
|
||||
PIDFile = cfg.settings.attrs.olcPidFile;
|
||||
};
|
||||
};
|
||||
|
@ -295,7 +295,8 @@ in
|
||||
# Note: when changing the default, make it conditional on
|
||||
# ‘system.stateVersion’ to maintain compatibility with existing
|
||||
# systems!
|
||||
mkDefault (if versionAtLeast config.system.stateVersion "21.11" then pkgs.postgresql_13
|
||||
mkDefault (if versionAtLeast config.system.stateVersion "22.05" then pkgs.postgresql_14
|
||||
else if versionAtLeast config.system.stateVersion "21.11" then pkgs.postgresql_13
|
||||
else if versionAtLeast config.system.stateVersion "20.03" then pkgs.postgresql_11
|
||||
else if versionAtLeast config.system.stateVersion "17.09" then mkThrow "9_6"
|
||||
else mkThrow "9_5");
|
||||
|
@ -108,7 +108,7 @@ let
|
||||
hostprog_check_table);
|
||||
in
|
||||
[
|
||||
"--argv0" "$0" "--add-flags" (lib.escapeShellArgs flags)
|
||||
"--inherit-argv0" "--add-flags" (lib.escapeShellArgs flags)
|
||||
] ++ lib.optionals withRuby [
|
||||
"--set" "GEM_HOME" "${rubyEnv}/${rubyEnv.ruby.gemPath}"
|
||||
] ++ lib.optionals (binPath != "") [
|
||||
|
@ -72,7 +72,7 @@ let
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
autoPatchelfHook
|
||||
nodePackages.asar
|
||||
(wrapGAppsHook.override { makeBinaryWrapper = makeWrapper; })
|
||||
(wrapGAppsHook.override { inherit makeWrapper; })
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
|
@ -175,9 +175,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
|
||||
done
|
||||
'';
|
||||
|
||||
# Until https://github.com/NixOS/nixpkgs/pull/172617 is applied,
|
||||
# parallel builds do not always work because of a bug in dlltool.
|
||||
enableParallelBuilding = false;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# https://bugs.winehq.org/show_bug.cgi?id=43530
|
||||
# https://github.com/NixOS/nixpkgs/issues/31989
|
||||
|
@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [
|
||||
dpkg
|
||||
(wrapGAppsHook.override { makeBinaryWrapper = makeWrapper; })
|
||||
(wrapGAppsHook.override { inherit makeWrapper; })
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -68,6 +68,7 @@
|
||||
, xorg
|
||||
, zip
|
||||
, zlib
|
||||
, pkgsBuildBuild
|
||||
|
||||
# optionals
|
||||
|
||||
@ -142,16 +143,21 @@ let
|
||||
|
||||
# Target the LLVM version that rustc is built with for LTO.
|
||||
llvmPackages0 = rustc.llvmPackages;
|
||||
llvmPackagesBuildBuild0 = pkgsBuildBuild.rustc.llvmPackages;
|
||||
|
||||
# Force the use of lld and other llvm tools for LTO
|
||||
llvmPackages = llvmPackages0.override {
|
||||
bootBintoolsNoLibc = null;
|
||||
bootBintools = null;
|
||||
};
|
||||
llvmPackagesBuildBuild = llvmPackagesBuildBuild0.override {
|
||||
bootBintoolsNoLibc = null;
|
||||
bootBintools = null;
|
||||
};
|
||||
|
||||
# LTO requires LLVM bintools including ld.lld and llvm-ar.
|
||||
buildStdenv = overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override {
|
||||
inherit (llvmPackages) bintools;
|
||||
bintools = if ltoSupport then buildPackages.rustc.llvmPackages.bintools else stdenv.cc.bintools;
|
||||
});
|
||||
|
||||
# Compile the wasm32 sysroot to build the RLBox Sandbox
|
||||
@ -217,10 +223,15 @@ buildStdenv.mkDerivation ({
|
||||
# two patches.
|
||||
patchFlags = [ "-p1" "-l" ];
|
||||
|
||||
# if not explicitly set, wrong cc from buildStdenv would be used
|
||||
HOST_CC = "${llvmPackagesBuildBuild.stdenv.cc}/bin/cc";
|
||||
HOST_CXX = "${llvmPackagesBuildBuild.stdenv.cc}/bin/c++";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
cargo
|
||||
llvmPackages.llvm # llvm-objdump
|
||||
gnum4
|
||||
llvmPackagesBuildBuild.bintools
|
||||
makeWrapper
|
||||
nodejs
|
||||
perl
|
||||
@ -302,6 +313,9 @@ buildStdenv.mkDerivation ({
|
||||
export MOZILLA_OFFICIAL=1
|
||||
'';
|
||||
|
||||
# firefox has a different definition of configurePlatforms from nixpkgs, see configureFlags
|
||||
configurePlatforms = [ ];
|
||||
|
||||
configureFlags = [
|
||||
"--disable-tests"
|
||||
"--disable-updater"
|
||||
@ -309,7 +323,7 @@ buildStdenv.mkDerivation ({
|
||||
"--enable-default-toolkit=cairo-gtk3${lib.optionalString waylandSupport "-wayland"}"
|
||||
"--enable-system-pixman"
|
||||
"--with-distribution-id=org.nixos"
|
||||
"--with-libclang-path=${llvmPackages.libclang.lib}/lib"
|
||||
"--with-libclang-path=${llvmPackagesBuildBuild.libclang.lib}/lib"
|
||||
"--with-system-ffi"
|
||||
"--with-system-icu"
|
||||
"--with-system-jpeg"
|
||||
@ -320,6 +334,9 @@ buildStdenv.mkDerivation ({
|
||||
"--with-system-png" # needs APNG support
|
||||
"--with-system-webp"
|
||||
"--with-system-zlib"
|
||||
# for firefox, host is buildPlatform, target is hostPlatform
|
||||
"--host=${buildStdenv.buildPlatform.config}"
|
||||
"--target=${buildStdenv.hostPlatform.config}"
|
||||
]
|
||||
# LTO is done using clang and lld on Linux.
|
||||
++ lib.optionals ltoSupport [
|
||||
@ -362,7 +379,6 @@ buildStdenv.mkDerivation ({
|
||||
fontconfig
|
||||
freetype
|
||||
glib
|
||||
gnum4
|
||||
gtk3
|
||||
icu
|
||||
libffi
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, lib, makeDesktopItem, makeWrapper, lndir, config
|
||||
{ stdenv, lib, makeDesktopItem, makeWrapper, makeBinaryWrapper, lndir, config
|
||||
, fetchurl, zip, unzip, jq, xdg-utils, writeText
|
||||
|
||||
## various stuff that can be plugged in
|
||||
@ -231,7 +231,7 @@ let
|
||||
# Symbolic link: wrap the link's target.
|
||||
oldExe="$(readlink -v --canonicalize-existing "$executablePath")"
|
||||
rm "$executablePath"
|
||||
elif wrapperCmd=$(strings -dw "$executablePath" | sed -n '/^makeCWrapper/,/^$/ p'); [[ $wrapperCmd ]]; then
|
||||
elif wrapperCmd=$(${makeBinaryWrapper.extractCmd} "$executablePath"); [[ $wrapperCmd ]]; then
|
||||
# If the executable is a binary wrapper, we need to update its target to
|
||||
# point to $out, but we can't just edit the binary in-place because of length
|
||||
# issues. So we extract the command used to create the wrapper and add the
|
||||
@ -239,10 +239,7 @@ let
|
||||
parseMakeCWrapperCall() {
|
||||
shift # makeCWrapper
|
||||
oldExe=$1; shift
|
||||
for arg do case $arg in
|
||||
--inherit-argv0) oldWrapperArgs+=(--argv0 '$0');; # makeWrapper doesn't understand --inherit-argv0
|
||||
*) oldWrapperArgs+=("$arg");;
|
||||
esac done
|
||||
oldWrapperArgs=("$@")
|
||||
}
|
||||
eval "parseMakeCWrapperCall ''${wrapperCmd//"${browser}"/"$out"}"
|
||||
rm "$executablePath"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook
|
||||
, makeDesktopItem, lib, stdenv, wrapGAppsHook, makeWrapper, alsa-lib, at-spi2-atk
|
||||
, makeDesktopItem, lib, stdenv, wrapGAppsHook, makeShellWrapper, alsa-lib, at-spi2-atk
|
||||
, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf
|
||||
, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11
|
||||
, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
|
||||
@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
|
||||
libxshmfence
|
||||
mesa
|
||||
nss
|
||||
(wrapGAppsHook.override { makeBinaryWrapper = makeWrapper; })
|
||||
wrapGAppsHook
|
||||
makeShellWrapper
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
@ -78,7 +79,7 @@ stdenv.mkDerivation rec {
|
||||
patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
|
||||
$out/opt/${binaryName}/${binaryName}
|
||||
|
||||
wrapProgram $out/opt/${binaryName}/${binaryName} \
|
||||
wrapProgramShell $out/opt/${binaryName}/${binaryName} \
|
||||
"''${gappsWrapperArgs[@]}" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" \
|
||||
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
|
||||
|
@ -40,7 +40,7 @@ in stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
dpkg
|
||||
(wrapGAppsHook.override { makeBinaryWrapper = makeWrapper; })
|
||||
(wrapGAppsHook.override { inherit makeWrapper; })
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib
|
||||
, fetchzip
|
||||
, makeWrapper
|
||||
, makeShellWrapper
|
||||
, makeDesktopItem
|
||||
, stdenv
|
||||
, gtk3
|
||||
@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ gtk3 ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
(wrapGAppsHook.override { makeBinaryWrapper = makeWrapper; })
|
||||
makeShellWrapper
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$(find "$out/toolbox" -name jspawnhelper)"
|
||||
|
||||
makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
|
||||
makeShellWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
|
||||
--chdir "$out/toolbox" \
|
||||
--add-flags "-data ~/.tla-toolbox" \
|
||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}" \
|
||||
|
@ -32,7 +32,7 @@ let
|
||||
# All arguments besides the input and output binaries (${mpv}/bin/mpv and
|
||||
# $out/bin/mpv). These are used by the darwin specific makeWrapper call
|
||||
# used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well.
|
||||
mostMakeWrapperArgs = lib.strings.escapeShellArgs ([ "--argv0" "'$0'"
|
||||
mostMakeWrapperArgs = lib.strings.escapeShellArgs ([ "--inherit-argv0"
|
||||
# These are always needed (TODO: Explain why)
|
||||
"--prefix" "LUA_CPATH" ";" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/?.so"
|
||||
"--prefix" "LUA_PATH" ";" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/?.lua"
|
||||
@ -53,7 +53,7 @@ let
|
||||
)) ++ extraMakeWrapperArgs)
|
||||
;
|
||||
umpvWrapperArgs = lib.strings.escapeShellArgs ([
|
||||
"--argv0" "'$0'"
|
||||
"--inherit-argv0"
|
||||
"--set" "MPV" "${placeholder "out"}/bin/mpv"
|
||||
] ++ extraUmpvWrapperArgs)
|
||||
;
|
||||
|
@ -184,40 +184,6 @@ stdenv.mkDerivation {
|
||||
done
|
||||
'';
|
||||
|
||||
emulation = let
|
||||
fmt =
|
||||
/**/ if targetPlatform.isDarwin then "mach-o"
|
||||
else if targetPlatform.isWindows then "pe"
|
||||
else "elf" + toString targetPlatform.parsed.cpu.bits;
|
||||
endianPrefix = if targetPlatform.isBigEndian then "big" else "little";
|
||||
sep = optionalString (!targetPlatform.isMips && !targetPlatform.isPower && !targetPlatform.isRiscV) "-";
|
||||
arch =
|
||||
/**/ if targetPlatform.isAarch64 then endianPrefix + "aarch64"
|
||||
else if targetPlatform.isAarch32 then endianPrefix + "arm"
|
||||
else if targetPlatform.isx86_64 then "x86-64"
|
||||
else if targetPlatform.isx86_32 then "i386"
|
||||
else if targetPlatform.isMips then {
|
||||
mips = "btsmipn32"; # n32 variant
|
||||
mipsel = "ltsmipn32"; # n32 variant
|
||||
mips64 = "btsmip";
|
||||
mips64el = "ltsmip";
|
||||
}.${targetPlatform.parsed.cpu.name}
|
||||
else if targetPlatform.isMmix then "mmix"
|
||||
else if targetPlatform.isPower then if targetPlatform.isBigEndian then "ppc" else "lppc"
|
||||
else if targetPlatform.isSparc then "sparc"
|
||||
else if targetPlatform.isMsp430 then "msp430"
|
||||
else if targetPlatform.isAvr then "avr"
|
||||
else if targetPlatform.isAlpha then "alpha"
|
||||
else if targetPlatform.isVc4 then "vc4"
|
||||
else if targetPlatform.isOr1k then "or1k"
|
||||
else if targetPlatform.isM68k then "m68k"
|
||||
else if targetPlatform.isS390 then "s390"
|
||||
else if targetPlatform.isRiscV then "lriscv"
|
||||
else if targetPlatform.isRx then "rx"
|
||||
else throw "unknown emulation for platform: ${targetPlatform.config}";
|
||||
in if targetPlatform.useLLVM or false then ""
|
||||
else targetPlatform.bfdEmulation or (fmt + sep + arch);
|
||||
|
||||
strictDeps = true;
|
||||
depsTargetTargetPropagated = extraPackages;
|
||||
|
||||
|
@ -93,11 +93,6 @@ if [ -e @out@/nix-support/add-local-ldflags-before.sh ]; then
|
||||
fi
|
||||
|
||||
|
||||
# Specify the target emulation if nothing is passed in ("-m" overrides this
|
||||
# environment variable). Ensures we never blindly fallback on targeting the host
|
||||
# platform.
|
||||
: ${LDEMULATION:=@emulation@}
|
||||
|
||||
# Three tasks:
|
||||
#
|
||||
# 1. Find all -L... switches for rpath
|
||||
|
@ -14,6 +14,7 @@
|
||||
, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
|
||||
, propagateDoc ? cc != null && cc ? man
|
||||
, extraTools ? [], extraPackages ? [], extraBuildCommands ? ""
|
||||
, nixSupport ? {}
|
||||
, isGNU ? false, isClang ? cc.isClang or false, gnugrep ? null
|
||||
, buildPackages ? {}
|
||||
, libcxx ? null
|
||||
@ -155,6 +156,8 @@ stdenv.mkDerivation {
|
||||
(setenv "NIX_CFLAGS_COMPILE_${suffixSalt}" (concat (getenv "NIX_CFLAGS_COMPILE_${suffixSalt}") " -isystem " arg "/include"))))
|
||||
'(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
|
||||
'';
|
||||
|
||||
inherit nixSupport;
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
@ -521,7 +524,11 @@ stdenv.mkDerivation {
|
||||
##
|
||||
## Extra custom steps
|
||||
##
|
||||
+ extraBuildCommands;
|
||||
+ extraBuildCommands
|
||||
+ lib.strings.concatStringsSep "; "
|
||||
(lib.attrsets.mapAttrsToList
|
||||
(name: value: "echo ${toString value} >> $out/nix-support/${name}")
|
||||
nixSupport);
|
||||
|
||||
inherit expand-response-params;
|
||||
|
||||
|
@ -0,0 +1,26 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, makeSetupHook
|
||||
, dieHook
|
||||
, writeShellScript
|
||||
, tests
|
||||
, cc ? stdenv.cc
|
||||
, sanitizers ? []
|
||||
}:
|
||||
|
||||
makeSetupHook {
|
||||
deps = [ dieHook ]
|
||||
# https://github.com/NixOS/nixpkgs/issues/148189
|
||||
++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) cc;
|
||||
|
||||
substitutions = {
|
||||
cc = "${cc}/bin/cc ${lib.escapeShellArgs (map (s: "-fsanitize=${s}") sanitizers)}";
|
||||
|
||||
# Extract the function call used to create a binary wrapper from its embedded docstring
|
||||
passthru.extractCmd = writeShellScript "extract-binary-wrapper-cmd" ''
|
||||
strings -dw "$1" | sed -n '/^makeCWrapper/,/^$/ p'
|
||||
'';
|
||||
|
||||
passthru.tests = tests.makeBinaryWrapper;
|
||||
};
|
||||
} ./make-binary-wrapper.sh
|
@ -15,24 +15,25 @@ assertExecutable() {
|
||||
# makeWrapper EXECUTABLE OUT_PATH ARGS
|
||||
|
||||
# ARGS:
|
||||
# --argv0 NAME : set name of executed process to NAME
|
||||
# (otherwise it’s called …-wrapped)
|
||||
# --argv0 NAME : set the name of the executed process to NAME
|
||||
# (if unset or empty, defaults to EXECUTABLE)
|
||||
# --inherit-argv0 : the executable inherits argv0 from the wrapper.
|
||||
# (use instead of --argv0 '$0')
|
||||
# --set VAR VAL : add VAR with value VAL to the executable’s
|
||||
# environment
|
||||
# --set VAR VAL : add VAR with value VAL to the executable's environment
|
||||
# --set-default VAR VAL : like --set, but only adds VAR if not already set in
|
||||
# the environment
|
||||
# --unset VAR : remove VAR from the environment
|
||||
# --chdir DIR : change working directory (use instead of --run "cd DIR")
|
||||
# --add-flags FLAGS : add FLAGS to invocation of executable
|
||||
# TODO(@ncfavier): --append-flags
|
||||
|
||||
# --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP
|
||||
# --suffix
|
||||
|
||||
# To troubleshoot a binary wrapper after you compiled it,
|
||||
# use the `strings` command or open the binary file in a text editor.
|
||||
makeWrapper() {
|
||||
makeWrapper() { makeBinaryWrapper "$@"; }
|
||||
makeBinaryWrapper() {
|
||||
local NIX_CFLAGS_COMPILE= NIX_CFLAGS_LINK=
|
||||
local original="$1"
|
||||
local wrapper="$2"
|
||||
@ -43,7 +44,7 @@ makeWrapper() {
|
||||
mkdir -p "$(dirname "$wrapper")"
|
||||
|
||||
makeDocumentedCWrapper "$original" "$@" | \
|
||||
@CC@ \
|
||||
@cc@ \
|
||||
-Wall -Werror -Wpedantic \
|
||||
-Wno-overlength-strings \
|
||||
-Os \
|
||||
@ -52,7 +53,8 @@ makeWrapper() {
|
||||
}
|
||||
|
||||
# Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
|
||||
wrapProgram() {
|
||||
wrapProgram() { wrapProgramBinary "$@"; }
|
||||
wrapProgramBinary() {
|
||||
local prog="$1"
|
||||
local hidden
|
||||
|
||||
@ -63,8 +65,6 @@ wrapProgram() {
|
||||
hidden="${hidden}_"
|
||||
done
|
||||
mv "$prog" "$hidden"
|
||||
# Silence warning about unexpanded $0:
|
||||
# shellcheck disable=SC2016
|
||||
makeWrapper "$hidden" "$prog" --inherit-argv0 "${@:2}"
|
||||
}
|
||||
|
||||
@ -311,8 +311,9 @@ void set_env_suffix(char *env, char *sep, char *suffix) {
|
||||
"
|
||||
}
|
||||
|
||||
# Embed a C string which shows up as readable text in the compiled binary wrapper
|
||||
# documentationString ARGS
|
||||
# Embed a C string which shows up as readable text in the compiled binary wrapper,
|
||||
# giving instructions for recreating the wrapper.
|
||||
# Keep in sync with makeBinaryWrapper.extractCmd
|
||||
docstring() {
|
||||
printf '%s' "const char * DOCSTRING = \"$(escapeStringLiteral "
|
||||
|
||||
@ -333,7 +334,7 @@ makeCWrapper $(formatArgs "$@")
|
||||
|
||||
# formatArgs EXECUTABLE ARGS
|
||||
formatArgs() {
|
||||
printf '%s' "$1"
|
||||
printf '%s' "${1@Q}"
|
||||
shift
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
@ -11,16 +11,18 @@ assertExecutable() {
|
||||
# makeWrapper EXECUTABLE OUT_PATH ARGS
|
||||
|
||||
# ARGS:
|
||||
# --argv0 NAME : set name of executed process to NAME
|
||||
# (otherwise it’s called …-wrapped)
|
||||
# --set VAR VAL : add VAR with value VAL to the executable’s
|
||||
# environment
|
||||
# --argv0 NAME : set the name of the executed process to NAME
|
||||
# (if unset or empty, defaults to EXECUTABLE)
|
||||
# --inherit-argv0 : the executable inherits argv0 from the wrapper.
|
||||
# (use instead of --argv0 '$0')
|
||||
# --set VAR VAL : add VAR with value VAL to the executable's environment
|
||||
# --set-default VAR VAL : like --set, but only adds VAR if not already set in
|
||||
# the environment
|
||||
# --unset VAR : remove VAR from the environment
|
||||
# --chdir DIR : change working directory (use instead of --run "cd DIR")
|
||||
# --run COMMAND : run command before the executable
|
||||
# --add-flags FLAGS : add FLAGS to invocation of executable
|
||||
# TODO(@ncfavier): --append-flags
|
||||
|
||||
# --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP
|
||||
# --suffix
|
||||
@ -29,7 +31,8 @@ assertExecutable() {
|
||||
# --prefix-contents ENV SEP FILES : like --suffix-each, but contents of FILES
|
||||
# are read first and used as VALS
|
||||
# --suffix-contents
|
||||
makeWrapper() {
|
||||
makeWrapper() { makeShellWrapper "$@"; }
|
||||
makeShellWrapper() {
|
||||
local original="$1"
|
||||
local wrapper="$2"
|
||||
local params varName value command separator n fileNames
|
||||
@ -165,6 +168,9 @@ makeWrapper() {
|
||||
elif [[ "$p" == "--argv0" ]]; then
|
||||
argv0="${params[$((n + 1))]}"
|
||||
n=$((n + 1))
|
||||
elif [[ "$p" == "--inherit-argv0" ]]; then
|
||||
# Whichever comes last of --argv0 and --inherit-argv0 wins
|
||||
argv0='$0'
|
||||
else
|
||||
die "makeWrapper doesn't understand the arg $p"
|
||||
fi
|
||||
@ -193,7 +199,8 @@ filterExisting() {
|
||||
}
|
||||
|
||||
# Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
|
||||
wrapProgram() {
|
||||
wrapProgram() { wrapProgramShell "$@"; }
|
||||
wrapProgramShell() {
|
||||
local prog="$1"
|
||||
local hidden
|
||||
|
||||
@ -204,7 +211,5 @@ wrapProgram() {
|
||||
hidden="${hidden}_"
|
||||
done
|
||||
mv "$prog" "$hidden"
|
||||
# Silence warning about unexpanded $0:
|
||||
# shellcheck disable=SC2016
|
||||
makeWrapper "$hidden" "$prog" --argv0 '$0' "${@:2}"
|
||||
makeWrapper "$hidden" "$prog" --inherit-argv0 "${@:2}"
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, makeSetupHook
|
||||
, makeBinaryWrapper
|
||||
, makeWrapper
|
||||
, gobject-introspection
|
||||
, isGraphical ? true
|
||||
, gtk3
|
||||
@ -34,7 +34,7 @@ makeSetupHook {
|
||||
] ++ [
|
||||
|
||||
# We use the wrapProgram function.
|
||||
makeBinaryWrapper
|
||||
makeWrapper
|
||||
];
|
||||
substitutions = {
|
||||
passthru.tests = let
|
||||
|
@ -158,16 +158,17 @@ let
|
||||
] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
|
||||
targetLlvmLibraries.libunwind
|
||||
];
|
||||
extraBuildCommands = ''
|
||||
echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
|
||||
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
|
||||
'' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
|
||||
echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
|
||||
'' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
|
||||
echo "-lunwind" >> $out/nix-support/cc-ldflags
|
||||
'' + lib.optionalString stdenv.targetPlatform.isWasm ''
|
||||
echo "-fno-exceptions" >> $out/nix-support/cc-cflags
|
||||
'' + mkExtraBuildCommands cc;
|
||||
extraBuildCommands = mkExtraBuildCommands cc;
|
||||
nixSupport.cc-cflags =
|
||||
[ "-rtlib=compiler-rt"
|
||||
"-Wno-unused-command-line-argument"
|
||||
"-B${targetLlvmLibraries.compiler-rt}/lib"
|
||||
]
|
||||
++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind"
|
||||
++ lib.optional
|
||||
(!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
|
||||
"-lunwind"
|
||||
++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
|
||||
};
|
||||
|
||||
clangNoLibcxx = wrapCCWith rec {
|
||||
@ -177,11 +178,12 @@ let
|
||||
extraPackages = [
|
||||
targetLlvmLibraries.compiler-rt
|
||||
];
|
||||
extraBuildCommands = ''
|
||||
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
|
||||
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
|
||||
echo "-nostdlib++" >> $out/nix-support/cc-cflags
|
||||
'' + mkExtraBuildCommands cc;
|
||||
extraBuildCommands = mkExtraBuildCommands cc;
|
||||
nixSupport.cc-cflags = [
|
||||
"-rtlib=compiler-rt"
|
||||
"-B${targetLlvmLibraries.compiler-rt}/lib"
|
||||
"-nostdlib++"
|
||||
];
|
||||
};
|
||||
|
||||
clangNoLibc = wrapCCWith rec {
|
||||
@ -191,10 +193,11 @@ let
|
||||
extraPackages = [
|
||||
targetLlvmLibraries.compiler-rt
|
||||
];
|
||||
extraBuildCommands = ''
|
||||
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
|
||||
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
|
||||
'' + mkExtraBuildCommands cc;
|
||||
extraBuildCommands = mkExtraBuildCommands cc;
|
||||
nixSupport.cc-cflags = [
|
||||
"-rtlib=compiler-rt"
|
||||
"-B${targetLlvmLibraries.compiler-rt}/lib"
|
||||
];
|
||||
};
|
||||
|
||||
clangNoCompilerRt = wrapCCWith rec {
|
||||
@ -202,9 +205,8 @@ let
|
||||
libcxx = null;
|
||||
bintools = bintoolsNoLibc';
|
||||
extraPackages = [ ];
|
||||
extraBuildCommands = ''
|
||||
echo "-nostartfiles" >> $out/nix-support/cc-cflags
|
||||
'' + mkExtraBuildCommands0 cc;
|
||||
extraBuildCommands = mkExtraBuildCommands0 cc;
|
||||
nixSupport.cc-cflags = [ "-nostartfiles" ];
|
||||
};
|
||||
|
||||
clangNoCompilerRtWithLibc = wrapCCWith rec {
|
||||
|
@ -33,7 +33,7 @@ import ./default.nix {
|
||||
llvmShared = llvm_14.override { enableSharedLibraries = true; };
|
||||
|
||||
# Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
|
||||
llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_14;
|
||||
llvmPackages = llvmPackages_14;
|
||||
|
||||
# Note: the version MUST be one version prior to the version we're
|
||||
# building
|
||||
|
@ -10,7 +10,7 @@
|
||||
, llvmSharedForBuild
|
||||
, llvmSharedForHost
|
||||
, llvmSharedForTarget
|
||||
, llvmPackagesForBuild # Exposed through rustc for LTO in Firefox
|
||||
, llvmPackages # Exposed through rustc for LTO in Firefox
|
||||
}:
|
||||
{ stdenv, lib
|
||||
, buildPackages
|
||||
@ -64,7 +64,7 @@ in
|
||||
version = rustcVersion;
|
||||
sha256 = rustcSha256;
|
||||
inherit enableRustcDev;
|
||||
inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget llvmPackagesForBuild;
|
||||
inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget llvmPackages;
|
||||
|
||||
patches = rustcPatches;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
|
||||
, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackagesForBuild
|
||||
, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackages
|
||||
, fetchurl, file, python3
|
||||
, darwin, cmake, rust, rustPlatform
|
||||
, pkg-config, openssl
|
||||
@ -179,7 +179,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
passthru = {
|
||||
llvm = llvmShared;
|
||||
llvmPackages = llvmPackagesForBuild;
|
||||
inherit llvmPackages;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,10 +1,11 @@
|
||||
# similar to interpreters/python/default.nix
|
||||
{ stdenv, lib, callPackage, fetchurl, fetchpatch }:
|
||||
{ stdenv, lib, callPackage, fetchurl, fetchpatch, makeBinaryWrapper }:
|
||||
|
||||
rec {
|
||||
lua5_4 = callPackage ./interpreter.nix {
|
||||
sourceVersion = { major = "5"; minor = "4"; patch = "3"; };
|
||||
hash = "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq";
|
||||
makeWrapper = makeBinaryWrapper;
|
||||
|
||||
patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch;
|
||||
};
|
||||
@ -16,6 +17,7 @@ rec {
|
||||
lua5_3 = callPackage ./interpreter.nix {
|
||||
sourceVersion = { major = "5"; minor = "3"; patch = "6"; };
|
||||
hash = "0q3d8qhd7p0b7a4mh9g7fxqksqfs6mr1nav74vq26qvkp2dxcpzw";
|
||||
makeWrapper = makeBinaryWrapper;
|
||||
|
||||
patches =
|
||||
lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ];
|
||||
@ -29,6 +31,7 @@ rec {
|
||||
lua5_2 = callPackage ./interpreter.nix {
|
||||
sourceVersion = { major = "5"; minor = "2"; patch = "4"; };
|
||||
hash = "0jwznq0l8qg9wh5grwg07b5cy3lzngvl5m2nl1ikp6vqssmf9qmr";
|
||||
makeWrapper = makeBinaryWrapper;
|
||||
patches = lib.optional stdenv.isDarwin ./5.2.darwin.patch;
|
||||
};
|
||||
|
||||
@ -40,6 +43,7 @@ rec {
|
||||
lua5_1 = callPackage ./interpreter.nix {
|
||||
sourceVersion = { major = "5"; minor = "1"; patch = "5"; };
|
||||
hash = "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333";
|
||||
makeWrapper = makeBinaryWrapper;
|
||||
patches = (lib.optional stdenv.isDarwin ./5.1.darwin.patch)
|
||||
++ [ ./CVE-2014-5461.patch ];
|
||||
};
|
||||
|
@ -126,6 +126,7 @@ self = stdenv.mkDerivation rec {
|
||||
passthru = rec {
|
||||
buildEnv = callPackage ./wrapper.nix {
|
||||
lua = self;
|
||||
inherit makeWrapper;
|
||||
inherit (luaPackages) requiredLuaModules;
|
||||
};
|
||||
withPackages = import ./with-packages.nix { inherit buildEnv luaPackages;};
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, substituteAll
|
||||
, fetchurl
|
||||
, fetchzip
|
||||
, pkg-config
|
||||
, gettext
|
||||
, docbook-xsl-nons
|
||||
@ -60,7 +60,7 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gtk+3";
|
||||
version = "3.24.33";
|
||||
version = "3.24.33-2022-03-11";
|
||||
|
||||
outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
|
||||
outputBin = "dev";
|
||||
@ -70,9 +70,9 @@ stdenv.mkDerivation rec {
|
||||
gtkCleanImmodulesCache
|
||||
];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
|
||||
sha256 = "sha256-WIsGUi4l0VeemJtvnYob2/L+E83gGgTpBP80aiJeeAE=";
|
||||
src = fetchzip {
|
||||
url = "https://gitlab.gnome.org/GNOME/gtk/-/archive/9d1d2f0a6643570274121fc1473e46a6edc2e32d/gtk-9d1d2f0a6643570274121fc1473e46a6edc2e32d.tar.gz";
|
||||
sha256 = "sha256-+K1Kp3Sklrj/Ly0pSktfQwfcrIKpbf05NQbMDhWJZNI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -201,6 +201,8 @@ stdenv.mkDerivation rec {
|
||||
for f in $dev/bin/gtk-encode-symbolic-svg; do
|
||||
wrapProgram $f --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||
done
|
||||
'' + lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform) ''
|
||||
GTK_PATH="''${out:?}/lib/gtk-3.0/3.0.0/immodules/" ''${dev:?}/bin/gtk-query-immodules-3.0 > "''${out:?}/lib/gtk-3.0/3.0.0/immodules.cache"
|
||||
'';
|
||||
|
||||
# Wrap demos
|
||||
|
@ -20,6 +20,12 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "MNh5sq3m+PRh3vOmd3VdtcAji6v2iNXIPAOz5qvjXO4=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
depsBuildBuild = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
gobject-introspection
|
||||
@ -32,7 +38,7 @@ stdenv.mkDerivation rec {
|
||||
glib
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
configureFlags = lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
|
||||
"--enable-gtk-doc"
|
||||
];
|
||||
|
||||
|
@ -1,33 +1,48 @@
|
||||
{ lib, stdenv, fetchurl, openssl, db, groff, libtool, libsodium
|
||||
, withCyrusSasl ? true
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
|
||||
# dependencies
|
||||
, cyrus_sasl
|
||||
, db
|
||||
, groff
|
||||
, libsodium
|
||||
, libtool
|
||||
, openssl
|
||||
, systemdMinimal
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openldap";
|
||||
version = "2.4.58";
|
||||
version = "2.6.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pname}-${version}.tgz";
|
||||
sha256 = "sha256-V7WSVL4V0L9qmrPVFMHAV3ewISMpFTMTSofJRGj49Hs=";
|
||||
hash = "sha256-gdCTRSMutiSG7PWsrNLFbAxFtKbIwGZhLn9CGiOhz4c";
|
||||
};
|
||||
|
||||
# TODO: separate "out" and "bin"
|
||||
outputs = [ "out" "dev" "man" "devdoc" ];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
"man"
|
||||
"devdoc"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [ groff ];
|
||||
nativeBuildInputs = [
|
||||
groff
|
||||
];
|
||||
|
||||
buildInputs = [ openssl cyrus_sasl db libsodium libtool ];
|
||||
|
||||
# Disable install stripping as it breaks cross-compiling.
|
||||
# We strip binaries anyway in fixupPhase.
|
||||
makeFlags= [
|
||||
"STRIP="
|
||||
"prefix=$(out)"
|
||||
"moduledir=$(out)/lib/modules"
|
||||
"CC=${stdenv.cc.targetPrefix}cc"
|
||||
buildInputs = [
|
||||
cyrus_sasl
|
||||
db
|
||||
libsodium
|
||||
libtool
|
||||
openssl
|
||||
] ++ lib.optionals (stdenv.isLinux) [
|
||||
systemdMinimal
|
||||
];
|
||||
|
||||
preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
|
||||
@ -35,56 +50,64 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-overlays"
|
||||
"--disable-dependency-tracking" # speeds up one-time build
|
||||
"--enable-modules"
|
||||
"--sysconfdir=/etc"
|
||||
"--localstatedir=/var"
|
||||
"--enable-argon2"
|
||||
"--enable-crypt"
|
||||
"--enable-modules"
|
||||
"--enable-overlays"
|
||||
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"--with-yielding_select=yes"
|
||||
"ac_cv_func_memcmp_working=yes"
|
||||
] ++ lib.optional (!withCyrusSasl) "--without-cyrus-sasl"
|
||||
++ lib.optional stdenv.isFreeBSD "--with-pic";
|
||||
] ++ lib.optional stdenv.isFreeBSD "--with-pic";
|
||||
|
||||
postBuild = ''
|
||||
make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/sha2
|
||||
make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/pbkdf2
|
||||
make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/argon2
|
||||
'';
|
||||
|
||||
doCheck = false; # needs a running LDAP server
|
||||
|
||||
installFlags = [
|
||||
"sysconfdir=$(out)/etc"
|
||||
"localstatedir=$(out)/var"
|
||||
"moduledir=$(out)/lib/modules"
|
||||
# The argon2 module hardcodes /usr/bin/install as the path for the
|
||||
# `install` binary, which is overridden here.
|
||||
"INSTALL=install"
|
||||
makeFlags= [
|
||||
"CC=${stdenv.cc.targetPrefix}cc"
|
||||
"STRIP=" # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase.
|
||||
"prefix=${placeholder "out"}"
|
||||
"sysconfdir=${placeholder "out"}/etc"
|
||||
"systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
|
||||
# contrib modules require these
|
||||
"moduledir=${placeholder "out"}/lib/modules"
|
||||
"mandir=${placeholder "out"}/share/man"
|
||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
# Can be unconditional, doing it like this to prevent a mass rebuild.
|
||||
"STRIP_OPTS="
|
||||
];
|
||||
|
||||
# 1. Libraries left in the build location confuse `patchelf --shrink-rpath`
|
||||
# Delete these to let patchelf discover the right path instead.
|
||||
# FIXME: that one can be removed when https://github.com/NixOS/patchelf/pull/98
|
||||
# is in Nixpkgs patchelf.
|
||||
# 2. Fixup broken libtool for openssl and cyrus_sasl (if it is not disabled)
|
||||
preFixup = ''
|
||||
rm -r $out/var
|
||||
rm -r libraries/*/.libs
|
||||
rm -r contrib/slapd-modules/passwd/*/.libs
|
||||
for f in $out/lib/libldap.la $out/lib/libldap_r.la; do
|
||||
substituteInPlace "$f" --replace '-lssl' '-L${lib.getLib openssl}/lib -lssl'
|
||||
'' + lib.optionalString withCyrusSasl ''
|
||||
substituteInPlace "$f" --replace '-lsasl2' '-L${cyrus_sasl.out}/lib -lsasl2'
|
||||
'' + ''
|
||||
extraContribModules = [
|
||||
# https://git.openldap.org/openldap/openldap/-/tree/master/contrib/slapd-modules
|
||||
"passwd/sha2"
|
||||
"passwd/pbkdf2"
|
||||
"passwd/totp"
|
||||
];
|
||||
|
||||
postBuild = ''
|
||||
for module in ${lib.concatStringsSep " " extraContribModules}; do
|
||||
make $makeFlags CC=$CC -C contrib/slapd-modules/$module
|
||||
done
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
substituteInPlace tests/scripts/all \
|
||||
--replace "/bin/rm" "rm"
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
# The directory is empty and serve no purpose.
|
||||
preFixup = ''
|
||||
rm -r $out/var
|
||||
'';
|
||||
|
||||
installFlags = [
|
||||
"prefix=${placeholder "out"}"
|
||||
"moduledir=${placeholder "out"}/lib/modules"
|
||||
"INSTALL=install"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
make $installFlags install -C contrib/slapd-modules/passwd/sha2
|
||||
make $installFlags install -C contrib/slapd-modules/passwd/pbkdf2
|
||||
make $installFlags install-lib -C contrib/slapd-modules/passwd/argon2
|
||||
for module in ${lib.concatStringsSep " " extraContribModules}; do
|
||||
make $installFlags install -C contrib/slapd-modules/$module
|
||||
done
|
||||
chmod +x "$out"/lib/*.{so,dylib}
|
||||
'';
|
||||
|
||||
@ -92,7 +115,7 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://www.openldap.org/";
|
||||
description = "An open source implementation of the Lightweight Directory Access Protocol";
|
||||
license = licenses.openldap;
|
||||
maintainers = with maintainers; [ lovek323 ];
|
||||
maintainers = with maintainers; [ ajs124 das_j hexa ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
94
pkgs/development/python-modules/ldap/0001-Check-whether-libldap-is-threadsafe-on-startup.patch
Normal file
94
pkgs/development/python-modules/ldap/0001-Check-whether-libldap-is-threadsafe-on-startup.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From 3593e2c299c0ac0402f23d44cdbe8e6ff3687b68 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= <ondra@mistotebe.net>
|
||||
Date: Thu, 27 Jan 2022 10:35:56 +0000
|
||||
Subject: [PATCH] Check whether libldap is threadsafe on startup.
|
||||
|
||||
Closes #432
|
||||
---
|
||||
Lib/ldap/constants.py | 2 --
|
||||
Modules/constants.c | 10 ++++++++++
|
||||
setup.cfg | 6 ++++--
|
||||
setup.py | 1 -
|
||||
4 files changed, 14 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Lib/ldap/constants.py b/Lib/ldap/constants.py
|
||||
index 1c1d76a..f76609b 100644
|
||||
--- a/Lib/ldap/constants.py
|
||||
+++ b/Lib/ldap/constants.py
|
||||
@@ -341,9 +341,7 @@ CONSTANTS = (
|
||||
# XXX - these should be errors
|
||||
Int('URL_ERR_BADSCOPE'),
|
||||
Int('URL_ERR_MEM'),
|
||||
- # Int('LIBLDAP_R'),
|
||||
|
||||
- Feature('LIBLDAP_R', 'HAVE_LIBLDAP_R'),
|
||||
Feature('SASL_AVAIL', 'HAVE_SASL'),
|
||||
Feature('TLS_AVAIL', 'HAVE_TLS'),
|
||||
Feature('INIT_FD_AVAIL', 'HAVE_LDAP_INIT_FD'),
|
||||
diff --git a/Modules/constants.c b/Modules/constants.c
|
||||
index 07d6065..8d6f63b 100644
|
||||
--- a/Modules/constants.c
|
||||
+++ b/Modules/constants.c
|
||||
@@ -197,6 +197,8 @@ int
|
||||
LDAPinit_constants(PyObject *m)
|
||||
{
|
||||
PyObject *exc, *nobj;
|
||||
+ struct ldap_apifeature_info info = { 1, "X_OPENLDAP_THREAD_SAFE", 0 };
|
||||
+ int thread_safe = 0;
|
||||
|
||||
/* simple constants */
|
||||
|
||||
@@ -221,6 +223,14 @@ LDAPinit_constants(PyObject *m)
|
||||
return -1;
|
||||
Py_INCREF(LDAPexception_class);
|
||||
|
||||
+#ifdef LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE
|
||||
+ if (ldap_get_option(NULL, LDAP_OPT_API_FEATURE_INFO, &info) == LDAP_SUCCESS) {
|
||||
+ thread_safe = (info.ldapaif_version == 1);
|
||||
+ }
|
||||
+#endif
|
||||
+ if (PyModule_AddIntConstant(m, "LIBLDAP_R", thread_safe) != 0)
|
||||
+ return -1;
|
||||
+
|
||||
/* Generated constants -- see Lib/ldap/constants.py */
|
||||
|
||||
#define add_err(n) do { \
|
||||
diff --git a/setup.cfg b/setup.cfg
|
||||
index 2e372ba..a75f186 100644
|
||||
--- a/setup.cfg
|
||||
+++ b/setup.cfg
|
||||
@@ -5,7 +5,9 @@ license_file = LICENCE
|
||||
defines = HAVE_SASL HAVE_TLS HAVE_LIBLDAP_R
|
||||
extra_compile_args =
|
||||
extra_objects =
|
||||
-libs = ldap_r lber
|
||||
+# Uncomment this if your libldap is not thread-safe and you need libldap_r
|
||||
+# instead
|
||||
+#libs = ldap_r lber
|
||||
|
||||
[install]
|
||||
compile = 1
|
||||
@@ -13,7 +15,7 @@ optimize = 1
|
||||
|
||||
[bdist_rpm]
|
||||
provides = python-ldap
|
||||
-requires = python libldap-2_4
|
||||
+requires = python libldap-2
|
||||
vendor = python-ldap project
|
||||
packager = python-ldap team
|
||||
distribution_name = openSUSE 11.x
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 119b571..b193957 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -132,7 +132,6 @@ setup(
|
||||
extra_objects = LDAP_CLASS.extra_objects,
|
||||
runtime_library_dirs = (not sys.platform.startswith("win"))*LDAP_CLASS.library_dirs,
|
||||
define_macros = LDAP_CLASS.defines + \
|
||||
- ('ldap_r' in LDAP_CLASS.libs or 'oldap_r' in LDAP_CLASS.libs)*[('HAVE_LIBLDAP_R',None)] + \
|
||||
('sasl' in LDAP_CLASS.libs or 'sasl2' in LDAP_CLASS.libs or 'libsasl' in LDAP_CLASS.libs)*[('HAVE_SASL',None)] + \
|
||||
('ssl' in LDAP_CLASS.libs and 'crypto' in LDAP_CLASS.libs)*[('HAVE_TLS',None)] + \
|
||||
[
|
||||
--
|
||||
2.36.0
|
||||
|
@ -12,6 +12,10 @@ buildPythonPackage rec {
|
||||
sha256 = "60464c8fc25e71e0fd40449a24eae482dcd0fb7fcf823e7de627a6525b3e0d12";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./0001-Check-whether-libldap-is-threadsafe-on-startup.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ pyasn1 pyasn1-modules ];
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
@ -93,6 +93,10 @@ buildPythonPackage rec {
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
"test_locale"
|
||||
"test_clipboard"
|
||||
# ValueError: cannot reindex on an axis with duplicate labels
|
||||
#
|
||||
# Attempts to reproduce this problem outside of Hydra failed.
|
||||
"test_reindex_timestamp_with_fold"
|
||||
];
|
||||
|
||||
# Tests have relative paths, and need to reference compiled C extensions
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -12,8 +13,9 @@ buildPythonPackage rec {
|
||||
sha256 = "76e4b03d700a641fd7761d3cd4fdbbdcd787eade1ebfac43f877016328334f78";
|
||||
};
|
||||
|
||||
# error: invalid command 'test'
|
||||
doCheck = false;
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
|
||||
|
@ -1,26 +1,18 @@
|
||||
{ lib, stdenv, fetchurl, fetchpatch
|
||||
, autoreconfHook, perl
|
||||
, gdb, cctools, xnu, bootstrap_cmds
|
||||
, writeScript
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "valgrind";
|
||||
version = "3.18.1";
|
||||
version = "3.19.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://sourceware.org/pub/${pname}/${pname}-${version}.tar.bz2";
|
||||
sha256 = "sha256-AIWaoTp3Lt33giIl9LRu4NOa++Bx0yd42k2ZmECB9/U=";
|
||||
sha256 = "sha256-3V40SG8aSD/3vnMAzBa01rJGkJh4d8MnjXl1NNZzjwI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix tests on Musl.
|
||||
# https://bugs.kde.org/show_bug.cgi?id=445300
|
||||
(fetchpatch {
|
||||
url = "https://bugsfiles.kde.org/attachment.cgi?id=143535";
|
||||
sha256 = "036zyk30rixjvpylw3c7n171n4gpn6zcp7h6ya2dz4h5r478l9i6";
|
||||
})
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" "man" "doc" ];
|
||||
|
||||
hardeningDisable = [ "pie" "stackprotector" ];
|
||||
@ -59,9 +51,6 @@ stdenv.mkDerivation rec {
|
||||
--replace /usr/bin/ld ${cctools}/bin/ld
|
||||
'');
|
||||
|
||||
# To prevent rebuild on linux when moving darwin's postPatch fixes to preConfigure
|
||||
postPatch = "";
|
||||
|
||||
configureFlags =
|
||||
lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit"
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin "--with-xcodedir=${xnu}/include";
|
||||
@ -77,6 +66,21 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = writeScript "update-valgrind" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl pcre common-updater-scripts
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
# Expect the text in format of:
|
||||
# 'Current release: <a href="/downloads/current.html#current">valgrind-3.19.0</a>'
|
||||
new_version="$(curl -s https://valgrind.org/ |
|
||||
pcregrep -o1 'Current release: .*>valgrind-([0-9.]+)</a>')"
|
||||
update-source-version ${pname} "$new_version"
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.valgrind.org/";
|
||||
description = "Debugging and profiling tool suite";
|
||||
|
@ -82,6 +82,12 @@ stdenv.mkDerivation {
|
||||
# override this behavior, forcing ld to search DT_RPATH even when
|
||||
# cross-compiling.
|
||||
./always-search-rpath.patch
|
||||
|
||||
# Fixed in 2.39
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=28885
|
||||
# https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=99852365513266afdd793289813e8e565186c9e6
|
||||
# https://github.com/NixOS/nixpkgs/issues/170946
|
||||
./deterministic-temp-prefixes.patch
|
||||
]
|
||||
++ lib.optional targetPlatform.isiOS ./support-ios.patch
|
||||
# This patch was suggested by Nick Clifton to fix
|
||||
|
@ -0,0 +1,36 @@
|
||||
From 99852365513266afdd793289813e8e565186c9e6 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Clifton <nickc@redhat.com>
|
||||
Date: Wed, 23 Mar 2022 11:39:49 +0000
|
||||
Subject: [PATCH] dlltool: Use the output name as basis for deterministic temp
|
||||
prefixes
|
||||
|
||||
PR 28885
|
||||
* dlltool.c (main): use imp_name rather than dll_name when
|
||||
generating a temporary file name.
|
||||
---
|
||||
binutils/ChangeLog | 9 +++++++++
|
||||
binutils/dlltool.c | 7 ++++---
|
||||
2 files changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/binutils/dlltool.c b/binutils/dlltool.c
|
||||
index d95bf3f5470..89871510b45 100644
|
||||
--- a/binutils/dlltool.c
|
||||
+++ b/binutils/dlltool.c
|
||||
@@ -3992,10 +3992,11 @@ main (int ac, char **av)
|
||||
if (tmp_prefix == NULL)
|
||||
{
|
||||
/* If possible use a deterministic prefix. */
|
||||
- if (dll_name)
|
||||
+ if (imp_name || delayimp_name)
|
||||
{
|
||||
- tmp_prefix = xmalloc (strlen (dll_name) + 2);
|
||||
- sprintf (tmp_prefix, "%s_", dll_name);
|
||||
+ const char *input = imp_name ? imp_name : delayimp_name;
|
||||
+ tmp_prefix = xmalloc (strlen (input) + 2);
|
||||
+ sprintf (tmp_prefix, "%s_", input);
|
||||
for (i = 0; tmp_prefix[i]; i++)
|
||||
if (!ISALNUM (tmp_prefix[i]))
|
||||
tmp_prefix[i] = '_';
|
||||
--
|
||||
2.31.1
|
||||
|
68
pkgs/development/tools/misc/gdb/32-bit-BFD_VMA-format.patch
Normal file
68
pkgs/development/tools/misc/gdb/32-bit-BFD_VMA-format.patch
Normal file
@ -0,0 +1,68 @@
|
||||
Fix iWerror=format build for 32-bit systems.
|
||||
https://sourceware.org/pipermail/gdb-patches/2022-May/189288.html
|
||||
--- a/sim/cris/sim-if.c
|
||||
+++ b/sim/cris/sim-if.c
|
||||
@@ -257,7 +257,8 @@ cris_load_elf_file (SIM_DESC sd, struct bfd *abfd, sim_write_fn do_write)
|
||||
|
||||
if (verbose)
|
||||
sim_io_printf (sd,
|
||||
- "Loading segment at 0x%" BFD_VMA_FMT "x, size 0x%lx\n",
|
||||
+ "Loading segment at 0x%" BFD_VMA_FMT "x, "
|
||||
+ "size 0x%" BFD_VMA_FMT "x\n",
|
||||
lma, phdr[i].p_filesz);
|
||||
|
||||
if (bfd_seek (abfd, phdr[i].p_offset, SEEK_SET) != 0
|
||||
@@ -265,7 +266,7 @@ cris_load_elf_file (SIM_DESC sd, struct bfd *abfd, sim_write_fn do_write)
|
||||
{
|
||||
sim_io_eprintf (sd,
|
||||
"%s: could not read segment at 0x%" BFD_VMA_FMT "x, "
|
||||
- "size 0x%lx\n",
|
||||
+ "size 0x%" BFD_VMA_FMT "x\n",
|
||||
STATE_MY_NAME (sd), lma, phdr[i].p_filesz);
|
||||
free (buf);
|
||||
return FALSE;
|
||||
@@ -275,7 +276,7 @@ cris_load_elf_file (SIM_DESC sd, struct bfd *abfd, sim_write_fn do_write)
|
||||
{
|
||||
sim_io_eprintf (sd,
|
||||
"%s: could not load segment at 0x%" BFD_VMA_FMT "x, "
|
||||
- "size 0x%lx\n",
|
||||
+ "size 0x%" BFD_VMA_FMT "x\n",
|
||||
STATE_MY_NAME (sd), lma, phdr[i].p_filesz);
|
||||
free (buf);
|
||||
return FALSE;
|
||||
@@ -572,7 +573,8 @@ cris_handle_interpreter (SIM_DESC sd, struct bfd *abfd)
|
||||
memory area, so we go via a temporary area. Luckily, the
|
||||
interpreter is supposed to be small, less than 0x40000
|
||||
bytes. */
|
||||
- sim_do_commandf (sd, "memory region 0x%" BFD_VMA_FMT "x,0x%lx",
|
||||
+ sim_do_commandf (sd, "memory region 0x%" BFD_VMA_FMT "x,"
|
||||
+ "0x%" BFD_VMA_FMT "x",
|
||||
interp_load_addr, interpsiz);
|
||||
|
||||
/* Now that memory for the interpreter is defined, load it. */
|
||||
--- a/sim/m32c/syscalls.c
|
||||
+++ b/sim/m32c/syscalls.c
|
||||
@@ -299,8 +299,8 @@ m32c_syscall (int id)
|
||||
|
||||
rv = gettimeofday (&tv, 0);
|
||||
if (trace)
|
||||
- printf ("gettimeofday: %ld sec %ld usec to 0x%x\n", tv.tv_sec,
|
||||
- tv.tv_usec, tvaddr);
|
||||
+ printf ("gettimeofday: %lld sec %lld usec to 0x%x\n",
|
||||
+ (long long)tv.tv_sec, (long long)tv.tv_usec, tvaddr);
|
||||
mem_put_si (tvaddr, tv.tv_sec);
|
||||
mem_put_si (tvaddr + 4, tv.tv_usec);
|
||||
put_reg (r0, rv);
|
||||
--- a/sim/rx/syscalls.c
|
||||
+++ b/sim/rx/syscalls.c
|
||||
@@ -270,8 +270,8 @@ rx_syscall (int id)
|
||||
|
||||
rv = gettimeofday (&tv, 0);
|
||||
if (trace)
|
||||
- printf ("gettimeofday: %ld sec %ld usec to 0x%x\n", tv.tv_sec,
|
||||
- tv.tv_usec, tvaddr);
|
||||
+ printf ("gettimeofday: %lld sec %lld usec to 0x%x\n",
|
||||
+ (long long)tv.tv_sec, (long long)tv.tv_usec, tvaddr);
|
||||
mem_put_si (tvaddr, tv.tv_sec);
|
||||
mem_put_si (tvaddr + 4, tv.tv_usec);
|
||||
put_reg (1, rv);
|
@ -1,24 +1,17 @@
|
||||
diff -ur a/gdb/main.c b/gdb/main.c
|
||||
--- a/gdb/main.c 2020-02-08 13:50:14.000000000 +0100
|
||||
+++ b/gdb/main.c 2020-02-24 10:02:07.731806739 +0100
|
||||
@@ -567,9 +567,17 @@
|
||||
gdb_sysroot = xstrdup (TARGET_SYSROOT_PREFIX);
|
||||
}
|
||||
--- a/gdb/main.c
|
||||
+++ b/gdb/main.c
|
||||
@@ -708,8 +708,12 @@ captured_main_1 (struct captured_main_args *context)
|
||||
if (gdb_sysroot.empty ())
|
||||
gdb_sysroot = TARGET_SYSROOT_PREFIX;
|
||||
|
||||
- debug_file_directory
|
||||
- = xstrdup (relocate_gdb_directory (DEBUGDIR,
|
||||
- DEBUGDIR_RELOCATABLE).c_str ());
|
||||
+ debug_file_directory = getenv ("NIX_DEBUG_INFO_DIRS");
|
||||
+ if (debug_file_directory != NULL)
|
||||
+ // This might be updated later using
|
||||
+ // $ set debug-file-directory /to/some/path
|
||||
+ // which will use xfree. We must then have a xmallocated
|
||||
+ // copy of the string that can be xfeed later.
|
||||
+ debug_file_directory = xstrdup (debug_file_directory);
|
||||
- = relocate_gdb_directory (DEBUGDIR, DEBUGDIR_RELOCATABLE);
|
||||
+ const char * nix_debug = getenv ("NIX_DEBUG_INFO_DIRS");
|
||||
+ if (nix_debug != NULL)
|
||||
+ debug_file_directory = nix_debug;
|
||||
+ else
|
||||
+ debug_file_directory
|
||||
+ = xstrdup (relocate_gdb_directory (DEBUGDIR,
|
||||
+ DEBUGDIR_RELOCATABLE).c_str ());
|
||||
+ = relocate_gdb_directory (DEBUGDIR, DEBUGDIR_RELOCATABLE);
|
||||
|
||||
gdb_datadir = relocate_gdb_directory (GDB_DATADIR,
|
||||
GDB_DATADIR_RELOCATABLE);
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib, stdenv, targetPackages
|
||||
|
||||
# Build time
|
||||
, fetchurl, fetchpatch, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
|
||||
, fetchurl, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
|
||||
|
||||
# Run time
|
||||
, ncurses, readline, gmp, mpfr, expat, libipt, zlib, dejagnu, sourceHighlight
|
||||
@ -15,6 +15,7 @@
|
||||
# targetPackages so we get the right libc when cross-compiling and using buildPackages.gdb
|
||||
targetPackages.stdenv.cc.cc.lib
|
||||
]
|
||||
, writeScript
|
||||
}:
|
||||
|
||||
let
|
||||
@ -27,36 +28,32 @@ assert pythonSupport -> python3 != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = targetPrefix + basename;
|
||||
version = "11.2";
|
||||
version = "12.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/gdb/${basename}-${version}.tar.xz";
|
||||
hash = "sha256-FJfDanGIG4ZxqahKDuQPqreIyjDXuhnYRjw8x4cVLjI=";
|
||||
hash = "sha256-DheTv48rVNU/Rt6oTM/URvSPgbKXsoxPf8AXuBjWn+0=";
|
||||
};
|
||||
|
||||
postPatch = if stdenv.isDarwin then ''
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace gdb/darwin-nat.c \
|
||||
--replace '#include "bfd/mach-o.h"' '#include "mach-o.h"'
|
||||
'' else if stdenv.hostPlatform.isMusl then ''
|
||||
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
substituteInPlace sim/erc32/erc32.c --replace sys/fcntl.h fcntl.h
|
||||
substituteInPlace sim/erc32/interf.c --replace sys/fcntl.h fcntl.h
|
||||
substituteInPlace sim/erc32/sis.c --replace sys/fcntl.h fcntl.h
|
||||
substituteInPlace sim/ppc/emul_unix.c --replace sys/termios.h termios.h
|
||||
'' else null;
|
||||
'';
|
||||
|
||||
patches = [
|
||||
./debug-info-from-env.patch
|
||||
|
||||
# Pull upstream fix for gcc-12. Will be included in gdb-12.
|
||||
(fetchpatch {
|
||||
name = "gcc-12.patch";
|
||||
url = "https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=e97436b1b789dcdb6ffb502263f4c86f8bc22996";
|
||||
sha256 = "1mpgw6s9qgnwhwyg3hagc6vhqhvia0l1s8nr22bcahwqxi3wvzcw";
|
||||
})
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
./darwin-target-match.patch
|
||||
] ++ lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
|
||||
name = "musl-fix-pagesize-page_size.patch";
|
||||
url = "https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=fd0975b96b16d96010dce439af9620d3dfb65426";
|
||||
hash = "sha256-M3U7uIIFJnYu0g8/sMLJPhm02q7cGOi6pLjgsUUjeKI=";
|
||||
});
|
||||
# Does not nave to be conditional. We apply it conditionally
|
||||
# to speed up inclusion to nearby nixos release.
|
||||
] ++ lib.optionals stdenv.is32bit [
|
||||
./32-bit-BFD_VMA-format.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config texinfo perl setupDebugInfoDirs ];
|
||||
|
||||
@ -115,6 +112,20 @@ stdenv.mkDerivation rec {
|
||||
# TODO: Investigate & fix the test failures.
|
||||
doCheck = false;
|
||||
|
||||
passthru = {
|
||||
updateScript = writeScript "update-gdb" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl pcre common-updater-scripts
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
# Expect the text in format of '<h3>GDB version 12.1</h3>'
|
||||
new_version="$(curl -s https://www.sourceware.org/gdb/ |
|
||||
pcregrep -o1 '<h3>GDB version ([0-9.]+)</h3>')"
|
||||
update-source-version ${pname} "$new_version"
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "The GNU Project debugger";
|
||||
|
||||
|
@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
|
||||
buildInputs = lib.optional stdenv.hostPlatform.isLinux alsa-lib;
|
||||
configurePlatforms = [];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 contrib/sndiod.service $out/lib/systemd/system/sndiod.service
|
||||
|
@ -202,9 +202,9 @@ let
|
||||
in self: {
|
||||
|
||||
postgresql_10 = self.callPackage generic {
|
||||
version = "10.20";
|
||||
version = "10.21";
|
||||
psqlSchema = "10.0"; # should be 10, but changing it is invasive
|
||||
sha256 = "sha256-h94W1ZvP5C+mBcMSxZvl4pToo+astlXdetR8u5MKZZ8=";
|
||||
sha256 = "sha256-0yGYhW1Sqab11QZC74ZoesBYvW78pcntV754CElvRdE=";
|
||||
this = self.postgresql_10;
|
||||
thisAttr = "postgresql_10";
|
||||
inherit self;
|
||||
@ -212,36 +212,36 @@ in self: {
|
||||
};
|
||||
|
||||
postgresql_11 = self.callPackage generic {
|
||||
version = "11.15";
|
||||
version = "11.16";
|
||||
psqlSchema = "11.1"; # should be 11, but changing it is invasive
|
||||
sha256 = "sha256-yPWOjr1PRWf0+boQMus+meAlHYfL4+VktIVZDjeoeeM=";
|
||||
sha256 = "sha256-LdnhEfCllJ7nyswGXOoPshCSkpuuMQzgW/AbT/xRA6U=";
|
||||
this = self.postgresql_11;
|
||||
thisAttr = "postgresql_11";
|
||||
inherit self;
|
||||
};
|
||||
|
||||
postgresql_12 = self.callPackage generic {
|
||||
version = "12.10";
|
||||
version = "12.11";
|
||||
psqlSchema = "12";
|
||||
sha256 = "sha256-g90ZLmA0lRGSuahtwZzzcXqLghIOLxGgo2cjyCDSslc=";
|
||||
sha256 = "sha256-ECYkil/Svur0PkxyNqyBflbVi2gaM1hWRl37x1s+gwI=";
|
||||
this = self.postgresql_12;
|
||||
thisAttr = "postgresql_12";
|
||||
inherit self;
|
||||
};
|
||||
|
||||
postgresql_13 = self.callPackage generic {
|
||||
version = "13.6";
|
||||
version = "13.7";
|
||||
psqlSchema = "13";
|
||||
sha256 = "sha256-uvx/o9nU2o/nG4TGO6i9/oCSk1wwwKqFwkssCFCPZ/w=";
|
||||
sha256 = "sha256-G5Bb9PPYNhSjk7PFH9NFkQ/SYeT1Ekpo2aH906KkY5k=";
|
||||
this = self.postgresql_13;
|
||||
thisAttr = "postgresql_13";
|
||||
inherit self;
|
||||
};
|
||||
|
||||
postgresql_14 = self.callPackage generic {
|
||||
version = "14.2";
|
||||
version = "14.3";
|
||||
psqlSchema = "14";
|
||||
sha256 = "sha256-LPeLLkaJEvgQHWldtTQM8xPC6faKYS+3FCdSToyal3o=";
|
||||
sha256 = "sha256-J5BXNov1mpGcBa2o+VxeBKu0PnS5oqacPUaiDgeprzg=";
|
||||
this = self.postgresql_14;
|
||||
thisAttr = "postgresql_14";
|
||||
inherit self;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pg-safeupdate";
|
||||
version = "1.2";
|
||||
version = "1.4";
|
||||
|
||||
buildInputs = [ postgresql ];
|
||||
|
||||
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "eradman";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "010m57jcv5v8pyfm1cqs3a306y750lvnvla9m5d98v5vdx3349jg";
|
||||
sha256 = "sha256-1cyvVEC9MQGMr7Tg6EUbsVBrMc8ahdFS3+CmDkmAq4Y=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -72,7 +72,15 @@ with pkgs;
|
||||
|
||||
dhall = callPackage ./dhall { };
|
||||
|
||||
makeWrapper = callPackage ./make-wrapper {};
|
||||
makeWrapper = callPackage ./make-wrapper { };
|
||||
makeBinaryWrapper = callPackage ./make-binary-wrapper {
|
||||
makeBinaryWrapper = pkgs.makeBinaryWrapper.override {
|
||||
# Enable sanitizers in the tests only, to avoid the performance cost in regular usage.
|
||||
# The sanitizers cause errors on aarch64-darwin, see https://github.com/NixOS/nixpkgs/pull/150079#issuecomment-994132734
|
||||
sanitizers = pkgs.lib.optionals (! (pkgs.stdenv.isDarwin && pkgs.stdenv.isAarch64))
|
||||
[ "undefined" "address" ];
|
||||
};
|
||||
};
|
||||
|
||||
pkgs-lib = recurseIntoAttrs (import ../pkgs-lib/tests { inherit pkgs; });
|
||||
}
|
||||
|
@ -23,15 +23,20 @@ stdenv.mkDerivation rec {
|
||||
++ lib.optionals stdenv.isLinux [ fuse ];
|
||||
|
||||
# Only use glibc's __GNUC_PREREQ(X,Y) (checks if compiler is gcc version >= X.Y) when using glibc
|
||||
patches = if stdenv.hostPlatform.libc == "glibc" then null
|
||||
else [
|
||||
(fetchpatch {
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "CVE-2022-1304.patch";
|
||||
url = "https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/patch/?id=ab51d587bb9b229b1fade1afd02e1574c1ba5c76";
|
||||
sha256 = "sha256-YEEow34/81NBOc6F6FS6i505FCQ7GHeIz0a0qWNs7Fg=";
|
||||
})
|
||||
] ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/void-linux/void-packages/9583597eb3e6e6b33f61dbc615d511ce030bc443/srcpkgs/e2fsprogs/patches/fix-glibcism.patch";
|
||||
sha256 = "1gfcsr0i3q8q2f0lqza8na0iy4l4p3cbii51ds6zmj0y4hz2dwhb";
|
||||
excludes = [ "lib/ext2fs/hashmap.h" ];
|
||||
extraPrefix = "";
|
||||
})
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Remove six failing tests
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, autoPatchelfHook
|
||||
, fuse, jffi
|
||||
, maven, jdk, jre, makeWrapper, glib, wrapGAppsHook
|
||||
, maven, jdk, jre, makeShellWrapper, glib, wrapGAppsHook
|
||||
}:
|
||||
|
||||
let
|
||||
@ -65,7 +65,7 @@ in stdenv.mkDerivation rec {
|
||||
rm $out/share/cryptomator/libs/jff*.jar
|
||||
cp -f ${jffi}/share/java/jffi-complete.jar $out/share/cryptomator/libs/
|
||||
|
||||
makeWrapper ${jre}/bin/java $out/bin/cryptomator \
|
||||
makeShellWrapper ${jre}/bin/java $out/bin/cryptomator \
|
||||
--add-flags "--class-path '$out/share/cryptomator/libs/*'" \
|
||||
--add-flags "--module-path '$out/share/cryptomator/mods'" \
|
||||
--add-flags "-Dcryptomator.logDir='~/.local/share/Cryptomator/logs'" \
|
||||
@ -101,8 +101,8 @@ in stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
maven
|
||||
makeWrapper
|
||||
(wrapGAppsHook.override { makeBinaryWrapper = makeWrapper; })
|
||||
makeShellWrapper
|
||||
wrapGAppsHook
|
||||
jdk
|
||||
];
|
||||
buildInputs = [ fuse jre glib jffi ];
|
||||
|
@ -114,7 +114,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://sile-typesetter.org";
|
||||
changelog = "https://github.com/sile-typesetter/sile/raw/v${version}/CHANGELOG.md";
|
||||
platforms = platforms.unix;
|
||||
broken = stdenv.isDarwin; # https://github.com/NixOS/nixpkgs/issues/23018
|
||||
maintainers = with maintainers; [ doronbehar alerque ];
|
||||
license = licenses.mit;
|
||||
};
|
||||
|
@ -781,7 +781,9 @@ with pkgs;
|
||||
makeInitrdNG = callPackage ../build-support/kernel/make-initrd-ng.nix;
|
||||
makeInitrdNGTool = callPackage ../build-support/kernel/make-initrd-ng-tool.nix {};
|
||||
|
||||
makeWrapper = makeSetupHook
|
||||
makeWrapper = makeShellWrapper;
|
||||
|
||||
makeShellWrapper = makeSetupHook
|
||||
{ deps = [ dieHook ];
|
||||
substitutions = {
|
||||
shell = targetPackages.runtimeShell;
|
||||
@ -790,30 +792,7 @@ with pkgs;
|
||||
}
|
||||
../build-support/setup-hooks/make-wrapper.sh;
|
||||
|
||||
makeBinaryWrapper = let
|
||||
f = { cc, sanitizers }: let
|
||||
san = lib.concatMapStringsSep " " (s: "-fsanitize=${s}") sanitizers;
|
||||
script = runCommand "make-binary-wrapper.sh" {} ''
|
||||
substitute ${../build-support/setup-hooks/make-binary-wrapper.sh} $out \
|
||||
--replace " @CC@ " " ${cc}/bin/cc ${san} "
|
||||
'';
|
||||
in
|
||||
makeSetupHook {
|
||||
deps = [ dieHook cc ];
|
||||
substitutions.passthru.tests = callPackage ../test/make-binary-wrapper {
|
||||
makeBinaryWrapper = makeBinaryWrapper.override {
|
||||
sanitizers = (if stdenv.isDarwin && stdenv.isAarch64
|
||||
then [ ]
|
||||
else [ "undefined" "address" ]
|
||||
);
|
||||
};
|
||||
};
|
||||
} script;
|
||||
in
|
||||
lib.makeOverridable f {
|
||||
cc = stdenv.cc;
|
||||
sanitizers = [ ];
|
||||
};
|
||||
makeBinaryWrapper = callPackage ../build-support/setup-hooks/make-binary-wrapper { };
|
||||
|
||||
compressFirmwareXz = callPackage ../build-support/kernel/compress-firmware-xz.nix { };
|
||||
|
||||
@ -912,7 +891,9 @@ with pkgs;
|
||||
|
||||
findXMLCatalogs = makeSetupHook { } ../build-support/setup-hooks/find-xml-catalogs.sh;
|
||||
|
||||
wrapGAppsHook = callPackage ../build-support/setup-hooks/wrap-gapps-hook { };
|
||||
wrapGAppsHook = callPackage ../build-support/setup-hooks/wrap-gapps-hook {
|
||||
makeWrapper = makeBinaryWrapper;
|
||||
};
|
||||
|
||||
wrapGAppsHook4 = wrapGAppsHook.override { gtk3 = gtk4; };
|
||||
|
||||
@ -14055,6 +14036,7 @@ with pkgs;
|
||||
# default.
|
||||
libcxx ? null
|
||||
, extraPackages ? lib.optional (cc.isGNU or false && stdenv.targetPlatform.isMinGW) threadsCross
|
||||
, nixSupport ? {}
|
||||
, ...
|
||||
} @ extraArgs:
|
||||
callPackage ../build-support/cc-wrapper (let self = {
|
||||
@ -14066,7 +14048,7 @@ with pkgs;
|
||||
isGNU = cc.isGNU or false;
|
||||
isClang = cc.isClang or false;
|
||||
|
||||
inherit cc bintools libc libcxx extraPackages zlib;
|
||||
inherit cc bintools libc libcxx extraPackages nixSupport zlib;
|
||||
} // extraArgs; in self);
|
||||
|
||||
wrapCC = cc: wrapCCWith {
|
||||
@ -22350,12 +22332,12 @@ with pkgs;
|
||||
postgresql_13
|
||||
postgresql_14
|
||||
;
|
||||
postgresql = postgresql_13.override { this = postgresql; };
|
||||
postgresql = postgresql_14.override { this = postgresql; };
|
||||
postgresqlPackages = recurseIntoAttrs postgresql.pkgs;
|
||||
postgresql11Packages = recurseIntoAttrs postgresql_11.pkgs;
|
||||
postgresql12Packages = recurseIntoAttrs postgresql_12.pkgs;
|
||||
postgresql13Packages = postgresqlPackages;
|
||||
postgresql14Packages = recurseIntoAttrs postgresql_14.pkgs;
|
||||
postgresql13Packages = recurseIntoAttrs postgresql_13.pkgs;
|
||||
postgresql14Packages = postgresqlPackages;
|
||||
|
||||
postgresql_jdbc = callPackage ../development/java-modules/postgresql_jdbc { };
|
||||
|
||||
@ -26450,11 +26432,7 @@ with pkgs;
|
||||
|
||||
filezilla = callPackage ../applications/networking/ftp/filezilla { };
|
||||
|
||||
buildMozillaMach =
|
||||
let callPackage = newScope {
|
||||
inherit (rustPackages) cargo rustc;
|
||||
};
|
||||
in opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) {};
|
||||
buildMozillaMach = opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) {};
|
||||
|
||||
firefoxPackages = recurseIntoAttrs (callPackage ../applications/networking/browsers/firefox/packages.nix {});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user