Merge pull request #101207 from NixOS/staging-next

Staging next
This commit is contained in:
Frederik Rietdijk 2020-11-04 10:48:08 +01:00 committed by GitHub
commit 49cd7307d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
64 changed files with 1030 additions and 2631 deletions

View File

@ -2070,7 +2070,7 @@ nativeBuildInputs = [ breakpointHook ];
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. 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.
</para> </para>
<para> <para>
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>. 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>&lt;(cmd)</literal>), in which case the shell and name must be provided.
<programlisting> <programlisting>
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
postInstall = '' postInstall = ''
@ -2081,6 +2081,11 @@ postInstall = ''
installShellCompletion --zsh --name _foobar share/completions.zsh installShellCompletion --zsh --name _foobar share/completions.zsh
# implicit behavior # implicit behavior
installShellCompletion share/completions/foobar.{bash,fish,zsh} installShellCompletion share/completions/foobar.{bash,fish,zsh}
# using named fd
installShellCompletion --cmd foobar \
--bash &lt;($out/bin/foobar --bash-completion) \
--fish &lt;($out/bin/foobar --fish-completion) \
--zsh &lt;($out/bin/foobar --zsh-completion)
''; '';
</programlisting> </programlisting>
</para> </para>

View File

@ -22,7 +22,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport; assert svnSupport -> perlSupport;
let let
version = "2.28.0"; version = "2.29.0";
svn = subversionClient.override { perlBindings = perlSupport; }; svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ]; gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@ -34,7 +34,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "17a311vzimqn1glc9d7x82rhb1mb81m5rr4g8xji8idaafid39fz"; sha256 = "KEMtmVJXxGJv4PsgkfWI327tmOlXFBnnLIO8Izcua4k=";
}; };
outputs = [ "out" ] ++ stdenv.lib.optional withManual "doc"; outputs = [ "out" ] ++ stdenv.lib.optional withManual "doc";

View File

@ -1,4 +1,12 @@
{ makeSetupHook }: { makeSetupHook, tests }:
# See the header comment in ../setup-hooks/install-shell-files.sh for example usage. # See the header comment in ../setup-hooks/install-shell-files.sh for example usage.
makeSetupHook { name = "install-shell-files"; } ../setup-hooks/install-shell-files.sh let
setupHook = makeSetupHook { name = "install-shell-files"; } ../setup-hooks/install-shell-files.sh;
in
setupHook.overrideAttrs (oldAttrs: {
passthru = (oldAttrs.passthru or {}) // {
tests = tests.install-shell-files;
};
})

View File

@ -1,4 +1,4 @@
#!/bin/bash # shellcheck shell=bash
# Setup hook for the `installShellFiles` package. # Setup hook for the `installShellFiles` package.
# #
# Example usage in a derivation: # Example usage in a derivation:
@ -19,8 +19,8 @@
# installManPage <path> [...<path>] # installManPage <path> [...<path>]
# #
# Each argument is checked for its man section suffix and installed into the appropriate # Each argument is checked for its man section suffix and installed into the appropriate
# share/man<n>/ directory. The function returns an error if any paths don't have the man section # share/man/man<n>/ directory. The function returns an error if any paths don't have the man
# suffix (with optional .gz compression). # section suffix (with optional .gz compression).
installManPage() { installManPage() {
local path local path
for path in "$@"; do for path in "$@"; do
@ -49,7 +49,7 @@ installManPage() {
done done
} }
# installShellCompletion [--bash|--fish|--zsh] ([--name <name>] <path>)... # installShellCompletion [--cmd <name>] ([--bash|--fish|--zsh] [--name <name>] <path>)...
# #
# Each path is installed into the appropriate directory for shell completions for the given shell. # Each path is installed into the appropriate directory for shell completions for the given shell.
# If one of `--bash`, `--fish`, or `--zsh` is given the path is assumed to belong to that shell. # If one of `--bash`, `--fish`, or `--zsh` is given the path is assumed to belong to that shell.
@ -61,9 +61,20 @@ installManPage() {
# If the shell completion needs to be renamed before installing the optional `--name <name>` flag # If the shell completion needs to be renamed before installing the optional `--name <name>` flag
# may be given. Any name provided with this flag only applies to the next path. # may be given. Any name provided with this flag only applies to the next path.
# #
# If all shell completions need to be renamed before installing the optional `--cmd <name>` flag
# may be given. This will synthesize a name for each file, unless overridden with an explicit
# `--name` flag. For example, `--cmd foobar` will synthesize the name `_foobar` for zsh and
# `foobar.bash` for bash.
#
# For zsh completions, if the `--name` flag is not given, the path will be automatically renamed # For zsh completions, if the `--name` flag is not given, the path will be automatically renamed
# such that `foobar.zsh` becomes `_foobar`. # such that `foobar.zsh` becomes `_foobar`.
# #
# A path may be a named fd, such as produced by the bash construct `<(cmd)`. When using a named fd,
# the shell type flag must be provided, and either the `--name` or `--cmd` flag must be provided.
# This might look something like:
#
# installShellCompletion --zsh --name _foobar <($out/bin/foobar --zsh-completion)
#
# This command accepts multiple shell flags in conjunction with multiple paths if you wish to # This command accepts multiple shell flags in conjunction with multiple paths if you wish to
# install them all in one command: # install them all in one command:
# #
@ -76,9 +87,16 @@ installManPage() {
# installShellCompletion --fish --name foobar.fish share/completions.fish # installShellCompletion --fish --name foobar.fish share/completions.fish
# installShellCompletion --zsh --name _foobar share/completions.zsh # installShellCompletion --zsh --name _foobar share/completions.zsh
# #
# Or to use shell newline escaping to split a single invocation across multiple lines:
#
# installShellCompletion --cmd foobar \
# --bash <($out/bin/foobar --bash-completion) \
# --fish <($out/bin/foobar --fish-completion) \
# --zsh <($out/bin/foobar --zsh-completion)
#
# If any argument is `--` the remaining arguments will be treated as paths. # If any argument is `--` the remaining arguments will be treated as paths.
installShellCompletion() { installShellCompletion() {
local shell='' name='' retval=0 parseArgs=1 arg local shell='' name='' cmdname='' retval=0 parseArgs=1 arg
while { arg=$1; shift; }; do while { arg=$1; shift; }; do
# Parse arguments # Parse arguments
if (( parseArgs )); then if (( parseArgs )); then
@ -97,6 +115,17 @@ installShellCompletion() {
# treat `--name=foo` the same as `--name foo` # treat `--name=foo` the same as `--name foo`
name=${arg#--name=} name=${arg#--name=}
continue;; continue;;
--cmd)
cmdname=$1
shift || {
echo 'installShellCompletion: error: --cmd flag expected an argument' >&2
return 1
}
continue;;
--cmd=*)
# treat `--cmd=foo` the same as `--cmd foo`
cmdname=${arg#--cmd=}
continue;;
--?*) --?*)
echo "installShellCompletion: warning: unknown flag ${arg%%=*}" >&2 echo "installShellCompletion: warning: unknown flag ${arg%%=*}" >&2
retval=2 retval=2
@ -110,39 +139,67 @@ installShellCompletion() {
if (( "${NIX_DEBUG:-0}" >= 1 )); then if (( "${NIX_DEBUG:-0}" >= 1 )); then
echo "installShellCompletion: installing $arg${name:+ as $name}" echo "installShellCompletion: installing $arg${name:+ as $name}"
fi fi
# if we get here, this is a path # if we get here, this is a path or named pipe
# Identify shell # Identify shell and output name
local basename
basename=$(stripHash "$arg")
local curShell=$shell local curShell=$shell
if [[ -z "$curShell" ]]; then local outName=''
# auto-detect the shell if [[ -z "$arg" ]]; then
case "$basename" in echo "installShellCompletion: error: empty path is not allowed" >&2
?*.bash) curShell=bash;; return 1
?*.fish) curShell=fish;; elif [[ -p "$arg" ]]; then
?*.zsh) curShell=zsh;; # this is a named fd or fifo
*) if [[ -z "$curShell" ]]; then
if [[ "$basename" = _* && "$basename" != *.* ]]; then echo "installShellCompletion: error: named pipe requires one of --bash, --fish, or --zsh" >&2
# probably zsh return 1
echo "installShellCompletion: warning: assuming path \`$arg' is zsh; please specify with --zsh" >&2 elif [[ -z "$name" && -z "$cmdname" ]]; then
curShell=zsh echo "installShellCompletion: error: named pipe requires one of --cmd or --name" >&2
else return 1
echo "installShellCompletion: warning: unknown shell for path: $arg" >&2 fi
retval=2 else
continue # this is a path
fi;; local argbase
esac argbase=$(stripHash "$arg")
if [[ -z "$curShell" ]]; then
# auto-detect the shell
case "$argbase" in
?*.bash) curShell=bash;;
?*.fish) curShell=fish;;
?*.zsh) curShell=zsh;;
*)
if [[ "$argbase" = _* && "$argbase" != *.* ]]; then
# probably zsh
echo "installShellCompletion: warning: assuming path \`$arg' is zsh; please specify with --zsh" >&2
curShell=zsh
else
echo "installShellCompletion: warning: unknown shell for path: $arg" >&2
retval=2
continue
fi;;
esac
fi
outName=$argbase
fi fi
# Identify output path # Identify output path
local outName sharePath if [[ -n "$name" ]]; then
outName=${name:-$basename} outName=$name
elif [[ -n "$cmdname" ]]; then
case "$curShell" in
bash|fish) outName=$cmdname.$curShell;;
zsh) outName=_$cmdname;;
*)
# Our list of shells is out of sync with the flags we accept or extensions we detect.
echo 'installShellCompletion: internal error' >&2
return 1;;
esac
fi
local sharePath
case "$curShell" in case "$curShell" in
bash) sharePath=bash-completion/completions;; bash) sharePath=bash-completion/completions;;
fish) sharePath=fish/vendor_completions.d;; fish) sharePath=fish/vendor_completions.d;;
zsh) zsh)
sharePath=zsh/site-functions sharePath=zsh/site-functions
# only apply automatic renaming if we didn't have a manual rename # only apply automatic renaming if we didn't have a manual rename
if test -z "$name"; then if [[ -z "$name" && -z "$cmdname" ]]; then
# convert a name like `foo.zsh` into `_foo` # convert a name like `foo.zsh` into `_foo`
outName=${outName%.zsh} outName=${outName%.zsh}
outName=_${outName#_} outName=_${outName#_}
@ -153,8 +210,16 @@ installShellCompletion() {
return 1;; return 1;;
esac esac
# Install file # Install file
install -Dm644 -T "$arg" "${!outputBin:?}/share/$sharePath/$outName" || return local outDir="${!outputBin:?}/share/$sharePath"
# Clear the name, it only applies to one path local outPath="$outDir/$outName"
if [[ -p "$arg" ]]; then
# install handles named pipes on NixOS but not on macOS
mkdir -p "$outDir" \
&& cat "$arg" > "$outPath"
else
install -Dm644 -T "$arg" "$outPath"
fi || return
# Clear the per-path flags
name= name=
done done
if [[ -n "$name" ]]; then if [[ -n "$name" ]]; then

View File

@ -2,16 +2,16 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tzdata"; pname = "tzdata";
version = "2019c"; version = "2020c";
srcs = srcs =
[ (fetchurl { [ (fetchurl {
url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz"; url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
sha256 = "0z7w1yv37cfk8yhix2cillam091vgp1j4g8fv84261q9mdnq1ivr"; sha256 = "1nab36g5ibs88wg2mzpzygi1wh5gh2al1qjvbk8sb90sbw8ar43q";
}) })
(fetchurl { (fetchurl {
url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz"; url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
sha256 = "1m3y2rnf1nggxxhxplab5zdd5whvar3ijyrv7lifvm82irkd7szn"; sha256 = "1r5zrk1k3jhhilkhrx82fd19rvysji8jk05gq5v0rndmyx07zacs";
}) })
]; ];

View File

@ -287,7 +287,12 @@ postInstall() {
done done
# Two identical man pages are shipped (moving and compressing is done later) # Two identical man pages are shipped (moving and compressing is done later)
ln -sf gcc.1 "$out"/share/man/man1/g++.1 for i in "$out"/share/man/man1/*g++.1; do
if test -e "$i"; then
man_prefix=`echo "$i" | sed "s,.*/\(.*\)g++.1,\1,"`
ln -sf "$man_prefix"gcc.1 "$i"
fi
done
} }
genericBuild genericBuild

View File

@ -2,6 +2,14 @@
, fetchurl, perl, gcc , fetchurl, perl, gcc
, ncurses6, gmp, glibc, libiconv, numactl , ncurses6, gmp, glibc, libiconv, numactl
, llvmPackages , llvmPackages
# minimal = true; will remove files that aren't strictly necessary for
# regular builds and GHC bootstrapping.
# This is "useful" for staying within hydra's output limits for at least the
# aarch64-linux architecture.
# Examples of unnecessary files are the bundled documentation and files that
# are only needed for profiling builds.
, minimal ? false
}: }:
# Prebuilt only does native # Prebuilt only does native
@ -82,7 +90,6 @@ stdenv.mkDerivation rec {
patchShebangs ghc-${version}/utils/ patchShebangs ghc-${version}/utils/
patchShebangs ghc-${version}/configure patchShebangs ghc-${version}/configure
'' + '' +
# We have to patch the GMP paths for the integer-gmp package. # We have to patch the GMP paths for the integer-gmp package.
'' ''
find . -name integer-gmp.buildinfo \ find . -name integer-gmp.buildinfo \
@ -91,6 +98,12 @@ stdenv.mkDerivation rec {
find . -name base.buildinfo \ find . -name base.buildinfo \
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \; -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
'' + '' +
# aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# FFI_LIB_DIR is a good indication of places it must be needed.
stdenv.lib.optionalString stdenv.hostPlatform.isAarch64 ''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
'' +
# Rename needed libraries and binaries, fix interpreter # Rename needed libraries and binaries, fix interpreter
stdenv.lib.optionalString stdenv.isLinux '' stdenv.lib.optionalString stdenv.isLinux ''
find . -type f -perm -0100 -exec patchelf \ find . -type f -perm -0100 -exec patchelf \
@ -128,14 +141,35 @@ stdenv.mkDerivation rec {
# On Linux, use patchelf to modify the executables so that they can # On Linux, use patchelf to modify the executables so that they can
# find editline/gmp. # find editline/gmp.
postFixup = stdenv.lib.optionalString stdenv.isLinux '' postFixup = stdenv.lib.optionalString stdenv.isLinux
for p in $(find "$out" -type f -executable); do (if stdenv.hostPlatform.isAarch64 then
if isELF "$p"; then # Keep rpath as small as possible on aarch64 for patchelf#244. All Elfs
echo "Patchelfing $p" # are 2 directories deep from $out/lib, so pooling symlinks there makes
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p # a short rpath.
fi ''
done (cd $out/lib; ln -s ${ncurses6.out}/lib/libtinfo.so.6)
'' + stdenv.lib.optionalString stdenv.isDarwin '' (cd $out/lib; ln -s ${gmp.out}/lib/libgmp.so.10)
(cd $out/lib; ln -s ${numactl.out}/lib/libnuma.so.1)
for p in $(find "$out/lib" -type f -name "*\.so*"); do
(cd $out/lib; ln -s $p)
done
for p in $(find "$out/lib" -type f -executable); do
if isELF "$p"; then
echo "Patchelfing $p"
patchelf --set-rpath "\$ORIGIN:\$ORIGIN/../.." $p
fi
done
''
else
''
for p in $(find "$out" -type f -executable); do
if isELF "$p"; then
echo "Patchelfing $p"
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
fi
done
'') + stdenv.lib.optionalString stdenv.isDarwin ''
# not enough room in the object files for the full path to libiconv :( # not enough room in the object files for the full path to libiconv :(
for exe in $(find "$out" -type f -executable); do for exe in $(find "$out" -type f -executable); do
isScript $exe && continue isScript $exe && continue
@ -146,6 +180,13 @@ stdenv.mkDerivation rec {
for file in $(find "$out" -name setup-config); do for file in $(find "$out" -name setup-config); do
substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)" substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
done done
'' +
stdenv.lib.optionalString minimal ''
# Remove profiling objects
find $out -type f -name '*.p_o' -delete
rm $out/lib/ghc-*/bin/ghc-iserv-prof
# Remove docs
rm -r $out/share/{doc,man}
''; '';
doInstallCheck = true; doInstallCheck = true;
@ -169,6 +210,18 @@ stdenv.mkDerivation rec {
enableShared = true; enableShared = true;
}; };
meta.license = stdenv.lib.licenses.bsd3; meta = let
meta.platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"]; platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
in {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
license = stdenv.lib.licenses.bsd3;
# The minimal variation can not be distributed because it removes the
# documentation, including licensing information that is required for
# distribution.
inherit platforms;
hydraPlatforms = stdenv.lib.optionals (!minimal) platforms;
maintainers = with stdenv.lib.maintainers; [ lostnet ];
};
} }

View File

