Merge #165406: staging-next 2022-03-23

This commit is contained in:
Vladimír Čunát 2022-04-05 20:34:08 +02:00
commit b4729bad3d
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
763 changed files with 6343 additions and 4217 deletions

View file

@ -142,4 +142,8 @@ Removes the pre-existing vendor directory. This should only be used if the depen
### `subPackages` {#var-go-subPackages}
Limits the builder from building child packages that have not been listed. If `subPackages` is not specified, all child packages will be built.
Specified as a string or list of strings. Limits the builder from building child packages that have not been listed. If `subPackages` is not specified, all child packages will be built.
### `excludedPackages` {#var-go-excludedPackages}
Specified as a string or list of strings. Causes the builder to skip building child packages that match any of the provided values. If `excludedPackages` is not specified, all child packages will be built.

View file

@ -9,7 +9,7 @@ tmp=$(mktemp --tmpdir -d nixpkgs-dep-license.XXXXXX)
exitHandler() {
exitCode=$?
rm -rf "$tmp"
exit $exitCode
return $exitCode
}
trap "exitHandler" EXIT

View file

@ -68,6 +68,11 @@
granular distinction between reloads and restarts.
</para>
</listitem>
<listitem>
<para>
Systemd has been upgraded to the version 250.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://kops.sigs.k8s.io"><literal>kops</literal></link>
@ -444,6 +449,12 @@
relying on the insecure behaviour before upgrading.
</para>
</listitem>
<listitem>
<para>
<literal>openssh</literal> has been update to 8.9p1, changing
the FIDO security key middleware interface.
</para>
</listitem>
<listitem>
<para>
<literal>services.k3s.enable</literal> no longer implies

View file

