Merge #165406: staging-next 2022-03-23
This commit is contained in:
commit
b4729bad3d
@ -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.
|
||||
|
@ -9,7 +9,7 @@ tmp=$(mktemp --tmpdir -d nixpkgs-dep-license.XXXXXX)
|
||||
exitHandler() {
|
||||
exitCode=$?
|
||||
rm -rf "$tmp"
|
||||
exit $exitCode
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
trap "exitHandler" EXIT
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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 =
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
'';
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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;
|
||||
|
@ -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=";
|
||||
})
|
||||
];
|
||||
})
|
||||
|
@ -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 ];
|
||||
|
13
pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch
Normal file
13
pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch
Normal 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>
|
@ -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' )
|
||||
|
@ -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
@ -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
|
||||
|
@ -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 ];
|
||||
|
@ -15,7 +15,7 @@ buildGoModule rec {
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
excludedPackages = "\\(tools\\|docgen\\)";
|
||||
excludedPackages = [ "tools" "docgen" ];
|
||||
|
||||
ldflags =
|
||||
let t = "github.com/rancher/k3d/v5/version"; in
|
||||
|
@ -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
|
||||
|
@ -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" \
|
||||
|
@ -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 = [
|
||||
|
@ -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 \
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
};
|
||||
}
|
||||
|
@ -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"'';
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ rec {
|
||||
allowSubstitutes = false;
|
||||
}
|
||||
''
|
||||
target=$out${destination}
|
||||
target=$out${lib.escapeShellArg destination}
|
||||
mkdir -p "$(dirname "$target")"
|
||||
|
||||
if [ -e "$textPath" ]; then
|
||||
|
34
pkgs/build-support/trivial-builders/test/write-text-file.nix
Normal file
34
pkgs/build-support/trivial-builders/test/write-text-file.nix
Normal 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
|
||||
'';
|
||||
}
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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=";
|
||||
|
@ -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";
|
||||
})
|
||||
];
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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; {
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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}");
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
30
pkgs/development/compilers/gcc/6/gnat-glibc234.patch
Normal file
30
pkgs/development/compilers/gcc/6/gnat-glibc234.patch
Normal 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);
|
@ -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;
|
||||
|
||||
|
70
pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch
Normal file
70
pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch
Normal 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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
70
pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch
Normal file
70
pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch
Normal 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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
];
|
||||
}
|
||||
|
@ -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
|
||||
];
|
||||
}
|
||||
|
@ -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=";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
16
pkgs/development/compilers/ocaml/Makefile.nixpkgs
Normal file
16
pkgs/development/compilers/ocaml/Makefile.nixpkgs
Normal 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
|
@ -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;
|
||||
|
@ -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. */
|
||||
|
@ -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
|
||||
];
|
||||
|
@ -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
|
||||
];
|
||||
|
24
pkgs/development/compilers/openjdk/fix-glibc-2.34.patch
Normal file
24
pkgs/development/compilers/openjdk/fix-glibc-2.34.patch
Normal 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,
|
||||
|
@ -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 {
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -1,4 +1,10 @@
|
||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, gmp, libffi }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, gmp
|
||||
, libffi
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "polyml";
|
||||
|
@ -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 = [
|
||||
];
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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; {
|
||||
|
@ -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
|
||||
|
@ -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) ''
|
||||
|
@ -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"
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user