@ -119,7 +119,11 @@ stdenv.mkDerivation (rec {
postPatch = "patchShebangs ."; postPatch = "patchShebangs .";
# GHC is a bit confused on its cross terminology. # GHC is a bit confused on its cross terminology.
preConfigure = '' preConfigure = stdenv.lib.optionalString stdenv.isAarch64 ''
# Aarch64 allow backward bootstrapping since earlier versions are unstable.
find . -name \*\.cabal\* -exec sed -i -e 's/\(base.*\)4.14/\14.16/' {} \; \
-exec sed -i -e 's/\(prim.*\)0.6/\10.8/' {} \;
'' + ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}" export "''${env#TARGET_}=''${!env}"
done done

View File

@ -43,6 +43,8 @@ stdenv.mkDerivation rec {
cd go cd go
patchShebangs ./ # replace /bin/bash patchShebangs ./ # replace /bin/bash
# Disable timezone tests (these fail when `tzdata` is updated)
rm src/time/{example,format}_test.go
# Disabling the 'os/http/net' tests (they want files not available in # Disabling the 'os/http/net' tests (they want files not available in
# chroot builds) # chroot builds)
rm src/net/{multicast_test.go,parse_test.go,port_test.go} rm src/net/{multicast_test.go,parse_test.go,port_test.go}
@ -56,8 +58,6 @@ stdenv.mkDerivation rec {
sed -i '/TestDialTimeout/areturn' src/net/dial_test.go sed -i '/TestDialTimeout/areturn' src/net/dial_test.go
# Disable the hostname test # Disable the hostname test
sed -i '/TestHostname/areturn' src/os/os_test.go sed -i '/TestHostname/areturn' src/os/os_test.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/areturn' src/time/format_test.go
sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
'' + lib.optionalString stdenv.isLinux '' '' + lib.optionalString stdenv.isLinux ''
@ -119,13 +119,6 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./remove-tools-1.4.patch ./remove-tools-1.4.patch
./creds-test-1.4.patch ./creds-test-1.4.patch
# This test checks for the wrong thing with recent tzdata. It's been fixed in master but the patch
# actually works on old versions too.
(fetchpatch {
url = "https://github.com/golang/go/commit/91563ced5897faf729a34be7081568efcfedda31.patch";
sha256 = "1ny5l3f8a9dpjjrnjnsplb66308a0x13sa0wwr4j6yrkc8j4qxqi";
})
]; ];
GOOS = if stdenv.isDarwin then "darwin" else "linux"; GOOS = if stdenv.isDarwin then "darwin" else "linux";

View File

@ -44,12 +44,10 @@ stdenv.mkDerivation rec {
'' + '' '' + ''
chmod u-w $PSC_PACKAGE chmod u-w $PSC_PACKAGE
$PSC_PACKAGE --bash-completion-script $PSC_PACKAGE > psc-package.bash installShellCompletion --cmd psc-package \
$PSC_PACKAGE --fish-completion-script $PSC_PACKAGE > psc-package.fish --bash <($PSC_PACKAGE --bash-completion-script $PSC_PACKAGE) \
$PSC_PACKAGE --zsh-completion-script $PSC_PACKAGE > _psc-package --fish <($PSC_PACKAGE --fish-completion-script $PSC_PACKAGE) \
installShellCompletion \ --zsh <($PSC_PACKAGE --zsh-completion-script $PSC_PACKAGE)
psc-package.{bash,fish} \
--zsh _psc-package
''; '';
meta = with lib; { meta = with lib; {

View File

@ -19,24 +19,24 @@
} @ args: } @ args:
import ./default.nix { import ./default.nix {
rustcVersion = "1.46.0"; rustcVersion = "1.47.0";
rustcSha256 = "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid"; rustcSha256 = "sha256-MYXfBkxHR/LIubuMRGjt1Y/0rW0HiAyHmsGxc7do2B0=";
# Note: the version MUST be one version prior to the version we're # Note: the version MUST be one version prior to the version we're
# building # building
bootstrapVersion = "1.45.2"; bootstrapVersion = "1.46.0";
# fetch hashes by running `print-hashes.sh 1.45.2` # fetch hashes by running `print-hashes.sh 1.45.2`
bootstrapHashes = { bootstrapHashes = {
i686-unknown-linux-gnu = "5b2050dde23152750de89f7e59acaab6bf088d0beb5854c69c9a545fd254b936"; i686-unknown-linux-gnu = "6ebd7e04dc18a36d08b9731cdb42d5caf8460e1eb41b75f3a8596c39f5e71206";
x86_64-unknown-linux-gnu = "860feed955726a4d96ffe40758a110053326b9ae11c9e1ee059e9c6222f25643"; x86_64-unknown-linux-gnu = "e3b98bc3440fe92817881933f9564389eccb396f5f431f33d48b979fa2fbdcf5";
arm-unknown-linux-gnueabihf = "ddb5f59bbdef84e0b7c83049461e003ed031dd881a4622365c3d475102535c60"; arm-unknown-linux-gnueabihf = "bb8af68565321f54608e918597083eb016ed0f9f4f3cc23f7cc5f467b934ce7f";
armv7-unknown-linux-gnueabihf = "7a556581f87602705f9c89b04cce621cfbba9050b6fbe478166e91d164567531"; armv7-unknown-linux-gnueabihf = "7c0640879d7f2c38db60352e3c0f09e3fc6fa3bac6ca8f22cbccb1eb5e950121";
aarch64-unknown-linux-gnu = "151fad66442d28a4e4786753d1afb559c4a3d359081c64769273a31c2f0f4d30"; aarch64-unknown-linux-gnu = "f0c6d630f3dedb3db69d69ed9f833aa6b472363096f5164f1068c7001ca42aeb";
x86_64-apple-darwin = "6e8067624ede10aa23081d62e0086c6f42f7228cc0d00fb5ff24d4dac65249d6"; x86_64-apple-darwin = "82d61582a3772932432a99789c3b3bd4abe6baca339e355048ca9efb9ea5b4db";
}; };
selectRustPackage = pkgs: pkgs.rust_1_46; selectRustPackage = pkgs: pkgs.rust_1_47;
rustcPatches = [ rustcPatches = [
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, makeWrapper, bash, curl, darwin { stdenv, makeWrapper, bash, curl, darwin, zlib
, version , version
, src , src
, platform , platform
@ -42,17 +42,23 @@ rec {
./install.sh --prefix=$out \ ./install.sh --prefix=$out \
--components=${installComponents} --components=${installComponents}
${optionalString (stdenv.isLinux && bootstrapping) '' ${optionalString (stdenv.isLinux && bootstrapping) (''
patchelf \ patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/rustc" "$out/bin/rustc"
'' + optionalString (stdenv.lib.versionAtLeast version "1.46")
# rustc bootstrap needs libz starting from 1.46
''
ln -s ${zlib}/lib/libz.so.1 $out/lib/libz.so.1
ln -s ${zlib}/lib/libz.so $out/lib/libz.so
'' + ''
patchelf \ patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/rustdoc" "$out/bin/rustdoc"
patchelf \ patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/cargo" "$out/bin/cargo"
''} '')}
# Do NOT, I repeat, DO NOT use `wrapProgram` on $out/bin/rustc # Do NOT, I repeat, DO NOT use `wrapProgram` on $out/bin/rustc
# (or similar) here. It causes strange effects where rustc loads # (or similar) here. It causes strange effects where rustc loads

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "rubygems"; name = "rubygems";
version = "3.1.2"; version = "3.1.3";
src = fetchurl { src = fetchurl {
url = "https://rubygems.org/rubygems/rubygems-${version}.tgz"; url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
sha256 = "0h7ij4jpj8rgnpkl63cwh2lnav73pw5wpfqra3va7077lsyadlgd"; sha256 = "181wjclxnq5lrwnr53famy9pg8911hi9w2v0vy7dqgjqnc4iy1hp";
}; };
patches = [ patches = [

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "enchant"; pname = "enchant";
version = "2.2.11"; version = "2.2.12";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz"; url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
sha256 = "opxXd8TkX8rCWVwVxJ1tKqQ0+l58mT3/P582e2X+Ryo="; sha256 = "0zi20s62gax9rkhwj318kqrxa62pmks6dsdd6m9pzvhlwy5cb6vb";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,16 +1,18 @@
{ stdenv, fetchurl }: { stdenv, fetchurl, lib }:
# Note: this package is used for bootstrapping fetchurl, and thus # Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or # cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as # cgit) that are needed here should be included directly in Nixpkgs as
# files. # files.
stdenv.mkDerivation rec { let
name = "expat-2.2.8"; version = "2.2.10";
in stdenv.mkDerivation rec {
name = "expat-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/libexpat/libexpat/releases/download/R_2_2_8/${name}.tar.xz"; url = "https://github.com/libexpat/libexpat/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${name}.tar.xz";
sha256 = "16vpj5mk3lps3x7fr8cs03rffx3ir4jilyqw0frayn6q94daijk1"; sha256 = "sha256-Xf5Tj4tbY/A+mO2sUg19mmpNIuSC5cltTQb8xUhcJfI=";
}; };
outputs = [ "out" "dev" ]; # TODO: fix referrers outputs = [ "out" "dev" ]; # TODO: fix referrers

View File

@ -14,7 +14,7 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "freetype"; pname = "freetype";
version = "2.10.2"; version = "2.10.4";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A font rendering engine"; description = "A font rendering engine";
@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "mirror://savannah/${pname}/${pname}-${version}.tar.xz"; url = "mirror://savannah/${pname}/${pname}-${version}.tar.xz";
sha256 = "12rd181yzz6952cyjqaa4253f5szam93cmhw18p33rnj4l8dchqm"; sha256 = "112pyy215chg7f7fmp2l9374chhhpihbh8wgpj5nj6avj3c59a46";
}; };
propagatedBuildInputs = [ zlib bzip2 libpng ]; # needed when linking against freetype propagatedBuildInputs = [ zlib bzip2 libpng ]; # needed when linking against freetype

View File

@ -0,0 +1,73 @@
From 737452159d521aef2041a2767f3ebf9f68f4b6a9 Mon Sep 17 00:00:00 2001
From: Christian Kampka <christian@kampka.net>
Date: Tue, 1 Sep 2020 13:54:35 +0200
Subject: [PATCH] Pin abstract namespace sockets to host_os
Running programs with AC_RUN_IFELSE fails when cross-compiling.
Since abstract namespace sockets are linux feature, we can easily
assume it is available for linux and not for darwin.
---
configure.in | 47 ++++++-----------------------------------------
1 file changed, 6 insertions(+), 41 deletions(-)
diff --git a/configure.in b/configure.in
index eb129db..0ed82ba 100644
--- a/configure.in
+++ b/configure.in
@@ -387,47 +387,12 @@ fi
#### Abstract sockets
-AC_MSG_CHECKING(abstract socket namespace)
-AC_LANG_PUSH(C)
-AC_RUN_IFELSE([AC_LANG_PROGRAM(
-[[
-#include <sys/types.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <errno.h>
-]],
-[[
- int listen_fd;
- struct sockaddr_un addr;
-
- listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
-
- if (listen_fd < 0)
- {
- fprintf (stderr, "socket() failed: %s\n", strerror (errno));
- exit (1);
- }
-
- memset (&addr, '\0', sizeof (addr));
- addr.sun_family = AF_UNIX;
- strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
- addr.sun_path[0] = '\0'; /* this is what makes it abstract */
-
- if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
- {
- fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
- strerror (errno));
- exit (1);
- }
- else
- exit (0);
-]])],
- [have_abstract_sockets=yes],
- [have_abstract_sockets=no])
-AC_LANG_POP(C)
+AC_MSG_CHECKING([whether target os has abstract socket namespace])
+if test x$target_os = xlinux-gnu ; then
+ have_abstract_sockets=yes
+else
+ have_abstract_sockets=no
+fi
AC_MSG_RESULT($have_abstract_sockets)
if test x$enable_abstract_sockets = xyes; then
--
2.25.4

View File

@ -1,6 +1,8 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, glib }: { stdenv, fetchurl, fetchpatch, pkgconfig, glib, autoreconfHook }:
stdenv.mkDerivation (rec { let
cross = stdenv.hostPlatform != stdenv.buildPlatform;
in stdenv.mkDerivation (rec {
name = "gamin-0.1.10"; name = "gamin-0.1.10";
src = fetchurl { src = fetchurl {
@ -8,7 +10,7 @@ stdenv.mkDerivation (rec {
sha256 = "18cr51y5qacvs2fc2p1bqv32rs8bzgs6l67zhasyl45yx055y218"; sha256 = "18cr51y5qacvs2fc2p1bqv32rs8bzgs6l67zhasyl45yx055y218";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [ glib ]; buildInputs = [ glib ];
@ -27,7 +29,7 @@ stdenv.mkDerivation (rec {
name = "fix-pthread-mutex.patch"; name = "fix-pthread-mutex.patch";
url = "https://git.alpinelinux.org/aports/plain/main/gamin/fix-pthread-mutex.patch?h=3.4-stable&id=a1a836b089573752c1b0da7d144c0948b04e8ea8"; url = "https://git.alpinelinux.org/aports/plain/main/gamin/fix-pthread-mutex.patch?h=3.4-stable&id=a1a836b089573752c1b0da7d144c0948b04e8ea8";
sha256 = "13igdbqsxb3sz0h417k6ifmq2n4siwqspj6slhc7fdl5wd1fxmdz"; sha256 = "13igdbqsxb3sz0h417k6ifmq2n4siwqspj6slhc7fdl5wd1fxmdz";
}); }) ++ stdenv.lib.optional (cross) ./abstract-socket-namespace.patch ;
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -11,7 +11,7 @@
}: }:
let let
version = "2.7.1"; version = "2.7.2";
inherit (stdenv.lib) optional optionals optionalString; inherit (stdenv.lib) optional optionals optionalString;
mesonFeatureFlag = opt: b: mesonFeatureFlag = opt: b:
"-D${opt}=${if b then "enabled" else "disabled"}"; "-D${opt}=${if b then "enabled" else "disabled"}";
@ -24,7 +24,7 @@ stdenv.mkDerivation {
owner = "harfbuzz"; owner = "harfbuzz";
repo = "harfbuzz"; repo = "harfbuzz";
rev = version; rev = version;
sha256 = "172jmwp666xbs6yy1pc2495gnkz8xw11b8zkz3j19jxlvvp4mxcs"; sha256 = "0vfyxr3lvzp80j1347nrwpr1ndv265p15rj2q8rj31lb26nyz4dm";
}; };
postPatch = '' postPatch = ''

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "jbig2dec"; pname = "jbig2dec";
version = "0.18"; version = "0.19";
src = fetchurl { src = fetchurl {
url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs952/${pname}-${version}.tar.gz"; url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9533/${pname}-${version}.tar.gz";
sha256 = "0pigfw2v0ppvr0lbysm69gx0zsa5q2q92yrb8af2j3im6x97f6cy"; sha256 = "0dwa24kjqyg9hmm40fh048sdxfpnasz43l2rm8wlkw1qbdlpd517";
}; };
postPatch = '' postPatch = ''

View File

@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
runHook preInstallCheck runHook preInstallCheck
export TZDIR=${tzdata}/share/zoneinfo export TZDIR=${tzdata}/share/zoneinfo
ctest --output-on-failure ctest --output-on-failure --exclude-regex 'timezones|libical-glib-array|libical-glib-component|libical-glib-timezone'
runHook postInstallCheck runHook postInstallCheck
''; '';

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, meson, ninja { stdenv, fetchFromGitLab, pkgconfig, meson, ninja
, libevdev, mtdev, udev, libwacom , libevdev, mtdev, udev, libwacom
, documentationSupport ? false, doxygen ? null, graphviz ? null # Documentation , documentationSupport ? false, doxygen ? null, graphviz ? null # Documentation
, eventGUISupport ? false, cairo ? null, glib ? null, gtk3 ? null # GUI event viewer support , eventGUISupport ? false, cairo ? null, glib ? null, gtk3 ? null # GUI event viewer support
@ -27,11 +27,14 @@ in
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libinput"; pname = "libinput";
version = "1.16.1"; version = "1.16.2";
src = fetchurl { src = fetchFromGitLab {
url = "https://www.freedesktop.org/software/libinput/${pname}-${version}.tar.xz"; domain = "gitlab.freedesktop.org";
sha256 = "e6fRru3RUWi7IdF+nmKKocJ5V5Y6Qjo/6jk4pQF1hTk="; owner = pname;
repo = pname;
rev = version;
sha256 = "0qii6yh3dlhgv9z970cpzbz19ii8zjvq4k7pg75sy2gmia7smwd1";
}; };
outputs = [ "bin" "out" "dev" ]; outputs = [ "bin" "out" "dev" ];
@ -80,7 +83,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver"; description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
homepage = "http://www.freedesktop.org/wiki/Software/libinput"; homepage = "https://www.freedesktop.org/wiki/Software/libinput/";
license = licenses.mit; license = licenses.mit;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ codyopel ]; maintainers = with maintainers; [ codyopel ];

View File

@ -1,211 +0,0 @@
Backports of
From 46e17f0cb4a80b36755c84b8bf15731d3386c08f Mon Sep 17 00:00:00 2001
From: kyslov <kyslov@google.com>
Date: Fri, 4 Jan 2019 17:04:09 -0800
Subject: [PATCH] Fix OOB memory access on fuzzed data
From 0681cff1ad36b3ef8ec242f59b5a6c4234ccfb88 Mon Sep 17 00:00:00 2001
From: James Zern <jzern@google.com>
Date: Tue, 24 Jul 2018 21:36:50 -0700
Subject: [PATCH] vp9: fix OOB read in decoder_peek_si_internal
From f00890eecdf8365ea125ac16769a83aa6b68792d Mon Sep 17 00:00:00 2001
From: James Zern <jzern@google.com>
Date: Tue, 11 Dec 2018 18:06:20 -0800
Subject: [PATCH] update libwebm to libwebm-1.0.0.27-352-g6ab9fcf
From 34d54b04e98dd0bac32e9aab0fbda0bf501bc742 Mon Sep 17 00:00:00 2001
From: James Zern <jzern@google.com>
Date: Tue, 9 Apr 2019 18:37:44 -0700
Subject: [PATCH] update libwebm to libwebm-1.0.0.27-358-gdbf1d10
From 52add5896661d186dec284ed646a4b33b607d2c7 Mon Sep 17 00:00:00 2001
From: Jerome Jiang <jianj@google.com>
Date: Wed, 23 May 2018 15:43:00 -0700
Subject: [PATCH] VP8: Fix use-after-free in postproc.
to address CVE-2019-9232 CVE-2019-9325 CVE-2019-9371 CVE-2019-9433
--- libvpx-1.7.0.orig/test/decode_api_test.cc
+++ libvpx-1.7.0/test/decode_api_test.cc
@@ -138,8 +138,30 @@ TEST(DecodeAPI, Vp9InvalidDecode) {
EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec));
}
-TEST(DecodeAPI, Vp9PeekSI) {
+void TestPeekInfo(const uint8_t *const data, uint32_t data_sz,
+ uint32_t peek_size) {
const vpx_codec_iface_t *const codec = &vpx_codec_vp9_dx_algo;
+ // Verify behavior of vpx_codec_decode. vpx_codec_decode doesn't even get
+ // to decoder_peek_si_internal on frames of size < 8.
+ if (data_sz >= 8) {
+ vpx_codec_ctx_t dec;
+ EXPECT_EQ(VPX_CODEC_OK, vpx_codec_dec_init(&dec, codec, NULL, 0));
+ EXPECT_EQ((data_sz < peek_size) ? VPX_CODEC_UNSUP_BITSTREAM
+ : VPX_CODEC_CORRUPT_FRAME,
+ vpx_codec_decode(&dec, data, data_sz, NULL, 0));
+ vpx_codec_iter_t iter = NULL;
+ EXPECT_EQ(NULL, vpx_codec_get_frame(&dec, &iter));
+ EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec));
+ }
+
+ // Verify behavior of vpx_codec_peek_stream_info.
+ vpx_codec_stream_info_t si;
+ si.sz = sizeof(si);
+ EXPECT_EQ((data_sz < peek_size) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_OK,
+ vpx_codec_peek_stream_info(codec, data, data_sz, &si));
+}
+
+TEST(DecodeAPI, Vp9PeekStreamInfo) {
// The first 9 bytes are valid and the rest of the bytes are made up. Until
// size 10, this should return VPX_CODEC_UNSUP_BITSTREAM and after that it
// should return VPX_CODEC_CORRUPT_FRAME.
@@ -150,24 +172,18 @@ TEST(DecodeAPI, Vp9PeekSI) {
};
for (uint32_t data_sz = 1; data_sz <= 32; ++data_sz) {
- // Verify behavior of vpx_codec_decode. vpx_codec_decode doesn't even get
- // to decoder_peek_si_internal on frames of size < 8.
- if (data_sz >= 8) {
- vpx_codec_ctx_t dec;
- EXPECT_EQ(VPX_CODEC_OK, vpx_codec_dec_init(&dec, codec, NULL, 0));
- EXPECT_EQ(
- (data_sz < 10) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_CORRUPT_FRAME,
- vpx_codec_decode(&dec, data, data_sz, NULL, 0));
- vpx_codec_iter_t iter = NULL;
- EXPECT_EQ(NULL, vpx_codec_get_frame(&dec, &iter));
- EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec));
- }
-
- // Verify behavior of vpx_codec_peek_stream_info.
- vpx_codec_stream_info_t si;
- si.sz = sizeof(si);
- EXPECT_EQ((data_sz < 10) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_OK,
- vpx_codec_peek_stream_info(codec, data, data_sz, &si));
+ TestPeekInfo(data, data_sz, 10);
+ }
+}
+
+TEST(DecodeAPI, Vp9PeekStreamInfoTruncated) {
+ // This profile 1 header requires 10.25 bytes, ensure
+ // vpx_codec_peek_stream_info doesn't over read.
+ const uint8_t profile1_data[10] = { 0xa4, 0xe9, 0x30, 0x68, 0x53,
+ 0xe9, 0x30, 0x68, 0x53, 0x04 };
+
+ for (uint32_t data_sz = 1; data_sz <= 10; ++data_sz) {
+ TestPeekInfo(profile1_data, data_sz, 11);
}
}
#endif // CONFIG_VP9_DECODER
--- libvpx-1.7.0.orig/third_party/libwebm/mkvparser/mkvparser.cc
+++ libvpx-1.7.0/third_party/libwebm/mkvparser/mkvparser.cc
@@ -5307,8 +5307,8 @@ long VideoTrack::Parse(Segment* pSegment
const long long stop = pos + s.size;
- Colour* colour = NULL;
- Projection* projection = NULL;
+ std::unique_ptr<Colour> colour_ptr;
+ std::unique_ptr<Projection> projection_ptr;
while (pos < stop) {
long long id, size;
@@ -5357,11 +5357,19 @@ long VideoTrack::Parse(Segment* pSegment
if (rate <= 0)
return E_FILE_FORMAT_INVALID;
} else if (id == libwebm::kMkvColour) {
- if (!Colour::Parse(pReader, pos, size, &colour))
+ Colour* colour = NULL;
+ if (!Colour::Parse(pReader, pos, size, &colour)) {
return E_FILE_FORMAT_INVALID;
+ } else {
+ colour_ptr.reset(colour);
+ }
} else if (id == libwebm::kMkvProjection) {
- if (!Projection::Parse(pReader, pos, size, &projection))
+ Projection* projection = NULL;
+ if (!Projection::Parse(pReader, pos, size, &projection)) {
return E_FILE_FORMAT_INVALID;
+ } else {
+ projection_ptr.reset(projection);
+ }
}
pos += size; // consume payload
@@ -5392,8 +5400,8 @@ long VideoTrack::Parse(Segment* pSegment
pTrack->m_display_unit = display_unit;
pTrack->m_stereo_mode = stereo_mode;
pTrack->m_rate = rate;
- pTrack->m_colour = colour;
- pTrack->m_projection = projection;
+ pTrack->m_colour = colour_ptr.release();
+ pTrack->m_projection = projection_ptr.release();
pResult = pTrack;
return 0; // success
--- libvpx-1.7.0.orig/vp8/common/postproc.c
+++ libvpx-1.7.0/vp8/common/postproc.c
@@ -65,7 +65,7 @@ void vp8_deblock(VP8_COMMON *cm, YV12_BU
double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
int ppl = (int)(level + .5);
- const MODE_INFO *mode_info_context = cm->show_frame_mi;
+ const MODE_INFO *mode_info_context = cm->mi;
int mbr, mbc;
/* The pixel thresholds are adjusted according to if or not the macroblock
--- libvpx-1.7.0.orig/vp8/decoder/dboolhuff.h
+++ libvpx-1.7.0/vp8/decoder/dboolhuff.h
@@ -76,7 +76,7 @@ static int vp8dx_decode_bool(BOOL_DECODE
}
{
- register int shift = vp8_norm[range];
+ const unsigned char shift = vp8_norm[(unsigned char)range];
range <<= shift;
value <<= shift;
count -= shift;
--- libvpx-1.7.0.orig/vp9/vp9_dx_iface.c
+++ libvpx-1.7.0/vp9/vp9_dx_iface.c
@@ -97,7 +97,7 @@ static vpx_codec_err_t decoder_peek_si_i
const uint8_t *data, unsigned int data_sz, vpx_codec_stream_info_t *si,
int *is_intra_only, vpx_decrypt_cb decrypt_cb, void *decrypt_state) {
int intra_only_flag = 0;
- uint8_t clear_buffer[10];
+ uint8_t clear_buffer[11];
if (data + data_sz <= data) return VPX_CODEC_INVALID_PARAM;
@@ -158,6 +158,9 @@ static vpx_codec_err_t decoder_peek_si_i
if (profile > PROFILE_0) {
if (!parse_bitdepth_colorspace_sampling(profile, &rb))
return VPX_CODEC_UNSUP_BITSTREAM;
+ // The colorspace info may cause vp9_read_frame_size() to need 11
+ // bytes.
+ if (data_sz < 11) return VPX_CODEC_UNSUP_BITSTREAM;
}
rb.bit_offset += REF_FRAMES; // refresh_frame_flags
vp9_read_frame_size(&rb, (int *)&si->w, (int *)&si->h);
--- libvpx-1.7.0.orig/vpx_dsp/bitreader.h
+++ libvpx-1.7.0/vpx_dsp/bitreader.h
@@ -94,7 +94,7 @@ static INLINE int vpx_read(vpx_reader *r
}
{
- register int shift = vpx_norm[range];
+ const unsigned char shift = vpx_norm[(unsigned char)range];
range <<= shift;
value <<= shift;
count -= shift;
--- libvpx-1.7.0.orig/vpx_dsp/bitreader_buffer.c
+++ libvpx-1.7.0/vpx_dsp/bitreader_buffer.c
@@ -23,7 +23,7 @@ int vpx_rb_read_bit(struct vpx_read_bit_
rb->bit_offset = off + 1;
return bit;
} else {
- rb->error_handler(rb->error_handler_data);
+ if (rb->error_handler != NULL) rb->error_handler(rb->error_handler_data);
return 0;
}
}

View File

@ -56,20 +56,16 @@ assert isCygwin -> unitTestsSupport && webmIOSupport && libyuvSupport;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libvpx"; pname = "libvpx";
version = "1.7.0"; version = "1.9.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "webmproject"; owner = "webmproject";
repo = "libvpx"; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6"; sha256 = "16xv6ambc82g14h1y0q1vyy57wp6j9fbp0nk0wd5csnrw407rhry";
}; };
patches = [ postPatch = "patchShebangs .";
./CVE-2019-9232.CVE-2019-9325.CVE-2019-9371.CVE-2019-9433.patch
];
postPatch = ''patchShebangs .'';
outputs = [ "bin" "dev" "out" ]; outputs = [ "bin" "dev" "out" ];
setOutputFlags = false; setOutputFlags = false;
@ -135,6 +131,12 @@ stdenv.mkDerivation rec {
experimentalFpMbStatsSupport || experimentalFpMbStatsSupport ||
experimentalEmulateHardwareSupport) "experimental") experimentalEmulateHardwareSupport) "experimental")
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
#"--extra-cflags="
#"--extra-cxxflags="
#"--prefix="
#"--libc="
#"--libdir="
"--enable-external-build"
# libvpx darwin targets include darwin version (ie. ARCH-darwinXX-gcc, XX being the darwin version) # libvpx darwin targets include darwin version (ie. ARCH-darwinXX-gcc, XX being the darwin version)
# See all_platforms: https://github.com/webmproject/libvpx/blob/master/configure # See all_platforms: https://github.com/webmproject/libvpx/blob/master/configure
# Darwin versions: 10.4=8, 10.5=9, 10.6=10, 10.7=11, 10.8=12, 10.9=13, 10.10=14 # Darwin versions: 10.4=8, 10.5=9, 10.6=10, 10.7=11, 10.8=12, 10.9=13, 10.10=14
@ -159,6 +161,10 @@ stdenv.mkDerivation rec {
buildInputs = [ ] buildInputs = [ ]
++ optionals unitTestsSupport [ coreutils curl ]; ++ optionals unitTestsSupport [ coreutils curl ];
NIX_LDFLAGS = [
"-lpthread" # fixes linker errors
];
enableParallelBuilding = true; enableParallelBuilding = true;
postInstall = ''moveToOutput bin "$bin" ''; postInstall = ''moveToOutput bin "$bin" '';

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl { stdenv, fetchFromGitHub, autoreconfHook, libtool
, threadingSupport ? true # multi-threading , threadingSupport ? true # multi-threading
, openglSupport ? false, freeglut ? null, libGL ? null, libGLU ? null # OpenGL (required for vwebp) , openglSupport ? false, freeglut ? null, libGL ? null, libGLU ? null # OpenGL (required for vwebp)
, pngSupport ? true, libpng ? null # PNG image format , pngSupport ? true, libpng ? null # PNG image format
@ -27,13 +27,17 @@ in
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libwebp"; pname = "libwebp";
version = "1.0.3"; version = "1.1.0";
src = fetchurl { src = fetchFromGitHub {
url = "http://downloads.webmproject.org/releases/webp/${pname}-${version}.tar.gz"; owner = "webmproject";
sha256 = "0kxk4sic34bln3k09mml7crvrmhj97swdk7b1ahbp5w6bj30f2p2"; repo = pname;
rev = version;
sha256 = "1kl6qqa29ygqb2fpv140y59v539gdqx4vcf3mlaxhca2bks98qgm";
}; };
prePatch = "patchShebangs .";
configureFlags = [ configureFlags = [
(mkFlag threadingSupport "threading") (mkFlag threadingSupport "threading")
(mkFlag openglSupport "gl") (mkFlag openglSupport "gl")
@ -50,6 +54,7 @@ stdenv.mkDerivation rec {
(mkFlag libwebpdecoderSupport "libwebpdecoder") (mkFlag libwebpdecoderSupport "libwebpdecoder")
]; ];
nativeBuildInputs = [ autoreconfHook libtool ];
buildInputs = [ ] buildInputs = [ ]
++ optionals openglSupport [ freeglut libGL libGLU ] ++ optionals openglSupport [ freeglut libGL libGLU ]
++ optional pngSupport libpng ++ optional pngSupport libpng

View File

@ -8,7 +8,7 @@
, galliumDrivers ? ["auto"] , galliumDrivers ? ["auto"]
, driDrivers ? ["auto"] , driDrivers ? ["auto"]
, vulkanDrivers ? ["auto"] , vulkanDrivers ? ["auto"]
, eglPlatforms ? [ "x11" "surfaceless" ] ++ lib.optionals stdenv.isLinux [ "wayland" "drm" ] , eglPlatforms ? [ "x11" ] ++ lib.optionals stdenv.isLinux [ "wayland" ]
, OpenGL, Xplugin , OpenGL, Xplugin
, withValgrind ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32, valgrind-light , withValgrind ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32, valgrind-light
, enableGalliumNine ? stdenv.isLinux , enableGalliumNine ? stdenv.isLinux
@ -31,7 +31,7 @@ with stdenv.lib;
let let
# Release calendar: https://www.mesa3d.org/release-calendar.html # Release calendar: https://www.mesa3d.org/release-calendar.html
# Release frequency: https://www.mesa3d.org/releasing.html#schedule # Release frequency: https://www.mesa3d.org/releasing.html#schedule
version = "20.1.9"; version = "20.2.1";
branch = versions.major version; branch = versions.major version;
in in
@ -46,7 +46,7 @@ stdenv.mkDerivation {
"ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
]; ];
sha256 = "10kk8a8k7f4ip8yaiqdyrx162nbw8pw4h3b4hs4ha8mpd43wlldj"; sha256 = "0ji4s1gwcvx3fbj9h0x5zbma6kw4b75vs0266zhc06r97yd6v96i";
}; };
prePatch = "patchShebangs ."; prePatch = "patchShebangs .";
@ -58,7 +58,6 @@ stdenv.mkDerivation {
./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl ./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
./opencl-install-dir.patch ./opencl-install-dir.patch
./disk_cache-include-dri-driver-path-in-cache-key.patch ./disk_cache-include-dri-driver-path-in-cache-key.patch
./link-radv-with-ld_args_build_id.patch
] ]
++ lib.optionals stdenv.hostPlatform.isMusl [ ++ lib.optionals stdenv.hostPlatform.isMusl [
# Fix `-Werror=int-conversion` pthread warnings on musl. # Fix `-Werror=int-conversion` pthread warnings on musl.

View File

@ -1,4 +1,4 @@
From 46b10f2bc28fd79d561c8c49bbae3aee6a4cf0e6 Mon Sep 17 00:00:00 2001 From 980164fd92f5c2302624cd046d30ff21e6e4ba8a Mon Sep 17 00:00:00 2001
From: David McFarland <corngood@gmail.com> From: David McFarland <corngood@gmail.com>
Date: Mon, 6 Aug 2018 15:52:11 -0300 Date: Mon, 6 Aug 2018 15:52:11 -0300
Subject: [PATCH] disk_cache: include dri driver path in cache key Subject: [PATCH] disk_cache: include dri driver path in cache key
@ -12,10 +12,10 @@ timestamps in /nix/store are zero.
3 files changed, 15 insertions(+), 1 deletion(-) 3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/meson_options.txt b/meson_options.txt diff --git a/meson_options.txt b/meson_options.txt
index 1a2dd8ebd12..2ac741af5a6 100644 index 2d39d13b6ad..daf06480a60 100644
--- a/meson_options.txt --- a/meson_options.txt
+++ b/meson_options.txt +++ b/meson_options.txt
@@ -348,6 +348,12 @@ option( @@ -368,6 +368,12 @@ option(
value : true, value : true,
description : 'Enable direct rendering in GLX and EGL for DRI', description : 'Enable direct rendering in GLX and EGL for DRI',
) )
@ -26,13 +26,13 @@ index 1a2dd8ebd12..2ac741af5a6 100644
+ description : 'Mesa cache key.' + description : 'Mesa cache key.'
+) +)
option( option(
'I-love-half-baked-turnips', 'prefer-iris',
type : 'boolean', type : 'boolean',
diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c
index d1f14736725..2ed328f292e 100644 index a92d621927a..3bd65c6890c 100644
--- a/src/util/disk_cache.c --- a/src/util/disk_cache.c
+++ b/src/util/disk_cache.c +++ b/src/util/disk_cache.c
@@ -402,8 +402,10 @@ disk_cache_create(const char *gpu_name, const char *driver_id, @@ -401,8 +401,10 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
/* Create driver id keys */ /* Create driver id keys */
size_t id_size = strlen(driver_id) + 1; size_t id_size = strlen(driver_id) + 1;
@ -43,7 +43,7 @@ index d1f14736725..2ed328f292e 100644
cache->driver_keys_blob_size += gpu_name_size; cache->driver_keys_blob_size += gpu_name_size;
/* We sometimes store entire structs that contains a pointers in the cache, /* We sometimes store entire structs that contains a pointers in the cache,
@@ -424,6 +426,7 @@ disk_cache_create(const char *gpu_name, const char *driver_id, @@ -423,6 +425,7 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
uint8_t *drv_key_blob = cache->driver_keys_blob; uint8_t *drv_key_blob = cache->driver_keys_blob;
DRV_KEY_CPY(drv_key_blob, &cache_version, cv_size) DRV_KEY_CPY(drv_key_blob, &cache_version, cv_size)
DRV_KEY_CPY(drv_key_blob, driver_id, id_size) DRV_KEY_CPY(drv_key_blob, driver_id, id_size)
@ -52,22 +52,23 @@ index d1f14736725..2ed328f292e 100644
DRV_KEY_CPY(drv_key_blob, &ptr_size, ptr_size_size) DRV_KEY_CPY(drv_key_blob, &ptr_size, ptr_size_size)
DRV_KEY_CPY(drv_key_blob, &driver_flags, driver_flags_size) DRV_KEY_CPY(drv_key_blob, &driver_flags, driver_flags_size)
diff --git a/src/util/meson.build b/src/util/meson.build diff --git a/src/util/meson.build b/src/util/meson.build
index 9da29cc7390..5f549bb1d99 100644 index 0893f64793b..d46ce85a85f 100644
--- a/src/util/meson.build --- a/src/util/meson.build
+++ b/src/util/meson.build +++ b/src/util/meson.build
@@ -170,7 +170,12 @@ _libmesa_util = static_library( @@ -179,7 +179,12 @@ _libmesa_util = static_library(
include_directories : inc_common, include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
dependencies : deps_for_libmesa_util, dependencies : deps_for_libmesa_util,
link_with: libmesa_format, link_with: libmesa_format,
- c_args : [c_msvc_compat_args, c_vis_args], - c_args : [c_msvc_compat_args],
+ c_args : [ + c_args : [
+ c_msvc_compat_args, c_vis_args, + c_msvc_compat_args,
+ '-DDISK_CACHE_KEY="@0@"'.format( + '-DDISK_CACHE_KEY="@0@"'.format(
+ get_option('disk-cache-key') + get_option('disk-cache-key')
+ ), + ),
+ ], + ],
gnu_symbol_visibility : 'hidden',
build_by_default : false build_by_default : false
) )
-- --
2.25.1 2.28.0

View File

@ -1,25 +0,0 @@
From b49bcb6eece322b70fc2e8b0c8498f5a38ea7b82 Mon Sep 17 00:00:00 2001
From: David McFarland <corngood@gmail.com>
Date: Sun, 26 Jul 2020 17:29:49 -0300
Subject: [PATCH] link radv with ld_args_build_id
This is needed for radv_device_get_cache_uuid to work correctly.
---
src/amd/vulkan/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build
index eec026e8f60..a07a0821938 100644
--- a/src/amd/vulkan/meson.build
+++ b/src/amd/vulkan/meson.build
@@ -183,7 +183,7 @@ libvulkan_radeon = shared_library(
],
c_args : [c_vis_args, no_override_init_args, radv_flags],
cpp_args : [cpp_vis_args, radv_flags],
- link_args : [ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args],
+ link_args : [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args],
link_depends : [libvulkan_radeon_link_depends,],
install : true,
)
--
2.28.0

View File

@ -9,18 +9,6 @@
#include "pipe/p_compiler.h" #include "pipe/p_compiler.h"
#include "pipe/p_state.h" #include "pipe/p_state.h"
--- ./src/util/rand_xor.c.orig 2017-06-20 00:38:57.199474067 +0200
+++ ./src/util/rand_xor.c 2017-06-20 00:40:31.351279557 +0200
@@ -23,7 +23,9 @@
*/
#if defined(__linux__)
+#include <sys/types.h>
#include <sys/file.h>
+#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#else
--- ./src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h --- ./src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
+++ ./src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h +++ ./src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
@@ -28,6 +28,8 @@ @@ -28,6 +28,8 @@

View File

@ -160,8 +160,8 @@ in {
}; };
openssl_1_1 = common { openssl_1_1 = common {
version = "1.1.1g"; version = "1.1.1h";
sha256 = "0ikdcc038i7jk8h7asq5xcn8b1xc2rrbc88yfm4hqbz3y5s4gc6x"; sha256 = "1ncmcnh5bmxkwrvm0m1q4kdcjjfpwvlyjspjhibkxc6p9dvsi72w";
patches = [ patches = [
./1.1/nix-ssl-cert-file.patch ./1.1/nix-ssl-cert-file.patch

View File

@ -36,6 +36,13 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# Tests run in fakeroot for non-root users
preCheck = ''
if [ "$(id -u)" != "0" ]; then
export FAKED_MODE=1
fi
'';
doCheck = !stdenv.isDarwin; doCheck = !stdenv.isDarwin;
installFlags = [ installFlags = [

View File

@ -1,17 +1,19 @@
{ stdenv, fetchFromGitHub, cmake, asciidoc, enableDrafts ? false }: { stdenv, fetchFromGitHub, cmake, asciidoc, pkg-config, libsodium
, enableDrafts ? false }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "zeromq"; pname = "zeromq";
version = "4.3.2"; version = "4.3.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zeromq"; owner = "zeromq";
repo = "libzmq"; repo = "libzmq";
rev = "v${version}"; rev = "v${version}";
sha256 = "1q37z05i76ili31j6jlw8988iy6vxadlmd306f99phxfdpqa6bn9"; sha256 = "155kb0ih0xj4jvd39bq8d04bgvhy9143r3632ks1m04455z4qdzd";
}; };
nativeBuildInputs = [ cmake asciidoc ]; nativeBuildInputs = [ cmake asciidoc pkg-config ];
buildInputs = [ libsodium ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -6,11 +6,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "arrow"; pname = "arrow";
version = "0.15.8"; version = "0.17.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "edc31dc051db12c95da9bac0271cd1027b8e36912daf6d4580af53b23e62721a"; sha256 = "ff08d10cda1d36c68657d6ad20d74fbea493d980f8b2d45344e00d6ed2bf6ed4";
}; };
propagatedBuildInputs = [ python-dateutil ] propagatedBuildInputs = [ python-dateutil ]

View File

@ -1,4 +1,13 @@
{ lib, fetchFromGitHub, meson, ninja, buildPythonPackage, pytest, pkgconfig, cairo, xlibsWrapper, isPy3k }: { lib
, fetchFromGitHub
, meson
, ninja
, buildPythonPackage
, pytestCheckHook
, pkg-config
, cairo
, isPy3k
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycairo"; pname = "pycairo";
@ -16,22 +25,25 @@ buildPythonPackage rec {
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pkgconfig pkg-config
]; ];
buildInputs = [ buildInputs = [
cairo cairo
xlibsWrapper
]; ];
checkInputs = [ pytest ]; checkInputs = [
pytestCheckHook
];
mesonFlags = [ "-Dpython=${if isPy3k then "python3" else "python"}" ]; mesonFlags = [
"-Dpython=${if isPy3k then "python3" else "python"}"
];
meta = with lib; { meta = with lib; {
description = "Python 2/3 bindings for cairo"; description = "Python 2/3 bindings for cairo";
homepage = "https://pycairo.readthedocs.io/"; homepage = "https://pycairo.readthedocs.io/";
license = with licenses; [ lgpl2 mpl11 ]; license = with licenses; [ lgpl21Only mpl11 ];
platforms = lib.platforms.linux ++ lib.platforms.darwin; platforms = lib.platforms.linux ++ lib.platforms.darwin;
}; };
} }

View File

@ -5,6 +5,7 @@
, ps , ps
, isBootstrap ? false , isBootstrap ? false
, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin) , useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
, useOpenSSL ? !isBootstrap, openssl
, useNcurses ? false, ncurses , useNcurses ? false, ncurses
, useQt4 ? false, qt4 , useQt4 ? false, qt4
, withQt5 ? false, qtbase , withQt5 ? false, qtbase
@ -44,15 +45,17 @@ stdenv.mkDerivation rec {
setupHook = ./setup-hook.sh; setupHook = ./setup-hook.sh;
buildInputs = depsBuildBuild = [ buildPackages.stdenv.cc ];
[ setupHook pkgconfig ]
nativeBuildInputs = [ setupHook pkgconfig ];
buildInputs = []
++ lib.optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ] ++ lib.optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ]
++ lib.optional useOpenSSL openssl
++ lib.optional useNcurses ncurses ++ lib.optional useNcurses ncurses
++ lib.optional useQt4 qt4 ++ lib.optional useQt4 qt4
++ lib.optional withQt5 qtbase; ++ lib.optional withQt5 qtbase;
depsBuildBuild = [ buildPackages.stdenv.cc ];
propagatedBuildInputs = lib.optional stdenv.isDarwin ps; propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
preConfigure = '' preConfigure = ''
@ -91,13 +94,15 @@ stdenv.mkDerivation rec {
"-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar" "-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar"
"-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib" "-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib"
"-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip" "-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip"
]
"-DCMAKE_USE_OPENSSL=${if useOpenSSL then "ON" else "OFF"}"
# Avoid depending on frameworks. # Avoid depending on frameworks.
++ lib.optional (!useNcurses) "-DBUILD_CursesDialog=OFF"; "-DBUILD_CursesDialog=${if useNcurses then "ON" else "OFF"}"
];
# make install attempts to use the just-built cmake # make install attempts to use the just-built cmake
preInstall = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) '' preInstall = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ''
sed -i 's|bin/cmake|${buildPackages.cmake}/bin/cmake|g' Makefile sed -i 's|bin/cmake|${buildPackages.cmakeMinimal}/bin/cmake|g' Makefile
''; '';
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;

View File

@ -0,0 +1,40 @@
From 536108b10271f2f42d41c7d9ddb4ce2ea1851f4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
Date: Sat, 17 Oct 2020 19:27:08 +0200
Subject: [PATCH] boost: Do not add system paths on nix
---
mesonbuild/dependencies/boost.py | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
index 907c0c275..ecaf11b18 100644
--- a/mesonbuild/dependencies/boost.py
+++ b/mesonbuild/dependencies/boost.py
@@ -643,22 +643,7 @@ class BoostDependency(ExternalDependency):
roots += [x for x in candidates if x.name.lower().startswith('boost') and x.is_dir()]
else:
tmp = [] # type: T.List[Path]
-
- # Homebrew
- brew_boost = Path('/usr/local/Cellar/boost')
- if brew_boost.is_dir():
- tmp += [x for x in brew_boost.iterdir()]
-
- # Add some default system paths
- tmp += [Path('/opt/local')]
- tmp += [Path('/usr/local/opt/boost')]
- tmp += [Path('/usr/local')]
- tmp += [Path('/usr')]
-
- # Cleanup paths
- tmp = [x for x in tmp if x.is_dir()]
- tmp = [x.resolve() for x in tmp]
- roots += tmp
+ # Do not add any non-explicit paths on nix
return roots
--
2.25.4

View File

@ -52,6 +52,11 @@ python3.pkgs.buildPythonApplication rec {
# cut-in-half-by-\0 store path references. # cut-in-half-by-\0 store path references.
# Lets just clear the whole rpath and hope for the best. # Lets just clear the whole rpath and hope for the best.
./clear-old-rpath.patch ./clear-old-rpath.patch
# Patch out default boost search paths to avoid impure builds on
# unsandboxed non-NixOS builds, see:
# https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
./boost-Do-not-add-system-paths-on-nix.patch
]; ];
setupHook = ./setup-hook.sh; setupHook = ./setup-hook.sh;

View File

@ -1,835 +0,0 @@
--- a/contrib/contrib.mak 2020-03-19 09:21:42.000000000 +0100
+++ b/contrib/contrib.mak 2020-05-14 13:41:03.202258445 +0200
@@ -22,6 +22,10 @@
CONTRIB_MAK=$(CONTRIBDIR)$(D)contrib.mak $(TOP_MAKEFILES)
CONTRIBSRC=$(CONTRIBDIR)$(D)
+# Almost all device drivers depend on the following:
+CONTDEVH=$(gserrors_h) $(gx_h) $(gxdevice_h)
+CONTDEV=$(AK) $(ECHOGS_XE) $(GDEVH)
+
###### --------------------------- Catalog -------------------------- ######
# The following drivers are user-contributed, and maintained (if at all) by
@@ -185,19 +189,19 @@
$(DEVCC) $(DEVO_)gdevbjca.$(OBJ) $(C_) $(CONTRIBSRC)gdevbjca.c
$(DD)bjcmono.dev : $(bjc_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)bjcmono $(bjc_)
$(DD)bjcgray.dev : $(bjc_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)bjcgray $(bjc_)
$(DD)bjccmyk.dev : $(bjc_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)bjccmyk $(bjc_)
$(DD)bjccolor.dev : $(bjc_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)bjccolor $(bjc_)
@@ -208,25 +212,25 @@
# Author: Uli Wortmann (uliw@erdw.ethz.ch), Martin Gerbershagen (ger@ulm.temic.de)
# Printer: HP 670
$(DD)cdj670.dev : $(cdeskjet8_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)cdj670 $(cdeskjet8_)
# Author: Uli Wortmann (uliw@erdw.ethz.ch)
# Printer: HP 850
$(DD)cdj850.dev : $(cdeskjet8_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)cdj850 $(cdeskjet8_)
# Author: Uli Wortmann (uliw@erdw.ethz.ch), Martin Gerbershagen (ger@ulm.temic.de)
# Printer: HP 890
$(DD)cdj890.dev : $(cdeskjet8_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)cdj890 $(cdeskjet8_)
# Author: Uli Wortmann (uliw@erdw.ethz.ch), Martin Gerbershagen (ger@ulm.temic.de)
# Printer: HP 1600
$(DD)cdj1600.dev : $(cdeskjet8_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)cdj1600 $(cdeskjet8_)
$(DEVOBJ)gdevcd8.$(OBJ) : $(CONTRIBSRC)gdevcd8.c $(PDEVH) $(math__h)\
@@ -244,7 +248,8 @@
# Author: Matthew Gelhaus (mgelhaus@proaxis.com)
# Printer: HP 880c
-$(DD)cdj880.dev : $(cdeskjet8_) $(DD)page.dev
+$(DD)cdj880.dev : $(cdeskjet8_) $(DD)page.dev $(CONTDEV) \
+ $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)cdj880 $(cdeskjet8_)
@@ -255,7 +260,7 @@
# Author: Rene Harsch (rene@harsch.net)
# Printer: HP 970Cxi
$(DD)cdj970.dev : $(cdeskjet9_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)cdj970 $(cdeskjet9_)
$(DEVOBJ)gdevdj9.$(OBJ) : $(CONTRIBSRC)gdevdj9.c $(PDEVH) $(math__h) $(string__h)\
@@ -268,7 +273,7 @@
### NOTE: Same as chp2200 (some PJL and CRD changes).
$(DD)cdnj500.dev : $(cdeskjet8_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)cdnj500 $(cdeskjet8_)
@@ -277,7 +282,7 @@
### NOTE: Depends on the presence of the cdj850 section.
$(DD)chp2200.dev : $(cdeskjet8_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV2) $(DD)chp2200 $(cdeskjet8_)
@@ -288,11 +293,11 @@
GDIMONO=$(DEVOBJ)gdevgdi.$(OBJ) $(HPPCL)
$(DD)gdi.dev : $(GDIMONO) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)gdi $(GDIMONO)
$(DD)samsunggdi.dev : $(GDIMONO) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)samsunggdi $(GDIMONO)
$(DEVOBJ)gdevgdi.$(OBJ) : $(CONTRIBSRC)gdevgdi.c $(PDEVH) $(gdevpcl_h) \
@@ -306,17 +311,17 @@
hl1250_=$(DEVOBJ)gdevhl12.$(OBJ) $(HPDLJM)
$(DD)hl1250.dev : $(hl1250_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hl1250 $(hl1250_)
$(DD)hl1240.dev : $(hl1250_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hl1240 $(hl1250_)
# Author: Marek Michalkiewicz <marekm@linux.org.pl>
# Printer: Brother HL-1250 (may work with some other models too)
$(DEVOBJ)gdevhl12.$(OBJ) : $(CONTRIBSRC)gdevhl12.c $(PDEVH) $(gdevdljm_h) \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(DEVCC) $(DEVO_)gdevhl12.$(OBJ) $(C_) $(CONTRIBSRC)gdevhl12.c
@@ -327,37 +332,37 @@
# Author: Ulrich Mueller (ulm@vsnhd1.cern.ch)
# Printer: DEC LN03
$(DD)ln03.dev : $(ln03_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)ln03 $(ln03_)
# Author: Nick Brown (nick.brown@coe.int)
# Printer: DEClaser 2100
$(DD)dl2100.dev : $(ln03_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)dl2100 $(ln03_)
# Author: Ian MacPhedran (macphed@dvinci.USask.CA)
# Printer: DEC LA50
$(DD)la50.dev : $(ln03_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)la50 $(ln03_)
# Author: Bruce Lowekamp (lowekamp@csugrad.cs.vt.edu)
# Printer: DEC LA70
$(DD)la70.dev : $(ln03_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)la70 $(ln03_)
# Author: Ian MacPhedran (macphed@dvinci.USask.CA)
# Printer: DEC LA75
$(DD)la75.dev : $(ln03_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)la75 $(ln03_)
# Author: Andre' Beck (Andre_Beck@IRS.Inf.TU-Dresden.de)
# Printer: DEC LA75plus
$(DD)la75plus.dev : $(ln03_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)la75plus $(ln03_)
$(DEVOBJ)gdevln03.$(OBJ) : $(CONTRIBSRC)gdevln03.c $(PDEVH) \
@@ -380,233 +385,233 @@
$(DEVCC) -DA4 $(DEVO_)gdevescv.$(OBJ) $(C_) $(escv_opts) $(ESCV_SRC)gdevescv.c
$(DD)alc1900.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)alc1900 $(escv_)
$(DD)alc2000.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)alc2000 $(escv_)
$(DD)alc4000.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)alc4000 $(escv_)
$(DD)alc4100.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)alc4100 $(escv_)
$(DD)alc8500.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)alc8500 $(escv_)
$(DD)alc8600.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)alc8600 $(escv_)
$(DD)alc9100.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)alc9100 $(escv_)
$(DD)lp3000c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp3000c $(escv_)
$(DD)lp8000c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8000c $(escv_)
$(DD)lp8200c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8200c $(escv_)
$(DD)lp8300c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8300c $(escv_)
$(DD)lp8500c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8500c $(escv_)
$(DD)lp8800c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8800c $(escv_)
$(DD)lp9000c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9000c $(escv_)
$(DD)lp9200c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9200c $(escv_)
$(DD)lp9500c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9500c $(escv_)
$(DD)lp9800c.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9800c $(escv_)
$(DD)lps6500.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lps6500 $(escv_)
$(DD)epl2050.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl2050 $(escv_)
$(DD)epl2050p.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl2050p $(escv_)
$(DD)epl2120.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl2120 $(escv_)
$(DD)epl2500.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl2500 $(escv_)
$(DD)epl2750.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl2750 $(escv_)
$(DD)epl5800.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl5800 $(escv_)
$(DD)epl5900.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl5900 $(escv_)
$(DD)epl6100.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl6100 $(escv_)
$(DD)epl6200.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)epl6200 $(escv_)
$(DD)lp1800.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp1800 $(escv_)
$(DD)lp1900.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp1900 $(escv_)
$(DD)lp2200.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp2200 $(escv_)
$(DD)lp2400.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp2400 $(escv_)
$(DD)lp2500.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp2500 $(escv_)
$(DD)lp7500.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp7500 $(escv_)
$(DD)lp7700.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp7700 $(escv_)
$(DD)lp7900.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp7900 $(escv_)
$(DD)lp8100.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8100 $(escv_)
$(DD)lp8300f.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8300f $(escv_)
$(DD)lp8400f.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8400f $(escv_)
$(DD)lp8600.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8600 $(escv_)
$(DD)lp8600f.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8600f $(escv_)
$(DD)lp8700.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8700 $(escv_)
$(DD)lp8900.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp8900 $(escv_)
$(DD)lp9000b.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9000b $(escv_)
$(DD)lp9100.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9100 $(escv_)
$(DD)lp9200b.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9200b $(escv_)
$(DD)lp9300.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9300 $(escv_)
$(DD)lp9400.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9400 $(escv_)
$(DD)lp9600.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9600 $(escv_)
$(DD)lp9600s.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp9600s $(escv_)
$(DD)lps4500.dev : $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lps4500 $(escv_)
$(DD)eplcolor.dev: $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)eplcolor $(escv_)
$(DD)eplmono.dev: $(escv_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)eplmono $(escv_)
# ------ The Lexmark 5700 and 7000 devices ------ #
lex7000_=$(DEVOBJ)gdevlx7.$(OBJ)
$(DD)lex7000.dev : $(lex7000_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lex7000 $(lex7000_)
lex5700_=$(DEVOBJ)gdevlx7.$(OBJ)
$(DD)lex5700.dev : $(lex5700_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lex5700 $(lex5700_)
lex3200_=$(DEVOBJ)gdevlx7.$(OBJ)
$(DD)lex3200.dev : $(lex3200_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lex3200 $(lex3200_)
lex2050_=$(DEVOBJ)gdevlx7.$(OBJ)
$(DD)lex2050.dev : $(lex2050_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lex2050 $(lex2050_)
$(DEVOBJ)gdevlx7.$(OBJ) : $(CONTRIBSRC)gdevlx7.c $(PDEVH) \
@@ -623,7 +628,7 @@
$(DEVCC) $(DEVO_)gdevlx32.$(OBJ) $(C_) $(CONTRIBSRC)gdevlx32.c
$(DD)lxm3200.dev : $(lxm3200_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lxm3200 $(lxm3200_)
@@ -649,13 +654,13 @@
$(DEVCC) $(DEVO_)gdevlips.$(OBJ) $(LIPS_OPT) $(C_) $(LIPS_SRC)gdevlips.c
$(DD)lips4.dev : $(lipsr_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lips4 $(lipsr_)
lipsv_=$(DEVOBJ)gdevl4v.$(OBJ) $(DEVOBJ)gdevlips.$(OBJ)
$(DD)lips4v.dev : $(ECHOGS_XE) $(lipsv_) $(DD)vector.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETDEV) $(DD)lips4v $(lipsv_)
$(ADDMOD) $(DD)lips4v -include $(GLD)vector
@@ -668,11 +673,11 @@
### --------------- Some extra devices: lips2p, bjc880j ---------------- ###
$(DD)lips2p.dev : $(lipsr_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lips2p $(lipsr_)
$(DD)bjc880j.dev : $(lipsr_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)bjc880j $(lipsr_)
@@ -681,15 +686,15 @@
md2k_=$(DEVOBJ)gdevmd2k.$(OBJ)
$(DD)md2k.dev : $(md2k_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)md2k $(md2k_)
$(DD)md5k.dev : $(md2k_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)md5k $(md2k_)
$(DEVOBJ)gdevmd2k.$(OBJ) : $(CONTRIBSRC)gdevmd2k.c $(PDEVH) $(gsparam_h) \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(DEVCC) $(DEVO_)gdevmd2k.$(OBJ) $(C_) $(CONTRIBSRC)gdevmd2k.c
@@ -697,7 +702,7 @@
oki4w_=$(DEVOBJ)gdevop4w.$(OBJ)
$(DD)oki4w.dev : $(oki4w_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)oki4w $(oki4w_)
# Author: Ivan Schreter (ivan@shadow.sk)
@@ -720,11 +725,11 @@
$(DEVCC) $(DEVO_)gdevopvp.$(OBJ) $(OPVP_OPT) $(C_) $(OPVP_SRC)gdevopvp.c
$(DD)opvp.dev : $(opvp_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)opvp $(opvp_)
$(DD)oprp.dev : $(opvp_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)oprp $(opvp_)
@@ -901,78 +906,78 @@
# The generic pcl3 device with selectable subdevices
$(DD)pcl3.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)pcl3 $(pcl3_)
# Fixed devices for specific printers
$(DD)hpdjplus.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdjplus $(pcl3_)
$(DD)hpdjportable.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdjportable $(pcl3_)
$(DD)hpdj310.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj310 $(pcl3_)
$(DD)hpdj320.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj320 $(pcl3_)
$(DD)hpdj340.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj340 $(pcl3_)
$(DD)hpdj400.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj400 $(pcl3_)
$(DD)hpdj500.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj500 $(pcl3_)
$(DD)hpdj500c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj500c $(pcl3_)
$(DD)hpdj510.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj510 $(pcl3_)
$(DD)hpdj520.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj520 $(pcl3_)
$(DD)hpdj540.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj540 $(pcl3_)
$(DD)hpdj550c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj550c $(pcl3_)
$(DD)hpdj560c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj560c $(pcl3_)
$(DD)hpdj600.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj600 $(pcl3_)
$(DD)hpdj660c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj660c $(pcl3_)
$(DD)hpdj670c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj670c $(pcl3_)
$(DD)hpdj680c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj680c $(pcl3_)
$(DD)hpdj690c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj690c $(pcl3_)
$(DD)hpdj850c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj850c $(pcl3_)
$(DD)hpdj855c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj855c $(pcl3_)
$(DD)hpdj870c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj870c $(pcl3_)
$(DD)hpdj890c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj890c $(pcl3_)
$(DD)hpdj1120c.dev : $(pcl3_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)hpdj1120c $(pcl3_)
#------------------------------------------------------------------------------
@@ -1009,7 +1014,7 @@
xes_=$(DEVOBJ)gdevxes.$(OBJ)
$(DD)xes.dev : $(xes_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)xes $(xes_)
# Author: Peter Flass (flass@lbdrscs.bitnet)
@@ -1029,16 +1034,16 @@
pr201_=$(DEVOBJ)gdevp201.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
-$(DD)pr201.dev : $(pr201_) $(CONTRIB_MAK) $(MAKEDIRS)
+$(DD)pr201.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)pr201 $(pr201_)
-$(DD)pr150.dev : $(pr201_) $(CONTRIB_MAK) $(MAKEDIRS)
+$(DD)pr150.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)pr150 $(pr201_)
-$(DD)pr1000.dev : $(pr201_) $(CONTRIB_MAK) $(MAKEDIRS)
+$(DD)pr1000.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)pr1000 $(pr201_)
-$(DD)pr1000_4.dev : $(pr201_) $(CONTRIB_MAK) $(MAKEDIRS)
+$(DD)pr1000_4.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)pr1000_4 $(pr201_)
$(DEVOBJ)gdevp201.$(OBJ) : $(JAPSRC)gdevp201.c $(PDEVH) \
@@ -1049,7 +1054,7 @@
jj100_=$(DEVOBJ)gdevj100.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
-$(DD)jj100.dev : $(jj100_) $(CONTRIB_MAK) $(MAKEDIRS)
+$(DD)jj100.dev : $(jj100_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)jj100 $(jj100_)
$(DEVOBJ)gdevj100.$(OBJ) : $(JAPSRC)gdevj100.c $(PDEVH) \
@@ -1061,11 +1066,11 @@
bj10v_=$(DEVOBJ)gdev10v.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
$(DD)bj10v.dev : $(bj10v_) \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)bj10v $(bj10v_)
$(DD)bj10vh.dev : $(bj10v_) \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)bj10vh $(bj10v_)
# Uncomment the following line if you are using MS-DOS on PC9801 series.
@@ -1080,7 +1085,7 @@
dmprt_=$(DEVOBJ)gdevdmpr.$(OBJ) $(DEVOBJ)dviprlib.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
$(DD)dmprt.dev : $(dmprt_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETDEV) $(DD)dmprt $(dmprt_)
$(ADDMOD) $(DD)dmprt -ps dmp_init
@@ -1110,19 +1115,19 @@
$(DEVCC) -DA4 $(DEVO_)gdevmjc.$(OBJ) $(C_) $(JAPSRC)gdevmjc.c
$(DD)mj700v2c.dev : $(mj700v2c_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)mj700v2c $(mj700v2c_)
$(DD)mj500c.dev : $(mj700v2c_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)mj500c $(mj700v2c_)
$(DD)mj6000c.dev : $(mj700v2c_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)mj6000c $(mj700v2c_)
$(DD)mj8000c.dev : $(mj700v2c_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)mj8000c $(mj700v2c_)
### ----------------- The Fujitsu FMPR printer device ----------------- ###
@@ -1130,7 +1135,7 @@
fmpr_=$(DEVOBJ)gdevfmpr.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
$(DD)fmpr.dev : $(fmpr_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)fmpr $(fmpr_)
$(DEVOBJ)gdevfmpr.$(OBJ) : $(JAPSRC)gdevfmpr.c $(PDEVH) \
@@ -1142,7 +1147,7 @@
fmlbp_=$(DEVOBJ)gdevfmlbp.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
$(DD)fmlbp.dev : $(fmlbp_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)fmlbp $(fmlbp_)
$(DEVOBJ)gdevfmlbp.$(OBJ) : $(JAPSRC)gdevfmlbp.c $(PDEVH) \
@@ -1159,7 +1164,7 @@
ml6_=$(DEVOBJ)gdevml6.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
$(DD)ml600.dev : $(ml6_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)ml600 $(ml6_)
$(DEVOBJ)gdevml6.$(OBJ) : $(JAPSRC)gdevml6.c $(PDEVH) \
@@ -1172,11 +1177,11 @@
lbp3x0_=$(DEVOBJ)gdevlbp3.$(OBJ)
$(DD)lbp310.dev :$(lbp3x0_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lbp310 $(lbp3x0_)
$(DD)lbp320.dev :$(lbp3x0_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lbp320 $(lbp3x0_)
$(DEVOBJ)gdevlbp3.$(OBJ) : $(JAPSRC)gdevlbp3.c $(PDEVH)
@@ -1191,7 +1196,7 @@
$(DEVCC) -DA4 $(DEVO_)gdevnpdl.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevnpdl.c
$(DD)npdl.dev : $(npdl_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)npdl $(npdl_)
### ------- EPSON ESC/Page printer device ----------------- ###
@@ -1203,11 +1208,11 @@
$(DEVCC) -DA4 $(DEVO_)gdevespg.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevespg.c
$(DD)escpage.dev : $(escpage_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)escpage $(escpage_)
$(DD)lp2000.dev : $(escpage_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)lp2000 $(escpage_)
### --- The RICOH RPDL language printer device ------ ###
@@ -1218,7 +1223,7 @@
$(DEVCC) $(DEVO_)gdevrpdl.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevrpdl.c
$(DD)rpdl.dev : $(rpdl_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)rpdl $(rpdl_)
### ---------- RICOH RPDL IV(600dpi) printer devices ---------- ###
@@ -1240,15 +1245,15 @@
alps_=$(DEVOBJ)gdevalps.$(OBJ)
$(DD)md50Mono.dev : $(alps_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)md50Mono $(alps_)
$(DD)md50Eco.dev : $(alps_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)md50Eco $(alps_)
$(DD)md1xMono.dev : $(alps_) $(DD)page.dev \
- $(CONTRIB_MAK) $(MAKEDIRS)
+ $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
$(SETPDEV) $(DD)md1xMono $(alps_)
$(DEVOBJ)gdevalps.$(OBJ) : $(JAPSRC)gdevalps.c $(PDEVH) \

View File

@ -1,4 +1,4 @@
{ config, stdenv, lib, fetchurl, pkgconfig, zlib, expat, openssl, autoconf { config, stdenv, lib, fetchurl, pkg-config, zlib, expat, openssl, autoconf
, libjpeg, libpng, libtiff, freetype, fontconfig, libpaper, jbig2dec , libjpeg, libpng, libtiff, freetype, fontconfig, libpaper, jbig2dec
, libiconv, ijs, lcms2, fetchpatch , libiconv, ijs, lcms2, fetchpatch
, cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin), cups ? null , cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin), cups ? null
@ -9,10 +9,6 @@ assert x11Support -> xlibsWrapper != null;
assert cupsSupport -> cups != null; assert cupsSupport -> cups != null;
let let
version = "9.${ver_min}";
ver_min = "52";
sha512 = "1ksm3v4nw8acc4j817n44l1c65ijk0mr3mp4kryy17jz41bmzzql5d8vr40h59n9dmf8b2wmnbq45bj3an1zrpfagavlf0i9s436jjc";
fonts = stdenv.mkDerivation { fonts = stdenv.mkDerivation {
name = "ghostscript-fonts"; name = "ghostscript-fonts";
@ -37,31 +33,27 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ghostscript"; pname = "ghostscript";
inherit version; version = "9.53.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9${ver_min}/${pname}-${version}.tar.xz"; url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9${lib.versions.minor version}${lib.versions.patch version}/${pname}-${version}.tar.xz";
inherit sha512; sha512 = "2vif3vgxa5wma16yxvhhkymk4p309y5204yykarq94r5rk890556d2lj5w7acnaa2ymkym6y0zd4vq9sy9ca2346igg2c6dxqkjr0zb";
}; };
patches = [ patches = [
(fetchpatch { (fetchpatch {
name = "CVE-2020-15900.patch"; url = "https://github.com/ArtifexSoftware/ghostpdl/commit/41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch";
url = "https://github.com/ArtifexSoftware/ghostpdl/commit/5d499272b95a6b890a1397e11d20937de000d31b.patch"; sha256 = "1qpc6q1fpxshqc0mqgg36kng47kgljk50bmr8p7wn21jgfkh7m8w";
sha256 = "1nnnrn8q33x7nc8227ygc60f3mj4bjzrhj40sxp6dah58rb5x5jz";
}) })
./urw-font-files.patch ./urw-font-files.patch
./doc-no-ref.diff ./doc-no-ref.diff
# rebased version of upstream http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=1b4c3669a20c,
# Remove on update to version > 9.52
./0001-Bug-702364-Fix-missing-echogs-dependencies.patch
]; ];
outputs = [ "out" "man" "doc" ]; outputs = [ "out" "man" "doc" ];
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ pkgconfig autoconf ]; nativeBuildInputs = [ pkg-config autoconf ];
buildInputs = buildInputs =
[ zlib expat openssl [ zlib expat openssl
libjpeg libpng libtiff freetype fontconfig libpaper jbig2dec libjpeg libpng libtiff freetype fontconfig libpaper jbig2dec
@ -115,8 +107,6 @@ stdenv.mkDerivation rec {
install_name_tool -change libgs.dylib.${version} $out/lib/libgs.dylib.${version} $out/bin/gs install_name_tool -change libgs.dylib.${version} $out/lib/libgs.dylib.${version} $out/bin/gs
''; '';
passthru = { inherit version; };
meta = { meta = {
homepage = "https://www.ghostscript.com/"; homepage = "https://www.ghostscript.com/";
description = "PostScript interpreter (mainline version)"; description = "PostScript interpreter (mainline version)";

View File

@ -14,7 +14,7 @@
let let
apparmor-series = "2.13"; apparmor-series = "2.13";
apparmor-patchver = "4"; apparmor-patchver = "5";
apparmor-version = apparmor-series + "." + apparmor-patchver; apparmor-version = apparmor-series + "." + apparmor-patchver;
apparmor-meta = component: with stdenv.lib; { apparmor-meta = component: with stdenv.lib; {
@ -27,19 +27,10 @@ let
apparmor-sources = fetchurl { apparmor-sources = fetchurl {
url = "https://launchpad.net/apparmor/${apparmor-series}/${apparmor-version}/+download/apparmor-${apparmor-version}.tar.gz"; url = "https://launchpad.net/apparmor/${apparmor-series}/${apparmor-version}/+download/apparmor-${apparmor-version}.tar.gz";
sha256 = "03nislxccnbxld89giak2s8xa4mdbwscfxbdwhmw5qpvgz08dgwh"; sha256 = "05x7r99k00r97v1cq2f711lv6yqzhbl8zp1i1c7kxra4v0a2lzk3";
};
# See <https://gitlab.com/apparmor/apparmor/-/issues/74> This and the
# accompanying application in prePatchCommon should be removed in 2.13.5
gnumake43Patch = fetchpatch {
url = "https://gitlab.com/apparmor/apparmor/-/merge_requests/465.patch";
name = "2-23-fix-build-with-make-4.3.patch";
sha256 = "0xw028iqp69j9mxv0kbwraplgkj5i5djdlgf0anpkc5cdbsf96r9";
}; };
prePatchCommon = '' prePatchCommon = ''
patch -p1 < ${gnumake43Patch}
chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh
patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh
substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man" substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man"

View File

@ -5,19 +5,19 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "iproute2"; pname = "iproute2";
version = "5.8.0"; version = "5.9.0";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz"; url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
sha256 = "0vk4vickrpahdhl3zazr2qn2bf99v5549ncirjpwiy4h0a4izkfg"; sha256 = "1kys6dmhrl43iaq95n5sh02p39d7bq8i5y672qrzgwnwpjaaqpd2";
}; };
preConfigure = '' preConfigure = ''
# Don't try to create /var/lib/arpd: # Don't try to create /var/lib/arpd:
sed -e '/ARPDDIR/d' -i Makefile sed -e '/ARPDDIR/d' -i Makefile
# TODO: Drop temporary version fix for 5.8 (53159d81) once 5.9 is out: # TODO: Drop temporary version fix for 5.9 once 5.10 is out:
substituteInPlace include/version.h \ substituteInPlace include/version.h \
--replace "v5.7.0-77-gb687d1067169" "5.8.0" --replace "5.8.0" "${version}"
''; '';
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libcap"; pname = "libcap";
version = "2.27"; version = "2.44";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz"; url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz";
sha256 = "0sj8kidl7qgf2qwxcbw1vadnlb30y4zvjzxswsmfdghq04npkhfs"; sha256 = "1qf80lifygbnxwvqjf8jz5j24n6fqqx4ixnkbf76xs2vrmcq664j";
}; };
outputs = [ "out" "dev" "lib" "man" "doc" "pam" ]; outputs = [ "out" "dev" "lib" "man" "doc" "pam" ];
@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Library for working with POSIX capabilities"; description = "Library for working with POSIX capabilities";
homepage = "https://sites.google.com/site/fullycapable";
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
}; };

View File

@ -1,27 +1,61 @@
{ stdenv, lib, fetchFromGitHub, pkgconfig, intltool, gperf, libcap { stdenv, lib, fetchFromGitHub
, curl, kmod, gnupg, gnutar, xz, pam, acl, libuuid, m4, e2fsprogs, utillinux, libffi
, glib, kbd, libxslt, coreutils, libgcrypt, libgpgerror, libidn2, libapparmor
, audit, lz4, bzip2, pcre2
, linuxHeaders ? stdenv.cc.libc.linuxHeaders
, iptables, gnu-efi, bashInteractive
, gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45
, ninja, meson, python3Packages, glibcLocales
, patchelf
, substituteAll
, getent
, cryptsetup, lvm2
, buildPackages , buildPackages
, perl , ninja, meson, m4, pkgconfig, coreutils, gperf, getent
, patchelf, perl, glibcLocales, glib, substituteAll
, gettext, python3Packages
# Mandatory dependencies
, libcap
, utillinux
, kbd
, kmod
# Optional dependencies
, pam, cryptsetup, lvm2, audit, acl
, lz4, libgcrypt, libgpgerror, libidn2
, curl, gnutar, gnupg, zlib
, xz, libuuid, libffi
, libapparmor, intltool
, bzip2, pcre2, e2fsprogs
, linuxHeaders ? stdenv.cc.libc.linuxHeaders
, gnu-efi
, iptables
, withSelinux ? false, libselinux , withSelinux ? false, libselinux
, withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp
, withKexectools ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) kexectools.meta.platforms, kexectools , withKexectools ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) kexectools.meta.platforms, kexectools
, bashInteractive
, withResolved ? true
, withLogind ? true
, withHostnamed ? true
, withLocaled ? true
, withNetworkd ? true
, withTimedated ? true
, withTimesyncd ? true
, withHwdb ? true
, withEfi ? stdenv.hostPlatform.isEfi
, withImportd ? true
, withCryptsetup ? true
# name argument
, pname ? "systemd"
, libxslt, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45
}: }:
assert withResolved -> (libgcrypt != null && libgpgerror != null);
assert withImportd ->
( curl.dev != null && zlib != null && xz != null && libgcrypt != null
&& gnutar != null && gnupg != null);
assert withCryptsetup ->
( cryptsetup != null );
let let
version = "246.6"; version = "246.6";
in stdenv.mkDerivation { in stdenv.mkDerivation {
inherit version; inherit version pname;
pname = "systemd";
# We use systemd/systemd-stable for src, and ship NixOS-specific patches inside nixpkgs directly # We use systemd/systemd-stable for src, and ship NixOS-specific patches inside nixpkgs directly
# This has proven to be less error-prone than the previous systemd fork. # This has proven to be less error-prone than the previous systemd fork.
@ -71,13 +105,17 @@ in stdenv.mkDerivation {
outputs = [ "out" "man" "dev" ]; outputs = [ "out" "man" "dev" ];
nativeBuildInputs = nativeBuildInputs =
[ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45 [ pkgconfig gperf
ninja meson ninja meson
coreutils # meson calls date, stat etc. coreutils # meson calls date, stat etc.
glibcLocales glibcLocales
patchelf getent m4 patchelf getent m4
perl # to patch the libsystemd.so and remove dependencies on aarch64 perl # to patch the libsystemd.so and remove dependencies on aarch64
intltool
gettext
libxslt docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45
(buildPackages.python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ])) (buildPackages.python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ]))
]; ];
buildInputs = buildInputs =
@ -86,9 +124,10 @@ in stdenv.mkDerivation {
pcre2 ] ++ pcre2 ] ++
stdenv.lib.optional withKexectools kexectools ++ stdenv.lib.optional withKexectools kexectools ++
stdenv.lib.optional withLibseccomp libseccomp ++ stdenv.lib.optional withLibseccomp libseccomp ++
[ libffi audit lz4 bzip2 libapparmor [ libffi audit lz4 bzip2 libapparmor iptables ] ++
iptables gnu-efi stdenv.lib.optional withEfi gnu-efi ++
] ++ stdenv.lib.optional withSelinux libselinux; stdenv.lib.optional withSelinux libselinux ++
stdenv.lib.optional withCryptsetup cryptsetup.dev;
#dontAddPrefix = true; #dontAddPrefix = true;
@ -106,19 +145,23 @@ in stdenv.mkDerivation {
"-Ddebug-shell=${bashInteractive}/bin/bash" "-Ddebug-shell=${bashInteractive}/bin/bash"
# while we do not run tests we should also not build them. Removes about 600 targets # while we do not run tests we should also not build them. Removes about 600 targets
"-Dtests=false" "-Dtests=false"
"-Dimportd=true" "-Dimportd=${stdenv.lib.boolToString withImportd}"
"-Dlz4=true" "-Dlz4=true"
"-Dhomed=false" "-Dhomed=false"
"-Dhostnamed=true" "-Dlogind=${stdenv.lib.boolToString withLogind}"
"-Dnetworkd=true" "-Dlocaled=${stdenv.lib.boolToString withLocaled}"
"-Dhostnamed=${stdenv.lib.boolToString withHostnamed}"
"-Dnetworkd=${stdenv.lib.boolToString withNetworkd}"
"-Dcryptsetup=${stdenv.lib.boolToString withCryptsetup}"
"-Dportabled=false" "-Dportabled=false"
"-Dhwdb=${stdenv.lib.boolToString withHwdb}"
"-Dremote=false" "-Dremote=false"
"-Dsysusers=false" "-Dsysusers=false"
"-Dtimedated=true" "-Dtimedated=${stdenv.lib.boolToString withTimedated}"
"-Dtimesyncd=true" "-Dtimesyncd=${stdenv.lib.boolToString withTimesyncd}"
"-Dfirstboot=false" "-Dfirstboot=false"
"-Dlocaled=true" "-Dlocaled=true"
"-Dresolve=true" "-Dresolve=${stdenv.lib.boolToString withResolved}"
"-Dsplit-usr=false" "-Dsplit-usr=false"
"-Dlibcurl=true" "-Dlibcurl=true"
"-Dlibidn=false" "-Dlibidn=false"
@ -141,11 +184,6 @@ in stdenv.mkDerivation {
"-Dsystem-gid-max=999" "-Dsystem-gid-max=999"
# "-Dtime-epoch=1" # "-Dtime-epoch=1"
(if !stdenv.hostPlatform.isEfi then "-Dgnu-efi=false" else "-Dgnu-efi=true")
"-Defi-libdir=${toString gnu-efi}/lib"
"-Defi-includedir=${toString gnu-efi}/include/efi"
"-Defi-ldsdir=${toString gnu-efi}/lib"
"-Dsysvinit-path=" "-Dsysvinit-path="
"-Dsysvrcnd-path=" "-Dsysvrcnd-path="
@ -161,6 +199,12 @@ in stdenv.mkDerivation {
# Upstream defaulted to disable manpages since they optimize for the much # Upstream defaulted to disable manpages since they optimize for the much
# more frequent development builds # more frequent development builds
"-Dman=true" "-Dman=true"
"-Dgnu-efi=${stdenv.lib.boolToString (withEfi && gnu-efi != null)}"
] ++ stdenv.lib.optionals (withEfi && gnu-efi != null) [
"-Defi-libdir=${toString gnu-efi}/lib"
"-Defi-includedir=${toString gnu-efi}/include/efi"
"-Defi-ldsdir=${toString gnu-efi}/lib"
]; ];
preConfigure = '' preConfigure = ''
@ -284,6 +328,6 @@ in stdenv.mkDerivation {
license = licenses.lgpl21Plus; license = licenses.lgpl21Plus;
platforms = platforms.linux; platforms = platforms.linux;
priority = 10; priority = 10;
maintainers = with maintainers; [ andir eelco flokli ]; maintainers = with maintainers; [ andir eelco flokli kloenk ];
}; };
} }

