···20702070 The <literal>installManPage</literal> function takes one or more paths to manpages to install. The manpages must have a section suffix, and may optionally be compressed (with <literal>.gz</literal> suffix). This function will place them into the correct directory.
20712071 </para>
20722072 <para>
20732073- The <literal>installShellCompletion</literal> function takes one or more paths to shell completion files. By default it will autodetect the shell type from the completion file extension, but you may also specify it by passing one of <literal>--bash</literal>, <literal>--fish</literal>, or <literal>--zsh</literal>. These flags apply to all paths listed after them (up until another shell flag is given). Each path may also have a custom installation name provided by providing a flag <literal>--name NAME</literal> before the path. If this flag is not provided, zsh completions will be renamed automatically such that <literal>foobar.zsh</literal> becomes <literal>_foobar</literal>.
20732073+ The <literal>installShellCompletion</literal> function takes one or more paths to shell completion files. By default it will autodetect the shell type from the completion file extension, but you may also specify it by passing one of <literal>--bash</literal>, <literal>--fish</literal>, or <literal>--zsh</literal>. These flags apply to all paths listed after them (up until another shell flag is given). Each path may also have a custom installation name provided by providing a flag <literal>--name NAME</literal> before the path. If this flag is not provided, zsh completions will be renamed automatically such that <literal>foobar.zsh</literal> becomes <literal>_foobar</literal>. A root name may be provided for all paths using the flag <literal>--cmd NAME</literal>; this synthesizes the appropriate name depending on the shell (e.g. <literal>--cmd foo</literal> will synthesize the name <literal>foo.bash</literal> for bash and <literal>_foo</literal> for zsh). The path may also be a fifo or named fd (such as produced by <literal><(cmd)</literal>), in which case the shell and name must be provided.
20742074<programlisting>
20752075nativeBuildInputs = [ installShellFiles ];
20762076postInstall = ''
···20812081 installShellCompletion --zsh --name _foobar share/completions.zsh
20822082 # implicit behavior
20832083 installShellCompletion share/completions/foobar.{bash,fish,zsh}
20842084+ # using named fd
20852085+ installShellCompletion --cmd foobar \
20862086+ --bash <($out/bin/foobar --bash-completion) \
20872087+ --fish <($out/bin/foobar --fish-completion) \
20882088+ --zsh <($out/bin/foobar --zsh-completion)
20842089'';
20852090</programlisting>
20862091 </para>
···11-#!/bin/bash
11+# shellcheck shell=bash
22# Setup hook for the `installShellFiles` package.
33#
44# Example usage in a derivation:
···1919# installManPage <path> [...<path>]
2020#
2121# Each argument is checked for its man section suffix and installed into the appropriate
2222-# share/man<n>/ directory. The function returns an error if any paths don't have the man section
2323-# suffix (with optional .gz compression).
2222+# share/man/man<n>/ directory. The function returns an error if any paths don't have the man
2323+# section suffix (with optional .gz compression).
2424installManPage() {
2525 local path
2626 for path in "$@"; do
···4949 done
5050}
51515252-# installShellCompletion [--bash|--fish|--zsh] ([--name <name>] <path>)...
5252+# installShellCompletion [--cmd <name>] ([--bash|--fish|--zsh] [--name <name>] <path>)...
5353#
5454# Each path is installed into the appropriate directory for shell completions for the given shell.
5555# If one of `--bash`, `--fish`, or `--zsh` is given the path is assumed to belong to that shell.
···6161# If the shell completion needs to be renamed before installing the optional `--name <name>` flag
6262# may be given. Any name provided with this flag only applies to the next path.
6363#
6464+# If all shell completions need to be renamed before installing the optional `--cmd <name>` flag
6565+# may be given. This will synthesize a name for each file, unless overridden with an explicit
6666+# `--name` flag. For example, `--cmd foobar` will synthesize the name `_foobar` for zsh and
6767+# `foobar.bash` for bash.
6868+#
6469# For zsh completions, if the `--name` flag is not given, the path will be automatically renamed
6570# such that `foobar.zsh` becomes `_foobar`.
6671#
7272+# A path may be a named fd, such as produced by the bash construct `<(cmd)`. When using a named fd,
7373+# the shell type flag must be provided, and either the `--name` or `--cmd` flag must be provided.
7474+# This might look something like:
7575+#
7676+# installShellCompletion --zsh --name _foobar <($out/bin/foobar --zsh-completion)
7777+#
6778# This command accepts multiple shell flags in conjunction with multiple paths if you wish to
6879# install them all in one command:
6980#
···7687# installShellCompletion --fish --name foobar.fish share/completions.fish
7788# installShellCompletion --zsh --name _foobar share/completions.zsh
7889#
9090+# Or to use shell newline escaping to split a single invocation across multiple lines:
9191+#
9292+# installShellCompletion --cmd foobar \
9393+# --bash <($out/bin/foobar --bash-completion) \
9494+# --fish <($out/bin/foobar --fish-completion) \
9595+# --zsh <($out/bin/foobar --zsh-completion)
9696+#
7997# If any argument is `--` the remaining arguments will be treated as paths.
8098installShellCompletion() {
8181- local shell='' name='' retval=0 parseArgs=1 arg
9999+ local shell='' name='' cmdname='' retval=0 parseArgs=1 arg
82100 while { arg=$1; shift; }; do
83101 # Parse arguments
84102 if (( parseArgs )); then
···97115 # treat `--name=foo` the same as `--name foo`
98116 name=${arg#--name=}
99117 continue;;
118118+ --cmd)
119119+ cmdname=$1
120120+ shift || {
121121+ echo 'installShellCompletion: error: --cmd flag expected an argument' >&2
122122+ return 1
123123+ }
124124+ continue;;
125125+ --cmd=*)
126126+ # treat `--cmd=foo` the same as `--cmd foo`
127127+ cmdname=${arg#--cmd=}
128128+ continue;;
100129 --?*)
101130 echo "installShellCompletion: warning: unknown flag ${arg%%=*}" >&2
102131 retval=2
···110139 if (( "${NIX_DEBUG:-0}" >= 1 )); then
111140 echo "installShellCompletion: installing $arg${name:+ as $name}"
112141 fi
113113- # if we get here, this is a path
114114- # Identify shell
115115- local basename
116116- basename=$(stripHash "$arg")
142142+ # if we get here, this is a path or named pipe
143143+ # Identify shell and output name
117144 local curShell=$shell
118118- if [[ -z "$curShell" ]]; then
119119- # auto-detect the shell
120120- case "$basename" in
121121- ?*.bash) curShell=bash;;
122122- ?*.fish) curShell=fish;;
123123- ?*.zsh) curShell=zsh;;
145145+ local outName=''
146146+ if [[ -z "$arg" ]]; then
147147+ echo "installShellCompletion: error: empty path is not allowed" >&2
148148+ return 1
149149+ elif [[ -p "$arg" ]]; then
150150+ # this is a named fd or fifo
151151+ if [[ -z "$curShell" ]]; then
152152+ echo "installShellCompletion: error: named pipe requires one of --bash, --fish, or --zsh" >&2
153153+ return 1
154154+ elif [[ -z "$name" && -z "$cmdname" ]]; then
155155+ echo "installShellCompletion: error: named pipe requires one of --cmd or --name" >&2
156156+ return 1
157157+ fi
158158+ else
159159+ # this is a path
160160+ local argbase
161161+ argbase=$(stripHash "$arg")
162162+ if [[ -z "$curShell" ]]; then
163163+ # auto-detect the shell
164164+ case "$argbase" in
165165+ ?*.bash) curShell=bash;;
166166+ ?*.fish) curShell=fish;;
167167+ ?*.zsh) curShell=zsh;;
168168+ *)
169169+ if [[ "$argbase" = _* && "$argbase" != *.* ]]; then
170170+ # probably zsh
171171+ echo "installShellCompletion: warning: assuming path \`$arg' is zsh; please specify with --zsh" >&2
172172+ curShell=zsh
173173+ else
174174+ echo "installShellCompletion: warning: unknown shell for path: $arg" >&2
175175+ retval=2
176176+ continue
177177+ fi;;
178178+ esac
179179+ fi
180180+ outName=$argbase
181181+ fi
182182+ # Identify output path
183183+ if [[ -n "$name" ]]; then
184184+ outName=$name
185185+ elif [[ -n "$cmdname" ]]; then
186186+ case "$curShell" in
187187+ bash|fish) outName=$cmdname.$curShell;;
188188+ zsh) outName=_$cmdname;;
124189 *)
125125- if [[ "$basename" = _* && "$basename" != *.* ]]; then
126126- # probably zsh
127127- echo "installShellCompletion: warning: assuming path \`$arg' is zsh; please specify with --zsh" >&2
128128- curShell=zsh
129129- else
130130- echo "installShellCompletion: warning: unknown shell for path: $arg" >&2
131131- retval=2
132132- continue
133133- fi;;
190190+ # Our list of shells is out of sync with the flags we accept or extensions we detect.
191191+ echo 'installShellCompletion: internal error' >&2
192192+ return 1;;
134193 esac
135194 fi
136136- # Identify output path
137137- local outName sharePath
138138- outName=${name:-$basename}
195195+ local sharePath
139196 case "$curShell" in
140197 bash) sharePath=bash-completion/completions;;
141198 fish) sharePath=fish/vendor_completions.d;;
142199 zsh)
143200 sharePath=zsh/site-functions
144201 # only apply automatic renaming if we didn't have a manual rename
145145- if test -z "$name"; then
202202+ if [[ -z "$name" && -z "$cmdname" ]]; then
146203 # convert a name like `foo.zsh` into `_foo`
147204 outName=${outName%.zsh}
148205 outName=_${outName#_}
···153210 return 1;;
154211 esac
155212 # Install file
156156- install -Dm644 -T "$arg" "${!outputBin:?}/share/$sharePath/$outName" || return
157157- # Clear the name, it only applies to one path
213213+ local outDir="${!outputBin:?}/share/$sharePath"
214214+ local outPath="$outDir/$outName"
215215+ if [[ -p "$arg" ]]; then
216216+ # install handles named pipes on NixOS but not on macOS
217217+ mkdir -p "$outDir" \
218218+ && cat "$arg" > "$outPath"
219219+ else
220220+ install -Dm644 -T "$arg" "$outPath"
221221+ fi || return
222222+ # Clear the per-path flags
158223 name=
159224 done
160225 if [[ -n "$name" ]]; then
···287287 done
288288289289 # Two identical man pages are shipped (moving and compressing is done later)
290290- ln -sf gcc.1 "$out"/share/man/man1/g++.1
290290+ for i in "$out"/share/man/man1/*g++.1; do
291291+ if test -e "$i"; then
292292+ man_prefix=`echo "$i" | sed "s,.*/\(.*\)g++.1,\1,"`
293293+ ln -sf "$man_prefix"gcc.1 "$i"
294294+ fi
295295+ done
291296}
292297293298genericBuild
+64-11
pkgs/development/compilers/ghc/8.10.2-binary.nix
···22, fetchurl, perl, gcc
33, ncurses6, gmp, glibc, libiconv, numactl
44, llvmPackages
55+66+ # minimal = true; will remove files that aren't strictly necessary for
77+ # regular builds and GHC bootstrapping.
88+ # This is "useful" for staying within hydra's output limits for at least the
99+ # aarch64-linux architecture.
1010+ # Examples of unnecessary files are the bundled documentation and files that
1111+ # are only needed for profiling builds.
1212+, minimal ? false
513}:
614715# Prebuilt only does native
···8290 patchShebangs ghc-${version}/utils/
8391 patchShebangs ghc-${version}/configure
8492 '' +
8585-8693 # We have to patch the GMP paths for the integer-gmp package.
8794 ''
8895 find . -name integer-gmp.buildinfo \
···9097 '' + stdenv.lib.optionalString stdenv.isDarwin ''
9198 find . -name base.buildinfo \
9299 -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
100100+ '' +
101101+ # aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
102102+ # FFI_LIB_DIR is a good indication of places it must be needed.
103103+ stdenv.lib.optionalString stdenv.hostPlatform.isAarch64 ''
104104+ find . -name package.conf.in \
105105+ -exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
93106 '' +
94107 # Rename needed libraries and binaries, fix interpreter
95108 stdenv.lib.optionalString stdenv.isLinux ''
···128141129142 # On Linux, use patchelf to modify the executables so that they can
130143 # find editline/gmp.
131131- postFixup = stdenv.lib.optionalString stdenv.isLinux ''
132132- for p in $(find "$out" -type f -executable); do
133133- if isELF "$p"; then
134134- echo "Patchelfing $p"
135135- patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
136136- fi
137137- done
138138- '' + stdenv.lib.optionalString stdenv.isDarwin ''
144144+ postFixup = stdenv.lib.optionalString stdenv.isLinux
145145+ (if stdenv.hostPlatform.isAarch64 then
146146+ # Keep rpath as small as possible on aarch64 for patchelf#244. All Elfs
147147+ # are 2 directories deep from $out/lib, so pooling symlinks there makes
148148+ # a short rpath.
149149+ ''
150150+ (cd $out/lib; ln -s ${ncurses6.out}/lib/libtinfo.so.6)
151151+ (cd $out/lib; ln -s ${gmp.out}/lib/libgmp.so.10)
152152+ (cd $out/lib; ln -s ${numactl.out}/lib/libnuma.so.1)
153153+ for p in $(find "$out/lib" -type f -name "*\.so*"); do
154154+ (cd $out/lib; ln -s $p)
155155+ done
156156+157157+ for p in $(find "$out/lib" -type f -executable); do
158158+ if isELF "$p"; then
159159+ echo "Patchelfing $p"
160160+ patchelf --set-rpath "\$ORIGIN:\$ORIGIN/../.." $p
161161+ fi
162162+ done
163163+ ''
164164+ else
165165+ ''
166166+ for p in $(find "$out" -type f -executable); do
167167+ if isELF "$p"; then
168168+ echo "Patchelfing $p"
169169+ patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
170170+ fi
171171+ done
172172+ '') + stdenv.lib.optionalString stdenv.isDarwin ''
139173 # not enough room in the object files for the full path to libiconv :(
140174 for exe in $(find "$out" -type f -executable); do
141175 isScript $exe && continue
···146180 for file in $(find "$out" -name setup-config); do
147181 substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
148182 done
183183+ '' +
184184+ stdenv.lib.optionalString minimal ''
185185+ # Remove profiling objects
186186+ find $out -type f -name '*.p_o' -delete
187187+ rm $out/lib/ghc-*/bin/ghc-iserv-prof
188188+ # Remove docs
189189+ rm -r $out/share/{doc,man}
149190 '';
150191151192 doInstallCheck = true;
···169210 enableShared = true;
170211 };
171212172172- meta.license = stdenv.lib.licenses.bsd3;
173173- meta.platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
213213+ meta = let
214214+ platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
215215+ in {
216216+ homepage = "http://haskell.org/ghc";
217217+ description = "The Glasgow Haskell Compiler";
218218+ license = stdenv.lib.licenses.bsd3;
219219+220220+ # The minimal variation can not be distributed because it removes the
221221+ # documentation, including licensing information that is required for
222222+ # distribution.
223223+ inherit platforms;
224224+ hydraPlatforms = stdenv.lib.optionals (!minimal) platforms;
225225+ maintainers = with stdenv.lib.maintainers; [ lostnet ];
226226+ };
174227}
+5-1
pkgs/development/compilers/ghc/8.8.4.nix
···119119 postPatch = "patchShebangs .";
120120121121 # GHC is a bit confused on its cross terminology.
122122- preConfigure = ''
122122+ preConfigure = stdenv.lib.optionalString stdenv.isAarch64 ''
123123+ # Aarch64 allow backward bootstrapping since earlier versions are unstable.
124124+ find . -name \*\.cabal\* -exec sed -i -e 's/\(base.*\)4.14/\14.16/' {} \; \
125125+ -exec sed -i -e 's/\(prim.*\)0.6/\10.8/' {} \;
126126+ '' + ''
123127 for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
124128 export "''${env#TARGET_}=''${!env}"
125129 done
+2-9
pkgs/development/compilers/go/1.4.nix
···4343 cd go
4444 patchShebangs ./ # replace /bin/bash
45454646+ # Disable timezone tests (these fail when `tzdata` is updated)
4747+ rm src/time/{example,format}_test.go
4648 # Disabling the 'os/http/net' tests (they want files not available in
4749 # chroot builds)
4850 rm src/net/{multicast_test.go,parse_test.go,port_test.go}
···5658 sed -i '/TestDialTimeout/areturn' src/net/dial_test.go
5759 # Disable the hostname test
5860 sed -i '/TestHostname/areturn' src/os/os_test.go
5959- # ParseInLocation fails the test
6060- sed -i '/TestParseInSydney/areturn' src/time/format_test.go
61616262 sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
6363 '' + lib.optionalString stdenv.isLinux ''
···119119 patches = [
120120 ./remove-tools-1.4.patch
121121 ./creds-test-1.4.patch
122122-123123- # This test checks for the wrong thing with recent tzdata. It's been fixed in master but the patch
124124- # actually works on old versions too.
125125- (fetchpatch {
126126- url = "https://github.com/golang/go/commit/91563ced5897faf729a34be7081568efcfedda31.patch";
127127- sha256 = "1ny5l3f8a9dpjjrnjnsplb66308a0x13sa0wwr4j6yrkc8j4qxqi";
128128- })
129122 ];
130123131124 GOOS = if stdenv.isDarwin then "darwin" else "linux";
···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
1616-, llvmPackages
1717-, pkgsBuildTarget, pkgsBuildBuild
1818-, makeRustPlatform
1919-} @ args:
2020-2121-import ./default.nix {
2222- rustcVersion = "1.46.0";
2323- rustcSha256 = "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid";
2424-2525- # Note: the version MUST be one version prior to the version we're
2626- # building
2727- bootstrapVersion = "1.45.2";
2828-2929- # fetch hashes by running `print-hashes.sh 1.45.2`
3030- bootstrapHashes = {
3131- i686-unknown-linux-gnu = "5b2050dde23152750de89f7e59acaab6bf088d0beb5854c69c9a545fd254b936";
3232- x86_64-unknown-linux-gnu = "860feed955726a4d96ffe40758a110053326b9ae11c9e1ee059e9c6222f25643";
3333- arm-unknown-linux-gnueabihf = "ddb5f59bbdef84e0b7c83049461e003ed031dd881a4622365c3d475102535c60";
3434- armv7-unknown-linux-gnueabihf = "7a556581f87602705f9c89b04cce621cfbba9050b6fbe478166e91d164567531";
3535- aarch64-unknown-linux-gnu = "151fad66442d28a4e4786753d1afb559c4a3d359081c64769273a31c2f0f4d30";
3636- x86_64-apple-darwin = "6e8067624ede10aa23081d62e0086c6f42f7228cc0d00fb5ff24d4dac65249d6";
3737- };
3838-3939- selectRustPackage = pkgs: pkgs.rust_1_46;
4040-4141- rustcPatches = [
4242- ];
4343-}
4444-4545-(builtins.removeAttrs args [ "fetchpatch" ])
+45
pkgs/development/compilers/rust/1_47.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
1616+, llvmPackages
1717+, pkgsBuildTarget, pkgsBuildBuild
1818+, makeRustPlatform
1919+} @ args:
2020+2121+import ./default.nix {
2222+ rustcVersion = "1.47.0";
2323+ rustcSha256 = "sha256-MYXfBkxHR/LIubuMRGjt1Y/0rW0HiAyHmsGxc7do2B0=";
2424+2525+ # Note: the version MUST be one version prior to the version we're
2626+ # building
2727+ bootstrapVersion = "1.46.0";
2828+2929+ # fetch hashes by running `print-hashes.sh 1.45.2`
3030+ bootstrapHashes = {
3131+ i686-unknown-linux-gnu = "6ebd7e04dc18a36d08b9731cdb42d5caf8460e1eb41b75f3a8596c39f5e71206";
3232+ x86_64-unknown-linux-gnu = "e3b98bc3440fe92817881933f9564389eccb396f5f431f33d48b979fa2fbdcf5";
3333+ arm-unknown-linux-gnueabihf = "bb8af68565321f54608e918597083eb016ed0f9f4f3cc23f7cc5f467b934ce7f";
3434+ armv7-unknown-linux-gnueabihf = "7c0640879d7f2c38db60352e3c0f09e3fc6fa3bac6ca8f22cbccb1eb5e950121";
3535+ aarch64-unknown-linux-gnu = "f0c6d630f3dedb3db69d69ed9f833aa6b472363096f5164f1068c7001ca42aeb";
3636+ x86_64-apple-darwin = "82d61582a3772932432a99789c3b3bd4abe6baca339e355048ca9efb9ea5b4db";
3737+ };
3838+3939+ selectRustPackage = pkgs: pkgs.rust_1_47;
4040+4141+ rustcPatches = [
4242+ ];
4343+}
4444+4545+(builtins.removeAttrs args [ "fetchpatch" ])
···11+From 4a071afbd056282746a5bc9362e87f579a56402d Mon Sep 17 00:00:00 2001
22+From: Tom Lane <tgl@sss.pgh.pa.us>
33+Date: Thu, 29 Oct 2020 15:28:14 -0400
44+Subject: [PATCH 1/1] Stabilize timetz test across DST transitions.
55+66+The timetz test cases I added in commit a9632830b were unintentionally
77+sensitive to whether or not DST is active in the PST8PDT time zone.
88+Thus, they'll start failing this coming weekend, as reported by
99+Bernhard M. Wiedemann in bug #16689. Fortunately, DST-awareness is
1010+not significant to the purpose of these test cases, so we can just
1111+force them all to PDT (DST hours) to preserve stability of the
1212+results.
1313+1414+Back-patch to v10, as the prior patch was.
1515+1616+Discussion: https://postgr.es/m/16689-57701daa23b377bf@postgresql.org
1717+Git viewer: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=4a071afbd056282746a5bc9362e87f579a56402d;hp=f90149e6285aaae6b48559afce1bd638ee26c33e
1818+---
1919+ src/test/regress/expected/timetz.out | 32 ++++++++++++++--------------
2020+ src/test/regress/sql/timetz.sql | 16 +++++++-------
2121+ 2 files changed, 24 insertions(+), 24 deletions(-)
2222+2323+diff --git a/src/test/regress/expected/timetz.out b/src/test/regress/expected/timetz.out
2424+index 038bb5fa09..1ab5ed5105 100644
2525+--- a/src/test/regress/expected/timetz.out
2626++++ b/src/test/regress/expected/timetz.out
2727+@@ -91,45 +91,45 @@ SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00-07';
2828+ (12 rows)
2929+3030+ -- Check edge cases
3131+-SELECT '23:59:59.999999'::timetz;
3232++SELECT '23:59:59.999999 PDT'::timetz;
3333+ timetz
3434+ --------------------
3535+ 23:59:59.999999-07
3636+ (1 row)
3737+3838+-SELECT '23:59:59.9999999'::timetz; -- rounds up
3939++SELECT '23:59:59.9999999 PDT'::timetz; -- rounds up
4040+ timetz
4141+ -------------
4242+ 24:00:00-07
4343+ (1 row)
4444+4545+-SELECT '23:59:60'::timetz; -- rounds up
4646++SELECT '23:59:60 PDT'::timetz; -- rounds up
4747+ timetz
4848+ -------------
4949+ 24:00:00-07
5050+ (1 row)
5151+5252+-SELECT '24:00:00'::timetz; -- allowed
5353++SELECT '24:00:00 PDT'::timetz; -- allowed
5454+ timetz
5555+ -------------
5656+ 24:00:00-07
5757+ (1 row)
5858+5959+-SELECT '24:00:00.01'::timetz; -- not allowed
6060+-ERROR: date/time field value out of range: "24:00:00.01"
6161+-LINE 1: SELECT '24:00:00.01'::timetz;
6262++SELECT '24:00:00.01 PDT'::timetz; -- not allowed
6363++ERROR: date/time field value out of range: "24:00:00.01 PDT"
6464++LINE 1: SELECT '24:00:00.01 PDT'::timetz;
6565+ ^
6666+-SELECT '23:59:60.01'::timetz; -- not allowed
6767+-ERROR: date/time field value out of range: "23:59:60.01"
6868+-LINE 1: SELECT '23:59:60.01'::timetz;
6969++SELECT '23:59:60.01 PDT'::timetz; -- not allowed
7070++ERROR: date/time field value out of range: "23:59:60.01 PDT"
7171++LINE 1: SELECT '23:59:60.01 PDT'::timetz;
7272+ ^
7373+-SELECT '24:01:00'::timetz; -- not allowed
7474+-ERROR: date/time field value out of range: "24:01:00"
7575+-LINE 1: SELECT '24:01:00'::timetz;
7676++SELECT '24:01:00 PDT'::timetz; -- not allowed
7777++ERROR: date/time field value out of range: "24:01:00 PDT"
7878++LINE 1: SELECT '24:01:00 PDT'::timetz;
7979+ ^
8080+-SELECT '25:00:00'::timetz; -- not allowed
8181+-ERROR: date/time field value out of range: "25:00:00"
8282+-LINE 1: SELECT '25:00:00'::timetz;
8383++SELECT '25:00:00 PDT'::timetz; -- not allowed
8484++ERROR: date/time field value out of range: "25:00:00 PDT"
8585++LINE 1: SELECT '25:00:00 PDT'::timetz;
8686+ ^
8787+ --
8888+ -- TIME simple math
8989+diff --git a/src/test/regress/sql/timetz.sql b/src/test/regress/sql/timetz.sql
9090+index b699e4b03c..ce763d89e8 100644
9191+--- a/src/test/regress/sql/timetz.sql
9292++++ b/src/test/regress/sql/timetz.sql
9393+@@ -36,14 +36,14 @@ SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00-07';
9494+ SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00-07';
9595+9696+ -- Check edge cases
9797+-SELECT '23:59:59.999999'::timetz;
9898+-SELECT '23:59:59.9999999'::timetz; -- rounds up
9999+-SELECT '23:59:60'::timetz; -- rounds up
100100+-SELECT '24:00:00'::timetz; -- allowed
101101+-SELECT '24:00:00.01'::timetz; -- not allowed
102102+-SELECT '23:59:60.01'::timetz; -- not allowed
103103+-SELECT '24:01:00'::timetz; -- not allowed
104104+-SELECT '25:00:00'::timetz; -- not allowed
105105++SELECT '23:59:59.999999 PDT'::timetz;
106106++SELECT '23:59:59.9999999 PDT'::timetz; -- rounds up
107107++SELECT '23:59:60 PDT'::timetz; -- rounds up
108108++SELECT '24:00:00 PDT'::timetz; -- allowed
109109++SELECT '24:00:00.01 PDT'::timetz; -- not allowed
110110++SELECT '23:59:60.01 PDT'::timetz; -- not allowed
111111++SELECT '24:01:00 PDT'::timetz; -- not allowed
112112++SELECT '25:00:00 PDT'::timetz; -- not allowed
113113+114114+ --
115115+ -- TIME simple math
116116+--
117117+2.20.1
···4455stdenv.mkDerivation rec {
66 pname = "brotli";
77- version = "1.0.7";
77+ version = "1.0.9";
8899 src = fetchFromGitHub {
1010 owner = "google";
1111 repo = "brotli";
1212 rev = "v" + version;
1313- sha256 = "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw";
1313+ sha256 = "z6Dhrabav1MDQ4rAcXaDv0aN+qOoh9cvoXZqEWBB13c=";
1414 };
15151616 nativeBuildInputs = [ cmake ];
···32323333 # This breaks on Darwin because our cmake hook tries to make a build folder
3434 # and the wonderful bazel BUILD file is already there (yay case-insensitivity?)
3535- prePatch = "rm BUILD";
3535+ prePatch = ''
3636+ rm BUILD
3737+3838+ # Upstream fixed this reference to runtime-path after the release
3939+ # and with this references g++ complains about invalid option -R
4040+ sed -i 's/ -R''${libdir}//' scripts/libbrotli*.pc.in
4141+ cat scripts/libbrotli*.pc.in
4242+ '';
36433744 # Don't bother with "man" output for now,
3845 # it currently only makes the manpages hard to use.
···11-From 0251229bfd9617e8a35cf9dd7d338d63fff74a0c Mon Sep 17 00:00:00 2001
22-From: Assaf Gordon <assafgordon@gmail.com>
33-Date: Mon, 13 May 2019 16:37:40 -0600
44-Subject: [PATCH] tests: avoid false-positive in date-debug test
55-MIME-Version: 1.0
66-Content-Type: text/plain; charset=UTF-8
77-Content-Transfer-Encoding: 8bit
88-99-When debugging an invalid date due to DST switching, the intermediate
1010-'normalized time' should not be checked - its value can differ between
1111-systems (e.g. glibc vs musl).
1212-1313-Reported by Niklas Hambüchen in
1414-https://lists.gnu.org/r/coreutils/2019-05/msg00031.html
1515-Analyzed by Rich Felker in
1616-https://lists.gnu.org/r/coreutils/2019-05/msg00039.html
1717-1818-* tests/misc/date-debug.sh: Replace the exact normalized time
1919-with 'XX:XX:XX' so different values would not trigger test failure.
2020----
2121- tests/misc/date-debug.sh | 11 +++++++++--
2222- 1 file changed, 9 insertions(+), 2 deletions(-)
2323-2424-diff --git a/tests/misc/date-debug.sh b/tests/misc/date-debug.sh
2525-index aa47f1abb..2ce6f4ce8 100755
2626---- a/tests/misc/date-debug.sh
2727-+++ b/tests/misc/date-debug.sh
2828-@@ -71,7 +71,7 @@ date: input timezone: TZ="America/Edmonton" in date string
2929- date: using specified time as starting value: '02:30:00'
3030- date: error: invalid date/time value:
3131- date: user provided time: '(Y-M-D) 2006-04-02 02:30:00'
3232--date: normalized time: '(Y-M-D) 2006-04-02 03:30:00'
3333-+date: normalized time: '(Y-M-D) 2006-04-02 XX:XX:XX'
3434- date: --
3535- date: possible reasons:
3636- date: non-existing due to daylight-saving time;
3737-@@ -81,7 +81,14 @@ date: invalid date 'TZ="America/Edmonton" 2006-04-02 02:30:00'
3838- EOF
3939-4040- # date should return 1 (error) for invalid date
4141--returns_ 1 date --debug -d "$in2" >out2 2>&1 || fail=1
4242-+returns_ 1 date --debug -d "$in2" >out2-t 2>&1 || fail=1
4343-+
4444-+# The output line of "normalized time" can differ between systems
4545-+# (e.g. glibc vs musl) and should not be checked.
4646-+# See: https://lists.gnu.org/archive/html/coreutils/2019-05/msg00039.html
4747-+sed '/normalized time:/s/ [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ XX:XX:XX/' \
4848-+ out2-t > out2 || framework_failure_
4949-+
5050- compare exp2 out2 || fail=1
5151-5252- ##
···11-From 3bd82a82cf4ba693d2c31c7b95aaec4e56dc92a4 Mon Sep 17 00:00:00 2001
22-From: Paul Eggert <eggert@cs.ucla.edu>
33-Date: Mon, 11 Mar 2019 16:40:29 -0700
44-Subject: [PATCH 1/1] strtod: fix clash with strtold
55-66-Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817).
77-* lib/strtod.c (compute_minus_zero, minus_zero):
88-Simplify by remving the macro / external variable,
99-and having just a function. User changed. This avoids
1010-the need for an external variable that might clash.
1111----
1212- ChangeLog | 9 +++++++++
1313- lib/strtod.c | 11 +++++------
1414- 2 files changed, 14 insertions(+), 6 deletions(-)
1515-1616-diff --git a/lib/strtod.c b/lib/strtod.c
1717-index b9eaa51..69b1564 100644
1818---- a/lib/strtod.c
1919-+++ b/lib/strtod.c
2020-@@ -294,16 +294,15 @@ parse_number (const char *nptr,
2121- ICC 10.0 has a bug when optimizing the expression -zero.
2222- The expression -MIN * MIN does not work when cross-compiling
2323- to PowerPC on Mac OS X 10.5. */
2424--#if defined __hpux || defined __sgi || defined __ICC
2525- static DOUBLE
2626--compute_minus_zero (void)
2727-+minus_zero (void)
2828- {
2929-+#if defined __hpux || defined __sgi || defined __ICC
3030- return -MIN * MIN;
3131--}
3232--# define minus_zero compute_minus_zero ()
3333- #else
3434--DOUBLE minus_zero = -0.0;
3535-+ return -0.0;
3636- #endif
3737-+}
3838-3939- /* Convert NPTR to a DOUBLE. If ENDPTR is not NULL, a pointer to the
4040- character after the last one used in the number is put in *ENDPTR. */
4141-@@ -479,6 +478,6 @@ STRTOD (const char *nptr, char **endptr)
4242- /* Special case -0.0, since at least ICC miscompiles negation. We
4343- can't use copysign(), as that drags in -lm on some platforms. */
4444- if (!num && negative)
4545-- return minus_zero;
4646-+ return minus_zero ();
4747- return negative ? -num : num;
4848- }
4949---
5050-1.9.1
5151-