···6767 sha256 = "sha256-KZ5VrzDxVpGwFdjc+OyuckEkElaeWy7OIDYXU6RW8vk=";
6868 };
69697070+ strictDeps = true;
7071 # perl is used for testing go vet
7172 nativeBuildInputs = [ perl which pkg-config procps ];
7273 buildInputs = [ cacert pcre ]
+1
pkgs/development/compilers/go/1.18.nix
···6767 sha256 = "sha256-LETQPqLDQJITerkZumAvLCYaA40I60aFKKPzoo5WZ+I=";
6868 };
69697070+ strictDeps = true;
7071 # perl is used for testing go vet
7172 nativeBuildInputs = [ perl which pkg-config procps ];
7273 buildInputs = [ cacert pcre ]
-64
pkgs/development/compilers/rust/1_60.nix
···11-# New rust versions should first go to staging.
22-# Things to check after updating:
33-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
44-# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
55-# This testing can be also done by other volunteers as part of the pull
66-# request review, in case platforms cannot be covered.
77-# 2. The LLVM version used for building should match with rust upstream.
88-# Check the version number in the src/llvm-project git submodule in:
99-# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
1010-# 3. Firefox and Thunderbird should still build on x86_64-linux.
1111-1212-{ stdenv, lib
1313-, buildPackages
1414-, newScope, callPackage
1515-, CoreFoundation, Security, SystemConfiguration
1616-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
1717-, makeRustPlatform
1818-, llvmPackages_11
1919-, llvmPackages_14, llvm_14
2020-} @ args:
2121-2222-import ./default.nix {
2323- rustcVersion = "1.60.0";
2424- rustcSha256 = "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0";
2525-2626- llvmSharedForBuild = pkgsBuildBuild.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
2727- llvmSharedForHost = pkgsBuildHost.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
2828- llvmSharedForTarget = pkgsBuildTarget.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
2929-3030- llvmBootstrapForDarwin = llvmPackages_11;
3131-3232- # For use at runtime
3333- llvmShared = llvm_14.override { enableSharedLibraries = true; };
3434-3535- # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
3636- llvmPackages = llvmPackages_14;
3737-3838- # Note: the version MUST be one version prior to the version we're
3939- # building
4040- bootstrapVersion = "1.59.0";
4141-4242- # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
4343- bootstrapHashes = {
4444- i686-unknown-linux-gnu = "f57ebfafed1e857b2b1dc1a22cf1133766f68a0759dc2f717dec54a8d4385dec";
4545- x86_64-unknown-linux-gnu = "0c1c2da3fa26372e5178123aa5bb0fdcd4933fbad9bfb268ffbd71807182ecae";
4646- x86_64-unknown-linux-musl = "c0ae76fa4bb0f1c85b86b9f7637db0fddf5084ce4c8f86c4d4acc3c41813201f";
4747- arm-unknown-linux-gnueabihf = "f934ddd8533d5df922e3397a5d30404930c5992c6c91c72d3e1475e2978e8793";
4848- armv7-unknown-linux-gnueabihf = "acb0f793c517de927b17e1c85135f6d58ae7430a8bd094a92009bcf0d4bbb8eb";
4949- aarch64-unknown-linux-gnu = "ab5da30a3de5433e26cbc74c56b9d97b569769fc2e456fc54378adc8baaee4f0";
5050- aarch64-unknown-linux-musl = "a3f8afdf23c98e6d25bf3b4bfcf5e9a4712f4c425f3754500931232d946204a9";
5151- x86_64-apple-darwin = "d82204f536af0c7bfd2ea2213dc46b99911860cfc5517f7321244412ae96f159";
5252- aarch64-apple-darwin = "5449ae915982967bae97746ce8bea30844f9ab40b4ee4da392b9997e0e7b2926";
5353- powerpc64le-unknown-linux-gnu = "6892a706ea8118344a4f4624b57a99460a784b5b30cccd9df430c33008d341f3";
5454- riscv64gc-unknown-linux-gnu = "e0cb22c2383d73b3928c17a630ae8d37f6787ddcea7871c9b3e21fd4560226b2";
5555- mips64el-unknown-linux-gnuabi64 = "2e2c404741b1dd02b5d73361f187568a91a8531997ade41bd855eca3972e2a5b";
5656- };
5757-5858- selectRustPackage = pkgs: pkgs.rust_1_60;
5959-6060- rustcPatches = [
6161- ];
6262-}
6363-6464-(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_14" "llvm_14"])
+64
pkgs/development/compilers/rust/1_61.nix
···11+# New rust versions should first go to staging.
22+# Things to check after updating:
33+# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
44+# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
55+# This testing can be also done by other volunteers as part of the pull
66+# request review, in case platforms cannot be covered.
77+# 2. The LLVM version used for building should match with rust upstream.
88+# Check the version number in the src/llvm-project git submodule in:
99+# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
1010+# 3. Firefox and Thunderbird should still build on x86_64-linux.
1111+1212+{ stdenv, lib
1313+, buildPackages
1414+, newScope, callPackage
1515+, CoreFoundation, Security, SystemConfiguration
1616+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
1717+, makeRustPlatform
1818+, llvmPackages_11
1919+, llvmPackages_14, llvm_14
2020+} @ args:
2121+2222+import ./default.nix {
2323+ rustcVersion = "1.61.0";
2424+ rustcSha256 = "1vfs05hkf9ilk19b2vahqn8l6k17pl9nc1ky9kgspaascx8l62xd";
2525+2626+ llvmSharedForBuild = pkgsBuildBuild.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
2727+ llvmSharedForHost = pkgsBuildHost.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
2828+ llvmSharedForTarget = pkgsBuildTarget.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
2929+3030+ llvmBootstrapForDarwin = llvmPackages_11;
3131+3232+ # For use at runtime
3333+ llvmShared = llvm_14.override { enableSharedLibraries = true; };
3434+3535+ # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
3636+ llvmPackages = llvmPackages_14;
3737+3838+ # Note: the version MUST be one version prior to the version we're
3939+ # building
4040+ bootstrapVersion = "1.60.0";
4141+4242+ # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
4343+ bootstrapHashes = {
4444+ i686-unknown-linux-gnu = "2a635269dc9ad8f7bbdf168cdf120e1ec803d36adc832c0804f38e0acc3e2357";
4545+ x86_64-unknown-linux-gnu = "b8a4c3959367d053825e31f90a5eb86418eb0d80cacda52bfa80b078e18150d5";
4646+ x86_64-unknown-linux-musl = "f0feefcb1985c5c894ad9b0f44e6f09900b31c0eb5f49827da9f37d332a63894";
4747+ arm-unknown-linux-gnueabihf = "161b2b97d4512080350cc6656b0765ebae870335e86c2896bed08b32c66fbdf4";
4848+ armv7-unknown-linux-gnueabihf = "f2d76e9458949675bab8fcae44f600d30d91f62bf93c127b6b1fe3130e67d5d9";
4949+ aarch64-unknown-linux-gnu = "99c419c2f35d4324446481c39402c7baecd7a8baed7edca9f8d6bbd33c05550c";
5050+ aarch64-unknown-linux-musl = "fe7e9bad8beea84973f7ffa39879929de4ac8afad872650fb0af6b068f05faa6";
5151+ x86_64-apple-darwin = "0b10dc45cddc4d2355e38cac86d71a504327cb41d41d702d4050b9847ad4258c";
5252+ aarch64-apple-darwin = "b532672c278c25683ca63d78e82bae829eea1a32308e844954fb66cfe34ad222";
5353+ powerpc64le-unknown-linux-gnu = "80125e90285b214c2b1f56ab86a09c8509aa17aec9d7127960a86a7008e8f7de";
5454+ riscv64gc-unknown-linux-gnu = "9cc7c6804bcbbecb9c35232035fc488dbcc8487606cc6be3da553cc446bf0fcd";
5555+ mips64el-unknown-linux-gnuabi64 = "d413681c22511259f7cd15414a00050cf151d46ac0f9282e765faeb86688deac";
5656+ };
5757+5858+ selectRustPackage = pkgs: pkgs.rust_1_61;
5959+6060+ rustcPatches = [
6161+ ];
6262+}
6363+6464+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_14" "llvm_14"])
···88# `glibc` needs to be overridden here because it's still needed to `./configure` the source in order
99# to have a build environment where we can call the needed make target.
10101111-glibc.overrideAttrs ({ meta ? {}, ... }: {
1111+glibc.overrideAttrs (oldAttrs: {
1212 pname = "glibc-mtrace";
13131414 buildPhase = ''
···2525 mv malloc/mtrace $out/bin/
2626 '';
27272828- # Perl interpreter used for `mtrace`.
2929- buildInputs = [ perl ];
2828+ # Perl checked during configure
2929+ nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ perl ];
3030+ # Perl shebang used for `mtrace`.
3131+ buildInputs = oldAttrs.buildInputs ++ [ perl ];
30323133 # Reset a few things declared by `pkgs.glibc`.
3234 outputs = [ "out" ];
3335 separateDebugInfo = false;
34363535- meta = meta // {
3737+ meta = oldAttrs.meta // {
3638 description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3).";
3739 };
3840})
···11-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.93/ -A '*.tar.xz' )
11+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.94/ -A '*.tar.xz' )
···1111}:
12121313stdenv.mkDerivation rec {
1414- # Note the revision needs to be adjusted.
1515- version = "6.3";
1414+ ver = "6.3";
1515+ # We pick fresh intermediate release to get a fix for CVE-2022-29458
1616+ # which was fixed in 20220416 patchset.
1717+ patchver = "20220507";
1818+ version = "${ver}-p${patchver}";
1619 pname = "ncurses" + lib.optionalString (abiVersion == "5") "-abi5-compat";
17201818- # We cannot use fetchFromGitHub (which calls fetchzip)
1919- # because we need to be able to use fetchurlBoot.
2020- src = let
2121- # Note the version needs to be adjusted.
2222- rev = "v${version}";
2323- in fetchurl {
2424- url = "https://github.com/mirror/ncurses/archive/${rev}.tar.gz";
2525- sha256 = "1mawdjhzl2na2j0dylwc37f5w95rhgyvlwnfhww5rz2r7fgkvayv";
2121+ src = fetchurl {
2222+ url = "https://invisible-island.net/archives/ncurses/current/ncurses-${ver}-${patchver}.tgz";
2323+ sha256 = "02y4n4my5qqhw3fdhdjv1zc9xpyglzlzmzjwq2zcwbwv738255ja";
2624 };
27252826 outputs = [ "out" "dev" "man" ];
+3-3
pkgs/development/libraries/nspr/default.nix
···7788stdenv.mkDerivation rec {
99 pname = "nspr";
1010- version = "4.33";
1010+ version = "4.34";
11111212 src = fetchurl {
1313 url = "mirror://mozilla/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
1414- sha256 = "1mwklrsx05ga30crr9xi6nl4d49d5mzx2x533bxw4l0fpqay6gmj";
1414+ sha256 = "177rxcf3lglabs7sgwcvf72ww4v56qa71lc495wl13sxs4f03vxy";
1515 };
16161717 patches = [
···4747 meta = with lib; {
4848 homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSPR_functions";
4949 description = "Netscape Portable Runtime, a platform-neutral API for system-level and libc-like functions";
5050- maintainers = with maintainers; [ ];
5050+ maintainers = with maintainers; [ ajs124 hexa ];
5151 platforms = platforms.all;
5252 license = licenses.mpl20;
5353 };
···9090 "test_comparison_invalid"
9191 # AssertionError: Regex pattern '"quotechar" must be string, not int'
9292 "python-kwargs2"
9393+ # Tests for rounding errors and fails if we have better precision
9494+ # than expected, e.g. on amd64 with FMA or on arm64
9595+ # https://github.com/pandas-dev/pandas/issues/38921
9696+ "test_rolling_var_numerical_issues"
9397 ] ++ lib.optionals stdenv.isDarwin [
9498 "test_locale"
9599 "test_clipboard"
···1212 };
13131414 outputs = [ "out" "man" "doc" ];
1515+ strictDeps = true;
15161617 # Process Requires.private properly, see
1718 # http://bugs.freedesktop.org/show_bug.cgi?id=4738, migrated to
+5-3
pkgs/development/tools/misc/texinfo/common.nix
···11{ version, sha256, patches ? [] }:
2233-{ lib, stdenv, buildPackages, fetchurl, perl, xz, gettext
33+{ lib, stdenv, buildPackages, fetchurl, perl, xz, libintl, bash
4455# we are a dependency of gcc, this simplifies bootstraping
66, interactive ? false, ncurses, procps
···3333 NATIVE_TOOLS_CFLAGS = if crossBuildTools then "-I${getDev buildPackages.ncurses}/include" else null;
3434 NATIVE_TOOLS_LDFLAGS = if crossBuildTools then "-L${getLib buildPackages.ncurses}/lib" else null;
35353636+ strictDeps = true;
3737+ enableParallelBuilding = true;
3838+3639 # We need a native compiler to build perl XS extensions
3740 # when cross-compiling.
3841 depsBuildBuild = [ buildPackages.stdenv.cc perl ];
39424040- buildInputs = [ xz.bin ]
4343+ buildInputs = [ xz.bin bash libintl ]
4144 ++ optionals stdenv.isSunOS [ libiconv gawk ]
4242- ++ optionals stdenv.isDarwin [ gettext ]
4345 ++ optional interactive ncurses;
44464547 configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ]
+5
pkgs/development/tools/parsing/bison/default.nix
···1818 # Otherwise tests fail due to incorrect unicode symbol oconversion.
1919 configurePlatforms = [ "build" "host" ];
20202121+ # there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell
2222+ # however when cross-compiling it would still be patched with the build stdenv shell which would be wrong
2323+ # cannot add bash to buildInputs due to infinite recursion
2424+ strictDeps = stdenv.hostPlatform != stdenv.buildPlatform;
2525+2126 nativeBuildInputs = [ m4 perl ] ++ lib.optional stdenv.isSunOS help2man;
2227 propagatedBuildInputs = [ m4 ];
2328
···14141515 ARCH = stdenvNoCC.hostPlatform.linuxArch;
16161717+ strictDeps = true;
1818+ enableParallelBuilding = true;
1919+1720 # It may look odd that we use `stdenvNoCC`, and yet explicit depend on a cc.
1821 # We do this so we have a build->build, not build->host, C compiler.
1922 depsBuildBuild = [ buildPackages.stdenv.cc ];
+22-6
pkgs/os-specific/linux/kmod/default.nix
···11-{ stdenv, lib, fetchurl, autoreconfHook, pkg-config
11+{ stdenv, lib, fetchzip, autoconf, automake, docbook_xml_dtd_42
22+, docbook_xml_dtd_43, docbook_xsl, gtk-doc, libtool, pkg-config
23, libxslt, xz, zstd, elf-header
44+, withDevdoc ? stdenv.hostPlatform == stdenv.buildPlatform
35, withStatic ? stdenv.hostPlatform.isStatic
46}:
57···1113 pname = "kmod";
1214 version = "29";
13151414- src = fetchurl {
1515- url = "mirror://kernel/linux/utils/kernel/${pname}/${pname}-${version}.tar.xz";
1616- sha256 = "0am54mi5rk72g5q7k6l6f36gw3r9vwgjmyna43ywcjhqmakyx00b";
1616+ # autogen.sh is missing from the release tarball,
1717+ # and we need to run it to regenerate gtk_doc.make,
1818+ # because the version in the release tarball is broken.
1919+ # Possibly this will be fixed in kmod 30?
2020+ # https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/.gitignore?id=61a93a043aa52ad62a11ba940d4ba93cb3254e78
2121+ src = fetchzip {
2222+ url = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/snapshot/kmod-${version}.tar.gz";
2323+ sha256 = "sha256-7O5VdBd8rBZdIERPE+2zkjj5POvSurwlV2EpWmkFUD0=";
1724 };
18251919- outputs = [ "out" "dev" "lib" ];
2626+ outputs = [ "out" "dev" "lib" ] ++ lib.optional withDevdoc "devdoc";
2727+2828+ nativeBuildInputs = [
2929+ autoconf automake docbook_xsl libtool libxslt pkg-config
20302121- nativeBuildInputs = [ autoreconfHook pkg-config libxslt ];
3131+ docbook_xml_dtd_42 # for the man pages
3232+ ] ++ lib.optionals withDevdoc [ docbook_xml_dtd_43 gtk-doc ];
2233 buildInputs = [ xz zstd ] ++ lib.optional stdenv.isDarwin elf-header;
23343535+ preConfigure = ''
3636+ ./autogen.sh
3737+ '';
3838+2439 configureFlags = [
2540 "--sysconfdir=/etc"
2641 "--with-xz"
2742 "--with-zstd"
2843 "--with-modulesdirs=${modulesDirs}"
4444+ (lib.enableFeature withDevdoc "gtk-doc")
2945 ] ++ lib.optional withStatic "--enable-static";
30463147 patches = [ ./module-dir.patch ]
+2-2
pkgs/os-specific/linux/lvm2/2_03.nix
···11import ./common.nix {
22- version = "2.03.15";
33- sha256 = "17n9xl01by7dcbjwjnr6b4rrkp2frz8hwnjl59svsyp13sjq6llk";
22+ version = "2.03.16";
33+ sha256 = "sha256-5mHs4VtdiNir45pMHh2y9D4YlvAZlIu5iw4V13doB4Y=";
44}
+5-9
pkgs/os-specific/linux/systemd/default.nix
···340340 exit 1
341341 fi
342342 ''
343343- # Finally patch shebangs that might need patching.
344344- # Should no longer be necessary with v251.
345345- # https://github.com/systemd/systemd/pull/21749
343343+ # Finally, patch shebangs in scripts used at build time. This must not patch
344344+ # scripts that will end up in the output, to avoid build platform references
345345+ # when cross-compiling.
346346 + ''
347347- patchShebangs .
347347+ shopt -s extglob
348348+ patchShebangs tools test src/!(rpm)
348349 '';
349350350351 outputs = [ "out" "man" "dev" ];
···602603603604 ${lib.concatStringsSep "\n" (lib.flatten (map mkSubstitute binaryReplacements))}
604605 ${lib.concatMapStringsSep "\n" mkEnsureSubstituted binaryReplacements}
605605-606606-607607- for dir in tools src/resolve test src/test src/shared; do
608608- patchShebangs $dir
609609- done
610606611607 substituteInPlace src/libsystemd/sd-journal/catalog.c \
612608 --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
···11-From e8b56ebd536e82b15542a00c888109471936bfda Mon Sep 17 00:00:00 2001
22-From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
33-Date: Fri, 24 Sep 2021 20:57:41 +0100
44-Subject: [PATCH] chmod: fix exit status when ignoring symlinks
55-66-* src/chmod.c: Reorder enum so CH_NOT_APPLIED
77-can be treated as a non error.
88-* tests/chmod/ignore-symlink.sh: A new test.
99-* tests/local.mk: Reference the new test.
1010-* NEWS: Mention the bug fix.
1111-Fixes https://bugs.gnu.org/50784
1212----
1313- NEWS | 6 ++++++
1414- src/chmod.c | 4 ++--
1515- tests/chmod/ignore-symlink.sh | 31 +++++++++++++++++++++++++++++++
1616- tests/local.mk | 1 +
1717- 4 files changed, 40 insertions(+), 2 deletions(-)
1818- create mode 100755 tests/chmod/ignore-symlink.sh
1919-2020-diff --git a/NEWS b/NEWS
2121-index a1470a7d7..1cb3c28a1 100644
2222---- a/NEWS
2323-+++ b/NEWS
2424-@@ -2,6 +2,12 @@ GNU coreutils NEWS -*- outline -*-
2525-2626- * Noteworthy changes in release ?.? (????-??-??) [?]
2727-2828-+** Bug fixes
2929-+
3030-+ chmod -R no longer exits with error status when encountering symlinks.
3131-+ All files would be processed correctly, but the exit status was incorrect.
3232-+ [bug introduced in coreutils-9.0]
3333-+
3434-3535- * Noteworthy changes in release 9.0 (2021-09-24) [stable]
3636-3737-diff --git a/src/chmod.c b/src/chmod.c
3838-index 37b04f500..57ac47f33 100644
3939---- a/src/chmod.c
4040-+++ b/src/chmod.c
4141-@@ -44,8 +44,8 @@ struct change_status
4242- enum
4343- {
4444- CH_NO_STAT,
4545-- CH_NOT_APPLIED,
4646- CH_FAILED,
4747-+ CH_NOT_APPLIED,
4848- CH_NO_CHANGE_REQUESTED,
4949- CH_SUCCEEDED
5050- }
5151-@@ -322,7 +322,7 @@ process_file (FTS *fts, FTSENT *ent)
5252- if ( ! recurse)
5353- fts_set (fts, ent, FTS_SKIP);
5454-5555-- return CH_NO_CHANGE_REQUESTED <= ch.status;
5656-+ return CH_NOT_APPLIED <= ch.status;
5757- }
5858-5959- /* Recursively change the modes of the specified FILES (the last entry
6060-diff --git a/tests/chmod/ignore-symlink.sh b/tests/chmod/ignore-symlink.sh
6161-new file mode 100755
6262-index 000000000..5ce3de816
6363---- /dev/null
6464-+++ b/tests/chmod/ignore-symlink.sh
6565-@@ -0,0 +1,31 @@
6666-+#!/bin/sh
6767-+# Test for proper exit code of chmod on a processed symlink.
6868-+
6969-+# Copyright (C) 2021 Free Software Foundation, Inc.
7070-+
7171-+# This program is free software: you can redistribute it and/or modify
7272-+# it under the terms of the GNU General Public License as published by
7373-+# the Free Software Foundation, either version 3 of the License, or
7474-+# (at your option) any later version.
7575-+
7676-+# This program is distributed in the hope that it will be useful,
7777-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
7878-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7979-+# GNU General Public License for more details.
8080-+
8181-+# You should have received a copy of the GNU General Public License
8282-+# along with this program. If not, see <https://www.gnu.org/licenses/>.
8383-+
8484-+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
8585-+print_ver_ chmod
8686-+
8787-+mkdir dir || framework_failure_
8888-+touch dir/f || framework_failure_
8989-+ln -s f dir/l || framework_failure_
9090-+
9191-+# This operation ignores symlinks but should succeed.
9292-+chmod u+w -R dir 2> out || fail=1
9393-+
9494-+compare /dev/null out || fail=1
9595-+
9696-+Exit $fail
9797-diff --git a/tests/local.mk b/tests/local.mk
9898-index 228d0e368..b5b893fb7 100644
9999---- a/tests/local.mk
100100-+++ b/tests/local.mk
101101-@@ -456,6 +456,7 @@ all_tests = \
102102- tests/chmod/c-option.sh \
103103- tests/chmod/equal-x.sh \
104104- tests/chmod/equals.sh \
105105-+ tests/chmod/ignore-symlink.sh \
106106- tests/chmod/inaccessible.sh \
107107- tests/chmod/octal.sh \
108108- tests/chmod/setgid.sh \