View File

@ -64,7 +64,9 @@ let
(if atLeast "9.6" then ./patches/hardcode-pgxs-path-96.patch else ./patches/hardcode-pgxs-path.patch) (if atLeast "9.6" then ./patches/hardcode-pgxs-path-96.patch else ./patches/hardcode-pgxs-path.patch)
./patches/specify_pkglibdir_at_runtime.patch ./patches/specify_pkglibdir_at_runtime.patch
./patches/findstring.patch ./patches/findstring.patch
] ++ lib.optional stdenv.isLinux (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch); ]
++ lib.optional (atLeast "10") ./patches/stabilize-timetz-dst.patch
++ lib.optional stdenv.isLinux (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch);
installTargets = [ "install-world" ]; installTargets = [ "install-world" ];

View File

@ -0,0 +1,117 @@
From 4a071afbd056282746a5bc9362e87f579a56402d Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 29 Oct 2020 15:28:14 -0400
Subject: [PATCH 1/1] Stabilize timetz test across DST transitions.
The timetz test cases I added in commit a9632830b were unintentionally
sensitive to whether or not DST is active in the PST8PDT time zone.
Thus, they'll start failing this coming weekend, as reported by
Bernhard M. Wiedemann in bug #16689. Fortunately, DST-awareness is
not significant to the purpose of these test cases, so we can just
force them all to PDT (DST hours) to preserve stability of the
results.
Back-patch to v10, as the prior patch was.
Discussion: https://postgr.es/m/16689-57701daa23b377bf@postgresql.org
Git viewer: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=4a071afbd056282746a5bc9362e87f579a56402d;hp=f90149e6285aaae6b48559afce1bd638ee26c33e
---
src/test/regress/expected/timetz.out | 32 ++++++++++++++--------------
src/test/regress/sql/timetz.sql | 16 +++++++-------
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/src/test/regress/expected/timetz.out b/src/test/regress/expected/timetz.out
index 038bb5fa09..1ab5ed5105 100644
--- a/src/test/regress/expected/timetz.out
+++ b/src/test/regress/expected/timetz.out
@@ -91,45 +91,45 @@ SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00-07';
(12 rows)
-- Check edge cases
-SELECT '23:59:59.999999'::timetz;
+SELECT '23:59:59.999999 PDT'::timetz;
timetz
--------------------
23:59:59.999999-07
(1 row)
-SELECT '23:59:59.9999999'::timetz; -- rounds up
+SELECT '23:59:59.9999999 PDT'::timetz; -- rounds up
timetz
-------------
24:00:00-07
(1 row)
-SELECT '23:59:60'::timetz; -- rounds up
+SELECT '23:59:60 PDT'::timetz; -- rounds up
timetz
-------------
24:00:00-07
(1 row)
-SELECT '24:00:00'::timetz; -- allowed
+SELECT '24:00:00 PDT'::timetz; -- allowed
timetz
-------------
24:00:00-07
(1 row)
-SELECT '24:00:00.01'::timetz; -- not allowed
-ERROR: date/time field value out of range: "24:00:00.01"
-LINE 1: SELECT '24:00:00.01'::timetz;
+SELECT '24:00:00.01 PDT'::timetz; -- not allowed
+ERROR: date/time field value out of range: "24:00:00.01 PDT"
+LINE 1: SELECT '24:00:00.01 PDT'::timetz;
^
-SELECT '23:59:60.01'::timetz; -- not allowed
-ERROR: date/time field value out of range: "23:59:60.01"
-LINE 1: SELECT '23:59:60.01'::timetz;
+SELECT '23:59:60.01 PDT'::timetz; -- not allowed
+ERROR: date/time field value out of range: "23:59:60.01 PDT"
+LINE 1: SELECT '23:59:60.01 PDT'::timetz;
^
-SELECT '24:01:00'::timetz; -- not allowed
-ERROR: date/time field value out of range: "24:01:00"
-LINE 1: SELECT '24:01:00'::timetz;
+SELECT '24:01:00 PDT'::timetz; -- not allowed
+ERROR: date/time field value out of range: "24:01:00 PDT"
+LINE 1: SELECT '24:01:00 PDT'::timetz;
^
-SELECT '25:00:00'::timetz; -- not allowed
-ERROR: date/time field value out of range: "25:00:00"
-LINE 1: SELECT '25:00:00'::timetz;
+SELECT '25:00:00 PDT'::timetz; -- not allowed
+ERROR: date/time field value out of range: "25:00:00 PDT"
+LINE 1: SELECT '25:00:00 PDT'::timetz;
^
--
-- TIME simple math
diff --git a/src/test/regress/sql/timetz.sql b/src/test/regress/sql/timetz.sql
index b699e4b03c..ce763d89e8 100644
--- a/src/test/regress/sql/timetz.sql
+++ b/src/test/regress/sql/timetz.sql
@@ -36,14 +36,14 @@ SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00-07';
SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00-07';
-- Check edge cases
-SELECT '23:59:59.999999'::timetz;
-SELECT '23:59:59.9999999'::timetz; -- rounds up
-SELECT '23:59:60'::timetz; -- rounds up
-SELECT '24:00:00'::timetz; -- allowed
-SELECT '24:00:00.01'::timetz; -- not allowed
-SELECT '23:59:60.01'::timetz; -- not allowed
-SELECT '24:01:00'::timetz; -- not allowed
-SELECT '25:00:00'::timetz; -- not allowed
+SELECT '23:59:59.999999 PDT'::timetz;
+SELECT '23:59:59.9999999 PDT'::timetz; -- rounds up
+SELECT '23:59:60 PDT'::timetz; -- rounds up
+SELECT '24:00:00 PDT'::timetz; -- allowed
+SELECT '24:00:00.01 PDT'::timetz; -- not allowed
+SELECT '23:59:60.01 PDT'::timetz; -- not allowed
+SELECT '24:01:00 PDT'::timetz; -- not allowed
+SELECT '25:00:00 PDT'::timetz; -- not allowed
--
-- TIME simple math
--
2.20.1