@ -25,6 +25,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- systemd services can now set [systemd.services.\<name\>.reloadTriggers](#opt-systemd.services) instead of `reloadIfChanged` for a more granular distinction between reloads and restarts.
- Systemd has been upgraded to the version 250.
- [`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.
- Module authors can use `mkRenamedOptionModuleWith` to automate the deprecation cycle without annoying out-of-tree module authors and their users.
@ -143,6 +145,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `services.kubernetes.scheduler.{port,address}` now set `--secure-port` and `--bind-address` instead of `--port` and `--address`, since the former have been deprecated and are no longer functional in kubernetes>=1.23. Ensure that you are not relying on the insecure behaviour before upgrading.
- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
- `services.k3s.enable` no longer implies `systemd.enableUnifiedCgroupHierarchy = false`, and will default to the 'systemd' cgroup driver when using `services.k3s.docker = true`.
This change may require a reboot to take effect, and k3s may not be able to run if the boot cgroup hierarchy does not match its configuration.
The previous behavior may be retained by explicitly setting `systemd.enableUnifiedCgroupHierarchy = false` in your configuration.

View file

@ -708,6 +708,14 @@ in
systemd.packages = [ nixPackage ];
# Will only work once https://github.com/NixOS/nix/pull/6285 is merged
# systemd.tmpfiles.packages = [ nixPackage ];
# Can be dropped for Nix > https://github.com/NixOS/nix/pull/6285
systemd.tmpfiles.rules = [
"d /nix/var/nix/daemon-socket 0755 root root - -"
];
systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ];
systemd.services.nix-daemon =

View file

@ -281,6 +281,8 @@ let
"PrivateKeyFile"
"ListenPort"
"FirewallMark"
"RouteTable"
"RouteMetric"
])
(assertInt "FirewallMark")
(assertRange "FirewallMark" 1 4294967295)
@ -296,6 +298,8 @@ let
"AllowedIPs"
"Endpoint"
"PersistentKeepalive"
"RouteTable"
"RouteMetric"
])
(assertInt "PersistentKeepalive")
(assertRange "PersistentKeepalive" 0 65535)

View file

@ -232,7 +232,8 @@ done
mkdir -p /lib
ln -s @modulesClosure@/lib/modules /lib/modules
ln -s @modulesClosure@/lib/firmware /lib/firmware
echo @extraUtils@/bin/modprobe > /proc/sys/kernel/modprobe
# see comment in stage-1.nix for explanation
echo @extraUtils@/bin/modprobe-kernel > /proc/sys/kernel/modprobe
for i in @kernelModules@; do
info "loading module $(basename $i)..."
modprobe $i

View file

@ -131,6 +131,26 @@ let
copy_bin_and_libs ${pkgs.kmod}/bin/kmod
ln -sf kmod $out/bin/modprobe
# Dirty hack to make sure the kernel properly loads modules
# such as ext4 on demand (e.g. on a `mount(2)` syscall). This is necessary
# because `kmod` isn't linked against `libpthread.so.0` anymore (since
# it was merged into `libc.so.6` since version `2.34`), but still needs
# to access it for some reason. This is not an issue in stage-1 itself
# because of the `LD_LIBRARY_PATH`-variable and anytime later because the rpath of
# kmod/modprobe points to glibc's `$out/lib` where `libpthread.so.6` exists.
# However, this is a problem when the kernel calls `modprobe` inside
# the initial ramdisk because it doesn't know about the
# `LD_LIBRARY_PATH` and the rpath was nuked.
#
# Also, we can't use `makeWrapper` here because `kmod` only does
# `modprobe` functionality if `argv[0] == "modprobe"`.
cat >$out/bin/modprobe-kernel <<EOF
#!$out/bin/ash
export LD_LIBRARY_PATH=$out/lib
exec $out/bin/modprobe "\$@"
EOF
chmod +x $out/bin/modprobe-kernel
# Copy resize2fs if any ext* filesystems are to be resized
${optionalString (any (fs: fs.autoResize && (lib.hasPrefix "ext" fs.fsType)) fileSystems) ''
# We need mke2fs in the initrd.

View file

@ -60,15 +60,27 @@ with lib;
};
users.groups.systemd-timesync.gid = config.ids.gids.systemd-timesync;
system.activationScripts.systemd-timesyncd-migration = mkIf (versionOlder config.system.stateVersion "19.09") ''
system.activationScripts.systemd-timesyncd-migration =
# workaround an issue of systemd-timesyncd not starting due to upstream systemd reverting their dynamic users changes
# - https://github.com/NixOS/nixpkgs/pull/61321#issuecomment-492423742
# - https://github.com/systemd/systemd/issues/12131
if [ -L /var/lib/systemd/timesync ]; then
rm /var/lib/systemd/timesync
mv /var/lib/private/systemd/timesync /var/lib/systemd/timesync
mkIf (versionOlder config.system.stateVersion "19.09") ''
if [ -L /var/lib/systemd/timesync ]; then
rm /var/lib/systemd/timesync
mv /var/lib/private/systemd/timesync /var/lib/systemd/timesync
fi
'';
system.activationScripts.systemd-timesyncd-init-clock =
# Ensure that we have some stored time to prevent systemd-timesyncd to
# resort back to the fallback time.
# If the file doesn't exist we assume that our current system clock is
# good enough to provide an initial value.
''
if ! [ -f /var/lib/systemd/timesync/clock ]; then
test -d /var/lib/systemd/timesync || mkdir -p /var/lib/systemd/timesync
touch /var/lib/systemd/timesync/clock
fi
'';
'';
};
}

View file

@ -312,6 +312,7 @@ let
desktop-file-utils
docbook5
docbook_xsl_ns
kmod.dev
libxml2.bin
libxslt.bin
nixos-artwork.wallpapers.simple-dark-gray-bottom

View file

@ -2,21 +2,13 @@
stdenv.mkDerivation rec {
pname = "flac";
version = "1.3.3";
version = "1.3.4";
src = fetchurl {
url = "http://downloads.xiph.org/releases/flac/${pname}-${version}.tar.xz";
sha256 = "0j0p9sf56a2fm2hkjnf7x3py5ir49jyavg4q5zdyd7bcf6yq4gi1";
sha256 = "0dz7am8kbc97a6afml1h4yp085274prg8j7csryds8m3fmz61w4g";
};
patches = [
(fetchpatch {
name = "CVE-2020-0499.patch";
url = "https://github.com/xiph/flac/commit/2e7931c27eb15e387da440a37f12437e35b22dd4.patch";
sha256 = "160qzq9ms5addz7sx06pnyjjkqrffr54r4wd8735vy4x008z71ah";
})
];
buildInputs = [ libogg ];
#doCheck = true; # takes lots of time

View file

@ -1,6 +1,7 @@
{ lib, stdenv, fetchFromGitHub, libjack2, libsndfile, xorg, freetype
, libxkbcommon, cairo, glib, gnome, flac, libogg, libvorbis, libopus, cmake
, pango, pkg-config }:
, pango, pkg-config, catch2
}:
stdenv.mkDerivation rec {
pname = "sfizz";
@ -40,6 +41,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ];
postPatch = ''
cp ${catch2}/include/catch2/catch.hpp tests/catch2/catch.hpp
substituteInPlace plugins/editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
--replace 'zenitypath = "zenity"' 'zenitypath = "${gnome.zenity}/bin/zenity"'
substituteInPlace plugins/editor/src/editor/NativeHelpers.cpp \
@ -48,6 +51,8 @@ stdenv.mkDerivation rec {
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DSFIZZ_TESTS=ON" ];
doCheck = true;
meta = with lib; {
homepage = "https://github.com/sfztools/sfizz";
description = "SFZ jack client and LV2 plugin";

View file

@ -8,6 +8,7 @@
, qtquickcontrols2
, SDL
, python3
, catch2
, callPackage
, nixosTests
}:
@ -24,6 +25,10 @@ mkDerivation rec {
fetchSubmodules = true;
};
postPatch = ''
cp ${catch2}/include/catch2/catch.hpp 3rdparty/catch2/single_include/catch2/catch.hpp
'';
# Remove on next release
patches = [(fetchpatch {
name = "sfxr-qr-missing-qpainterpath-include";
@ -43,6 +48,8 @@ mkDerivation rec {
SDL
];
doCheck = true;
passthru.tests = {
export-square-wave = callPackage ./test-export-square-wave {};
sfxr-qt-starts = nixosTests.sfxr-qt;

View file

@ -7,5 +7,10 @@ import ./generic.nix (rec {
url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=a88f63500e475f842e5fbdd9abba4ce122cdb082";
sha256 = "sha256-RF9b5PojFUAjh2TDUW4+HaWveV30Spy1iAXhaWf1ZVg=";
})
# glibc 2.34 compat
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/emacs/raw/181aafcdb7ee2fded9fce4cfc448f27edccc927f/f/emacs-glibc-2.34.patch";
sha256 = "sha256-2o3C/jhZPl2OW/LmVPt/fhdwbS9NOdF9lVEF1Kn9aEk=";
})
];
})

View file

@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
owner = "apitrace";
};
patches = [
# glibc 2.34 compat
# derived from https://github.com/apitrace/apitrace/commit/d28a980802ad48568c87da02d630c8babfe163bb
./glibc-2.34-compat.patch
];
# LD_PRELOAD wrappers need to be statically linked to work against all kinds
# of games -- so it's fine to use e.g. bundled snappy.
buildInputs = [ libX11 procps python2 libdwarf qtbase qtwebkit ];

View file

@ -0,0 +1,13 @@
diff --git a/wrappers/dlsym.cpp b/wrappers/dlsym.cpp
index 2eda082..0c0c8ee 100644
--- a/wrappers/dlsym.cpp
+++ b/wrappers/dlsym.cpp
@@ -34,7 +34,7 @@
#include "os.hpp"
-#ifdef __GLIBC__
+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 34
#include <dlfcn.h>

View file

@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.2/src -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.3/src -A '*.tar.xz' )

View file

@ -1,4 +1,4 @@
{ mkDerivation, fetchpatch, lib, extra-cmake-modules
{ mkDerivation, lib, extra-cmake-modules
, qtdeclarative, ki18n, kmime, kpkpass
, poppler, kcontacts, kcalendarcore
, shared-mime-info
@ -10,15 +10,6 @@ mkDerivation {
license = with lib.licenses; [ lgpl21 ];
maintainers = [ lib.maintainers.bkchr ];
};
patches = [
# Fix build with poppler 22.03
(fetchpatch {
url = "https://github.com/KDE/kitinerary/commit/e21d1ffc5fa81a636245f49c97fe7cda63abbb1d.patch";
sha256 = "1/zgq9QIOCPplqplDqgpoqzuYFf/m1Ixxawe50t2F04=";
})
];
nativeBuildInputs = [
extra-cmake-modules
shared-mime-info # for update-mime-database

File diff suppressed because it is too large Load diff

View file

@ -24,6 +24,12 @@ stdenv.mkDerivation rec {
sha256 = "0sja0ddd9c8wjjpzk2ag8q1lxpj09adgmhd7wnsylincqnj2jyls";
};
postPatch = ''
# Don't build tests, vendored catch doesn't build with latest glibc.
substituteInPlace CMakeLists.txt \
--replace "add_subdirectory (tests)" ""
'';
nativeBuildInputs = [
cmake
gettext

View file

@ -21,6 +21,19 @@ stdenv.mkDerivation rec {
--subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \
--subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \
--subst-var-by GIT_DESCRIBE v${version}
# Tests don't compile because of vendored `catch2` being incompatible with glibc-2.34.
# Also, no need to since we don't even run them.
substituteInPlace lib/CMakeLists.txt \
--replace "add_subdirectory(Catch2)" ""
substituteInPlace lib/vecmath/CMakeLists.txt \
--replace "add_subdirectory(test)" "" \
--replace "add_subdirectory(lib)" ""
substituteInPlace lib/kdl/CMakeLists.txt \
--replace "add_subdirectory(test)" ""
substituteInPlace common/CMakeLists.txt \
--replace "add_subdirectory(test)" "" \
--replace "add_subdirectory(benchmark)" ""
'';
nativeBuildInputs = [ cmake git pandoc wrapQtAppsHook copyDesktopItems ];

View file

@ -15,7 +15,7 @@ buildGoModule rec {
nativeBuildInputs = [ installShellFiles ];
excludedPackages = "\\(tools\\|docgen\\)";
excludedPackages = [ "tools" "docgen" ];
ldflags =
let t = "github.com/rancher/k3d/v5/version"; in

View file

@ -19,7 +19,7 @@ buildGoModule rec {
# third_party/VENDOR-LICENSE breaks build/check as go files are still included
# docs is a tool for generating docs
excludedPackages = "\\(third_party\\|cmd/docs\\)";
excludedPackages = [ "third_party" "cmd/docs" ];
preCheck = ''
# some tests try to write to the home dir

View file

@ -24,7 +24,7 @@ buildGoPackage rec {
++ lib.optional stdenv.hostPlatform.isx86_64 dclxvi
++ lib.optionals gui [ wrapGAppsHook ];
tags = lib.optionals (!gui) [ "nogui" ];
excludedPackages = "\\(appengine\\|bn256cgo\\)";
excludedPackages = [ "appengine" "bn256cgo" ];
postPatch = lib.optionalString stdenv.hostPlatform.isx86_64 ''
grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \
-e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \

View file

@ -2,6 +2,7 @@
, fetchFromGitHub
, cmake
, clingo
, catch2
}:
stdenv.mkDerivation rec {
@ -15,6 +16,10 @@ stdenv.mkDerivation rec {
sha256 = "1g2xkz9nsgqnrw3fdf5jchl16f0skj5mm32va61scc2yrchll166";
};
postPatch = ''
cp ${catch2}/include/catch2/catch.hpp libclingcon/tests/catch.hpp
'';
nativeBuildInputs = [ cmake clingo ];
cmakeFlags = [

View file

@ -32,7 +32,9 @@ let
in
stdenv.mkDerivation {
pname = "git";
pname = "git"
+ lib.optionalString svnSupport "-with-svn"
+ lib.optionalString (!svnSupport && !guiSupport && !sendEmailSupport && !withManual && !pythonSupport && !withpcre2) "-minimal";
inherit version;
src = fetchurl {
@ -166,8 +168,13 @@ stdenv.mkDerivation {
cp -a contrib $out/share/git/
mkdir -p $out/share/bash-completion/completions
ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/git
mkdir -p $out/share/bash-completion/completions
ln -s $out/share/git/contrib/completion/git-prompt.sh $out/share/bash-completion/completions/
# only readme, developed in another repo
rm -r contrib/hooks/multimail
mkdir -p $out/share/git-core/contrib
cp -a contrib/hooks/ $out/share/git-core/contrib/
substituteInPlace $out/share/git-core/contrib/hooks/pre-auto-gc-battery \
--replace ' grep' ' ${gnugrep}/bin/grep' \
# grep is a runtime dependency, need to patch so that it's found
substituteInPlace $out/libexec/git-core/git-sh-setup \

View file

@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
sha256 = "sha256-Q93+EHJKi4XiRo9kA7YABzcYbwHmDgvWL95p2EIjTMU=";
};
patches = [
# glibc 2.34 compat
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/rcs/raw/f8e07cd37f4abfb36e37d41852bb8f9e234d3fb1/f/rcs-5.10.0-SIGSTKSZ.patch";
sha256 = "sha256-mc6Uye9mdEsLBcOnf1m1TUb1BV0ncNU//iKBpLGBjho=";
})
];
ac_cv_path_ED = "${ed}/bin/ed";
DIFF = "${diffutils}/bin/diff";
DIFF3 = "${diffutils}/bin/diff3";

View file

@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.lgpl21Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
broken = true; # missing glibc-2.34 support, no upstream activity
};
}

View file

@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.lgpl21Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
broken = true; # missing glibc-2.34 support, no upstream activity
};
}

View file

@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.lgpl21Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
broken = true; # missing glibc-2.34 support, no upstream activity
};
}

View file

@ -34,11 +34,6 @@
, extraConfig ? {} # Additional values to be added literally to the final item, e.g. vendor extensions
}:
let
# FIXME: workaround until https://github.com/NixOS/nixpkgs/pull/162246 lands
cleanName = if lib.hasInfix " " name
then throw "makeDesktopItem: name must not contain spaces!"
else name;
# There are multiple places in the FDO spec that make "boolean" values actually tristate,
# e.g. StartupNotify, where "unset" is literally defined as "do something reasonable".
# So, handle null values separately.
@ -116,8 +111,8 @@ let
content = [ mainSectionRendered ] ++ actionsRendered;
in
writeTextFile {
name = "${cleanName}.desktop";
destination = "/share/applications/${cleanName}.desktop";
name = "${name}.desktop";
destination = "/share/applications/${name}.desktop";
text = builtins.concatStringsSep "\n" content;
checkPhase = "${buildPackages.desktop-file-utils}/bin/desktop-file-validate $target";
checkPhase = ''${buildPackages.desktop-file-utils}/bin/desktop-file-validate "$target"'';
}

View file

@ -120,7 +120,7 @@ rec {
allowSubstitutes = false;
}
''
target=$out${destination}
target=$out${lib.escapeShellArg destination}
mkdir -p "$(dirname "$target")"
if [ -e "$textPath" ]; then

View file

@ -0,0 +1,34 @@
{ writeTextFile }:
let
veryWeirdName = ''here's a name with some "bad" characters, like spaces and quotes'';
in writeTextFile {
name = "weird-names";
destination = "/etc/${veryWeirdName}";
text = ''passed!'';
checkPhase = ''
# intentionally hardcode everything here, to make sure
# Nix does not mess with file paths
name="here's a name with some \"bad\" characters, like spaces and quotes"
fullPath="$out/etc/$name"
if [ -f "$fullPath" ]; then
echo "[PASS] File exists!"
else
echo "[FAIL] File was not created at expected path!"
exit 1
fi
content=$(<"$fullPath")
expected="passed!"
if [ "$content" = "$expected" ]; then
echo "[PASS] Contents match!"
else
echo "[FAIL] File contents don't match!"
echo " Expected: $expected"
echo " Got: $content"
exit 2
fi
'';
}

View file

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "hicolor-icon-theme-0.17";
pname = "hicolor-icon-theme";
version = "0.17";
src = fetchurl {
url = "https://icon-theme.freedesktop.org/releases/${name}.tar.xz";
url = "https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-${version}.tar.xz";
sha256 = "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i";
};

View file

@ -1,9 +1,8 @@
{ lib, fetchzip, stdenvNoCC, writeText }:
let
stdenvNoCC.mkDerivation rec {
pname = "iana-etc";
version = "20211124";
in stdenvNoCC.mkDerivation {
name = "iana-etc-${version}";
src = fetchzip {
url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
sha256 = "sha256-4mM/ZeGd91e1AklGHFK5UB4llg9IgCo9DKcM0iXcBls=";

View file

@ -2,16 +2,16 @@
stdenv.mkDerivation rec {
pname = "tzdata";
version = "2021e";
version = "2022a";
srcs =
[ (fetchurl {
url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
sha256 = "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07";
sha256 = "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg";
})
(fetchurl {
url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
sha256 = "0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq";
sha256 = "1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq";
})
];

View file

@ -1,10 +1,11 @@
{lib, stdenv, fetchurl}:
stdenv.mkDerivation {
name = "docbook-xml-ebnf-1.2b1";
stdenv.mkDerivation rec {
pname = "docbook-xml-ebnf";
version = "1.2b1";
dtd = fetchurl {
url = "http://www.docbook.org/xml/ebnf/1.2b1/dbebnf.dtd";
url = "https://docbook.org/xml/ebnf/${version}/dbebnf.dtd";
sha256 = "0min5dsc53my13b94g2yd65q1nkjcf4x1dak00bsc4ckf86mrx95";
};
catalog = ./docbook-ebnf.cat;

View file

@ -1,27 +1,22 @@
{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
let
# Urgh, DocBook 4.1.2 doesn't come with an XML catalog. Use the one
# from 4.2.
docbook42catalog = fetchurl {
url = "http://www.docbook.org/xml/4.2/catalog.xml";
url = "https://docbook.org/xml/4.2/catalog.xml";
sha256 = "18lhp6q2l0753s855r638shkbdwq9blm6akdjsc9nrik24k38j17";
};
in
import ./generic.nix {
inherit lib stdenv unzip findXMLCatalogs;
name = "docbook-xml-4.1.2";
version = "4.1.2";
src = fetchurl {
url = "http://www.docbook.org/xml/4.1.2/docbkx412.zip";
url = "https://docbook.org/xml/4.1.2/docbkx412.zip";
sha256 = "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h";
};
postInstall = "
sed 's|V4.2|V4.1.2|g' < ${docbook42catalog} > catalog.xml
";
meta = {
branch = "4.1.2";
};
}

View file

@ -2,12 +2,9 @@
import ./generic.nix {
inherit lib stdenv unzip findXMLCatalogs;
name = "docbook-xml-4.2";
version = "4.2";
src = fetchurl {
url = "http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip";
url = "https://docbook.org/xml/4.2/docbook-xml-4.2.zip";
sha256 = "acc4601e4f97a196076b7e64b368d9248b07c7abf26b34a02cca40eeebe60fa2";
};
meta = {
branch = "4.2";
};
}

View file

@ -2,12 +2,9 @@
import ./generic.nix {
inherit lib stdenv unzip findXMLCatalogs;
name = "docbook-xml-4.3";
version = "4.3";
src = fetchurl {
url = "http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip";
url = "https://docbook.org/xml/4.3/docbook-xml-4.3.zip";
sha256 = "0r1l2if1z4wm2v664sqdizm4gak6db1kx9y50jq89m3gxaa8l1i3";
};
meta = {
branch = "4.3";
};
}

View file

@ -2,12 +2,9 @@
import ./generic.nix {
inherit lib stdenv unzip findXMLCatalogs;
name = "docbook-xml-4.4";
version = "4.4";
src = fetchurl {
url = "http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip";
url = "https://docbook.org/xml/4.4/docbook-xml-4.4.zip";
sha256 = "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82";
};
meta = {
branch = "4.4";
};
}

View file

@ -2,12 +2,9 @@
import ./generic.nix {
inherit lib stdenv unzip findXMLCatalogs;
name = "docbook-xml-4.5";
version = "4.5";
src = fetchurl {
url = "http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip";
url = "https://docbook.org/xml/4.5/docbook-xml-4.5.zip";
sha256 = "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf";
};
meta = {
branch = "4.5";
};
}

View file

@ -1,9 +1,10 @@
{ lib, stdenv, unzip, src, name, postInstall ? "true", meta ? {}, findXMLCatalogs }:
{ lib, stdenv, unzip, src, version, postInstall ? "true", findXMLCatalogs }:
stdenv.mkDerivation {
inherit src name postInstall;
inherit version src postInstall;
pname = "docbook-xml";
nativeBuildInputs = [unzip];
nativeBuildInputs = [ unzip ];
propagatedNativeBuildInputs = [ findXMLCatalogs ];
unpackPhase = ''
@ -17,7 +18,8 @@ stdenv.mkDerivation {
runHook postInstall
'';
meta = meta // {
meta = {
branch = version;
platforms = lib.platforms.unix;
};
}

View file

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libxml2 }:
stdenv.mkDerivation {
name = "xhtml1-20020801";
pname = "xhtml1";
version = "unstable-2002-08-01";
src = fetchurl {
url = "http://www.w3.org/TR/xhtml1/xhtml1.tgz";
url = "https://www.w3.org/TR/xhtml1/xhtml1.tgz";
sha256 = "0rr0d89i0z75qvjbm8il93bippx09hbmjwy0y2sj44n9np69x3hl";
};

View file

@ -5,11 +5,11 @@ with lib;
let
inherit (python2.pkgs) python pygobject2 pygtk dbus-python;
in stdenv.mkDerivation rec {
version = "2.28";
name = "gnome-python-${version}.1";
pname = "gnome-python";
version = "2.28.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-python/${version}/${name}.tar.bz2";
url = "mirror://gnome/sources/gnome-python/${lib.versions.majorMinor version}/gnome-python-${version}.tar.bz2";
sha256 = "759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8";
};
@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
# gnome-python expects that .pth file is already installed by PyGTK in the
# same directory. This is not the case for Nix.
postInstall = ''
echo "gtk-2.0" > $out/${python2.sitePackages}/${name}.pth
echo "gtk-2.0" > $out/${python2.sitePackages}/gnome-python-${version}.pth
'';
meta = with lib; {

View file

@ -1,9 +1,11 @@
{stdenv, fetchurl, pkg-config, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, automake, gettext}:
{ lib, stdenv, fetchurl, pkg-config, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, automake, gettext }:
stdenv.mkDerivation rec {
pname = "scrollkeeper";
version = "0.3.14";
stdenv.mkDerivation {
name = "scrollkeeper-0.3.14";
src = fetchurl {
url = "mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2";
url = "mirror://gnome/sources/scrollkeeper/${lib.versions.majorMinor version}/scrollkeeper-${version}.tar.bz2";
sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
};

View file

@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, glib, libIDL, libintl }:
stdenv.mkDerivation rec {
name = "ORBit2-${minVer}.19";
minVer = "2.14";
pname = "ORBit2";
version = "2.14.19";
src = fetchurl {
url = "mirror://gnome/sources/ORBit2/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/ORBit2/${lib.versions.majorMinor version}/ORBit2-${version}.tar.bz2";
sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
};

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, which }:
{ lib, stdenv, fetchurl, which }:
stdenv.mkDerivation rec {
name = "gnome-common-${minVer}.0";
minVer = "2.34";
pname = "gnome-common";
version = "2.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-common/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/gnome-common/${lib.versions.majorMinor version}/gnome-common-${version}.tar.bz2";
sha256 = "1pz13mpp09q5s3bikm8ml92s1g0scihsm4iipqv1ql3mp6d4z73s";
};

View file

@ -1,9 +1,10 @@
{stdenv, fetchurl, intltool}:
{ lib, stdenv, fetchurl, intltool }:
stdenv.mkDerivation {
name = "gnome-mime-data-2.18.0";
stdenv.mkDerivation rec {
pname = "gnome-mime-data";
version = "2.18.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-mime-data/2.18/gnome-mime-data-2.18.0.tar.bz2";
url = "mirror://gnome/sources/gnome-mime-data/${lib.versions.majorMinor version}/gnome-mime-data-${version}.tar.bz2";
sha256 = "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p";
};
nativeBuildInputs = [ intltool ];

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, fetchpatch, pkg-config, libxml2, bzip2, openssl, dbus-glib
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libxml2, bzip2, openssl, dbus-glib
, glib, gamin, cdparanoia, intltool, GConf, gnome_mime_data, avahi, acl }:
stdenv.mkDerivation rec {
name = "gnome-vfs-${minVer}.4";
minVer = "2.24";
pname = "gnome-vfs";
version = "2.24.4";
src = fetchurl {
url = "mirror://gnome/sources/gnome-vfs/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/gnome-vfs/${lib.versions.majorMinor version}/gnome-vfs-${version}.tar.bz2";
sha256 = "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2";
};

View file

@ -1,11 +1,12 @@
{ stdenv, fetchurl, pkg-config, gtk2, intltool,
{ lib, stdenv, fetchurl, pkg-config, gtk2, intltool,
GConf, enchant, isocodes, gnome-icon-theme }:
stdenv.mkDerivation rec {
name = "gtkhtml-3.32.2";
pname = "gtkhtml";
version = "3.32.2";
src = fetchurl {
url = "mirror://gnome/sources/gtkhtml/3.32/${name}.tar.bz2";
url = "mirror://gnome/sources/gtkhtml/${lib.versions.majorMinor version}/gtkhtml-${version}.tar.bz2";
sha256 = "17z3jwvpn8waz7bhwrk7a6vs9pad6sqmlxxcqwvxxq89ywy0ail7";
};

View file

@ -1,11 +1,11 @@
{stdenv, fetchurl, flex, bison, pkg-config, glib, gettext}:
{ lib, stdenv, fetchurl, flex, bison, pkg-config, glib, gettext }:
stdenv.mkDerivation rec {
name = "libIDL-${minVer}.14";
minVer = "0.8";
pname = "libIDL";
version = "0.8.14";
src = fetchurl {
url = "mirror://gnome/sources/libIDL/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/libIDL/${lib.versions.majorMinor version}/libIDL-${version}.tar.bz2";
sha256 = "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5";
};

View file

@ -1,9 +1,10 @@
{stdenv, fetchurl}:
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "libart_lgpl-2.3.21";
pname = "libart_lgpl";
version = "2.3.21";
src = fetchurl {
url = "mirror://gnome/sources/libart_lgpl/2.3/${name}.tar.bz2";
url = "mirror://gnome/sources/libart_lgpl/${lib.versions.majorMinor version}/libart_lgpl-${version}.tar.bz2";
sha256 = "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx";
};
}

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, flex, bison, pkg-config, glib, libxml2, popt
{ lib, stdenv, fetchurl, flex, bison, pkg-config, glib, libxml2, popt
, intltool, ORBit2, procps }:
stdenv.mkDerivation rec {
name = "libbonobo-${minVer}.1";
minVer = "2.32";
pname = "libbonobo";
version = "2.32.1";
src = fetchurl {
url = "mirror://gnome/sources/libbonobo/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/libbonobo/${lib.versions.majorMinor version}/libbonobo-${version}.tar.bz2";
sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i";
};

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, bison, pkg-config, popt, libxml2, gtk2, libtool
{ lib, stdenv, fetchurl, bison, pkg-config, popt, libxml2, gtk2, libtool
, intltool, libbonobo, GConf, libgnomecanvas, libgnome, libglade }:
stdenv.mkDerivation rec {
name = "libbonoboui-${minVer}.5";
minVer = "2.24";
pname = "libbonoboui";
version = "2.24.5";
src = fetchurl {
url = "mirror://gnome/sources/libbonoboui/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/libbonoboui/${lib.versions.majorMinor version}/libbonoboui-${version}.tar.bz2";
sha256 = "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs";
};

View file

@ -2,11 +2,12 @@
assert withLibgladeConvert -> python2 != null;
stdenv.mkDerivation {
name = "libglade-2.6.4";
stdenv.mkDerivation rec {
pname = "libglade";
version = "2.6.4";
src = fetchurl {
url = "mirror://gnome/sources/libglade/2.6/libglade-2.6.4.tar.bz2";
url = "mirror://gnome/sources/libglade/${lib.versions.majorMinor version}/libglade-${version}.tar.bz2";
sha256 = "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4";
};

View file

@ -1,13 +1,13 @@
{ stdenv, fetchurl, pkg-config, glib, popt, zlib, libcanberra-gtk2
{ lib, stdenv, fetchurl, pkg-config, glib, popt, zlib, libcanberra-gtk2
, intltool, libbonobo, GConf, gnome_vfs, libtool, libogg
}:
stdenv.mkDerivation rec {
name = "libgnome-${minVer}.1";
minVer = "2.32";
pname = "libgnome";
version = "2.32.1";
src = fetchurl {
url = "mirror://gnome/sources/libgnome/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/libgnome/${lib.versions.majorMinor version}/libgnome-${version}.tar.bz2";
sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
};

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkg-config, gtk2, intltool, libart_lgpl, libglade }:
{ lib, stdenv, fetchurl, pkg-config, gtk2, intltool, libart_lgpl, libglade }:
stdenv.mkDerivation rec {
name = "libgnomecanvas-${minVer}.3";
minVer = "2.30";
pname = "libgnomecanvas";
version = "2.30.3";
src = fetchurl {
url = "mirror://gnome/sources/libgnomecanvas/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/libgnomecanvas/${lib.versions.majorMinor version}/libgnomecanvas-${version}.tar.bz2";
sha256 = "0h6xvswbqspdifnyh5pm2pqq55yp3kn6yrswq7ay9z49hkh7i6w5";
};

View file

@ -1,10 +1,11 @@
{ stdenv, fetchurl, pkg-config, libgnomecanvas, gtkmm2 }:
{ lib, stdenv, fetchurl, pkg-config, libgnomecanvas, gtkmm2 }:
stdenv.mkDerivation {
name = "libgnomecanvasmm-2.26.0";
stdenv.mkDerivation rec {
pname = "libgnomecanvasmm";
version = "2.26.0";
src = fetchurl {
url = "mirror://gnome/sources/libgnomecanvasmm/2.26/libgnomecanvasmm-2.26.0.tar.bz2";
url = "mirror://gnome/sources/libgnomecanvasmm/${lib.versions.majorMinor version}/libgnomecanvasmm-${version}.tar.bz2";
sha256 = "996577f97f459a574919e15ba7fee6af8cda38a87a98289e9a4f54752d83e918";
};

View file

@ -1,10 +1,11 @@
{ stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2, intltool, libart_lgpl }:
{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2, intltool, libart_lgpl }:
stdenv.mkDerivation rec {
name = "libgnomecups-0.2.3";
pname = "libgnomecups";
version = "0.2.3";
src = fetchurl {
url = "mirror://gnome/sources/libgnomecups/0.2/${name}.tar.bz2";
url = "mirror://gnome/sources/libgnomecups/${lib.versions.majorMinor version}/libgnomecups-${version}.tar.bz2";
sha256 = "0a8xdaxzz2wc0n1fjcav65093gixzyac3948l8cxx1mk884yhc71";
};

View file

@ -2,10 +2,11 @@
, libgnomecups, bison, flex }:
stdenv.mkDerivation rec {
name = "libgnomeprint-2.18.8";
pname = "libgnomeprint";
version = "2.18.8";
src = fetchurl {
url = "mirror://gnome/sources/libgnomeprint/2.18/${name}.tar.bz2";
url = "mirror://gnome/sources/libgnomeprint/${lib.versions.majorMinor version}/libgnomeprint-${version}.tar.bz2";
sha256 = "1034ec8651051f84d2424e7a1da61c530422cc20ce5b2d9e107e1e46778d9691";
};

View file

@ -1,10 +1,11 @@
{stdenv, fetchurl, pkg-config, gtk2, gettext, intltool, libgnomecanvas, libgnomeprint, gnome-icon-theme}:
{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, intltool, libgnomecanvas, libgnomeprint, gnome-icon-theme }:
stdenv.mkDerivation {
name = "libgnomeprintui-2.18.6";
stdenv.mkDerivation rec {
pname = "libgnomeprintui";
version = "2.18.6";
src = fetchurl {
url = "mirror://gnome/sources/libgnomeprintui/2.18/libgnomeprintui-2.18.6.tar.bz2";
url = "mirror://gnome/sources/libgnomeprintui/${lib.versions.majorMinor version}/libgnomeprintui-${version}.tar.bz2";
sha256 = "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm";
};

View file

@ -1,13 +1,13 @@
{ stdenv, fetchurl, fetchpatch, pkg-config, libxml2, xorg, glib, pango
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libxml2, xorg, glib, pango
, intltool, libgnome, libgnomecanvas, libbonoboui, GConf, libtool
, gnome_vfs, libgnome-keyring, libglade }:
stdenv.mkDerivation rec {
name = "libgnomeui-${minVer}.5";
minVer = "2.24";
pname = "libgnomeui";
version = "2.24.5";
src = fetchurl {
url = "mirror://gnome/sources/libgnomeui/${minVer}/${name}.tar.bz2";
url = "mirror://gnome/sources/libgnomeui/${lib.versions.majorMinor version}/libgnomeui-${version}.tar.bz2";
sha256 = "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf";
};

View file

@ -1,10 +1,11 @@
{stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2 }:
{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2 }:
stdenv.mkDerivation {
name = "libgtkhtml-2.11.1";
stdenv.mkDerivation rec {
pname = "libgtkhtml";
version = "2.11.1";
src = fetchurl {
url = "mirror://gnome/sources/libgtkhtml/2.11/libgtkhtml-2.11.1.tar.bz2";
url = "mirror://gnome/sources/libgtkhtml/${lib.versions.majorMinor version}/libgtkhtml-${version}.tar.bz2";
sha256 = "0msajafd42545dxzyr5zqka990cjrxw2yz09ajv4zs8m1w6pm9rw";
};

View file

@ -10,9 +10,10 @@ assert (stdenv.isDarwin && stdenv.isx86_64);
let cpuName = stdenv.hostPlatform.parsed.cpu.name;
result = stdenv.mkDerivation {
name = if sourcePerArch.packageType == "jdk"
then "adoptopenjdk-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}"
else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}";
pname = if sourcePerArch.packageType == "jdk"
then "adoptopenjdk-${sourcePerArch.vmType}-bin"
else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin";
version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}");
src = fetchurl {
inherit (sourcePerArch.${cpuName}) url sha256;

View file

@ -33,9 +33,9 @@ let
in
let result = stdenv.mkDerivation rec {
name = if sourcePerArch.packageType == "jdk"
then "adoptopenjdk-${sourcePerArch.vmType}-bin-${version}"
else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${version}";
pname = if sourcePerArch.packageType == "jdk"
then "adoptopenjdk-${sourcePerArch.vmType}-bin"
else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin";
version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}");

View file

@ -8,12 +8,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
@ -61,8 +56,8 @@ let majorVersion = "10";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches =
optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
patches = [ ./gcc10-asan-glibc-2.34.patch ]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch
/* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
@ -266,7 +261,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableMultilib enableShared;
inherit (stdenv) is64bit;

View file

@ -0,0 +1,70 @@
From 950bac27d63c1c2ac3a6ed867692d6a13f21feb3 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Sat, 17 Apr 2021 11:27:14 +0200
Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
glibc 2.34 and later, so
static const uptr kAltStackSize = SIGSTKSZ * 4;
needs dynamic initialization, but is used by a function called indirectly
from .preinit_array and therefore before the variable is constructed.
This results in using 0 size instead and all asan instrumented programs
die with:
==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
Here is a cherry-pick from upstream to fix this.
2021-04-17 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/100114
* sanitizer_common/sanitizer_posix_libcdep.cpp: Cherry-pick
llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
(cherry picked from commit d9f462fb372fb02da032cefd6b091d7582c425ae)
---
.../sanitizer_common/sanitizer_posix_libcdep.cpp | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
index 304b3a01a08..ac88fbe074e 100644
--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) {
#if !SANITIZER_GO
// TODO(glider): different tools may require different altstack size.
-static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough.
+static uptr GetAltStackSize() {
+ // SIGSTKSZ is not enough.
+ static const uptr kAltStackSize = SIGSTKSZ * 4;
+ return kAltStackSize;
+}
void SetAlternateSignalStack() {
stack_t altstack, oldstack;
@@ -180,10 +184,9 @@ void SetAlternateSignalStack() {
// TODO(glider): the mapped stack should have the MAP_STACK flag in the
// future. It is not required by man 2 sigaltstack now (they're using
// malloc()).
- void* base = MmapOrDie(kAltStackSize, __func__);
- altstack.ss_sp = (char*) base;
+ altstack.ss_size = GetAltStackSize();
+ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
altstack.ss_flags = 0;
- altstack.ss_size = kAltStackSize;
CHECK_EQ(0, sigaltstack(&altstack, nullptr));
}
@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() {
stack_t altstack, oldstack;
altstack.ss_sp = nullptr;
altstack.ss_flags = SS_DISABLE;
- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin.
+ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin.
CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
}
--
2.27.0

View file

@ -8,12 +8,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
@ -269,7 +264,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;

View file

@ -8,12 +8,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
@ -295,7 +290,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;

View file

@ -8,12 +8,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
@ -311,7 +306,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;

View file

@ -9,12 +9,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, flex
@ -79,6 +74,7 @@ let majorVersion = "6";
] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
++ optional langAda ../gnat-cflags.patch
++ optional langAda ./gnat-glibc234.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
@ -325,7 +321,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;

View file

@ -0,0 +1,30 @@
Fix build with glibc 2.34. Adapted from:
https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -579,12 +579,8 @@
#ifndef __ia64__
#define HAVE_GNAT_ALTERNATE_STACK 1
-/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size.
- It must be larger than MINSIGSTKSZ and hopefully near 2 * SIGSTKSZ. */
-# if 16 * 1024 < MINSIGSTKSZ
-# error "__gnat_alternate_stack too small"
-# endif
-char __gnat_alternate_stack[16 * 1024];
+/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size. */
+char __gnat_alternate_stack[32 * 1024];
#endif
#ifdef __XENO__
--- a/gcc/ada/s-osinte-linux.ads
+++ b/gcc/ada/s-osinte-linux.ads
@@ -328,7 +328,7 @@
oss : access stack_t) return int;
pragma Import (C, sigaltstack, "sigaltstack");
- Alternate_Stack_Size : constant := 16 * 1024;
+ Alternate_Stack_Size : constant := 32 * 1024;
-- This must be in keeping with init.c:__gnat_alternate_stack
Alternate_Stack : aliased char_array (1 .. Alternate_Stack_Size);

View file

@ -7,12 +7,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
@ -63,6 +58,9 @@ let majorVersion = "7";
./riscv-pthread-reentrant.patch
# https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html
./riscv-no-relax.patch
# Fix for asan w/glibc-2.34. Although there's no upstream backport to v7,
# the patch from gcc 8 seems to work perfectly fine.
./gcc8-asan-glibc-2.34.patch
./0001-Fix-build-for-glibc-2.31.patch
]
@ -277,7 +275,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;

View file

@ -0,0 +1,70 @@
From ef195a39d0d3b929cc676302d074b42c25460601 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Sat, 17 Apr 2021 11:27:14 +0200
Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
glibc 2.34 and later, so
static const uptr kAltStackSize = SIGSTKSZ * 4;
needs dynamic initialization, but is used by a function called indirectly
from .preinit_array and therefore before the variable is constructed.
This results in using 0 size instead and all asan instrumented programs
die with:
==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
Here is a cherry-pick from upstream to fix this.
2021-04-17 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/100114
* sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick
llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3)
---
.../sanitizer_common/sanitizer_posix_libcdep.cc | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
index 1a37118c299..066079b3954 100644
--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
@@ -159,7 +159,11 @@ bool SupportsColoredOutput(fd_t fd) {
#if !SANITIZER_GO
// TODO(glider): different tools may require different altstack size.
-static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough.
+static uptr GetAltStackSize() {
+ // SIGSTKSZ is not enough.
+ static const uptr kAltStackSize = SIGSTKSZ * 4;
+ return kAltStackSize;
+}
void SetAlternateSignalStack() {
stack_t altstack, oldstack;
@@ -170,10 +174,9 @@ void SetAlternateSignalStack() {
// TODO(glider): the mapped stack should have the MAP_STACK flag in the
// future. It is not required by man 2 sigaltstack now (they're using
// malloc()).
- void* base = MmapOrDie(kAltStackSize, __func__);
- altstack.ss_sp = (char*) base;
+ altstack.ss_size = GetAltStackSize();
+ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
altstack.ss_flags = 0;
- altstack.ss_size = kAltStackSize;
CHECK_EQ(0, sigaltstack(&altstack, nullptr));
}
@@ -181,7 +184,7 @@ void UnsetAlternateSignalStack() {
stack_t altstack, oldstack;
altstack.ss_sp = nullptr;
altstack.ss_flags = SS_DISABLE;
- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin.
+ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin.
CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
}
--
2.27.0

View file

@ -7,12 +7,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
@ -259,7 +254,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;

View file

@ -9,12 +9,7 @@
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, # N.B. the defult is intentionally not from an `isStatic`. See
# https://gcc.gnu.org/install/configure.html - this is about target
# platform libraries not host platform ones unlike normal. But since
# we can't rebuild those without also rebuilding the compiler itself,
# we opt to always build everything unlike our usual policy.
enableShared ? true
, enableShared ? !stdenv.targetPlatform.isStatic
, enableLTO ? !stdenv.hostPlatform.isStatic
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
@ -78,7 +73,7 @@ let majorVersion = "9";
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96796
#
# This patch can most likely be removed by a post 9.3.0-release.
[ ./avoid-cycling-subreg-reloads.patch ]
[ ./avoid-cycling-subreg-reloads.patch ./gcc9-asan-glibc-2.34.patch ]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
++ optional noSysDirs ../no-sys-dirs.patch
@ -88,6 +83,11 @@ let majorVersion = "9";
sha256 = ""; # TODO: uncomment and check hash when available.
}) */
++ optional langAda ../gnat-cflags.patch
++ optional langAda (fetchpatch {
name = "gnat-glibc-234.diff";
url = "https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103.diff";
sha256 = "eS4B7vJasnv2N+5v5yB8/iDpKPX8CJDAy2xabWWj+aU=";
})
++ optional langD ../libphobos.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
@ -285,7 +285,7 @@ stdenv.mkDerivation ({
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;

View file

@ -0,0 +1,70 @@
From 3d0135bf3be416bbe2531dc763d19b749eb2b856 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Sat, 17 Apr 2021 11:27:14 +0200
Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
glibc 2.34 and later, so
static const uptr kAltStackSize = SIGSTKSZ * 4;
needs dynamic initialization, but is used by a function called indirectly
from .preinit_array and therefore before the variable is constructed.
This results in using 0 size instead and all asan instrumented programs
die with:
==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
Here is a cherry-pick from upstream to fix this.
2021-04-17 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/100114
* sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick
llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3)
---
.../sanitizer_common/sanitizer_posix_libcdep.cc | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
index d2fd76a6d36..1917e29ced2 100644
--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) {
#if !SANITIZER_GO
// TODO(glider): different tools may require different altstack size.
-static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough.
+static uptr GetAltStackSize() {
+ // SIGSTKSZ is not enough.
+ static const uptr kAltStackSize = SIGSTKSZ * 4;
+ return kAltStackSize;
+}
void SetAlternateSignalStack() {
stack_t altstack, oldstack;
@@ -180,10 +184,9 @@ void SetAlternateSignalStack() {
// TODO(glider): the mapped stack should have the MAP_STACK flag in the
// future. It is not required by man 2 sigaltstack now (they're using
// malloc()).
- void* base = MmapOrDie(kAltStackSize, __func__);
- altstack.ss_sp = (char*) base;
+ altstack.ss_size = GetAltStackSize();
+ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
altstack.ss_flags = 0;
- altstack.ss_size = kAltStackSize;
CHECK_EQ(0, sigaltstack(&altstack, nullptr));
}
@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() {
stack_t altstack, oldstack;
altstack.ss_sp = nullptr;
altstack.ss_flags = SS_DISABLE;
- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin.
+ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin.
CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
}
--
2.27.0

View file

@ -222,6 +222,10 @@ postInstall() {
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dll.a" "${!outputLib}"
moveToOutput "share/gcc-*/python" "${!outputLib}"
if [ -z "$enableShared" ]; then
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.a" "${!outputLib}"
fi
for i in "${!outputLib}/${targetConfig}"/lib/*.{la,py}; do
substituteInPlace "$i" --replace "$out" "${!outputLib}"
done

View file

@ -55,11 +55,11 @@ in
stdenv.mkDerivation rec {
pname = "go";
version = "1.17.7";
version = "1.17.8";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
sha256 = "sha256-wQjNM7c7GRGgK2l3Qd896kPgGlxOCOQJ6LOg43RdK00=";
sha256 = "sha256-Lv/NiYFA2nmgYfN4TKT42LE9gR+yq+na0kBEQtq733o=";
};
# perl is used for testing go vet

View file

@ -3,4 +3,7 @@ import ./generic.nix {
minor_version = "10";
patch_version = "2";
sha256 = "sha256-locUYQeCgtXbAiB32JveJchfteN2YStE+MN9ToTwAOM=";
patches = [
./glibc-2.34-for-ocaml-4.10-and-11.patch
];
}

View file

@ -3,4 +3,7 @@ import ./generic.nix {
minor_version = "11";
patch_version = "2";
sha256 = "1m3wrgkkv3f77wvcymjm0i2srxzmx62y6jln3i0a2px07ng08l9z";
patches = [
./glibc-2.34-for-ocaml-4.10-and-11.patch
];
}

View file

@ -3,4 +3,9 @@ import ./generic.nix {
minor_version = "12";
patch_version = "1";
sha256 = "1jbjjnmqq6ymsy81x188i256bz4z5jrz1pws8g1qf59c32ganjkf";
patches = [
{ url = "https://src.fedoraproject.org/rpms/ocaml/raw/129153b85109944bf0b2922949f77ef8f32b39a1/f/0004-Dynamically-allocate-the-alternate-signal-stack-1026.patch";
sha256 = "sha256-FdQ1HkMKHU9QvgLPUBvMdPiEa7w7IL3+1F3SLv63Gog=";
}
];
}

View file

@ -0,0 +1,16 @@
# ocaml build system does not allow for parallel building of some
# top-level targets like 'world', 'bootstrap', 'world.opt' as
# then spawn '$(MAKE) all' subprocesses that conflict among each
# other. But we would still like to run each target in parallel
# individually. This file defines such entry points.
# Re-export all existing phases to make 'make install' work as is.
include Makefile
nixpkgs_world:
$(MAKE) world
nixpkgs_world_bootstrap_world_opt:
$(MAKE) world
$(MAKE) bootstrap
$(MAKE) world.opt

View file

@ -1,4 +1,4 @@
{ minor_version, major_version, patch_version
{ minor_version, major_version, patch_version, patches ? []
, ...}@args:
let
versionNoPatch = "${toString major_version}.${toString minor_version}";
@ -6,7 +6,7 @@ let
safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips || stdenv.hostPlatform.isStatic);
in
{ lib, stdenv, fetchurl, ncurses, buildEnv, libunwind
{ lib, stdenv, fetchurl, ncurses, buildEnv, libunwind, fetchpatch
, libX11, xorgproto, useX11 ? safeX11 stdenv && !lib.versionAtLeast version "4.09"
, aflSupport ? false
, flambdaSupport ? false
@ -28,21 +28,22 @@ in
let
useNativeCompilers = !stdenv.isMips;
inherit (lib) optional optionals optionalString;
name = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}-${version}";
pname = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}";
in
let
x11env = buildEnv { name = "x11env"; paths = [libX11 xorgproto]; };
x11lib = x11env + "/lib";
x11inc = x11env + "/include";
fetchpatch' = x: if builtins.isAttrs x then fetchpatch x else x;
in
stdenv.mkDerivation (args // {
inherit name;
inherit version;
inherit pname version src;
inherit src;
patches = map fetchpatch' patches;
strictDeps = true;
@ -74,7 +75,18 @@ stdenv.mkDerivation (args // {
hardeningDisable = lib.optional (lib.versionAtLeast version "4.09" && stdenv.hostPlatform.isMusl) "pie"
++ lib.optionals (args ? hardeningDisable) args.hardeningDisable;
buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
# Older versions have some race:
# cp: cannot stat 'boot/ocamlrun': No such file or directory
# make[2]: *** [Makefile:199: backup] Error 1
enableParallelBuilding = lib.versionAtLeast version "4.08";
# Workaround lack of parallelism support among top-level targets:
# we place nixpkgs-specific targets to a separate file and set
# sequential order among them as a single rule.
makefile = ./Makefile.nixpkgs;
buildFlags = if useNativeCompilers
then ["nixpkgs_world_bootstrap_world_opt"]
else ["nixpkgs_world"];
buildInputs = optional (!lib.versionAtLeast version "4.07") ncurses
++ optionals useX11 [ libX11 xorgproto ];
propagatedBuildInputs = optional spaceTimeSupport libunwind;

View file

@ -0,0 +1,37 @@
From dfb5e954a04f59b0456cc4c0ddf3acaf22e0ff07 Mon Sep 17 00:00:00 2001
From: Richard W.M. Jones <rjones@redhat.com>
Date: Feb 28 2021 20:45:47 +0000
Subject: Workaround for glibc non-constant SIGSTKSZ
https://github.com/ocaml/ocaml/issues/10250
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
---
diff --git a/runtime/signals_nat.c b/runtime/signals_nat.c
index 8b64ab4..7f0a975 100644
--- a/runtime/signals_nat.c
+++ b/runtime/signals_nat.c
@@ -181,7 +181,19 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
#error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined"
#endif
+#ifndef __GLIBC__
static char sig_alt_stack[SIGSTKSZ];
+#else
+/* glibc 2.34 has non-constant SIGSTKSZ */
+static char *sig_alt_stack;
+
+static void allocate_sig_alt_stack(void) __attribute__((constructor));
+static void
+allocate_sig_alt_stack(void)
+{
+ sig_alt_stack = malloc(SIGSTKSZ);
+}
+#endif
/* Code compiled with ocamlopt never accesses more than
EXTRA_STACK bytes below the stack pointer. */

View file

@ -40,6 +40,7 @@ let
./currency-date-range-jdk10.patch
./increase-javadoc-heap.patch
./fix-library-path-jdk11.patch
./fix-glibc-2.34.patch
] ++ lib.optionals (!headless && enableGnome2) [
./swing-use-gtk-jdk10.patch
];

View file

@ -48,6 +48,7 @@ let
url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
})
./fix-glibc-2.34.patch
] ++ lib.optionals (!headless && enableGnome2) [
./swing-use-gtk-jdk13.patch
];

View file

@ -0,0 +1,24 @@
Taken from https://build.opensuse.org/package/view_file/Java:Factory/java-15-openjdk/openjdk-glibc234.patch
--- openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c 2021-04-09 11:36:58.000000000 +0200
+++ openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c 2021-08-26 15:42:52.326232581 +0200
@@ -67,8 +67,17 @@
longjmp(context, 1);
}
+static char* altstack = NULL;
+
void set_signal_handler() {
- static char altstack[SIGSTKSZ];
+ if (altstack == NULL) {
+ // Dynamically allocated in case SIGSTKSZ is not constant
+ altstack = malloc(SIGSTKSZ);
+ if (altstack == NULL) {
+ fprintf(stderr, "Test ERROR. Unable to malloc altstack space\n");
+ exit(7);
+ }
+ }
stack_t ss = {
.ss_size = SIGSTKSZ,

View file

@ -1,4 +1,4 @@
{lib, stdenv, fetchurl, autoreconfHook}:
{lib, stdenv, fetchurl, autoreconfHook, fetchpatch }:
let
version = "5.6";
@ -12,6 +12,14 @@ stdenv.mkDerivation {
substituteInPlace configure.ac --replace stdc++ c++
'';
patches = [
# glibc 2.34 compat
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/polyml/raw/4d8868ca5a1ce3268f212599a321f8011c950496/f/polyml-pthread-stack-min.patch";
sha256 = "1h5ihg2sxld9ymrl3f2mpnbn2242ka1fsa0h4gl9h90kndvg6kby";
})
];
buildInputs = lib.optional stdenv.isDarwin autoreconfHook;
src = fetchurl {

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi }:
{ lib, stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi, fetchpatch }:
stdenv.mkDerivation rec {
pname = "polyml";
@ -8,7 +8,15 @@ stdenv.mkDerivation rec {
substituteInPlace configure.ac --replace stdc++ c++
'';
patches = [ ./5.7-new-libffi-FFI_SYSV.patch ];
patches = [
./5.7-new-libffi-FFI_SYSV.patch
# glibc 2.34 compat
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/polyml/raw/4d8868ca5a1ce3268f212599a321f8011c950496/f/polyml-pthread-stack-min.patch";
sha256 = "1h5ihg2sxld9ymrl3f2mpnbn2242ka1fsa0h4gl9h90kndvg6kby";
})
];
buildInputs = [ libffi gmp ];

View file

@ -1,4 +1,10 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, gmp, libffi }:
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, gmp
, libffi
}:
stdenv.mkDerivation rec {
pname = "polyml";

View file

@ -20,8 +20,8 @@
} @ args:
import ./default.nix {
rustcVersion = "1.58.1";
rustcSha256 = "1iq7kj16qfpkx8gvw50d8rf7glbm6s0pj2y1qkrz7mi56vfsyfd8";
rustcVersion = "1.59.0";
rustcSha256 = "sha256-p8juruhb/O+EyWsCsxcdHmVA0VF5/4Pd3Z6vuhhfhfk=";
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
@ -37,24 +37,25 @@ import ./default.nix {
# Note: the version MUST be one version prior to the version we're
# building
bootstrapVersion = "1.57.0";
bootstrapVersion = "1.58.1";
# fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
bootstrapHashes = {
i686-unknown-linux-gnu = "7e4ac8ca2874897099a3ceb89039ceee170f474a98ee247589fd6bca8dda7cfa";
x86_64-unknown-linux-gnu = "ea0253784b2e5c22659ff148d492a68d2e11da734491714ebc61cc93896efcda";
x86_64-unknown-linux-musl = "56876ebca0e46236208c8bd3c3425dba553abe49639e1040ee8b95bc66a45d33";
arm-unknown-linux-gnueabihf = "b4448f7a96da4feee99a2c4b16b5738b99ab7e86e22d284ea6f7dca5921bca9b";
armv7-unknown-linux-gnueabihf = "577682b1405e8901f971839407daaad06d8ae68ad370305b75d569ba293c4fb4";
aarch64-unknown-linux-gnu = "d66847f7cf7b548ecb328c400ac4f691ee2aea6ff5cd9286ad8733239569556c";
aarch64-unknown-linux-musl = "91c8e5171e5715261f7f635142a10a9415a4e5ba55374daf76f0b713c8b08132";
x86_64-apple-darwin = "15ceffc4743434c19d08f73fb4edd6642b7fd8162ed7101d3e6ca2c691fcb699";
aarch64-apple-darwin = "7511075e28b715e2d9c7ee74221779f8444681a4bb60ac3a0270a5fdf08bdd5a";
powerpc64le-unknown-linux-gnu = "3ddc1abed6b7535c4150bf54291901fa856806c948bc21b711e24a3c8d810be7";
riscv64gc-unknown-linux-gnu = "f809df1c6ac0adc9bd37eb871dfb0d9809f3ed7f61ba611f9305e9eb8f8c9226";
i686-unknown-linux-gnu = "c3d282cd96cc9e5292e62db1ebb9fa6d5b738f4684d5ece9883f7472e2f76ad4";
x86_64-unknown-linux-gnu = "4fac6df9ea49447682c333e57945bebf4f9f45ec7b08849e507a64b2ccd5f8fb";
x86_64-unknown-linux-musl = "7036e34eadc8ce22d16b0625919d9f2244ca49a5441d6599f4822116c181d272";
arm-unknown-linux-gnueabihf = "739389d46c5862b0e67d01dece99aa3db2229e055a3d7f7624679c55b6c33e06";
armv7-unknown-linux-gnueabihf = "6cede2c7795e8126b0f17b1032d52500e594bac64c7d190bdc0ac1c832ef30bd";
aarch64-unknown-linux-gnu = "ce557516593e4526709b0f33c2e1d7c932b3ddf76af94c2417d8d667921ce90c";
aarch64-unknown-linux-musl = "b1533fdeeda483a3633617fd18a79d8fad7821331614b8dc13efd8b22acc30f5";
x86_64-apple-darwin = "d0044680fc132a721481b130a0a4282a444867f423efdb890fe13e447966412f";
aarch64-apple-darwin = "00b44985bc87e53c53d92622fb10226f09e9f25c79db48a77c0a769a36f83b1e";
powerpc64le-unknown-linux-gnu = "b15baef702cbd6f0ea2bef7bf98ca7ce5644f2beb219028e8a12e7053da4c849";
riscv64gc-unknown-linux-gnu = "d8ea2b11a4b24d1169fa3190127488b951b8bdef28293a4129ddd46c0ba9469b";
mips64el-unknown-linux-gnuabi64 = "4f03bc972ae784d4f66cfa77215b369723531e67f647de9f49ce9fc21e5691af";
};
selectRustPackage = pkgs: pkgs.rust_1_58;
selectRustPackage = pkgs: pkgs.rust_1_59;
rustcPatches = [
];

View file

@ -19,7 +19,7 @@ in
rec {
rustc = stdenv.mkDerivation {
name = "rustc-${versionType}-${version}";
pname = "rustc-${versionType}";
inherit version;
inherit src;
@ -71,7 +71,7 @@ rec {
};
cargo = stdenv.mkDerivation {
name = "cargo-${versionType}-${version}";
pname = "cargo-${versionType}";
inherit version;
inherit src;

View file

@ -5,7 +5,7 @@
}:
rustPlatform.buildRustPackage {
name = "cargo-${rustc.version}";
pname = "cargo";
inherit (rustc) version src;
# the rust source tarball already has all the dependencies vendored, no need to fetch them again

View file

@ -153,7 +153,8 @@ with python.pkgs; buildPythonApplication rec {
--subst-var-by SPDX_LICENSE_LIST_DATA '${spdx-license-list-data.json}'
substituteInPlace setup.py \
--replace "zeroconf==0.37.*" "zeroconf"
--replace "wsproto==1.0.*" "wsproto" \
--replace "zeroconf==0.38.*" "zeroconf"
'';
meta = with lib; {

View file

@ -153,13 +153,13 @@ let
export GOCACHE=$TMPDIR/go-cache
export GOPATH="$TMPDIR/go"
export GOPROXY=off
export GOSUMDB=off
cd "$modRoot"
'' + lib.optionalString (go-modules != "") ''
'' + lib.optionalString (vendorSha256 != null) ''
${if proxyVendor then ''
export GOPROXY=file://${go-modules}
'' else ''
export GOPROXY=off
rm -rf vendor
cp -r --reflink=auto ${go-modules} vendor
''}
@ -171,13 +171,20 @@ let
buildPhase = args.buildPhase or ''
runHook preBuild
exclude='\(/_\|examples\|Godeps\|testdata'
if [[ -n "$excludedPackages" ]]; then
IFS=' ' read -r -a excludedArr <<<$excludedPackages
printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}"
excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf
exclude+='\|'"$excludedAlternates"
fi
exclude+='\)'
buildGoDir() {
local d; local cmd;
cmd="$1"
d="$2"
. $TMPDIR/buildFlagsArray
echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
[ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
local OUT
if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
@ -214,6 +221,7 @@ let
export NIX_BUILD_CORES=1
fi
for pkg in $(getGoDirs ""); do
grep -q "$exclude" <<<$pkg && continue
echo "Building subPackage $pkg"
buildGoDir install "$pkg"
done

View file

@ -150,13 +150,20 @@ let
runHook renameImports
exclude='\(/_\|examples\|Godeps\|testdata'
if [[ -n "$excludedPackages" ]]; then
IFS=' ' read -r -a excludedArr <<<$excludedPackages
printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}"
excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf
exclude+='\|'"$excludedAlternates"
fi
exclude+='\)'
buildGoDir() {
local d; local cmd;
cmd="$1"
d="$2"
. $TMPDIR/buildFlagsArray
echo "$d" | grep -q "\(/_\|examples\|Godeps\)" && return 0
[ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
local OUT
if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
@ -195,6 +202,8 @@ let
export NIX_BUILD_CORES=1
fi
for pkg in $(getGoDirs ""); do
grep -q "$exclude" <<<$pkg && continue
echo "Building subPackage $pkg"
buildGoDir install "$pkg"
done
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''

View file

@ -30,6 +30,10 @@ stdenv.mkDerivation {
hardeningDisable = [ "stackprotector" ] ++
lib.optionals stdenv.isi686 [ "pic" "fortify" ];
# Fix for glibc-2.34, see
# https://gitweb.gentoo.org/repo/gentoo.git/commit/dev-lang/maude/maude-3.1-r1.ebuild?id=f021cc6cfa1e35eb9c59955830f1fd89bfcb26b4
configureFlags = [ "--without-libsigsegv" ];
preConfigure = ''
configureFlagsArray=(
--datadir="$out/share/maude"

View file

@ -19,11 +19,10 @@ let
common = { perl, buildPerl, version, sha256 }: stdenv.mkDerivation (rec {
inherit version;
name = "perl-${version}";
pname = "perl";
src = fetchurl {
url = "mirror://cpan/src/5.0/${name}.tar.gz";
url = "mirror://cpan/src/5.0/perl-${version}.tar.gz";
inherit sha256;
};

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