···642 };
643644 scriptArgs = "%i";
645- path = [ pkgs.gawk cfgZfs.package ];
646647- # ZFS has no way of enumerating just devices in a pool in a way
648- # that 'zpool online -e' supports. Thus, we've implemented a
649- # bit of a strange approach of highlighting just devices.
650- # See: https://github.com/openzfs/zfs/issues/12505
651- script = let
652- # This UUID has been chosen at random and is to provide a
653- # collision-proof, predictable token to search for
654- magicIdentifier = "NIXOS-ZFS-ZPOOL-DEVICE-IDENTIFIER-37108bec-aff6-4b58-9e5e-53c7c9766f05";
655- zpoolScripts = pkgs.writeShellScriptBin "device-highlighter" ''
656- echo "${magicIdentifier}"
657- '';
658- in ''
659 pool=$1
660661 echo "Expanding all devices for $pool."
662663- # Put our device-highlighter script it to the PATH
664- export ZPOOL_SCRIPTS_PATH=${zpoolScripts}/bin
665-666- # Enable running our precisely specified zpool script as root
667- export ZPOOL_SCRIPTS_AS_ROOT=1
668-669- devices() (
670- zpool status -c device-highlighter "$pool" \
671- | awk '($2 == "ONLINE" && $6 == "${magicIdentifier}") { print $1; }'
672- )
673-674- for device in $(devices); do
675- echo "Attempting to expand $device of $pool..."
676- if ! zpool online -e "$pool" "$device"; then
677- echo "Failed to expand '$device' of '$pool'."
678- fi
679- done
680 '';
681 };
682···700 Type = "oneshot";
701 RemainAfterExit = true;
702 };
703-704- path = [ pkgs.gawk cfgZfs.package ];
705706 script = ''
707 for pool in ${poolListProvider}; do
···642 };
643644 scriptArgs = "%i";
645+ path = [ cfgZfs.package ];
646647+ script = ''
00000000000648 pool=$1
649650 echo "Expanding all devices for $pool."
651652+ ${pkgs.zpool-auto-expand-partitions}/bin/zpool_part_disks --automatically-grow "$pool"
0000000000000000653 '';
654 };
655···673 Type = "oneshot";
674 RemainAfterExit = true;
675 };
00676677 script = ''
678 for pool in ${poolListProvider}; do
···181 # some files, like Pipfile, pyproject.toml, requirements.txt and setup.cfg
182 # are generated by the bootstrap script using m4. these can fetch data from
183 # build/pkgs, either directly or via sage-get-system-packages.
184- sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
185- sed -i 's/, <3.4//' ../rpy2/install-requires.txt
186- sed -i 's/, <4.3//' ../sphinx/install-requires.txt
187 sed -i '/sage_conf/d' src/setup.cfg.m4
188 sed -i '/sage_conf/d' src/requirements.txt.m4
00000000189 for infile in src/*.m4; do
190 if [ -f "$infile" ]; then
191 outfile="src/$(basename $infile .m4)"
···181 # some files, like Pipfile, pyproject.toml, requirements.txt and setup.cfg
182 # are generated by the bootstrap script using m4. these can fetch data from
183 # build/pkgs, either directly or via sage-get-system-packages.
000184 sed -i '/sage_conf/d' src/setup.cfg.m4
185 sed -i '/sage_conf/d' src/requirements.txt.m4
186+187+ # version lower bounds are useful, but upper bounds are a hassle because
188+ # Sage tests already catch any relevant API breakage.
189+ # according to the discussion at https://trac.sagemath.org/ticket/33520,
190+ # upper bounds will be less noisy starting from Sage 9.6.
191+ sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
192+ sed -i 's/, <[^, ]*//' ../*/install-requires.txt
193+194 for infile in src/*.m4; do
195 if [ -f "$infile" ]; then
196 outfile="src/$(basename $infile .m4)"
···30 '';
3132 cmakeFlags = [
033 "-DCIVETWEB_ENABLE_CXX=ON"
34- "-DBUILD_SHARED_LIBS=ON"
3536 # The civetweb unit tests rely on downloading their fork of libcheck.
37 "-DCIVETWEB_BUILD_TESTING=OFF"
···30 '';
3132 cmakeFlags = [
33+ "-DBUILD_SHARED_LIBS=ON"
34 "-DCIVETWEB_ENABLE_CXX=ON"
35+ "-DCIVETWEB_ENABLE_IPV6=ON"
3637 # The civetweb unit tests rely on downloading their fork of libcheck.
38 "-DCIVETWEB_BUILD_TESTING=OFF"