View File

@ -703,11 +703,11 @@ lib.makeScope newScope (self: with self; {
}) {}; }) {};
libX11 = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libxcb, xtrans }: stdenv.mkDerivation { libX11 = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libxcb, xtrans }: stdenv.mkDerivation {
name = "libX11-1.6.8"; name = "libX11-1.6.12";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "mirror://xorg/individual/lib/libX11-1.6.8.tar.bz2"; url = "mirror://xorg/individual/lib/libX11-1.6.12.tar.bz2";
sha256 = "1mbkwhhprhf49s2iwx7kiliprsdvd690zk44x3h53ql9q52si2dj"; sha256 = "1ivfzl1qwk8zh7gc0m5vb58gdxz11jwg7w3d356w16j1d5s2427i";
}; };
hardeningDisable = [ "bindnow" "relro" ]; hardeningDisable = [ "bindnow" "relro" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
@ -1054,11 +1054,11 @@ lib.makeScope newScope (self: with self; {
}) {}; }) {};
libXvMC = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libX11, libXext, libXv }: stdenv.mkDerivation { libXvMC = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libX11, libXext, libXv }: stdenv.mkDerivation {
name = "libXvMC-1.0.11"; name = "libXvMC-1.0.12";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "mirror://xorg/individual/lib/libXvMC-1.0.11.tar.bz2"; url = "mirror://xorg/individual/lib/libXvMC-1.0.12.tar.bz2";
sha256 = "0bb2c996p0smp2lwckffcfh4701bzv7266xh230ag0x68ka38bja"; sha256 = "1kbdjsvkm5l7axv7g477qj18sab2wnqhliy6197syzizgfbsfgbb";
}; };
hardeningDisable = [ "bindnow" "relro" ]; hardeningDisable = [ "bindnow" "relro" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
@ -1158,11 +1158,11 @@ lib.makeScope newScope (self: with self; {
}) {}; }) {};
libxcb = callPackage ({ stdenv, pkgconfig, fetchurl, libxslt, libpthreadstubs, libXau, xcbproto, libXdmcp, python }: stdenv.mkDerivation { libxcb = callPackage ({ stdenv, pkgconfig, fetchurl, libxslt, libpthreadstubs, libXau, xcbproto, libXdmcp, python }: stdenv.mkDerivation {
name = "libxcb-1.13.1"; name = "libxcb-1.14";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "https://xcb.freedesktop.org/dist/libxcb-1.13.1.tar.bz2"; url = "mirror://xorg/individual/lib/libxcb-1.14.tar.xz";
sha256 = "1i27lvrcsygims1pddpl5c4qqs6z715lm12ax0n3vx0igapvg7x8"; sha256 = "0d2chjgyn5lr9sfhacfvqgnj9l9faz11vn322a06jd6lk3dxcpm5";
}; };
hardeningDisable = [ "bindnow" "relro" ]; hardeningDisable = [ "bindnow" "relro" ];
nativeBuildInputs = [ pkgconfig python ]; nativeBuildInputs = [ pkgconfig python ];
@ -1431,11 +1431,11 @@ lib.makeScope newScope (self: with self; {
}) {}; }) {};
xcbproto = callPackage ({ stdenv, pkgconfig, fetchurl, python }: stdenv.mkDerivation { xcbproto = callPackage ({ stdenv, pkgconfig, fetchurl, python }: stdenv.mkDerivation {
name = "xcb-proto-1.13"; name = "xcb-proto-1.14.1";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "https://xcb.freedesktop.org/dist/xcb-proto-1.13.tar.bz2"; url = "mirror://xorg/individual/proto/xcb-proto-1.14.1.tar.xz";
sha256 = "1qdxw9syhbvswiqj5dvj278lrmfhs81apzmvx6205s4vcqg7563v"; sha256 = "1hzwazgyywd9mz4mjj1yv8ski27qqx7ypmyr27m39hrajyddsjph";
}; };
hardeningDisable = [ "bindnow" "relro" ]; hardeningDisable = [ "bindnow" "relro" ];
nativeBuildInputs = [ pkgconfig python ]; nativeBuildInputs = [ pkgconfig python ];
@ -1717,11 +1717,11 @@ lib.makeScope newScope (self: with self; {
}) {}; }) {};
xf86inputlibinput = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libinput, xorgserver }: stdenv.mkDerivation { xf86inputlibinput = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libinput, xorgserver }: stdenv.mkDerivation {
name = "xf86-input-libinput-0.28.2"; name = "xf86-input-libinput-0.30.0";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "mirror://xorg/individual/driver/xf86-input-libinput-0.28.2.tar.bz2"; url = "mirror://xorg/individual/driver/xf86-input-libinput-0.30.0.tar.bz2";
sha256 = "0818vr0yhk9j1y1wcbxzcd458vrvp06rrhi8k43bhqkb5jb4dcxq"; sha256 = "1h4np66p87jf0c85ig524w8f5rbhl5gx8fww1qg0c55f87yzkizr";
}; };
hardeningDisable = [ "bindnow" "relro" ]; hardeningDisable = [ "bindnow" "relro" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
@ -2679,11 +2679,11 @@ lib.makeScope newScope (self: with self; {
}) {}; }) {};
xorgproto = callPackage ({ stdenv, pkgconfig, fetchurl, libXt }: stdenv.mkDerivation { xorgproto = callPackage ({ stdenv, pkgconfig, fetchurl, libXt }: stdenv.mkDerivation {
name = "xorgproto-2019.1"; name = "xorgproto-2020.1";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "mirror://xorg/individual/proto/xorgproto-2019.1.tar.bz2"; url = "mirror://xorg/individual/proto/xorgproto-2020.1.tar.bz2";
sha256 = "16yll1kaffnslik5sizlw3qrigj1gpsgfgyq6903g3mwdixamnm6"; sha256 = "1llrnrkq6iprgiqakmwlv89745s9h02xsiaq0xn3fnh377qm78al";
}; };
hardeningDisable = [ "bindnow" "relro" ]; hardeningDisable = [ "bindnow" "relro" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -82,13 +82,6 @@ self: super:
libX11 = super.libX11.overrideAttrs (attrs: { libX11 = super.libX11.overrideAttrs (attrs: {
outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ];
patches = [
# Fixes an issue that happens when cross-compiling for us.
(fetchpatch {
url = "https://cgit.freedesktop.org/xorg/lib/libX11/patch/?id=0327c427d62f671eced067c6d9b69f4e216a8cac";
sha256 = "11k2mx56hjgw886zf1cdf2nhv7052d5rggimfshg6lq20i38vpza";
})
];
configureFlags = attrs.configureFlags or [] configureFlags = attrs.configureFlags or []
++ malloc0ReturnsNullCrossFlag; ++ malloc0ReturnsNullCrossFlag;
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];

View File

@ -1,7 +1,5 @@
https://invisible-mirror.net/archives/luit/luit-20190106.tgz https://invisible-mirror.net/archives/luit/luit-20190106.tgz
https://xcb.freedesktop.org/dist/libpthread-stubs-0.4.tar.bz2 https://xcb.freedesktop.org/dist/libpthread-stubs-0.4.tar.bz2
https://xcb.freedesktop.org/dist/libxcb-1.13.1.tar.bz2
https://xcb.freedesktop.org/dist/xcb-proto-1.13.tar.bz2
https://xcb.freedesktop.org/dist/xcb-util-0.4.0.tar.bz2 https://xcb.freedesktop.org/dist/xcb-util-0.4.0.tar.bz2
https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.3.tar.bz2 https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.3.tar.bz2
https://xcb.freedesktop.org/dist/xcb-util-errors-1.0.tar.bz2 https://xcb.freedesktop.org/dist/xcb-util-errors-1.0.tar.bz2
@ -83,7 +81,7 @@ mirror://xorg/individual/doc/xorg-sgml-doctools-1.11.tar.bz2
mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2 mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2
mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2 mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2
mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2 mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2
mirror://xorg/individual/driver/xf86-input-libinput-0.28.2.tar.bz2 mirror://xorg/individual/driver/xf86-input-libinput-0.30.0.tar.bz2
mirror://xorg/individual/driver/xf86-input-mouse-1.9.3.tar.bz2 mirror://xorg/individual/driver/xf86-input-mouse-1.9.3.tar.bz2
mirror://xorg/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2 mirror://xorg/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2
mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2 mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
@ -177,10 +175,11 @@ mirror://xorg/individual/lib/libICE-1.0.10.tar.bz2
mirror://xorg/individual/lib/libpciaccess-0.16.tar.bz2 mirror://xorg/individual/lib/libpciaccess-0.16.tar.bz2
mirror://xorg/individual/lib/libSM-1.2.3.tar.bz2 mirror://xorg/individual/lib/libSM-1.2.3.tar.bz2
mirror://xorg/individual/lib/libWindowsWM-1.0.1.tar.bz2 mirror://xorg/individual/lib/libWindowsWM-1.0.1.tar.bz2
mirror://xorg/individual/lib/libX11-1.6.8.tar.bz2 mirror://xorg/individual/lib/libX11-1.6.12.tar.bz2
mirror://xorg/individual/lib/libXau-1.0.9.tar.bz2 mirror://xorg/individual/lib/libXau-1.0.9.tar.bz2
mirror://xorg/individual/lib/libXaw-1.0.13.tar.bz2 mirror://xorg/individual/lib/libXaw-1.0.13.tar.bz2
mirror://xorg/individual/lib/libXaw3d-1.6.3.tar.bz2 mirror://xorg/individual/lib/libXaw3d-1.6.3.tar.bz2
mirror://xorg/individual/lib/libxcb-1.14.tar.xz
mirror://xorg/individual/lib/libXcomposite-0.4.5.tar.bz2 mirror://xorg/individual/lib/libXcomposite-0.4.5.tar.bz2
mirror://xorg/individual/lib/libXcursor-1.2.0.tar.bz2 mirror://xorg/individual/lib/libXcursor-1.2.0.tar.bz2
mirror://xorg/individual/lib/libXdamage-1.1.5.tar.bz2 mirror://xorg/individual/lib/libXdamage-1.1.5.tar.bz2
@ -206,12 +205,13 @@ mirror://xorg/individual/lib/libXTrap-1.0.1.tar.bz2
mirror://xorg/individual/lib/libXt-1.2.0.tar.bz2 mirror://xorg/individual/lib/libXt-1.2.0.tar.bz2
mirror://xorg/individual/lib/libXtst-1.2.3.tar.bz2 mirror://xorg/individual/lib/libXtst-1.2.3.tar.bz2
mirror://xorg/individual/lib/libXv-1.0.11.tar.bz2 mirror://xorg/individual/lib/libXv-1.0.11.tar.bz2
mirror://xorg/individual/lib/libXvMC-1.0.11.tar.bz2 mirror://xorg/individual/lib/libXvMC-1.0.12.tar.bz2
mirror://xorg/individual/lib/libXxf86dga-1.1.5.tar.bz2 mirror://xorg/individual/lib/libXxf86dga-1.1.5.tar.bz2
mirror://xorg/individual/lib/libXxf86misc-1.0.4.tar.bz2 mirror://xorg/individual/lib/libXxf86misc-1.0.4.tar.bz2
mirror://xorg/individual/lib/libXxf86vm-1.1.4.tar.bz2 mirror://xorg/individual/lib/libXxf86vm-1.1.4.tar.bz2
mirror://xorg/individual/lib/xtrans-1.4.0.tar.bz2 mirror://xorg/individual/lib/xtrans-1.4.0.tar.bz2
mirror://xorg/individual/proto/xorgproto-2019.1.tar.bz2 mirror://xorg/individual/proto/xcb-proto-1.14.1.tar.xz
mirror://xorg/individual/proto/xorgproto-2020.1.tar.bz2
mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2 mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2
mirror://xorg/individual/util/imake-1.0.8.tar.bz2 mirror://xorg/individual/util/imake-1.0.8.tar.bz2
mirror://xorg/individual/util/lndir-1.0.3.tar.bz2 mirror://xorg/individual/util/lndir-1.0.3.tar.bz2

View File

@ -9,13 +9,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bash-completion"; pname = "bash-completion";
version = "2.10"; version = "2.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "scop"; owner = "scop";
repo = "bash-completion"; repo = "bash-completion";
rev = version; rev = version;
sha256 = "047yjryy9d6hp18wkigbfrw9r0sm31inlsp8l28fhxg8ii032sgq"; sha256 = "0m3brd5jx7w07h8vxvvcmbyrlnadrx6hra3cvx6grzv6rin89liv";
}; };
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];

View File

@ -190,10 +190,7 @@ in rec {
stage1 = prevStage: let stage1 = prevStage: let
persistent = self: super: with prevStage; { persistent = self: super: with prevStage; {
cmake = super.cmake.override { cmake = super.cmakeMinimal;
isBootstrap = true;
useSharedLibraries = false;
};
python3 = super.python3Minimal; python3 = super.python3Minimal;

View File

@ -27,6 +27,8 @@ with pkgs;
cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; }; cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; }; cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };
install-shell-files = callPackage ./install-shell-files {};
kernel-config = callPackage ./kernel.nix {}; kernel-config = callPackage ./kernel.nix {};
ld-library-path = callPackage ./ld-library-path {}; ld-library-path = callPackage ./ld-library-path {};

View File

@ -0,0 +1,125 @@
{ stdenv, runCommandLocal, recurseIntoAttrs, installShellFiles }:
let
runTest = name: env: buildCommand:
runCommandLocal "install-shell-files--${name}" ({
nativeBuildInputs = [ installShellFiles ];
meta.platforms = stdenv.lib.platforms.all;
} // env) buildCommand;
in
recurseIntoAttrs {
# installManPage
install-manpage = runTest "install-manpage" {} ''
mkdir -p doc
echo foo > doc/foo.1
echo bar > doc/bar.2.gz
echo baz > doc/baz.3
installManPage doc/*
cmp doc/foo.1 $out/share/man/man1/foo.1
cmp doc/bar.2.gz $out/share/man/man2/bar.2.gz
cmp doc/baz.3 $out/share/man/man3/baz.3
'';
install-manpage-outputs = runTest "install-manpage-outputs" {
outputs = [ "out" "man" "devman" ];
} ''
mkdir -p doc
echo foo > doc/foo.1
echo bar > doc/bar.3
installManPage doc/*
# assert they didn't go into $out
[[ ! -f $out/share/man/man1/foo.1 && ! -f $out/share/man/man3/bar.3 ]]
# foo.1 alone went into man
cmp doc/foo.1 ''${!outputMan:?}/share/man/man1/foo.1
[[ ! -f ''${!outputMan:?}/share/man/man3/bar.3 ]]
# bar.3 alone went into devman
cmp doc/bar.3 ''${!outputDevman:?}/share/man/man3/bar.3
[[ ! -f ''${!outputDevman:?}/share/man/man1/foo.1 ]]
touch $out
'';
# installShellCompletion
install-completion = runTest "install-completion" {} ''
echo foo > foo
echo bar > bar
echo baz > baz
echo qux > qux.zsh
echo quux > quux
installShellCompletion --bash foo bar --zsh baz qux.zsh --fish quux
cmp foo $out/share/bash-completion/completions/foo
cmp bar $out/share/bash-completion/completions/bar
cmp baz $out/share/zsh/site-functions/_baz
cmp qux.zsh $out/share/zsh/site-functions/_qux
cmp quux $out/share/fish/vendor_completions.d/quux
'';
install-completion-output = runTest "install-completion-output" {
outputs = [ "out" "bin" ];
} ''
echo foo > foo
installShellCompletion --bash foo
# assert it didn't go into $out
[[ ! -f $out/share/bash-completion/completions/foo ]]
cmp foo ''${!outputBin:?}/share/bash-completion/completions/foo
touch $out
'';
install-completion-name = runTest "install-completion-name" {} ''
echo foo > foo
echo bar > bar
echo baz > baz
installShellCompletion --bash --name foobar.bash foo --zsh --name _foobar bar --fish baz
cmp foo $out/share/bash-completion/completions/foobar.bash
cmp bar $out/share/zsh/site-functions/_foobar
cmp baz $out/share/fish/vendor_completions.d/baz
'';
install-completion-inference = runTest "install-completion-inference" {} ''
echo foo > foo.bash
echo bar > bar.zsh
echo baz > baz.fish
installShellCompletion foo.bash bar.zsh baz.fish
cmp foo.bash $out/share/bash-completion/completions/foo.bash
cmp bar.zsh $out/share/zsh/site-functions/_bar
cmp baz.fish $out/share/fish/vendor_completions.d/baz.fish
'';
install-completion-cmd = runTest "install-completion-cmd" {} ''
echo foo > foo.bash
echo bar > bar.zsh
echo baz > baz.fish
echo qux > qux.fish
installShellCompletion --cmd foobar --bash foo.bash --zsh bar.zsh --fish baz.fish --name qux qux.fish
cmp foo.bash $out/share/bash-completion/completions/foobar.bash
cmp bar.zsh $out/share/zsh/site-functions/_foobar
cmp baz.fish $out/share/fish/vendor_completions.d/foobar.fish
cmp qux.fish $out/share/fish/vendor_completions.d/qux
'';
install-completion-fifo = runTest "install-completion-fifo" {} ''
installShellCompletion \
--bash --name foo.bash <(echo foo) \
--zsh --name _foo <(echo bar) \
--fish --name foo.fish <(echo baz)
[[ $(<$out/share/bash-completion/completions/foo.bash) == foo ]] || { echo "foo.bash comparison failed"; exit 1; }
[[ $(<$out/share/zsh/site-functions/_foo) == bar ]] || { echo "_foo comparison failed"; exit 1; }
[[ $(<$out/share/fish/vendor_completions.d/foo.fish) == baz ]] || { echo "foo.fish comparison failed"; exit 1; }
'';
}

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "brotli"; pname = "brotli";
version = "1.0.7"; version = "1.0.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "brotli"; repo = "brotli";
rev = "v" + version; rev = "v" + version;
sha256 = "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw"; sha256 = "z6Dhrabav1MDQ4rAcXaDv0aN+qOoh9cvoXZqEWBB13c=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
@ -32,7 +32,14 @@ stdenv.mkDerivation rec {
# This breaks on Darwin because our cmake hook tries to make a build folder # This breaks on Darwin because our cmake hook tries to make a build folder
# and the wonderful bazel BUILD file is already there (yay case-insensitivity?) # and the wonderful bazel BUILD file is already there (yay case-insensitivity?)
prePatch = "rm BUILD"; prePatch = ''
rm BUILD
# Upstream fixed this reference to runtime-path after the release
# and with this references g++ complains about invalid option -R
sed -i 's/ -R''${libdir}//' scripts/libbrotli*.pc.in
cat scripts/libbrotli*.pc.in
'';
# Don't bother with "man" output for now, # Don't bother with "man" output for now,
# it currently only makes the manpages hard to use. # it currently only makes the manpages hard to use.

View File

@ -1,52 +0,0 @@
From 0251229bfd9617e8a35cf9dd7d338d63fff74a0c Mon Sep 17 00:00:00 2001
From: Assaf Gordon <assafgordon@gmail.com>
Date: Mon, 13 May 2019 16:37:40 -0600
Subject: [PATCH] tests: avoid false-positive in date-debug test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When debugging an invalid date due to DST switching, the intermediate
'normalized time' should not be checked - its value can differ between
systems (e.g. glibc vs musl).
Reported by Niklas Hambüchen in
https://lists.gnu.org/r/coreutils/2019-05/msg00031.html
Analyzed by Rich Felker in
https://lists.gnu.org/r/coreutils/2019-05/msg00039.html
* tests/misc/date-debug.sh: Replace the exact normalized time
with 'XX:XX:XX' so different values would not trigger test failure.
---
tests/misc/date-debug.sh | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/tests/misc/date-debug.sh b/tests/misc/date-debug.sh
index aa47f1abb..2ce6f4ce8 100755
--- a/tests/misc/date-debug.sh
+++ b/tests/misc/date-debug.sh
@@ -71,7 +71,7 @@ date: input timezone: TZ="America/Edmonton" in date string
date: using specified time as starting value: '02:30:00'
date: error: invalid date/time value:
date: user provided time: '(Y-M-D) 2006-04-02 02:30:00'
-date: normalized time: '(Y-M-D) 2006-04-02 03:30:00'
+date: normalized time: '(Y-M-D) 2006-04-02 XX:XX:XX'
date: --
date: possible reasons:
date: non-existing due to daylight-saving time;
@@ -81,7 +81,14 @@ date: invalid date 'TZ="America/Edmonton" 2006-04-02 02:30:00'
EOF
# date should return 1 (error) for invalid date
-returns_ 1 date --debug -d "$in2" >out2 2>&1 || fail=1
+returns_ 1 date --debug -d "$in2" >out2-t 2>&1 || fail=1
+
+# The output line of "normalized time" can differ between systems
+# (e.g. glibc vs musl) and should not be checked.
+# See: https://lists.gnu.org/archive/html/coreutils/2019-05/msg00039.html
+sed '/normalized time:/s/ [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ XX:XX:XX/' \
+ out2-t > out2 || framework_failure_
+
compare exp2 out2 || fail=1
##

View File

@ -1,51 +0,0 @@
From 3bd82a82cf4ba693d2c31c7b95aaec4e56dc92a4 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 11 Mar 2019 16:40:29 -0700
Subject: [PATCH 1/1] strtod: fix clash with strtold
Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817).
* lib/strtod.c (compute_minus_zero, minus_zero):
Simplify by remving the macro / external variable,
and having just a function. User changed. This avoids
the need for an external variable that might clash.
---
ChangeLog | 9 +++++++++
lib/strtod.c | 11 +++++------
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/lib/strtod.c b/lib/strtod.c
index b9eaa51..69b1564 100644
--- a/lib/strtod.c
+++ b/lib/strtod.c
@@ -294,16 +294,15 @@ parse_number (const char *nptr,
ICC 10.0 has a bug when optimizing the expression -zero.
The expression -MIN * MIN does not work when cross-compiling
to PowerPC on Mac OS X 10.5. */
-#if defined __hpux || defined __sgi || defined __ICC
static DOUBLE
-compute_minus_zero (void)
+minus_zero (void)
{
+#if defined __hpux || defined __sgi || defined __ICC
return -MIN * MIN;
-}
-# define minus_zero compute_minus_zero ()
#else
-DOUBLE minus_zero = -0.0;
+ return -0.0;
#endif
+}
/* Convert NPTR to a DOUBLE. If ENDPTR is not NULL, a pointer to the
character after the last one used in the number is put in *ENDPTR. */
@@ -479,6 +478,6 @@ STRTOD (const char *nptr, char **endptr)
/* Special case -0.0, since at least ICC miscompiles negation. We
can't use copysign(), as that drags in -lm on some platforms. */
if (!num && negative)
- return minus_zero;
+ return minus_zero ();
return negative ? -num : num;
}
--
1.9.1

File diff suppressed because it is too large Load Diff

View File

@ -22,21 +22,16 @@ with lib;
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
pname = "coreutils"; pname = "coreutils";
version = "8.31"; version = "8.32";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
sha256 = "1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz"; sha256 = "sha256-RFjY3nhJ30TMqxXhaxVIsoUiTbul8I+sBwwcDgvMTPo=";
}; };
patches = optional stdenv.hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch patches = optional stdenv.hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch
# Fix failing test with musl. See https://lists.gnu.org/r/coreutils/2019-05/msg00031.html # included on coreutils master; TODO: apply unconditionally, I guess
# To be removed in coreutils-8.32. ++ optional stdenv.hostPlatform.isAarch64 ./sys-getdents-undeclared.patch;
++ optional stdenv.hostPlatform.isMusl ./avoid-false-positive-in-date-debug-test.patch
# Fix compilation in musl-cross environments. To be removed in coreutils-8.32.
++ optional stdenv.hostPlatform.isMusl ./coreutils-8.31-musl-cross.patch
# Fix compilation in android-cross environments. To be removed in coreutils-8.32.
++ [ ./coreutils-8.31-android-cross.patch ];
postPatch = '' postPatch = ''
# The test tends to fail on btrfs,f2fs and maybe other unusual filesystems. # The test tends to fail on btrfs,f2fs and maybe other unusual filesystems.

