···
assertion = "grep '^#!/usr/bin/builtin' $out/bin/test > /dev/null";
111
+
name = "read-only-script";
112
+
system = stdenv.buildPlatform.system;
113
+
builder = "${stdenv.__bootPackages.stdenv.__bootPackages.bashNonInteractive}/bin/bash";
115
+
stdenv.__bootPackages.stdenv.__bootPackages.coreutils
117
+
strictDeps = false;
122
+
. ${../../stdenv/generic/setup.sh}
123
+
. ${../../build-support/setup-hooks/patch-shebangs.sh}
125
+
echo "#!/bin/bash" > $out/bin/test
126
+
echo "echo -n hello" >> $out/bin/test
127
+
chmod 555 $out/bin/test
128
+
patchShebangs $out/bin/test
131
+
assertion = "grep '^#!${stdenv.shell}' $out/bin/test > /dev/null";
137
+
preserves-read-only =
139
+
name = "preserves-read-only";
140
+
system = stdenv.buildPlatform.system;
141
+
builder = "${stdenv.__bootPackages.stdenv.__bootPackages.bashNonInteractive}/bin/bash";
143
+
stdenv.__bootPackages.stdenv.__bootPackages.coreutils
145
+
strictDeps = false;
150
+
. ${../../stdenv/generic/setup.sh}
151
+
. ${../../build-support/setup-hooks/patch-shebangs.sh}
153
+
echo "#!/bin/bash" > $out/bin/test
154
+
echo "echo -n hello" >> $out/bin/test
155
+
chmod 555 $out/bin/test
156
+
original_perms=$(stat -c %a $out/bin/test)
157
+
patchShebangs $out/bin/test
158
+
new_perms=$(stat -c %a $out/bin/test)
159
+
if ! [ "$original_perms" = "$new_perms" ]; then
160
+
echo "Permissions changed from $original_perms to $new_perms"
165
+
assertion = "grep '^#!${stdenv.shell}' $out/bin/test > /dev/null";
171
+
# Preserve times, see: https://github.com/NixOS/nixpkgs/pull/33281
172
+
preserves-timestamp =
174
+
name = "preserves-timestamp";
175
+
system = stdenv.buildPlatform.system;
176
+
builder = "${stdenv.__bootPackages.stdenv.__bootPackages.bashNonInteractive}/bin/bash";
178
+
stdenv.__bootPackages.stdenv.__bootPackages.coreutils
180
+
strictDeps = false;
185
+
. ${../../stdenv/generic/setup.sh}
186
+
. ${../../build-support/setup-hooks/patch-shebangs.sh}
188
+
echo "#!/bin/bash" > $out/bin/test
189
+
echo "echo -n hello" >> $out/bin/test
190
+
chmod +x $out/bin/test
191
+
# Set a specific timestamp (2000-01-01 00:00:00)
192
+
touch -t 200001010000 $out/bin/test
193
+
original_timestamp=$(stat -c %Y $out/bin/test)
194
+
patchShebangs $out/bin/test
195
+
new_timestamp=$(stat -c %Y $out/bin/test)
196
+
if ! [ "$original_timestamp" = "$new_timestamp" ]; then
197
+
echo "Timestamp changed from $original_timestamp to $new_timestamp"
202
+
assertion = "grep '^#!${stdenv.shell}' $out/bin/test > /dev/null";
···
218
+
dont-patch-builtins
220
+
preserves-read-only
221
+
preserves-timestamp