View File

@ -0,0 +1,100 @@
From 10fcb97bd728f09d4a027eddf8ad2900f0819b0a Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Thu, 5 Mar 2020 17:25:29 -0800
Subject: ls: restore 8.31 behavior on removed directories
* NEWS: Mention this.
* src/ls.c: Do not include <sys/sycall.h>
(print_dir): Don't worry about whether the directory is removed.
* tests/ls/removed-directory.sh: Adjust to match new (i.e., old)
behavior.
---
NEWS (removed diff in nixpkgs)| 6 ++++++
src/ls.c | 22 ----------------------
tests/ls/removed-directory.sh | 10 ++--------
3 files changed, 8 insertions(+), 30 deletions(-)
diff --git a/src/ls.c b/src/ls.c
index 24b983287..4acf5f44d 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -49,10 +49,6 @@
# include <sys/ptem.h>
#endif
-#ifdef __linux__
-# include <sys/syscall.h>
-#endif
-
#include <stdio.h>
#include <assert.h>
#include <setjmp.h>
@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
struct dirent *next;
uintmax_t total_blocks = 0;
static bool first = true;
- bool found_any_entries = false;
errno = 0;
dirp = opendir (name);
@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
next = readdir (dirp);
if (next)
{
- found_any_entries = true;
if (! file_ignored (next->d_name))
{
enum filetype type = unknown;
@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
if (errno != EOVERFLOW)
break;
}
-#ifdef __linux__
- else if (! found_any_entries)
- {
- /* If readdir finds no directory entries at all, not even "." or
- "..", then double check that the directory exists. */
- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
- && errno != EINVAL)
- {
- /* We exclude EINVAL as that pertains to buffer handling,
- and we've passed NULL as the buffer for simplicity.
- ENOENT is returned if appropriate before buffer handling. */
- file_failure (command_line_arg, _("reading directory %s"), name);
- }
- break;
- }
-#endif
else
break;
diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh
index e8c835dab..fe8f929a1 100755
--- a/tests/ls/removed-directory.sh
+++ b/tests/ls/removed-directory.sh
@@ -26,20 +26,14 @@ case $host_triplet in
*) skip_ 'non linux kernel' ;;
esac
-LS_FAILURE=2
-
-cat <<\EOF >exp-err || framework_failure_
-ls: reading directory '.': No such file or directory
-EOF
-
cwd=$(pwd)
mkdir d || framework_failure_
cd d || framework_failure_
rmdir ../d || framework_failure_
-returns_ $LS_FAILURE ls >../out 2>../err || fail=1
+ls >../out 2>../err || fail=1
cd "$cwd" || framework_failure_
compare /dev/null out || fail=1
-compare exp-err err || fail=1
+compare /dev/null err || fail=1
Exit $fail
--
cgit v1.2.1

View File

@ -34,14 +34,14 @@ assert gssSupport -> libkrb5 != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "curl"; pname = "curl";
version = "7.72.0"; version = "7.73.0";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"https://curl.haxx.se/download/${pname}-${version}.tar.bz2" "https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
"https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2" "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
]; ];
sha256 = "1vq3ay87vayfrv67l7s7h79nm7gwdqhidki0brv5jahhch49g4dd"; sha256 = "sha256-zzT+Cwe4APHAGkmabosq9Uj20OBE3KSinYikvuFG0TE=";
}; };
outputs = [ "bin" "dev" "out" "man" "devdoc" ]; outputs = [ "bin" "dev" "out" "man" "devdoc" ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "unbound"; pname = "unbound";
version = "1.11.0"; version = "1.12.0";
src = fetchurl { src = fetchurl {
url = "https://unbound.net/downloads/${pname}-${version}.tar.gz"; url = "https://unbound.net/downloads/${pname}-${version}.tar.gz";
sha256 = "1xqywn2qdmjjq0csrqxh9p2rnizdrr1f99zdx87z7f3fyyc0fbwz"; sha256 = "0daqxzvknvcz7sgag3wcrxhp4a39ik93lsrfpwcl9whjg2lm74jv";
}; };
outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB

View File

@ -0,0 +1,36 @@
{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
buildGoModule rec {
pname = "hostctl";
version = "1.0.14";
src = fetchFromGitHub {
owner = "guumaster";
repo = pname;
rev = "v${version}";
sha256 = "02bjii97l4fy43v2rb93m9b0ad8y6mjvbvp4sz6a5n0w9dm1z1q9";
};
vendorSha256 = "1lqk3cda0frqp2vwkqa4b3xkdw814wgkbr7g9r2mwxn85fpdcq5c";
buildFlagsArray = [ "-ldflags=-s -w -X github.com/guumaster/hostctl/cmd/hostctl/actions.version=${version}" ];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installShellCompletion --cmd hostctl \
--bash <($out/bin/hostctl completion bash) \
--zsh <($out/bin/hostctl completion zsh)
'';
meta = with lib; {
description = "Your dev tool to manage /etc/hosts like a pro!";
longDescription = ''
This tool gives you more control over the use of your hosts file.
You can have multiple profiles and switch them on/off as you need.
'';
homepage = "https://guumaster.github.io/hostctl/";
license = licenses.mit;
maintainers = with maintainers; [ blaggacao ];
};
}

View File

@ -1214,6 +1214,8 @@ in
hime = callPackage ../tools/inputmethods/hime {}; hime = callPackage ../tools/inputmethods/hime {};
hostctl = callPackage ../tools/system/hostctl { };
hpe-ltfs = callPackage ../tools/backup/hpe-ltfs { }; hpe-ltfs = callPackage ../tools/backup/hpe-ltfs { };
http2tcp = callPackage ../tools/networking/http2tcp { }; http2tcp = callPackage ../tools/networking/http2tcp { };
@ -8454,9 +8456,7 @@ in
zssh = callPackage ../tools/networking/zssh { }; zssh = callPackage ../tools/networking/zssh { };
zstd = callPackage ../tools/compression/zstd { zstd = callPackage ../tools/compression/zstd {
cmake = buildPackages.cmake.override { cmake = buildPackages.cmakeMinimal;
libarchive = buildPackages.libarchive.override { zstd = null; };
};
}; };
zsync = callPackage ../tools/compression/zsync { }; zsync = callPackage ../tools/compression/zsync { };
@ -9788,15 +9788,15 @@ in
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security; inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_10; llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_10;
}; };
rust_1_46 = callPackage ../development/compilers/rust/1_46.nix { rust_1_47 = callPackage ../development/compilers/rust/1_47.nix {
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security; inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_10; llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_11;
}; };
rust = rust_1_46; rust = rust_1_47;
rustPackages_1_45 = rust_1_45.packages.stable; rustPackages_1_45 = rust_1_45.packages.stable;
rustPackages_1_46 = rust_1_46.packages.stable; rustPackages_1_47 = rust_1_47.packages.stable;
rustPackages = rustPackages_1_46; rustPackages = rustPackages_1_47;
inherit (rustPackages) cargo clippy rustc rustPlatform; inherit (rustPackages) cargo clippy rustc rustPlatform;
@ -10974,6 +10974,10 @@ in
cmake = libsForQt5.callPackage ../development/tools/build-managers/cmake { }; cmake = libsForQt5.callPackage ../development/tools/build-managers/cmake { };
cmakeMinimal = libsForQt5.callPackage ../development/tools/build-managers/cmake {
isBootstrap = true;
};
cmakeCurses = cmake.override { useNcurses = true; }; cmakeCurses = cmake.override { useNcurses = true; };
cmakeWithGui = cmakeCurses.override { withQt5 = true; }; cmakeWithGui = cmakeCurses.override { withQt5 = true; };
@ -18432,7 +18436,7 @@ in
# udev is the same package as systemd which depends on cryptsetup # udev is the same package as systemd which depends on cryptsetup
# which depends on lvm2 again. But we only need the libudev part # which depends on lvm2 again. But we only need the libudev part
# which does not depend on cryptsetup. # which does not depend on cryptsetup.
udev = udev.override { cryptsetup = null; }; udev = systemdMinimal;
}; };
lvm2_dmeventd = callPackage ../os-specific/linux/lvm2 { lvm2_dmeventd = callPackage ../os-specific/linux/lvm2 {
enableDmeventd = true; enableDmeventd = true;
@ -18785,8 +18789,23 @@ in
bzip2 = null; bzip2 = null;
}; };
}; };
systemdMinimal = systemd.override {
pname = "systemd-minimal";
withResolved = false;
withLogind = false;
withHostnamed = false;
withLocaled = false;
withTimedated = false;
withHwdb = false;
withEfi = false;
withImportd = false;
withCryptsetup = false;
cryptsetup = null;
lvm2 = null;
};
udev = systemd; # TODO: move to aliases.nix
udev = systemd; # TODO: change to systemdMinimal
systemd-wait = callPackage ../os-specific/linux/systemd-wait { }; systemd-wait = callPackage ../os-specific/linux/systemd-wait { };

View File

@ -1,4 +1,4 @@
{ buildPackages, pkgs, newScope }: { buildPackages, pkgs, newScope, stdenv }:
let let
# These are attributes in compiler and packages that don't support integer-simple. # These are attributes in compiler and packages that don't support integer-simple.
@ -6,6 +6,7 @@ let
"ghc822Binary" "ghc822Binary"
"ghc865Binary" "ghc865Binary"
"ghc8102Binary" "ghc8102Binary"
"ghc8102BinaryMinimal"
"ghcjs" "ghcjs"
"ghcjs86" "ghcjs86"
"integer-simple" "integer-simple"
@ -54,6 +55,11 @@ in {
llvmPackages = pkgs.llvmPackages_9; llvmPackages = pkgs.llvmPackages_9;
}; };
ghc8102BinaryMinimal = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
llvmPackages = pkgs.llvmPackages_9;
minimal = true;
};
ghc865 = callPackage ../development/compilers/ghc/8.6.5.nix { ghc865 = callPackage ../development/compilers/ghc/8.6.5.nix {
bootPkgs = packages.ghc822Binary; bootPkgs = packages.ghc822Binary;
inherit (buildPackages.python3Packages) sphinx; inherit (buildPackages.python3Packages) sphinx;
@ -73,7 +79,11 @@ in {
llvmPackages = pkgs.llvmPackages_7; llvmPackages = pkgs.llvmPackages_7;
}; };
ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix { ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
bootPkgs = packages.ghc865Binary; # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
bootPkgs = if stdenv.isAarch64 then
packages.ghc8102BinaryMinimal
else
packages.ghc865Binary;
inherit (buildPackages.python3Packages) sphinx; inherit (buildPackages.python3Packages) sphinx;
buildLlvmPackages = buildPackages.llvmPackages_7; buildLlvmPackages = buildPackages.llvmPackages_7;
llvmPackages = pkgs.llvmPackages_7; llvmPackages = pkgs.llvmPackages_7;
@ -85,7 +95,11 @@ in {
llvmPackages = pkgs.llvmPackages_9; llvmPackages = pkgs.llvmPackages_9;
}; };
ghc8102 = callPackage ../development/compilers/ghc/8.10.2.nix { ghc8102 = callPackage ../development/compilers/ghc/8.10.2.nix {
bootPkgs = packages.ghc865Binary; # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
bootPkgs = if stdenv.isAarch64 then
packages.ghc8102BinaryMinimal
else
packages.ghc865Binary;
inherit (buildPackages.python3Packages) sphinx; inherit (buildPackages.python3Packages) sphinx;
buildLlvmPackages = buildPackages.llvmPackages_9; buildLlvmPackages = buildPackages.llvmPackages_9;
llvmPackages = pkgs.llvmPackages_9; llvmPackages = pkgs.llvmPackages_9;
@ -156,6 +170,12 @@ in {
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { }; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
packageSetConfig = bootstrapPackageSet; packageSetConfig = bootstrapPackageSet;
}; };
ghc8102BinaryMinimal = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc8102BinaryMinimal;
ghc = bh.compiler.ghc8102BinaryMinimal;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
packageSetConfig = bootstrapPackageSet;
};
ghc865 = callPackage ../development/haskell-modules { ghc865 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc865; buildHaskellPackages = bh.packages.ghc865;
ghc = bh.compiler.ghc865; ghc = bh.compiler.ghc865;

View File

@ -4848,7 +4848,7 @@ in {
pybullet = callPackage ../development/python-modules/pybullet { }; pybullet = callPackage ../development/python-modules/pybullet { };
pycairo = callPackage ../development/python-modules/pycairo { inherit (pkgs) meson pkgconfig; }; pycairo = callPackage ../development/python-modules/pycairo { inherit (pkgs) meson pkg-config; };
pycallgraph = callPackage ../development/python-modules/pycallgraph { }; pycallgraph = callPackage ../development/python-modules/pycallgraph { };