Merge remote-tracking branch 'upstream/staging' into wrap-gdb

This commit is contained in:
Tmplt 2019-11-17 23:33:37 +01:00
commit 95692734b0
238 changed files with 2429 additions and 2009 deletions

View file

@ -131,6 +131,13 @@
<link linkend="opt-networking.interfaces">networking.interfaces.&lt;name&gt;.…</link> options. <link linkend="opt-networking.interfaces">networking.interfaces.&lt;name&gt;.…</link> options.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The stdenv now runs all bash with <literal>set -u</literal>, to catch the use of undefined variables.
Before, it itself used <literal>set -u</literal> but was careful to unset it so other packages' code ran as before.
Now, all bash code is held to the same high standard, and the rather complex stateful manipulation of the options can be discarded.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View file

@ -63,6 +63,7 @@ let
"systemd-logind.service" "systemd-logind.service"
"autovt@.service" "autovt@.service"
"systemd-user-sessions.service" "systemd-user-sessions.service"
"dbus-org.freedesktop.import1.service"
"dbus-org.freedesktop.machine1.service" "dbus-org.freedesktop.machine1.service"
"user@.service" "user@.service"
"user-runtime-dir@.service" "user-runtime-dir@.service"
@ -145,6 +146,7 @@ let
"user.slice" "user.slice"
"machine.slice" "machine.slice"
"machines.target" "machines.target"
"systemd-importd.service"
"systemd-machined.service" "systemd-machined.service"
"systemd-nspawn@.service" "systemd-nspawn@.service"

View file

@ -263,6 +263,7 @@ in
systemd-confinement = handleTest ./systemd-confinement.nix {}; systemd-confinement = handleTest ./systemd-confinement.nix {};
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {}; systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
systemd-networkd-wireguard = handleTest ./systemd-networkd-wireguard.nix {}; systemd-networkd-wireguard = handleTest ./systemd-networkd-wireguard.nix {};
systemd-nspawn = handleTest ./systemd-nspawn.nix {};
pdns-recursor = handleTest ./pdns-recursor.nix {}; pdns-recursor = handleTest ./pdns-recursor.nix {};
taskserver = handleTest ./taskserver.nix {}; taskserver = handleTest ./taskserver.nix {};
telegraf = handleTest ./telegraf.nix {}; telegraf = handleTest ./telegraf.nix {};

View file

@ -0,0 +1,58 @@
import ./make-test.nix ({pkgs, lib, ...}:
let
gpgKeyring = (pkgs.runCommand "gpg-keyring" { buildInputs = [ pkgs.gnupg ]; } ''
mkdir -p $out
export GNUPGHOME=$out
cat > foo <<EOF
%echo Generating a basic OpenPGP key
%no-protection
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: Joe Tester
Name-Email: joe@foo.bar
Expire-Date: 0
# Do a commit here, so that we can later print "done"
%commit
%echo done
EOF
gpg --batch --generate-key foo
rm $out/S.gpg-agent $out/S.gpg-agent.*
gpg --export joe@foo.bar -a > $out/pubkey.gpg
'');
nspawnImages = (pkgs.runCommand "localhost" { buildInputs = [ pkgs.coreutils pkgs.gnupg ]; } ''
mkdir -p $out
cd $out
dd if=/dev/urandom of=$out/testimage.raw bs=$((1024*1024+7)) count=5
sha256sum testimage.raw > SHA256SUMS
export GNUPGHOME="$(mktemp -d)"
cp -R ${gpgKeyring}/* $GNUPGHOME
gpg --batch --sign --detach-sign --output SHA256SUMS.gpg SHA256SUMS
'');
in {
name = "opensmtpd";
nodes = {
server = { pkgs, ... }: {
networking.firewall.allowedTCPPorts = [ 80 ];
services.nginx = {
enable = true;
virtualHosts."server".root = nspawnImages;
};
};
client = { pkgs, ... }: {
environment.etc."systemd/import-pubring.gpg".source = "${gpgKeyring}/pubkey.gpg";
};
};
testScript = ''
startAll;
$server->waitForUnit("nginx.service");
$client->waitForUnit("network-online.target");
$client->succeed("machinectl pull-raw --verify=signature http://server/testimage.raw");
$client->succeed("cmp /var/lib/machines/testimage.raw ${nspawnImages}/testimage.raw");
'';
})

View file

@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
]; ];
preConfigure = '' preConfigure = ''
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")" export CMAKE_PREFIX_PATH="''${CMAKE_PREFIX_PATH-}:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")"
''; '';
postInstall = ''rm $out/bin/i-score.sh''; postInstall = ''rm $out/bin/i-score.sh'';

View file

@ -3,11 +3,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mpg123-1.25.12"; name = "mpg123-1.25.13";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/mpg123/${name}.tar.bz2"; url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
sha256 = "1l9iwwgqzw6yg5zk9pqmlbfyq6d8dqysbmj0j3m8dyrxd34wgzhz"; sha256 = "02l915jq0ymndb082g6w89bpf66z04ifa1lr7ga3yycw6m46hc4h";
}; };
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib; buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, libao, libmad, libid3tag, zlib, alsaLib {stdenv, fetchurl, fetchpatch, libao, libmad, libid3tag, zlib, alsaLib
# Specify default libao output plugin to use (e.g. "alsa", "pulse" …). # Specify default libao output plugin to use (e.g. "alsa", "pulse" …).
# If null, it will use the libao system default. # If null, it will use the libao system default.
, defaultAudio ? null , defaultAudio ? null
@ -13,6 +13,14 @@ stdenv.mkDerivation rec {
sha256 = "0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5"; sha256 = "0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5";
}; };
patches = [
(fetchpatch {
name = "CVE-2018-7263.patch";
url = "https://sources.debian.org/data/main/m/mpg321/0.3.2-3/debian/patches/handle_illegal_bitrate_value.patch";
sha256 = "15simp5fjvm9b024ryfh441rkh2d5bcrizqkzlrh07n9sm7fkw6x";
})
];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
configureFlags = configureFlags =

View file

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }: { lib, fetchFromGitHub }:
rec { rec {
version = "8.1.2188"; version = "8.1.2237";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim"; owner = "vim";
repo = "vim"; repo = "vim";
rev = "v${version}"; rev = "v${version}";
sha256 = "0ixq96l991b84sj66v63ds61yr75gx5zz411213yn6bz3s2fvlcv"; sha256 = "1qwh3cw5zmjmnk07g0nc8nz8k5nlq9ilvvygnfdjy1fqg69q8p0h";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -1,32 +1,34 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig { stdenv, fetchFromGitHub, cmake, pkgconfig, mkDerivation
, qtbase, qtx11extras, qtsvg, makeWrapper , qtbase, qtx11extras, qtsvg, makeWrapper
, vulkan-loader, xorg , vulkan-loader, xorg, python3, python3Packages
, python3, bison, pcre, automake, autoconf , bison, pcre, automake, autoconf, addOpenGLRunpath
}: }:
let let
custom_swig = fetchFromGitHub { custom_swig = fetchFromGitHub {
owner = "baldurk"; owner = "baldurk";
repo = "swig"; repo = "swig";
rev = "renderdoc-modified-6"; rev = "renderdoc-modified-7";
sha256 = "00ykqlzx1k9iwqjlc54kfch7cnzsj53hxn7ql70dj3rxqzrnadc0"; sha256 = "15r2m5kcs0id64pa2fsw58qll3jyh71jzc04wy20pgsh2326zis6";
}; };
pythonPackages = python3Packages;
in in
stdenv.mkDerivation rec { mkDerivation rec {
version = "1.4"; version = "1.5";
pname = "renderdoc"; pname = "renderdoc";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "baldurk"; owner = "baldurk";
repo = "renderdoc"; repo = "renderdoc";
rev = "v${version}"; rev = "v${version}";
sha256 = "1iann73r4yzkwnm13h4zqipqrp5i5cnkv27yyap0axz6h3npw94r"; sha256 = "0a05f6qfq90wrf4fixchp9knx4nhqhwjxl02n03a7k56xzxxnlci";
}; };
buildInputs = [ buildInputs = [
qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader python3 qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader python3
]; ]; # ++ (with pythonPackages; [pyside2 pyside2-tools shiboken2]);
# TODO: figure out how to make cmake recognise pyside2
nativeBuildInputs = [ cmake makeWrapper pkgconfig bison pcre automake autoconf ]; nativeBuildInputs = [ cmake makeWrapper pkgconfig bison pcre automake autoconf addOpenGLRunpath ];
postUnpack = '' postUnpack = ''
cp -r ${custom_swig} swig cp -r ${custom_swig} swig
@ -40,19 +42,23 @@ stdenv.mkDerivation rec {
"-DBUILD_VERSION_DIST_VER=${version}" "-DBUILD_VERSION_DIST_VER=${version}"
"-DBUILD_VERSION_DIST_CONTACT=https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/graphics/renderdoc" "-DBUILD_VERSION_DIST_CONTACT=https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/graphics/renderdoc"
"-DBUILD_VERSION_STABLE=ON" "-DBUILD_VERSION_STABLE=ON"
# TODO: add once pyside2 is in nixpkgs
#"-DPYSIDE2_PACKAGE_DIR=${python36Packages.pyside2}"
]; ];
# Future work: define these in the above array via placeholders # TODO: define these in the above array via placeholders, once those are widely supported
preConfigure = '' preConfigure = ''
cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/" cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/"
cmakeFlags+=" -DRENDERDOC_SWIG_PACKAGE=$PWD/../swig" cmakeFlags+=" -DRENDERDOC_SWIG_PACKAGE=$PWD/../swig"
''; '';
dontWrapQtApps = true;
preFixup = '' preFixup = ''
wrapProgram $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib wrapQtApp $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib"
wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib"
'';
# The only documentation for this so far is in pkgs/build-support/add-opengl-runpath/setup-hook.sh
postFixup = ''
addOpenGLRunpath $out/lib/librenderdoc.so
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -1,14 +1,14 @@
{ stdenv, buildPythonApplication, fetchFromGitHub }: { stdenv, buildPythonApplication, fetchFromGitHub }:
buildPythonApplication { buildPythonApplication {
pname = "protocol"; pname = "protocol-unstable";
version = "20171226"; version = "2019-03-28";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "luismartingarcia"; owner = "luismartingarcia";
repo = "protocol"; repo = "protocol";
rev = "d450da7d8a58595d8ef82f1d199a80411029fc7d"; rev = "4e8326ea6c2d288be5464c3a7d9398df468c0ada";
sha256 = "1g31s2xx0bw8ak5ag1c6mv0p0b8bj5dp3lkk9mxaf2ndj1m1qdkw"; sha256 = "13l10jhf4vghanmhh3pn91b2jdciispxy0qadz4n08blp85qn9cm";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -34,11 +34,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "zotero"; pname = "zotero";
version = "5.0.73"; version = "5.0.77";
src = fetchurl { src = fetchurl {
url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
sha256 = "0m2i3l0gy22h6c7rk39cd17vyksyz5l5py2fn9pza8lcbypkwf3l"; sha256 = "1dgxzprpb8f5wpmvlvkxix0xxckfgjsi3wfcy9mb221a17cv0029";
}; };
buildInputs= [ wrapGAppsHook gsettings-desktop-schemas gtk3 gnome3.adwaita-icon-theme gnome3.dconf ]; buildInputs= [ wrapGAppsHook gsettings-desktop-schemas gtk3 gnome3.adwaita-icon-theme gnome3.dconf ];

View file

@ -93,13 +93,16 @@ stdenv.mkDerivation rec {
# Fix library paths # Fix library paths
cd $out/libexec/Mathematica/Executables cd $out/libexec/Mathematica/Executables
for path in mathematica MathKernel Mathematica WolframKernel wolfram math; do for path in mathematica MathKernel Mathematica WolframKernel wolfram math; do
sed -i -e 's#export LD_LIBRARY_PATH$#export LD_LIBRARY_PATH=${zlib}/lib:\''${LD_LIBRARY_PATH}#' $path sed -i -e "2iexport LD_LIBRARY_PATH=${zlib}/lib:\''${LD_LIBRARY_PATH}\n" $path
done done
# Fix xkeyboard config path for Qt # Fix xkeyboard config path for Qt
for path in mathematica Mathematica; do for path in mathematica Mathematica; do
sed -i -e "2iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"\n" $path sed -i -e "2iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"\n" $path
done done
# Remove some broken libraries
rm $out/libexec/Mathematica/SystemFiles/Libraries/Linux-x86-64/libz.so*
''; '';
preFixup = '' preFixup = ''

View file

@ -21,7 +21,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport; assert svnSupport -> perlSupport;
let let
version = "2.23.0"; version = "2.24.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 ];
@ -33,7 +33,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 = "0rv0y45gcd3h191isppn77acih695v4pipdj031jvs9rd1ds0kr3"; sha256 = "06rpakbwzck85ncfsgv4xmq3iwab9d4f5y6dqhl8nvb2fccxcwcz";
}; };
outputs = [ "out" ]; outputs = [ "out" ];
@ -93,7 +93,7 @@ stdenv.mkDerivation {
++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"]) ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
++ (if pythonSupport then ["PYTHON_PATH=${python}/bin/python"] else ["NO_PYTHON=1"]) ++ (if pythonSupport then ["PYTHON_PATH=${python}/bin/python"] else ["NO_PYTHON=1"])
++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="] ++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc/"]) ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"])
++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1"; ++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1";

View file

@ -8,7 +8,7 @@
, libXt, libXmu, libXext , libXt, libXmu, libXext
, libXinerama, libXrandr , libXinerama, libXrandr
, libXtst, libXfixes, systemd , libXtst, libXfixes, systemd
, alsaLib, libGLU_combined, glew, fontconfig, freetype, ftgl , alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
, libjpeg, jasper, libpng, libtiff , libjpeg, jasper, libpng, libtiff
, libmpeg2, libsamplerate, libmad , libmpeg2, libsamplerate, libmad
, libogg, libvorbis, flac, libxslt , libogg, libvorbis, flac, libxslt
@ -156,7 +156,7 @@ in stdenv.mkDerivation {
openssl gperf tinyxml2 taglib libssh swig jre openssl gperf tinyxml2 taglib libssh swig jre
libX11 xorgproto libXt libXmu libXext libX11 xorgproto libXt libXmu libXext
libXinerama libXrandr libXtst libXfixes libXinerama libXrandr libXtst libXfixes
alsaLib libGLU_combined glew fontconfig freetype ftgl alsaLib libGL libGLU glew fontconfig freetype ftgl
libjpeg jasper libpng libtiff libjpeg jasper libpng libtiff
libmpeg2 libsamplerate libmad libmpeg2 libsamplerate libmad
libogg libvorbis flac libxslt systemd libogg libvorbis flac libxslt systemd

View file

@ -111,17 +111,13 @@ stdenv.mkDerivation {
installPhase = installPhase =
'' ''
set -u
mkdir -p $out/bin $out/nix-support mkdir -p $out/bin $out/nix-support
wrap() { wrap() {
local dst="$1" local dst="$1"
local wrapper="$2" local wrapper="$2"
export prog="$3" export prog="$3"
set +u
substituteAll "$wrapper" "$out/bin/$dst" substituteAll "$wrapper" "$out/bin/$dst"
set -u
chmod +x "$out/bin/$dst" chmod +x "$out/bin/$dst"
} }
'' ''
@ -163,8 +159,6 @@ stdenv.mkDerivation {
[[ -e "$underlying" ]] || continue [[ -e "$underlying" ]] || continue
wrap ${targetPrefix}$variant ${./ld-wrapper.sh} $underlying wrap ${targetPrefix}$variant ${./ld-wrapper.sh} $underlying
done done
set +u
''; '';
emulation = let emulation = let
@ -205,11 +199,7 @@ stdenv.mkDerivation {
]; ];
postFixup = postFixup =
'' optionalString (libc != null) (''
set -u
''
+ optionalString (libc != null) (''
## ##
## General libc support ## General libc support
## ##
@ -307,7 +297,6 @@ stdenv.mkDerivation {
'' ''
+ '' + ''
set +u
substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh
substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh
substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash

View file

@ -2,8 +2,6 @@
# #
# See comments in cc-wrapper's setup hook. This works exactly the same way. # See comments in cc-wrapper's setup hook. This works exactly the same way.
set -u
# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a # Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a
# native compile. # native compile.
# #
@ -73,4 +71,3 @@ export NIX_HARDENING_ENABLE
# No local scope in sourced file # No local scope in sourced file
unset -v role_pre role_post cmd upper_case unset -v role_pre role_post cmd upper_case
set +u

View file

@ -29,9 +29,9 @@ attrsOrig @
configurePhase = '' configurePhase = ''
runHook preConfigure runHook preConfigure
[ -z "$dontPlacateNuget" ] && placate-nuget.sh [ -z "''${dontPlacateNuget-}" ] && placate-nuget.sh
[ -z "$dontPlacatePaket" ] && placate-paket.sh [ -z "''${dontPlacatePaket-}" ] && placate-paket.sh
[ -z "$dontPatchFSharpTargets" ] && patch-fsharp-targets.sh [ -z "''${dontPatchFSharpTargets-}" ] && patch-fsharp-targets.sh
runHook postConfigure runHook postConfigure
''; '';
@ -69,7 +69,7 @@ attrsOrig @
cp -rv ${arrayToShell outputFiles} "''${outputFilesArray[@]}" "$target" cp -rv ${arrayToShell outputFiles} "''${outputFilesArray[@]}" "$target"
if [ -z "$dontRemoveDuplicatedDlls" ] if [ -z "''${dontRemoveDuplicatedDlls-}" ]
then then
pushd "$out" pushd "$out"
remove-duplicated-dlls.sh remove-duplicated-dlls.sh

View file

@ -134,8 +134,6 @@ stdenv.mkDerivation {
installPhase = installPhase =
'' ''
set -u
mkdir -p $out/bin $out/nix-support mkdir -p $out/bin $out/nix-support
wrap() { wrap() {
@ -224,8 +222,6 @@ stdenv.mkDerivation {
postFixup = postFixup =
'' ''
set -u
# Backwards compatability for packages expecting this file, e.g. with # Backwards compatability for packages expecting this file, e.g. with
# `$NIX_CC/nix-support/dynamic-linker`. # `$NIX_CC/nix-support/dynamic-linker`.
# #

View file

@ -54,8 +54,6 @@
# For more details, read the individual files where the mechanisms used to # For more details, read the individual files where the mechanisms used to
# accomplish this will be individually documented. # accomplish this will be individually documented.
set -u
# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a # Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a
# native compile. # native compile.
# #
@ -120,4 +118,3 @@ export NIX_HARDENING_ENABLE
# No local scope in sourced file # No local scope in sourced file
unset -v role_pre role_post unset -v role_pre role_post
set +u

View file

@ -1,11 +1,11 @@
addEmacsVars () { addEmacsVars () {
if test -d $1/share/emacs/site-lisp; then if [[ -d "$1/share/emacs/site-lisp" ]]; then
export EMACSLOADPATH="$1/share/emacs/site-lisp:$EMACSLOADPATH" export EMACSLOADPATH="$1/share/emacs/site-lisp${EMACSLOADPATH:+:}${EMACSLOADPATH-}"
fi fi
} }
# If this is for a wrapper derivation, emacs and the dependencies are all # If this is for a wrapper derivation, emacs and the dependencies are all
# run-time dependencies. If this is for precompiling packages into bytecode, # run-time dependencies. If this is for precompiling packages into bytecode,
# emacs is a compile-time dependency of the package. # emacs is a compile-time dependency of the package.
addEnvHooks "$targetOffset" addEmacsVars addEnvHooks "$hostOffset" addEmacsVars
addEnvHooks "$targetOffset" addEmacsVars addEnvHooks "$targetOffset" addEmacsVars

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation (args // {
setupHook = if setupHook == null && hasSharedObjects setupHook = if setupHook == null && hasSharedObjects
then writeText "setupHook.sh" '' then writeText "setupHook.sh" ''
export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${name}/" export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${name}/"
'' ''
else setupHook; else setupHook;

View file

@ -7,7 +7,7 @@
# the moment that would produce too many spurious errors (e.g. debug # the moment that would produce too many spurious errors (e.g. debug
# info or assertion messages that refer to $TMPDIR). # info or assertion messages that refer to $TMPDIR).
fixupOutputHooks+=('if [ -z "$noAuditTmpdir" -a -e "$prefix" ]; then auditTmpdir "$prefix"; fi') fixupOutputHooks+=('if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi')
auditTmpdir() { auditTmpdir() {
local dir="$1" local dir="$1"

View file

@ -228,7 +228,7 @@ autoPatchelf() {
# behaviour as fixupOutputHooks because the setup hook for patchelf is run in # behaviour as fixupOutputHooks because the setup hook for patchelf is run in
# fixupOutput and the postFixup hook runs later. # fixupOutput and the postFixup hook runs later.
postFixupHooks+=(' postFixupHooks+=('
if [ -z "$dontAutoPatchelf" ]; then if [ -z "${dontAutoPatchelf-}" ]; then
autoPatchelf -- $(for output in $outputs; do autoPatchelf -- $(for output in $outputs; do
[ -e "${!output}" ] || continue [ -e "${!output}" ] || continue
echo "${!output}" echo "${!output}"

View file

@ -1,4 +1,4 @@
fixupOutputHooks+=('if [ -z "$dontGzipMan" ]; then compressManPages "$prefix"; fi') fixupOutputHooks+=('if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi')
compressManPages() { compressManPages() {
local dir="$1" local dir="$1"

View file

@ -11,12 +11,12 @@ addXMLCatalogs () {
done done
} }
if [ -z "$libxmlHookDone" ]; then if [ -z "${libxmlHookDone-}" ]; then
libxmlHookDone=1 libxmlHookDone=1
# Set up XML_CATALOG_FILES. An empty initial value prevents # Set up XML_CATALOG_FILES. An empty initial value prevents
# xmllint and xsltproc from looking in /etc/xml/catalog. # xmllint and xsltproc from looking in /etc/xml/catalog.
export XML_CATALOG_FILES export XML_CATALOG_FILES=''
if [ -z "$XML_CATALOG_FILES" ]; then XML_CATALOG_FILES=" "; fi if [ -z "$XML_CATALOG_FILES" ]; then XML_CATALOG_FILES=" "; fi
addEnvHooks "$hostOffset" addXMLCatalogs addEnvHooks "$hostOffset" addXMLCatalogs
fi fi

View file

@ -8,7 +8,7 @@
fixupOutputHooks+=(_moveLib64) fixupOutputHooks+=(_moveLib64)
_moveLib64() { _moveLib64() {
if [ "$dontMoveLib64" = 1 ]; then return; fi if [ "${dontMoveLib64-}" = 1 ]; then return; fi
if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then return; fi if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then return; fi
echo "moving $prefix/lib64/* to $prefix/lib" echo "moving $prefix/lib64/* to $prefix/lib"
mkdir -p $prefix/lib mkdir -p $prefix/lib

View file

@ -5,7 +5,7 @@
fixupOutputHooks+=(_moveSbin) fixupOutputHooks+=(_moveSbin)
_moveSbin() { _moveSbin() {
if [ "$dontMoveSbin" = 1 ]; then return; fi if [ "${dontMoveSbin-}" = 1 ]; then return; fi
if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then return; fi if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then return; fi
echo "moving $prefix/sbin/* to $prefix/bin" echo "moving $prefix/sbin/* to $prefix/bin"
mkdir -p $prefix/bin mkdir -p $prefix/bin

View file

@ -9,8 +9,8 @@ _assignFirst() {
local varName="$1" local varName="$1"
local REMOVE=REMOVE # slightly hacky - we allow REMOVE (i.e. not a variable name) local REMOVE=REMOVE # slightly hacky - we allow REMOVE (i.e. not a variable name)
shift shift
while [ $# -ge 1 ]; do while (( $# )); do
if [ -n "${!1}" ]; then eval "${varName}"="$1"; return; fi if [ -n "${!1-}" ]; then eval "${varName}"="$1"; return; fi
shift shift
done done
echo "Error: _assignFirst found no valid variant!" echo "Error: _assignFirst found no valid variant!"
@ -19,7 +19,7 @@ _assignFirst() {
# Same as _assignFirst, but only if "$1" = "" # Same as _assignFirst, but only if "$1" = ""
_overrideFirst() { _overrideFirst() {
if [ -z "${!1}" ]; then if [ -z "${!1-}" ]; then
_assignFirst "$@" _assignFirst "$@"
fi fi
} }

View file

@ -105,7 +105,7 @@ patchShebangs() {
} }
patchShebangsAuto () { patchShebangsAuto () {
if [ -z "$dontPatchShebangs" -a -e "$prefix" ]; then if [ -z "${dontPatchShebangs-}" -a -e "$prefix" ]; then
# Dev output will end up being run on the build platform. An # Dev output will end up being run on the build platform. An
# example case of this is sdl2-config. Otherwise, we can just # example case of this is sdl2-config. Otherwise, we can just

View file

@ -8,7 +8,7 @@
fixupOutputHooks+=(_pruneLibtoolFiles) fixupOutputHooks+=(_pruneLibtoolFiles)
_pruneLibtoolFiles() { _pruneLibtoolFiles() {
if [ "$dontPruneLibtoolFiles" ] || [ ! -e "$prefix" ]; then if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then
return return
fi fi

View file

@ -10,7 +10,7 @@ _doStrip() {
local -ra stripCmds=(STRIP TARGET_STRIP) local -ra stripCmds=(STRIP TARGET_STRIP)
# Optimization # Optimization
if [[ "$STRIP" == "$TARGET_STRIP" ]]; then if [[ "${STRIP-}" == "${TARGET_STRIP-}" ]]; then
dontStripTarget+=1 dontStripTarget+=1
fi fi
@ -20,7 +20,7 @@ _doStrip() {
local -n stripCmd="${stripCmds[$i]}" local -n stripCmd="${stripCmds[$i]}"
# `dontStrip` disables them all # `dontStrip` disables them all
if [[ "$dontStrip" || "$flag" ]] || ! type -f "$stripCmd" 2>/dev/null if [[ "${dontStrip-}" || "${flag-}" ]] || ! type -f "${stripCmd-}" 2>/dev/null
then continue; fi then continue; fi
stripDebugList=${stripDebugList:-lib lib32 lib64 libexec bin sbin} stripDebugList=${stripDebugList:-lib lib32 lib64 libexec bin sbin}

View file

@ -1,7 +1,7 @@
preConfigurePhases+=" updateAutotoolsGnuConfigScriptsPhase" preConfigurePhases+=" updateAutotoolsGnuConfigScriptsPhase"
updateAutotoolsGnuConfigScriptsPhase() { updateAutotoolsGnuConfigScriptsPhase() {
if [ -n "$dontUpdateAutotoolsGnuConfigScripts" ]; then return; fi if [ -n "${dontUpdateAutotoolsGnuConfigScripts-}" ]; then return; fi
for script in config.sub config.guess; do for script in config.sub config.guess; do
for f in $(find . -type f -name "$script"); do for f in $(find . -type f -name "$script"); do

View file

@ -15,7 +15,7 @@ wrapGApp() {
wrapProgram "$program" "${gappsWrapperArgs[@]}" "$@" wrapProgram "$program" "${gappsWrapperArgs[@]}" "$@"
} }
# Note: $gappsWrapperArgs still gets defined even if $dontWrapGApps is set. # Note: $gappsWrapperArgs still gets defined even if ${dontWrapGApps-} is set.
wrapGAppsHook() { wrapGAppsHook() {
# guard against running multiple times (e.g. due to propagation) # guard against running multiple times (e.g. due to propagation)
[ -z "$wrapGAppsHookHasRun" ] || return 0 [ -z "$wrapGAppsHookHasRun" ] || return 0

View file

@ -37,9 +37,7 @@ lib.makeScope pkgs.newScope (self: with self; {
gnome_python_desktop = callPackage ./bindings/gnome-python-desktop { }; gnome_python_desktop = callPackage ./bindings/gnome-python-desktop { };
gnome_vfs = callPackage ./platform/gnome-vfs { gnome_vfs = callPackage ./platform/gnome-vfs { };
openssl = pkgs.openssl_1_0_2;
};
libgnome = callPackage ./platform/libgnome { }; libgnome = callPackage ./platform/libgnome { };

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, libxml2, bzip2, openssl, dbus-glib { stdenv, fetchurl, fetchpatch, pkgconfig, libxml2, bzip2, openssl, dbus-glib
, glib, gamin, cdparanoia, intltool, GConf, gnome_mime_data, avahi, acl }: , glib, gamin, cdparanoia, intltool, GConf, gnome_mime_data, avahi, acl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -20,6 +20,18 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ GConf glib ]; propagatedBuildInputs = [ GConf glib ];
# struct SSL is opaque in openssl-1.1; and the SSL_free() man page
# says that one should not free members of it manually (in both
# the openssl-1.0 and openssl-1.1 man pages).
# https://bugs.gentoo.org/592540
patches = [ (fetchpatch {
name = "gnome-vfs-2.24.4-openssl-1.1.patch";
url = "https://bugs.gentoo.org/attachment.cgi?id=535944";
sha256 = "1q4icapvmwmd5rjah7rr0bqazzk5cg36znmjlpra20n9y27nz040";
extraPrefix = "";
})
];
postPatch = "find . -name Makefile.in | xargs sed 's/-DG_DISABLE_DEPRECATED//g' -i "; postPatch = "find . -name Makefile.in | xargs sed 's/-DG_DISABLE_DEPRECATED//g' -i ";
doCheck = false; # needs dbus daemon doCheck = false; # needs dbus daemon

View file

@ -56,6 +56,8 @@ stdenv.mkDerivation rec {
}) })
# See patch commit message # See patch commit message
./0001-Revert-ClutterActor-Preserve-valid-paint-volumes-til.patch ./0001-Revert-ClutterActor-Preserve-valid-paint-volumes-til.patch
# Fix build with libglvnd provided headers
./libglvnd-328.patch
]; ];
configureFlags = [ configureFlags = [

View file

@ -66,6 +66,11 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch; src = ./fix-paths.patch;
inherit zenity; inherit zenity;
}) })
# Fix build with libglvnd provided headers
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/mutter/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90.patch";
sha256 = "0imy2j8af9477jliwdq4jc40yw1cifsjjf196gnmwxr9rkj0hbrd";
})
]; ];
postPatch = '' postPatch = ''

View file

@ -0,0 +1,63 @@
diff --git a/cogl/configure.ac b/cogl/configure.ac
index 3be282f..d338cd1 100644
--- a/cogl/configure.ac
+++ b/cogl/configure.ac
@@ -490,6 +490,11 @@ AS_IF([test "x$enable_gles1" = "xyes"],
#include <EGL/eglext.h>"],
[],
[$COGL_EGL_INCLUDES])
+ AC_CHECK_HEADERS([EGL/eglmesaext.h],
+ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDE
+#include <EGL/eglmesaext.h>"],
+ [],
+ [$COGL_EGL_INCLUDES])
# Check for a GLES 1.x Common Profile library with/without EGL.
#
@@ -759,7 +764,9 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
)
COGL_EGL_INCLUDES="#include <EGL/egl.h>
-#include <EGL/eglext.h>"
+#include <EGL/eglext.h>
+#include <EGL/eglmesaext.h>
+"
AC_SUBST([COGL_EGL_INCLUDES])
])
diff --git a/src/backends/meta-egl-ext.h b/src/backends/meta-egl-ext.h
index 8705e7d..db0b74f 100644
--- a/src/backends/meta-egl-ext.h
+++ b/src/backends/meta-egl-ext.h
@@ -29,6 +29,7 @@
#include <EGL/egl.h>
#include <EGL/eglext.h>
+#include <EGL/eglmesaext.h>
/*
* This is a little different to the tests shipped with EGL implementations,
diff --git a/src/backends/meta-egl.c b/src/backends/meta-egl.c
index 755ec49..bd253c9 100644
--- a/src/backends/meta-egl.c
+++ b/src/backends/meta-egl.c
@@ -31,6 +31,7 @@
#include <EGL/egl.h>
#include <EGL/eglext.h>
+#include <EGL/eglmesaext.h>
#include <gio/gio.h>
#include <glib.h>
#include <glib-object.h>
diff --git a/src/backends/meta-egl.h b/src/backends/meta-egl.h
index 060c7cd..2fef264 100644
--- a/src/backends/meta-egl.h
+++ b/src/backends/meta-egl.h
@@ -27,6 +27,7 @@
#include <EGL/egl.h>
#include <EGL/eglext.h>
+#include <EGL/eglmesaext.h>
#include <glib-object.h>
#define META_EGL_ERROR meta_egl_error_quark ()

View file

@ -37,7 +37,7 @@ let cpuName = stdenv.hostPlatform.parsed.cpu.name;
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -54,7 +54,7 @@ let result = stdenv.mkDerivation rec {
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> "$out/nix-support/setup-hook" cat <<EOF >> "$out/nix-support/setup-hook"
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -270,7 +270,7 @@ in rec {
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
mkdir -p $out/nix-support mkdir -p $out/nix-support
cat <<EOF > $out/nix-support/setup-hook cat <<EOF > $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';
postFixup = openjdk.postFixup or null; postFixup = openjdk.postFixup or null;

View file

@ -72,7 +72,7 @@ let
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
mkdir -p $out/nix-support mkdir -p $out/nix-support
cat <<EOF > $out/nix-support/setup-hook cat <<EOF > $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -1,4 +1,5 @@
{ lib, stdenv, fetch, cmake, python, libcxxabi, fixDarwinDylibNames, version }: { lib, stdenv, fetch, cmake, python, libcxxabi, fixDarwinDylibNames, version
, enableShared ? ! stdenv.hostPlatform.isMusl }:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "libc++"; pname = "libc++";
@ -31,7 +32,8 @@ stdenv.mkDerivation {
"-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
"-DLIBCXX_LIBCPPABI_VERSION=2" "-DLIBCXX_LIBCPPABI_VERSION=2"
"-DLIBCXX_CXX_ABI=libcxxabi" "-DLIBCXX_CXX_ABI=libcxxabi"
] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"
++ stdenv.lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF" ;
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -1,4 +1,6 @@
{ stdenv, cmake, fetch, libcxx, llvm, version }: { stdenv, cmake, fetch, libcxx, llvm, version
# on musl the shared objects don't build
, enableShared ? ! stdenv.hostPlatform.isMusl }:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "libc++abi"; pname = "libc++abi";
@ -11,13 +13,15 @@ stdenv.mkDerivation {
postUnpack = '' postUnpack = ''
unpackFile ${libcxx.src} unpackFile ${libcxx.src}
unpackFile ${llvm.src} unpackFile ${llvm.src}
export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)" cmakeFlagsArray=($cmakeFlagsArray -DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*) )
'' + stdenv.lib.optionalString stdenv.isDarwin '' '' + stdenv.lib.optionalString stdenv.isDarwin ''
export TRIPLE=x86_64-apple-darwin export TRIPLE=x86_64-apple-darwin
'' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch} patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
''; '';
cmakeFlags = stdenv.lib.optional (!enableShared) "-DLIBCXXABI_ENABLE_SHARED=OFF";
installPhase = if stdenv.isDarwin installPhase = if stdenv.isDarwin
then '' then ''
for file in lib/*.dylib; do for file in lib/*.dylib; do
@ -34,10 +38,10 @@ stdenv.mkDerivation {
else '' else ''
install -d -m 755 $out/include $out/lib install -d -m 755 $out/include $out/lib
install -m 644 lib/libc++abi.a $out/lib install -m 644 lib/libc++abi.a $out/lib
install -m 644 lib/libc++abi.so.1.0 $out/lib ${stdenv.lib.optionalString enableShared "install -m 644 lib/libc++abi.so.1.0 $out/lib"}
install -m 644 ../include/cxxabi.h $out/include install -m 644 ../include/cxxabi.h $out/include
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so ${stdenv.lib.optionalString enableShared "ln -s libc++abi.so.1.0 $out/lib/libc++abi.so"}
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1 ${stdenv.lib.optionalString enableShared "ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1"}
''; '';
meta = { meta = {

View file

@ -106,7 +106,7 @@ let
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
mkdir -p $out/nix-support mkdir -p $out/nix-support
cat <<EOF > $out/nix-support/setup-hook cat <<EOF > $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/openjdk; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
EOF EOF
''; '';

View file

@ -231,7 +231,7 @@ let
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
mkdir -p $out/nix-support mkdir -p $out/nix-support
cat <<EOF > $out/nix-support/setup-hook cat <<EOF > $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/openjdk; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
EOF EOF
''; '';

View file

@ -44,7 +44,7 @@ let
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -44,7 +44,7 @@ let
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -44,7 +44,7 @@ let
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -114,7 +114,7 @@ let
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
mkdir -p $out/nix-support mkdir -p $out/nix-support
cat <<EOF > $out/nix-support/setup-hook cat <<EOF > $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/openjdk; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
EOF EOF
''; '';

View file

@ -156,7 +156,7 @@ let result = stdenv.mkDerivation rec {
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -27,8 +27,8 @@ stdenv.mkDerivation rec {
postInstall = '' postInstall = ''
wrapProgram $out/bin/rtop \ wrapProgram $out/bin/rtop \
--prefix PATH : "${utop}/bin" \ --prefix PATH : "${utop}/bin" \
--set CAML_LD_LIBRARY_PATH ${ocaml_lwt}/lib/ocaml/${ocaml.version}/site-lib:$CAML_LD_LIBRARY_PATH \ --prefix CAML_LD_LIBRARY_PATH : "${ocaml_lwt}/lib/ocaml/${ocaml.version}/site-lib" \
--set OCAMLPATH $out/lib/ocaml/${ocaml.version}/site-lib:$OCAMLPATH --prefix OCAMLPATH : "$out/lib/ocaml/${ocaml.version}/site-lib"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -1,6 +1,6 @@
{ stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget { stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
, fetchurl, file, python2 , fetchurl, file, python2
, llvm_7, darwin, git, cmake, rustPlatform , llvm_9, darwin, git, cmake, rustPlatform
, pkgconfig, openssl , pkgconfig, openssl
, which, libffi , which, libffi
, withBundledLLVM ? false , withBundledLLVM ? false
@ -12,12 +12,12 @@ let
inherit (stdenv.lib) optional optionalString; inherit (stdenv.lib) optional optionalString;
inherit (darwin.apple_sdk.frameworks) Security; inherit (darwin.apple_sdk.frameworks) Security;
llvmSharedForBuild = pkgsBuildBuild.llvm_7.override { enableSharedLibraries = true; }; llvmSharedForBuild = pkgsBuildBuild.llvm_9.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvm_7.override { enableSharedLibraries = true; }; llvmSharedForHost = pkgsBuildHost.llvm_9.override { enableSharedLibraries = true; };
llvmSharedForTarget = pkgsBuildTarget.llvm_7.override { enableSharedLibraries = true; }; llvmSharedForTarget = pkgsBuildTarget.llvm_9.override { enableSharedLibraries = true; };
# For use at runtime # For use at runtime
llvmShared = llvm_7.override { enableSharedLibraries = true; }; llvmShared = llvm_9.override { enableSharedLibraries = true; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "rustc"; pname = "rustc";
inherit version; inherit version;

View file

@ -1,4 +1,4 @@
# Fix 'failed to open: /homeless-shelter/.cargo/.package-cache' in rust 1.36. # Fix 'failed to open: /homeless-shelter/.cargo/.package-cache' in rust 1.36.
if [[ -z $IN_NIX_SHELL && -z $CARGO_HOME ]]; then if [[ -z ${IN_NIX_SHELL-} && -z ${CARGO_HOME-} ]]; then
export CARGO_HOME=$TMPDIR export CARGO_HOME=$TMPDIR
fi fi

View file

@ -58,7 +58,7 @@ in stdenv.mkDerivation {
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -55,7 +55,7 @@ in stdenv.mkDerivation {
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
''; '';

View file

@ -20,7 +20,7 @@ addToLuaSearchPathWithCustomDelimiter() {
if [[ ! -d "$topDir" ]]; then return; fi if [[ ! -d "$topDir" ]]; then return; fi
# export only if we haven't already got this dir in the search path # export only if we haven't already got this dir in the search path
if [[ ${!varName} == *"$absPattern"* ]]; then return; fi if [[ ${!varName-} == *"$absPattern"* ]]; then return; fi
export "${varName}=${!varName:+${!varName};}${absPattern}" export "${varName}=${!varName:+${!varName};}${absPattern}"
} }

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull { stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull
, libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, libGLU_combined, fltk , libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, libGL, libGLU, fltk
, fftw, fftwSinglePrec, zlib, curl, qrupdate, openblas, arpack, libwebp , fftw, fftwSinglePrec, zlib, curl, qrupdate, openblas, arpack, libwebp
, qt ? null, qscintilla ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null , qt ? null, qscintilla ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
, suitesparse ? null, gnuplot ? null, jdk ? null, python ? null, overridePlatforms ? null , suitesparse ? null, gnuplot ? null, jdk ? null, python ? null, overridePlatforms ? null
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
++ (stdenv.lib.optional (jdk != null) jdk) ++ (stdenv.lib.optional (jdk != null) jdk)
++ (stdenv.lib.optional (gnuplot != null) gnuplot) ++ (stdenv.lib.optional (gnuplot != null) gnuplot)
++ (stdenv.lib.optional (python != null) python) ++ (stdenv.lib.optional (python != null) python)
++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGLU_combined libX11 ]) ++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ])
; ;
# makeinfo is required by Octave at runtime to display help # makeinfo is required by Octave at runtime to display help

View file

@ -1,5 +1,5 @@
{ config, lib, stdenv, fetchurl, pkgs, buildPackages, callPackage { config, lib, stdenv, fetchurl, pkgs, buildPackages, callPackage
, enableThreading ? stdenv ? glibc, makeWrapper , enableThreading ? stdenv ? glibc, coreutils, makeWrapper
}: }:
with lib; with lib;
@ -35,7 +35,7 @@ let
# TODO: Add a "dev" output containing the header files. # TODO: Add a "dev" output containing the header files.
outputs = [ "out" "man" "devdoc" ] ++ outputs = [ "out" "man" "devdoc" ] ++
stdenv.lib.optional crossCompiling "dev"; optional crossCompiling "dev";
setOutputFlags = false; setOutputFlags = false;
disallowedReferences = [ stdenv.cc ]; disallowedReferences = [ stdenv.cc ];
@ -57,12 +57,20 @@ let
++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ] ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
++ optional crossCompiling ./MakeMaker-cross.patch; ++ optional crossCompiling ./MakeMaker-cross.patch;
postPatch = '' # This is not done for native builds because pwd may need to come from
pwd="$(type -P pwd)" # bootstrap tools when building bootstrap perl.
postPatch = (if crossCompiling then ''
substituteInPlace dist/PathTools/Cwd.pm \ substituteInPlace dist/PathTools/Cwd.pm \
--replace "/bin/pwd" "$pwd" --replace "/bin/pwd" '${coreutils}/bin/pwd'
'' + stdenv.lib.optionalString crossCompiling ''
substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E" substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E"
'' else ''
substituteInPlace dist/PathTools/Cwd.pm \
--replace "/bin/pwd" "$(type -P pwd)"
'') +
# Perl's build system uses the src variable, and its value may end up in
# the output in some cases (when cross-compiling)
''
unset src
''; '';
# Build a thread-safe Perl with a dynamic libperls.o. We need the # Build a thread-safe Perl with a dynamic libperls.o. We need the
@ -85,7 +93,7 @@ let
++ optional stdenv.isSunOS "-Dcc=gcc" ++ optional stdenv.isSunOS "-Dcc=gcc"
++ optional enableThreading "-Dusethreads"; ++ optional enableThreading "-Dusethreads";
configureScript = stdenv.lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
dontAddPrefix = !crossCompiling; dontAddPrefix = !crossCompiling;
@ -140,7 +148,7 @@ let
}" /no-such-path \ }" /no-such-path \
--replace "${stdenv.cc}" /no-such-path \ --replace "${stdenv.cc}" /no-such-path \
--replace "$man" /no-such-path --replace "$man" /no-such-path
'' + stdenv.lib.optionalString crossCompiling '' + optionalString crossCompiling
'' ''
mkdir -p $dev/lib/perl5/cross_perl/${version} mkdir -p $dev/lib/perl5/cross_perl/${version}
for dir in cnf/{stub,cpan}; do for dir in cnf/{stub,cpan}; do
@ -172,7 +180,7 @@ let
platforms = platforms.all; platforms = platforms.all;
priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl` priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
}; };
} // stdenv.lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
crossVersion = "980998f7d11baf97284426ca91f84681d49a08f5"; # Jul 20, 2019 crossVersion = "980998f7d11baf97284426ca91f84681d49a08f5"; # Jul 20, 2019
perl-cross-src = fetchurl { perl-cross-src = fetchurl {

View file

@ -9,7 +9,7 @@ flitBuildPhase () {
echo "Finished executing flitBuildPhase" echo "Finished executing flitBuildPhase"
} }
if [ -z "$dontUseFlitBuild" ] && [ -z "$buildPhase" ]; then if [ -z "${dontUseFlitBuild-}" ] && [ -z "${buildPhase-}" ]; then
echo "Using flitBuildPhase" echo "Using flitBuildPhase"
buildPhase=flitBuildPhase buildPhase=flitBuildPhase
fi fi

View file

@ -31,7 +31,7 @@ pipShellHook() {
echo "Finished executing pipShellHook" echo "Finished executing pipShellHook"
} }
if [ -z "$dontUsePipBuild" ] && [ -z "$buildPhase" ]; then if [ -z "${dontUsePipBuild-}" ] && [ -z "${buildPhase-}" ]; then
echo "Using pipBuildPhase" echo "Using pipBuildPhase"
buildPhase=pipBuildPhase buildPhase=pipBuildPhase
fi fi

View file

@ -18,7 +18,7 @@ pipInstallPhase() {
echo "Finished executing pipInstallPhase" echo "Finished executing pipInstallPhase"
} }
if [ -z "$dontUsePipInstall" ] && [ -z "$installPhase" ]; then if [ -z "${dontUsePipInstall-}" ] && [ -z "${installPhase-}" ]; then
echo "Using pipInstallPhase" echo "Using pipInstallPhase"
installPhase=pipInstallPhase installPhase=pipInstallPhase
fi fi

View file

@ -43,7 +43,7 @@ function pytestCheckPhase() {
echo "Finished executing pytestCheckPhase" echo "Finished executing pytestCheckPhase"
} }
if [ -z "$dontUsePytestCheck" ] && [ -z "$installCheckPhase" ]; then if [ -z "${dontUsePytestCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
echo "Using pytestCheckPhase" echo "Using pytestCheckPhase"
preDistPhases+=" pytestCheckPhase" preDistPhases+=" pytestCheckPhase"
fi fi

View file

@ -5,6 +5,6 @@ pythonCatchConflictsPhase() {
@pythonInterpreter@ @catchConflicts@ @pythonInterpreter@ @catchConflicts@
} }
if [ -z "$dontUsePythonCatchConflicts" ]; then if [ -z "${dontUsePythonCatchConflicts-}" ]; then
preDistPhases+=" pythonCatchConflictsPhase" preDistPhases+=" pythonCatchConflictsPhase"
fi fi

View file

@ -10,7 +10,7 @@ pythonImportsCheckPhase () {
fi fi
} }
if [ -z "$dontUsePythonImportsCheck" ]; then if [ -z "${dontUsePythonImportsCheck-}" ]; then
echo "Using pythonImportsCheckPhase" echo "Using pythonImportsCheckPhase"
preDistPhases+=" pythonImportsCheckPhase" preDistPhases+=" pythonImportsCheckPhase"
fi fi

View file

@ -12,6 +12,6 @@ pythonRemoveBinBytecodePhase () {
fi fi
} }
if [ -z "$dontUsePythonRemoveBinBytecode" ]; then if [ -z "${dontUsePythonRemoveBinBytecode-}" ]; then
preDistPhases+=" pythonRemoveBinBytecodePhase" preDistPhases+=" pythonRemoveBinBytecodePhase"
fi fi

View file

@ -36,12 +36,12 @@ setuptoolsShellHook() {
echo "Finished executing setuptoolsShellHook" echo "Finished executing setuptoolsShellHook"
} }
if [ -z "$dontUseSetuptoolsBuild" ] && [ -z "$buildPhase" ]; then if [ -z "${dontUseSetuptoolsBuild-}" ] && [ -z "${buildPhase-}" ]; then
echo "Using setuptoolsBuildPhase" echo "Using setuptoolsBuildPhase"
buildPhase=setuptoolsBuildPhase buildPhase=setuptoolsBuildPhase
fi fi
if [ -z "$dontUseSetuptoolsShellHook" ] && [ -z "$shellHook" ]; then if [ -z "${dontUseSetuptoolsShellHook-}" ] && [ -z "${shellHook-}" ]; then
echo "Using setuptoolsShellHook" echo "Using setuptoolsShellHook"
shellHook=setuptoolsShellHook shellHook=setuptoolsShellHook
fi fi

View file

@ -12,7 +12,7 @@ setuptoolsCheckPhase() {
echo "Finished executing setuptoolsCheckPhase" echo "Finished executing setuptoolsCheckPhase"
} }
if [ -z "$dontUseSetuptoolsCheck" ] && [ -z "$installCheckPhase" ]; then if [ -z "${dontUseSetuptoolsCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
echo "Using setuptoolsCheckPhase" echo "Using setuptoolsCheckPhase"
preDistPhases+=" setuptoolsCheckPhase" preDistPhases+=" setuptoolsCheckPhase"
fi fi

View file

@ -12,7 +12,7 @@ wheelUnpackPhase(){
echo "Finished executing wheelUnpackPhase" echo "Finished executing wheelUnpackPhase"
} }
if [ -z "$dontUseWheelUnpack" ] && [ -z "$unpackPhase" ]; then if [ -z "${dontUseWheelUnpack-}" ] && [ -z "${unpackPhase-}" ]; then
echo "Using wheelUnpackPhase" echo "Using wheelUnpackPhase"
unpackPhase=wheelUnpackPhase unpackPhase=wheelUnpackPhase
fi fi

View file

@ -1,7 +1,9 @@
addSDLPath () { addSDLPath () {
if [ -e "$1/include/SDL" ]; then if [ -e "$1/include/SDL" ]; then
export SDL_PATH="$SDL_PATH $1/include/SDL" export SDL_PATH="${SDL_PATH-}${SDL_PATH:+ }$1/include/SDL"
export SDL_LIB_PATH="$SDL_LIB_PATH -L$1/lib" fi
if [ -e "$1/lib" ]; then
export SDL_LIB_PATH="${SDL_LIB_PATH-}${SDL_LIB_PATH:+ }$1/lib"
fi fi
} }

View file

@ -75,9 +75,21 @@ stdenv.mkDerivation rec {
++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib" ++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib"
++ optional stdenv.isDarwin "--disable-sdltest"; ++ optional stdenv.isDarwin "--disable-sdltest";
# We remove libtool .la files when static libs are requested,
# because they make the builds of downstream libs like `SDL_tff`
# fail with `cannot find -lXext, `-lXcursor` etc. linker errors
# because the `.la` files are not pruned if static libs exist
# (see https://github.com/NixOS/nixpkgs/commit/fd97db43bcb05e37f6bb77f363f1e1e239d9de53)
# and they also don't carry the necessary `-L` paths of their
# X11 dependencies.
# For static linking, it is better to rely on `pkg-config` `.pc`
# files.
postInstall = '' postInstall = ''
moveToOutput lib/libSDL2main.a "$dev" if [ "$dontDisableStatic" -eq "1" ]; then
rm $out/lib/*.a rm $out/lib/*.la
else
rm $out/lib/*.a
fi
moveToOutput bin/sdl2-config "$dev" moveToOutput bin/sdl2-config "$dev"
''; '';

View file

@ -1,6 +1,6 @@
addSDL2Path () { addSDL2Path () {
if [ -e "$1/include/SDL2" ]; then if [ -e "$1/include/SDL2" ]; then
export SDL2_PATH="$SDL2_PATH $1/include/SDL2" export SDL2_PATH="${SDL2_PATH-}${SDL2_PATH:+ }$1/include/SDL2"
fi fi
} }

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, libGLU_combined, libX11, libXext, libXfixes { stdenv, fetchurl, pkgconfig, libGLU, libGL, libX11, libXext, libXfixes
, libXdamage, libXcomposite, libXi, libxcb, cogl, pango, atk, json-glib , libXdamage, libXcomposite, libXi, libxcb, cogl, pango, atk, json-glib
, gobject-introspection, gtk3, gnome3, libinput, libgudev, libxkbcommon , gobject-introspection, gtk3, gnome3, libinput, libgudev, libxkbcommon
}: }:
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
buildInputs = [ gtk3 ]; buildInputs = [ gtk3 ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = propagatedBuildInputs =
[ libX11 libGLU_combined libXext libXfixes libXdamage libXcomposite libXi cogl pango [ libX11 libGL libGLU libXext libXfixes libXdamage libXcomposite libXi cogl pango
atk json-glib gobject-introspection libxcb libinput libgudev libxkbcommon atk json-glib gobject-introspection libxcb libinput libgudev libxkbcommon
]; ];

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, libGL, glib, gdk-pixbuf, xorg, libintl { stdenv, fetchurl, fetchpatch, pkgconfig, libGL, glib, gdk-pixbuf, xorg, libintl
, pangoSupport ? true, pango, cairo, gobject-introspection, wayland, gnome3 , pangoSupport ? true, pango, cairo, gobject-introspection, wayland, gnome3
, mesa , mesa, automake, autoconf
, gstreamerSupport ? true, gst_all_1 }: , gstreamerSupport ? true, gst_all_1 }:
let let
@ -29,11 +29,17 @@ in stdenv.mkDerivation rec {
url = https://bug787443.bugzilla-attachments.gnome.org/attachment.cgi?id=361056; url = https://bug787443.bugzilla-attachments.gnome.org/attachment.cgi?id=361056;
sha256 = "09fyrdci4727fg6qm5aaapsbv71sf4wgfaqz8jqlyy61dibgg490"; sha256 = "09fyrdci4727fg6qm5aaapsbv71sf4wgfaqz8jqlyy61dibgg490";
}) })
# Fix build with libglvnd headers (these headers used to be provided by mesa)
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/cogl/commit/9c4764224aded552fb855b1c2b85b26d2b894adf.patch";
sha256 = "1v9drpzgcd5pq2shhdcw5px7mdiggk6ga13qjbklq8xpd92ac0i1";
})
]; ];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkgconfig libintl ]; nativeBuildInputs = [ pkgconfig libintl automake autoconf ];
configureFlags = [ configureFlags = [
"--enable-introspection" "--enable-introspection"
@ -41,7 +47,7 @@ in stdenv.mkDerivation rec {
"--enable-wayland-egl-platform" "--enable-wayland-egl-platform"
"--enable-wayland-egl-server" "--enable-wayland-egl-server"
] ++ stdenv.lib.optional gstreamerSupport "--enable-cogl-gst" ] ++ stdenv.lib.optional gstreamerSupport "--enable-cogl-gst"
++ stdenv.lib.optionals (!stdenv.isDarwin) [ "--enable-gles1" "--enable-gles2" ]; ++ stdenv.lib.optionals (!stdenv.isDarwin) [ "--enable-gles1" "--enable-gles2" ];
propagatedBuildInputs = with xorg; [ propagatedBuildInputs = with xorg; [
glib gdk-pixbuf gobject-introspection wayland mesa glib gdk-pixbuf gobject-introspection wayland mesa

View file

@ -1,4 +1,4 @@
{ fetchFromBitbucket, stdenv, boost, cmake, libGLU_combined }: { fetchFromBitbucket, stdenv, boost, cmake, libGL, libGLU }:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "coin"; pname = "coin";
@ -16,7 +16,7 @@ stdenv.mkDerivation {
''; '';
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ boost libGLU_combined ]; buildInputs = [ boost libGL libGLU ];
meta = { meta = {
homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home"; homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home";

View file

@ -3,6 +3,8 @@
, libssh, libtheora, libva, libdrm, libvorbis, libvpx, lzma, libpulseaudio, soxr , libssh, libtheora, libva, libdrm, libvorbis, libvpx, lzma, libpulseaudio, soxr
, x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d , x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d
, openglSupport ? false, libGLU_combined ? null , openglSupport ? false, libGLU_combined ? null
, libmfxSupport ? false, intel-media-sdk ? null
, libaomSupport ? false, libaom ? null
# Build options # Build options
, runtimeCpuDetectBuild ? true # Detect CPU capabilities at runtime , runtimeCpuDetectBuild ? true # Detect CPU capabilities at runtime
, multithreadBuild ? true # Multithreading via pthreads/win32 threads , multithreadBuild ? true # Multithreading via pthreads/win32 threads
@ -62,6 +64,8 @@ let
in in
assert openglSupport -> libGLU_combined != null; assert openglSupport -> libGLU_combined != null;
assert libmfxSupport -> intel-media-sdk != null;
assert libaomSupport -> libaom != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -135,6 +139,8 @@ stdenv.mkDerivation rec {
(ifMinVer "0.6" (enableFeature vpxSupport "libvpx")) (ifMinVer "0.6" (enableFeature vpxSupport "libvpx"))
(ifMinVer "2.4" "--enable-lzma") (ifMinVer "2.4" "--enable-lzma")
(ifMinVer "2.2" (enableFeature openglSupport "opengl")) (ifMinVer "2.2" (enableFeature openglSupport "opengl"))
(ifMinVer "4.2" (enableFeature libmfxSupport "libmfx"))
(ifMinVer "4.2" (enableFeature libaomSupport "libaom"))
(disDarwinOrArmFix (ifMinVer "0.9" "--enable-libpulse") "0.9" "--disable-libpulse") (disDarwinOrArmFix (ifMinVer "0.9" "--enable-libpulse") "0.9" "--disable-libpulse")
(ifMinVer "2.5" (if sdlSupport && reqMin "3.2" then "--enable-sdl2" else if sdlSupport then "--enable-sdl" else null)) # autodetected before 2.5, SDL1 support removed in 3.2 for SDL2 (ifMinVer "2.5" (if sdlSupport && reqMin "3.2" then "--enable-sdl2" else if sdlSupport then "--enable-sdl" else null)) # autodetected before 2.5, SDL1 support removed in 3.2 for SDL2
(ifMinVer "1.2" "--enable-libsoxr") (ifMinVer "1.2" "--enable-libsoxr")
@ -163,6 +169,8 @@ stdenv.mkDerivation rec {
bzip2 fontconfig freetype gnutls libiconv lame libass libogg libssh libtheora bzip2 fontconfig freetype gnutls libiconv lame libass libogg libssh libtheora
libvdpau libvorbis lzma soxr x264 x265 xvidcore zlib libopus speex nv-codec-headers libvdpau libvorbis lzma soxr x264 x265 xvidcore zlib libopus speex nv-codec-headers
] ++ optional openglSupport libGLU_combined ] ++ optional openglSupport libGLU_combined
++ optional libmfxSupport intel-media-sdk
++ optional vpxSupport libaom
++ optional vpxSupport libvpx ++ optional vpxSupport libvpx
++ optionals (!isDarwin && !isAarch32) [ libpulseaudio ] # Need to be fixed on Darwin and ARM ++ optionals (!isDarwin && !isAarch32) [ libpulseaudio ] # Need to be fixed on Darwin and ARM
++ optional ((isLinux || isFreeBSD) && !isAarch32) libva ++ optional ((isLinux || isFreeBSD) && !isAarch32) libva

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, xlibsWrapper, xorgproto, libXi { stdenv, fetchurl, pkgconfig, xlibsWrapper, xorgproto, libXi
, freeglut, libGLU_combined, libjpeg, zlib, libXft, libpng , freeglut, libGL, libGLU, libjpeg, zlib, libXft, libpng
, libtiff, freetype, Cocoa, AGL, GLUT , libtiff, freetype, Cocoa, AGL, GLUT
}: }:
@ -19,7 +19,7 @@ stdenv.mkDerivation {
patches = stdenv.lib.optionals stdenv.isDarwin [ ./nsosv.patch ]; patches = stdenv.lib.optionals stdenv.isDarwin [ ./nsosv.patch ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libGLU_combined libjpeg zlib libpng libXft ] buildInputs = [ libGLU libGL libjpeg zlib libpng libXft ]
++ stdenv.lib.optional stdenv.isDarwin [ AGL Cocoa GLUT ]; ++ stdenv.lib.optional stdenv.isDarwin [ AGL Cocoa GLUT ];
propagatedBuildInputs = [ xorgproto ] propagatedBuildInputs = [ xorgproto ]

View file

@ -20,6 +20,14 @@ stdenv.mkDerivation rec {
sha256 = "0pckda4fcn0aw32lpycwdp25r2m7vca8zspq815ppi9gkwgg5das"; sha256 = "0pckda4fcn0aw32lpycwdp25r2m7vca8zspq815ppi9gkwgg5das";
}; };
patches = [
(fetchpatch {
name = "CVE-2019-18397.patch";
url = "https://github.com/fribidi/fribidi/commit/034c6e9a1d296286305f4cfd1e0072b879f52568.patch";
sha256 = "102xrbf1l5gvavkxd6csx8pj3rlgcw10c0y4h4d40yhn84b1p0y8";
})
];
postPatch = '' postPatch = ''
patchShebangs test patchShebangs test
''; '';

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, freetype, libGLU_combined, OpenGL }: { stdenv, fetchurl, freetype, libGL, libGLU, OpenGL }:
let let
name = "ftgl-2.1.3-rc5"; name = "ftgl-2.1.3-rc5";
@ -15,7 +15,7 @@ stdenv.mkDerivation {
++ (if stdenv.isDarwin then ++ (if stdenv.isDarwin then
[ OpenGL ] [ OpenGL ]
else else
[ libGLU_combined ]) [ libGL libGLU ])
; ;
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -1,49 +1,84 @@
{ stdenv, fetchurl, pkgconfig, gettext, gnupg, p11-kit, glib { stdenv
, libgcrypt, libtasn1, dbus-glib, gtk3, pango, gdk-pixbuf, atk , fetchurl
, gobject-introspection, makeWrapper, libxslt, vala, gnome3 , pkgconfig
, python3 }: , gettext
, gnupg
, p11-kit
, glib
, libgcrypt
, libtasn1
, gtk3
, pango
, gobject-introspection
, makeWrapper
, libxslt
, vala
, gnome3
, python3
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gcr"; pname = "gcr";
version = "3.33.4"; version = "3.34.0";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1hf06p4qfyywnb6334ysnr6aqxik3srb37glclvr4yhb3wzrjqnm"; sha256 = "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9";
};
passthru = {
updateScript = gnome3.updateScript { packageName = pname; };
}; };
postPatch = '' postPatch = ''
patchShebangs . patchShebangs build/ gcr/fixtures/
''; '';
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkgconfig gettext gobject-introspection libxslt makeWrapper vala ]; nativeBuildInputs = [
pkgconfig
gettext
gobject-introspection
libxslt
makeWrapper
vala
];
buildInputs = [ gnupg libgcrypt libtasn1 dbus-glib pango gdk-pixbuf atk ]; buildInputs = [
gnupg
libgcrypt
libtasn1
pango
];
propagatedBuildInputs = [ glib gtk3 p11-kit ]; propagatedBuildInputs = [
glib
gtk3
p11-kit
];
checkInputs = [
python3
];
checkInputs = [ python3 ];
doCheck = false; # fails 21 out of 603 tests, needs dbus daemon doCheck = false; # fails 21 out of 603 tests, needs dbus daemon
#enableParallelBuilding = true; issues on hydra enableParallelBuilding = true;
preFixup = '' preFixup = ''
wrapProgram "$out/bin/gcr-viewer" \ wrapProgram "$out/bin/gcr-viewer" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
''; '';
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; { meta = with stdenv.lib; {
platforms = platforms.linux; platforms = platforms.linux;
maintainers = gnome3.maintainers; maintainers = gnome3.maintainers;
description = "GNOME crypto services (daemon and tools)"; description = "GNOME crypto services (daemon and tools)";
homepage = https://gitlab.gnome.org/GNOME/gcr; homepage = "https://gitlab.gnome.org/GNOME/gcr";
license = licenses.gpl2; license = licenses.lgpl2Plus;
longDescription = '' longDescription = ''
GCR is a library for displaying certificates, and crypto UI, accessing GCR is a library for displaying certificates, and crypto UI, accessing

View file

@ -2,9 +2,9 @@ findGdkPixbufLoaders() {
# choose the longest loaders.cache # choose the longest loaders.cache
local loadersCache="$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" local loadersCache="$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
if [ -f "$loadersCache" ]; then if [[ -f "$loadersCache" ]]; then
if [ -f "$GDK_PIXBUF_MODULE_FILE" ]; then if [[ -f "${GDK_PIXBUF_MODULE_FILE-}" ]]; then
if [ $(cat "$loadersCache"|wc -l) -gt $(cat "$GDK_PIXBUF_MODULE_FILE"|wc -l) ]; then if [[ "$(cat "$loadersCache" | wc -l)" > "$(cat "$GDK_PIXBUF_MODULE_FILE" | wc -l)" ]]; then
export GDK_PIXBUF_MODULE_FILE="$loadersCache" export GDK_PIXBUF_MODULE_FILE="$loadersCache"
fi fi
else else

View file

@ -1,323 +0,0 @@
This patch was generated by re-running Bison 3.0.4 on pro-gram-gen.y after
applying CVE-2018-18751.patch. This patch removes the need to add bison to
nativeBuildInputs.
--- a/gettext-tools/src/po-gram-gen.c
+++ b/gettext-tools/src/po-gram-gen.c
@@ -568,9 +568,9 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint16 yyrline[] =
{
0, 169, 169, 171, 172, 173, 174, 179, 187, 195,
- 216, 240, 249, 258, 269, 278, 292, 301, 315, 321,
- 332, 338, 350, 361, 372, 376, 391, 414, 422, 434,
- 442
+ 216, 237, 246, 255, 266, 275, 289, 298, 312, 318,
+ 329, 335, 347, 358, 369, 373, 388, 411, 419, 431,
+ 439
};
#endif
@@ -1419,14 +1419,11 @@ yyreduce:
check_obsolete ((yyvsp[-3].message_intro), (yyvsp[-1].string));
check_obsolete ((yyvsp[-3].message_intro), (yyvsp[0].rhs));
if (!(yyvsp[-3].message_intro).obsolete || pass_obsolete_entries)
- {
- do_callback_message ((yyvsp[-3].message_intro).ctxt, string2, &(yyvsp[-3].message_intro).pos, (yyvsp[-1].string).string,
- (yyvsp[0].rhs).rhs.msgstr, (yyvsp[0].rhs).rhs.msgstr_len, &(yyvsp[0].rhs).pos,
- (yyvsp[-3].message_intro).prev_ctxt,
- (yyvsp[-3].message_intro).prev_id, (yyvsp[-3].message_intro).prev_id_plural,
- (yyvsp[-3].message_intro).obsolete);
- free ((yyvsp[-1].string).string);
- }
+ do_callback_message ((yyvsp[-3].message_intro).ctxt, string2, &(yyvsp[-3].message_intro).pos, (yyvsp[-1].string).string,
+ (yyvsp[0].rhs).rhs.msgstr, (yyvsp[0].rhs).rhs.msgstr_len, &(yyvsp[0].rhs).pos,
+ (yyvsp[-3].message_intro).prev_ctxt,
+ (yyvsp[-3].message_intro).prev_id, (yyvsp[-3].message_intro).prev_id_plural,
+ (yyvsp[-3].message_intro).obsolete);
else
{
free_message_intro ((yyvsp[-3].message_intro));
@@ -1435,11 +1432,11 @@ yyreduce:
free ((yyvsp[0].rhs).rhs.msgstr);
}
}
-#line 1439 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1436 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 11:
-#line 241 "po-gram-gen.y" /* yacc.c:1646 */
+#line 238 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[-1].stringlist));
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[0].string));
@@ -1448,11 +1445,11 @@ yyreduce:
string_list_destroy (&(yyvsp[-1].stringlist).stringlist);
free ((yyvsp[0].string).string);
}
-#line 1452 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1449 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 12:
-#line 250 "po-gram-gen.y" /* yacc.c:1646 */
+#line 247 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[-1].stringlist));
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[0].rhs));
@@ -1461,22 +1458,22 @@ yyreduce:
string_list_destroy (&(yyvsp[-1].stringlist).stringlist);
free ((yyvsp[0].rhs).rhs.msgstr);
}
-#line 1465 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1462 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 13:
-#line 259 "po-gram-gen.y" /* yacc.c:1646 */
+#line 256 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].message_intro), (yyvsp[0].stringlist));
po_gram_error_at_line (&(yyvsp[-1].message_intro).pos, _("missing 'msgstr' section"));
free_message_intro ((yyvsp[-1].message_intro));
string_list_destroy (&(yyvsp[0].stringlist).stringlist);
}
-#line 1476 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1473 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 14:
-#line 270 "po-gram-gen.y" /* yacc.c:1646 */
+#line 267 "po-gram-gen.y" /* yacc.c:1646 */
{
(yyval.message_intro).prev_ctxt = NULL;
(yyval.message_intro).prev_id = NULL;
@@ -1485,11 +1482,11 @@ yyreduce:
(yyval.message_intro).pos = (yyvsp[0].string).pos;
(yyval.message_intro).obsolete = (yyvsp[0].string).obsolete;
}
-#line 1489 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1486 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 15:
-#line 279 "po-gram-gen.y" /* yacc.c:1646 */
+#line 276 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].prev), (yyvsp[0].string));
(yyval.message_intro).prev_ctxt = (yyvsp[-1].prev).ctxt;
@@ -1499,11 +1496,11 @@ yyreduce:
(yyval.message_intro).pos = (yyvsp[0].string).pos;
(yyval.message_intro).obsolete = (yyvsp[0].string).obsolete;
}
-#line 1503 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1500 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 16:
-#line 293 "po-gram-gen.y" /* yacc.c:1646 */
+#line 290 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].string), (yyvsp[0].stringlist));
(yyval.prev).ctxt = (yyvsp[-1].string).string;
@@ -1512,11 +1509,11 @@ yyreduce:
(yyval.prev).pos = (yyvsp[-1].string).pos;
(yyval.prev).obsolete = (yyvsp[-1].string).obsolete;
}
-#line 1516 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1513 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 17:
-#line 302 "po-gram-gen.y" /* yacc.c:1646 */
+#line 299 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-2].string), (yyvsp[-1].stringlist));
check_obsolete ((yyvsp[-2].string), (yyvsp[0].string));
@@ -1526,21 +1523,21 @@ yyreduce:
(yyval.prev).pos = (yyvsp[-2].string).pos;
(yyval.prev).obsolete = (yyvsp[-2].string).obsolete;
}
-#line 1530 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1527 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 18:
-#line 316 "po-gram-gen.y" /* yacc.c:1646 */
+#line 313 "po-gram-gen.y" /* yacc.c:1646 */
{
(yyval.string).string = NULL;
(yyval.string).pos = (yyvsp[0].pos).pos;
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
}
-#line 1540 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1537 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 19:
-#line 322 "po-gram-gen.y" /* yacc.c:1646 */
+#line 319 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-2].pos), (yyvsp[-1].stringlist));
check_obsolete ((yyvsp[-2].pos), (yyvsp[0].pos));
@@ -1548,21 +1545,21 @@ yyreduce:
(yyval.string).pos = (yyvsp[0].pos).pos;
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
}
-#line 1552 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1549 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 20:
-#line 333 "po-gram-gen.y" /* yacc.c:1646 */
+#line 330 "po-gram-gen.y" /* yacc.c:1646 */
{
(yyval.string).string = NULL;
(yyval.string).pos = (yyvsp[0].pos).pos;
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
}
-#line 1562 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1559 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 21:
-#line 339 "po-gram-gen.y" /* yacc.c:1646 */
+#line 336 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-2].pos), (yyvsp[-1].stringlist));
check_obsolete ((yyvsp[-2].pos), (yyvsp[0].pos));
@@ -1570,11 +1567,11 @@ yyreduce:
(yyval.string).pos = (yyvsp[0].pos).pos;
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
}
-#line 1574 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1571 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 22:
-#line 351 "po-gram-gen.y" /* yacc.c:1646 */
+#line 348 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].pos), (yyvsp[0].stringlist));
plural_counter = 0;
@@ -1582,30 +1579,30 @@ yyreduce:
(yyval.string).pos = (yyvsp[-1].pos).pos;
(yyval.string).obsolete = (yyvsp[-1].pos).obsolete;
}
-#line 1586 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1583 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 23:
-#line 362 "po-gram-gen.y" /* yacc.c:1646 */
+#line 359 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].pos), (yyvsp[0].stringlist));
(yyval.string).string = string_list_concat_destroy (&(yyvsp[0].stringlist).stringlist);
(yyval.string).pos = (yyvsp[-1].pos).pos;
(yyval.string).obsolete = (yyvsp[-1].pos).obsolete;
}
-#line 1597 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1594 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 24:
-#line 373 "po-gram-gen.y" /* yacc.c:1646 */
+#line 370 "po-gram-gen.y" /* yacc.c:1646 */
{
(yyval.rhs) = (yyvsp[0].rhs);
}
-#line 1605 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1602 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 25:
-#line 377 "po-gram-gen.y" /* yacc.c:1646 */
+#line 374 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].rhs), (yyvsp[0].rhs));
(yyval.rhs).rhs.msgstr = XNMALLOC ((yyvsp[-1].rhs).rhs.msgstr_len + (yyvsp[0].rhs).rhs.msgstr_len, char);
@@ -1617,11 +1614,11 @@ yyreduce:
(yyval.rhs).pos = (yyvsp[-1].rhs).pos;
(yyval.rhs).obsolete = (yyvsp[-1].rhs).obsolete;
}
-#line 1621 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1618 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 26:
-#line 392 "po-gram-gen.y" /* yacc.c:1646 */
+#line 389 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-4].pos), (yyvsp[-3].pos));
check_obsolete ((yyvsp[-4].pos), (yyvsp[-2].number));
@@ -1640,11 +1637,11 @@ yyreduce:
(yyval.rhs).pos = (yyvsp[-4].pos).pos;
(yyval.rhs).obsolete = (yyvsp[-4].pos).obsolete;
}
-#line 1644 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1641 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 27:
-#line 415 "po-gram-gen.y" /* yacc.c:1646 */
+#line 412 "po-gram-gen.y" /* yacc.c:1646 */
{
string_list_init (&(yyval.stringlist).stringlist);
string_list_append (&(yyval.stringlist).stringlist, (yyvsp[0].string).string);
@@ -1652,11 +1649,11 @@ yyreduce:
(yyval.stringlist).pos = (yyvsp[0].string).pos;
(yyval.stringlist).obsolete = (yyvsp[0].string).obsolete;
}
-#line 1656 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1653 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 28:
-#line 423 "po-gram-gen.y" /* yacc.c:1646 */
+#line 420 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].stringlist), (yyvsp[0].string));
(yyval.stringlist).stringlist = (yyvsp[-1].stringlist).stringlist;
@@ -1665,11 +1662,11 @@ yyreduce:
(yyval.stringlist).pos = (yyvsp[-1].stringlist).pos;
(yyval.stringlist).obsolete = (yyvsp[-1].stringlist).obsolete;
}
-#line 1669 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1666 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 29:
-#line 435 "po-gram-gen.y" /* yacc.c:1646 */
+#line 432 "po-gram-gen.y" /* yacc.c:1646 */
{
string_list_init (&(yyval.stringlist).stringlist);
string_list_append (&(yyval.stringlist).stringlist, (yyvsp[0].string).string);
@@ -1677,11 +1674,11 @@ yyreduce:
(yyval.stringlist).pos = (yyvsp[0].string).pos;
(yyval.stringlist).obsolete = (yyvsp[0].string).obsolete;
}
-#line 1681 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1678 "po-gram-gen.c" /* yacc.c:1646 */
break;
case 30:
-#line 443 "po-gram-gen.y" /* yacc.c:1646 */
+#line 440 "po-gram-gen.y" /* yacc.c:1646 */
{
check_obsolete ((yyvsp[-1].stringlist), (yyvsp[0].string));
(yyval.stringlist).stringlist = (yyvsp[-1].stringlist).stringlist;
@@ -1690,11 +1687,11 @@ yyreduce:
(yyval.stringlist).pos = (yyvsp[-1].stringlist).pos;
(yyval.stringlist).obsolete = (yyvsp[-1].stringlist).obsolete;
}
-#line 1694 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1691 "po-gram-gen.c" /* yacc.c:1646 */
break;
-#line 1698 "po-gram-gen.c" /* yacc.c:1646 */
+#line 1695 "po-gram-gen.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires

View file

@ -1,24 +1,16 @@
{ stdenv, lib, fetchurl, libiconv, xz, bison, automake115x, autoconf }: { stdenv, lib, fetchurl, libiconv, xz }:
let allowBisonDependency = !stdenv.isDarwin; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gettext"; pname = "gettext";
version = "0.19.8.1"; version = "0.20.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/gettext/${pname}-${version}.tar.gz"; url = "mirror://gnu/gettext/${pname}-${version}.tar.gz";
sha256 = "0hsw28f9q9xaggjlsdp2qmbp2rbd1mp0njzan2ld9kiqwkq2m57z"; sha256 = "0p3zwkk27wm2m2ccfqm57nj7vqkmfpn7ja1nf65zmhz8qqs5chb6";
}; };
patches = [ patches = [
./absolute-paths.diff ./absolute-paths.diff
(fetchurl { ./gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
name = "CVE-2018-18751.patch";
url = "https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=patch;h=dce3a16e5e9368245735e29bf498dcd5e3e474a4";
sha256 = "1lpjwwcjr1sb879faj0xyzw02kma0ivab6xwn3qciy13qy6fq5xn";
})
] ++ lib.optionals (!allowBisonDependency) [
# Only necessary for CVE-2018-18751.patch:
./CVE-2018-18751-bison.patch
]; ];
outputs = [ "out" "man" "doc" "info" ]; outputs = [ "out" "man" "doc" "info" ];
@ -54,14 +46,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
xz xz
xz.bin xz.bin
]
# Only necessary for CVE-2018-18751.patch (unless CVE-2018-18751-bison.patch
# is also applied):
++ lib.optional allowBisonDependency bison
++ [
# Only necessary for CVE-2018-18751.patch:
automake115x
autoconf
]; ];
# HACK, see #10874 (and 14664) # HACK, see #10874 (and 14664)
buildInputs = stdenv.lib.optional (!stdenv.isLinux && !stdenv.hostPlatform.isCygwin) libiconv; buildInputs = stdenv.lib.optional (!stdenv.isLinux && !stdenv.hostPlatform.isCygwin) libiconv;

View file

@ -10,7 +10,7 @@ addEnvHooks "$hostOffset" gettextDataDirsHook
# libintl must be listed in load flags on non-Glibc # libintl must be listed in load flags on non-Glibc
# it doesn't hurt to have it in Glibc either though # it doesn't hurt to have it in Glibc either though
if [ -n "@gettextNeedsLdflags@" -a -z "$dontAddExtraLibs" ]; then if [ -n "@gettextNeedsLdflags@" -a -z "${dontAddExtraLibs-}" ]; then
# See pkgs/build-support/setup-hooks/role.bash # See pkgs/build-support/setup-hooks/role.bash
getHostRole getHostRole
export NIX_${role_pre}LDFLAGS+=" -lintl" export NIX_${role_pre}LDFLAGS+=" -lintl"

View file

@ -0,0 +1,82 @@
From 2336451ed68d91ff4b5ae1acbc1eca30e47a86a9 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sun, 19 May 2019 13:10:06 +0200
Subject: [PATCH] msgmerge: Fix behaviour of --for-msgfmt on PO files with no
translations.
Reported by Don Lawrence <dlawrence@iecok.com>
in <https://lists.freedesktop.org/archives/p11-glue/2019-May/000700.html>
via Daiki Ueno
in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00124.html>.
* gettext-tools/src/msgmerge.c (main): Treat force_po like true if for_msgfmt
is true.
* gettext-tools/tests/msgmerge-26: Add test of PO file with no translations.
---
gettext-tools/src/msgmerge.c | 4 ++--
gettext-tools/tests/msgmerge-26 | 36 +++++++++++++++++++++++++++++++++---
2 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c
index cd762c0..92c9b7a 100644
--- a/gettext-tools/src/msgmerge.c
+++ b/gettext-tools/src/msgmerge.c
@@ -520,8 +520,8 @@ There is NO WARRANTY, to the extent permitted by law.\n\
else
{
/* Write the merged message list out. */
- msgdomain_list_print (result, output_file, output_syntax, force_po,
- false);
+ msgdomain_list_print (result, output_file, output_syntax,
+ for_msgfmt || force_po, false);
}
exit (EXIT_SUCCESS);
diff --git a/gettext-tools/tests/msgmerge-26 b/gettext-tools/tests/msgmerge-26
index cd3862e..b86f7a0 100755
--- a/gettext-tools/tests/msgmerge-26
+++ b/gettext-tools/tests/msgmerge-26
@@ -73,7 +73,37 @@ msgstr "Papaya"
EOF
: ${DIFF=diff}
-${DIFF} mm-test26.ok mm-test26.out
-result=$?
+${DIFF} mm-test26.ok mm-test26.out || Exit 1
-exit $result
+# Test with a PO file that has no translated messages.
+
+cat <<\EOF > mm-test26a.in1
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Hello world"
+msgstr "Hallo Welt"
+EOF
+
+cat <<\EOF > mm-test26a.in2
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+
+msgid "Hello, world!"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} --for-msgfmt -o mm-test26a.tmp mm-test26a.in1 mm-test26a.in2 \
+ || Exit 1
+LC_ALL=C tr -d '\r' < mm-test26a.tmp > mm-test26a.out || Exit 1
+
+cat <<\EOF > mm-test26a.ok
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test26a.ok mm-test26a.out || Exit 1
--
1.9.1

View file

@ -1,7 +1,7 @@
{stdenv, fetchurl, libGLU_combined, freeglut, libX11, libXt, libXmu, libXi, libXext}: {stdenv, fetchurl, freeglut, libX11, libXt, libXmu, libXi, libXext, libGL, libGLU}:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "gle-3.1.0"; name = "gle-3.1.0";
buildInputs = [libGLU_combined freeglut libX11 libXt libXmu libXi libXext]; buildInputs = [libGLU libGL freeglut libX11 libXt libXmu libXi libXext];
src = fetchurl { src = fetchurl {
urls = [ urls = [
"mirror://sourceforge/project/gle/gle/gle-3.1.0/gle-3.1.0.tar.gz" "mirror://sourceforge/project/gle/gle/gle-3.1.0/gle-3.1.0.tar.gz"

View file

@ -1,9 +1,11 @@
make_glib_find_gsettings_schemas() { make_glib_find_gsettings_schemas() {
# For packages that need gschemas of other packages (e.g. empathy) # For packages that need gschemas of other packages (e.g. empathy)
if [ -d "$1"/share/gsettings-schemas/*/glib-2.0/schemas ]; then for maybe_dir in "$1"/share/gsettings-schemas/*/glib-2.0; do
addToSearchPath GSETTINGS_SCHEMAS_PATH "$1/share/gsettings-schemas/"* if [[ -d "$maybe_dir/schemas" ]]; then
fi addToSearchPath GSETTINGS_SCHEMAS_PATH "$maybe_dir"
fi
done
} }
addEnvHooks "$hostOffset" make_glib_find_gsettings_schemas addEnvHooks "$hostOffset" make_glib_find_gsettings_schemas

View file

@ -1,4 +1,4 @@
{ stdenv, buildPackages, fetchurl, pciutils }: { stdenv, buildPackages, fetchurl, fetchpatch, pciutils }:
with stdenv.lib; with stdenv.lib;
@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "1ffnc4xbzfggs37ymrgfx76j56kk2644c081ivhr2bjkla9ag3gj"; sha256 = "1ffnc4xbzfggs37ymrgfx76j56kk2644c081ivhr2bjkla9ag3gj";
}; };
patches = [
# Fix build on armv6l
(fetchpatch {
url = "https://sourceforge.net/p/gnu-efi/patches/_discuss/thread/25bb273a18/9c4d/attachment/0001-Fix-ARCH-on-armv6-and-other-32-bit-ARM-platforms.patch";
sha256 = "0pj03h20g2bbz6fr753bj1scry6919h57l1h86z3b6q7hqfj0b4r";
})
];
buildInputs = [ pciutils ]; buildInputs = [ pciutils ];
hardeningDisable = [ "stackprotector" ]; hardeningDisable = [ "stackprotector" ];

View file

@ -1,16 +1,40 @@
{ stdenv, fetchurl, fetchpatch, meson, ninja, gettext { stdenv
, fetchurl
, meson
, ninja
, gettext
, config , config
, pkgconfig, python3, gst-plugins-base, orc , pkgconfig
, python3
, gst-plugins-base
, orc
, gobject-introspection , gobject-introspection
, enableZbar ? true , enableZbar ? true
, faacSupport ? false, faac ? null , faacSupport ? false
, faad2, libass, libkate, libmms, librdf, ladspaH , faac ? null
, libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom , faad2
, libbs2b, libmodplug, mpeg2dec , libass
, openjpeg, libopus, librsvg , libkate
, libmms
, librdf
, ladspaH
, libnice
, webrtc-audio-processing
, lilv
, lv2
, serd
, sord
, sratom
, libbs2b
, libmodplug
, mpeg2dec
, openjpeg
, libopus
, librsvg
, bluez , bluez
, chromaprint , chromaprint
, curl , curl
, darwin
, directfb , directfb
, fdk_aac , fdk_aac
, flite , flite
@ -27,7 +51,7 @@
, libusb1 , libusb1
, neon , neon
, openal , openal
, opencv3 , opencv4
, openexr , openexr
, openh264 , openh264
, pango , pango
@ -38,10 +62,20 @@
, srtp , srtp
, zbar , zbar
, wayland-protocols , wayland-protocols
, wildmidi, fluidsynth, libvdpau, wayland , wildmidi
, libwebp, xvidcore, gnutls, mjpegtools , fluidsynth
, libGLU_combined, libintl, libgme , libvdpau
, openssl, x265, libxml2 , wayland
, libwebp
, xvidcore
, gnutls
, mjpegtools
, libGLU_combined
, libintl
, libgme
, openssl
, x265
, libxml2
, srt , srt
}: }:
@ -49,113 +83,127 @@ assert faacSupport -> faac != null;
let let
inherit (stdenv.lib) optional optionals; inherit (stdenv.lib) optional optionals;
in in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "gst-plugins-bad"; pname = "gst-plugins-bad";
version = "1.16.0"; version = "1.16.1";
meta = with stdenv.lib; {
description = "Gstreamer Bad Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that aren't up to par compared to the
rest. They might be close to being good quality, but they're missing
something - be it a good code review, some documentation, a set of tests,
a real live maintainer, or some actual wide use.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
preConfigure = ''
patchShebangs .
'';
patches = [
./fix_pkgconfig_includedir.patch
# Remove when https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/312 is merged and available to us
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/99790eaad9083cce5ab2b1646489e1a1c0faad1e.patch";
sha256 = "11bqy4sl05qq5mj4bx5s09rq106s3j0vnpjl4np058im32j69lr3";
})
# Remove when https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/312 is merged and available to us
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/1872da81c48d3a719bd39955fd97deac7d037d74.patch";
sha256 = "11zwrr5ggflmvr0qfssj7dmhgd3ybiadmy79b4zh24022zgw3xpz";
})
];
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-bad/${pname}-${version}.tar.xz";
sha256 = "019b0yqjrcg6jmfd4cc336h1bz5p4wxl58yz1c4sdb96avirs4r2";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1dddqacxgp77f3nl153x5a6139wdphc9phds2fpqb2cv6faiqj2n";
};
patches = [
./fix_pkgconfig_includedir.patch
];
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig python3 gettext gobject-introspection meson
] ninja
++ optionals stdenv.isLinux [ pkgconfig
python3
gettext
gobject-introspection
] ++ optionals stdenv.isLinux [
wayland-protocols wayland-protocols
]; ];
buildInputs = [ buildInputs = [
gst-plugins-base orc gst-plugins-base
faad2 libass libkate libmms orc
libnice webrtc-audio-processing # webrtc faad2
libass
libkate
libmms
webrtc-audio-processing # webrtc
libbs2b libbs2b
ladspaH librdf # ladspa plug-in libmodplug
lilv lv2 serd sord sratom # lv2 plug-in mpeg2dec
libmodplug mpeg2dec openjpeg
openjpeg libopus librsvg libopus
bluez librsvg
chromaprint
curl.dev curl.dev
directfb
fdk_aac fdk_aac
flite
gsm gsm
libaom libaom
libdc1394 libdc1394
libde265 libde265
libdrm
libdvdnav libdvdnav
libdvdread libdvdread
libgudev
libofa
libsndfile libsndfile
libusb1 libusb1
mjpegtools
neon neon
openal openal
opencv3 opencv4
openexr openexr
openh264 openh264
rtmpdump rtmpdump
pango pango
sbc
soundtouch soundtouch
spandsp
srtp srtp
fluidsynth libvdpau fluidsynth
libwebp xvidcore gnutls libGLU_combined libvdpau
libgme openssl x265 libxml2 libwebp
xvidcore
gnutls
libGLU_combined
libgme
openssl
x265
libxml2
libintl libintl
srt srt
] ] ++ optionals enableZbar [
++ optional enableZbar zbar zbar
++ optional faacSupport faac ] ++ optionals faacSupport [
++ optional stdenv.isLinux wayland faac
] ++ optionals stdenv.isLinux [
bluez
wayland
] ++ optionals (!stdenv.isDarwin) [
# wildmidi requires apple's OpenAL # wildmidi requires apple's OpenAL
# TODO: package apple's OpenAL, fix wildmidi, include on Darwin # TODO: package apple's OpenAL, fix wildmidi, include on Darwin
++ optional (!stdenv.isDarwin) wildmidi wildmidi
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin # TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
++ optional (!stdenv.isDarwin) mjpegtools; mjpegtools
chromaprint
directfb
flite
libdrm
libgudev
libnice
libofa
librdf
sbc
spandsp
# ladspa plug-in
ladspaH
librdf # TODO: make build on Darwin
# lv2 plug-in
lilv
lv2
serd
sord
sratom
] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
# For unknown reasons the order is important, e.g. if
# VideoToolbox is last, we get:
# fatal error: 'VideoToolbox/VideoToolbox.h' file not found
VideoToolbox
AudioToolbox
AVFoundation
CoreMedia
CoreVideo
Foundation
MediaToolbox
]);
mesonFlags = [ mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development" "-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development"
@ -191,10 +239,50 @@ stdenv.mkDerivation rec {
# see https://github.com/NixOS/nixpkgs/issues/54395 # see https://github.com/NixOS/nixpkgs/issues/54395
"-Dnvdec=disabled" "-Dnvdec=disabled"
"-Dnvenc=disabled" "-Dnvenc=disabled"
]
++ optionals stdenv.isDarwin [
"-Dbluez=disabled"
"-Dchromaprint=disabled"
"-Ddirectfb=disabled"
"-Dflite=disabled"
"-Dkms=disabled" # renders to libdrm output
"-Dofa=disabled"
"-Dlv2=disabled"
"-Dsbc=disabled"
"-Dspandsp=disabled"
"-Ddvb=disabled"
"-Dfbdev=disabled"
"-Duvch264=disabled" # requires gudev
"-Dladspa=disabled" # requires lrdf
"-Dwebrtc=disabled" # requires libnice, which as of writing doesn't work on Darwin in nixpkgs
"-Dwildmidi=disabled" # see dependencies above
] ++ optionals (!gst-plugins-base.glEnabled) [
"-Dgl=disabled"]
++ optionals (!gst-plugins-base.waylandEnabled) [
"-Dwayland=disabled"
] ++ optionals (!gst-plugins-base.glEnabled) [
# `applemedia/videotexturecache.h` requires `gst/gl/gl.h`,
# but its meson build system does not declare the dependency.
"-Dapplemedia=disabled"
]; ];
enableParallelBuilding = true; # This package has some `_("string literal")` string formats
# that trip up clang with format security enabled.
hardeningDisable = [ "format" ];
doCheck = false; # fails 20 out of 58 tests, expensive doCheck = false; # fails 20 out of 58 tests, expensive
meta = with stdenv.lib; {
description = "GStreamer Bad Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that aren't up to par compared to the
rest. They might be close to being good quality, but they're missing
something - be it a good code review, some documentation, a set of tests,
a real live maintainer, or some actual wide use.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
} }

View file

@ -1,100 +1,153 @@
{ stdenv, fetchurl, fetchpatch, lib { stdenv
, pkgconfig, meson, ninja, gettext, gobject-introspection , fetchurl
, python3, gstreamer, orc, pango, libtheora , lib
, libintl, libopus , pkgconfig
, meson
, ninja
, gettext
, gobject-introspection
, python3
, gstreamer
, orc
, pango
, libtheora
, libintl
, libopus
, isocodes , isocodes
, libjpeg , libjpeg
, libpng
, libvisual , libvisual
, tremor # provides 'virbisidec' , tremor # provides 'virbisidec'
, libGL , libGL
, gtk-doc, docbook_xsl, docbook_xml_dtd_412 , gtk-doc
, enableX11 ? stdenv.isLinux, libXv , docbook_xsl
, enableWayland ? stdenv.isLinux, wayland , docbook_xml_dtd_43
, enableAlsa ? stdenv.isLinux, alsaLib , enableX11 ? stdenv.isLinux
, enableCocoa ? false, darwin , libXv
, enableCdparanoia ? (!stdenv.isDarwin), cdparanoia }: , enableWayland ? stdenv.isLinux
, wayland
, enableAlsa ? stdenv.isLinux
, alsaLib
# Enabling Cocoa seems to currently not work, giving compile
# errors. Suspected is that a newer version than clang
# is needed than 5.0 but it is not clear.
, enableCocoa ? false
, darwin
, enableGl ? (enableX11 || enableWayland || enableCocoa)
, enableCdparanoia ? (!stdenv.isDarwin)
, cdparanoia
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-base"; pname = "gst-plugins-base";
version = "1.16.0"; version = "1.16.1";
meta = with lib; {
description = "Base plugins and helper libraries";
homepage = https://gstreamer.freedesktop.org;
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ matthewbauer ];
};
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-base/${pname}-${version}.tar.xz";
sha256 = "1bmmdwbyy89ayb85xc48y217f6wdmpz96f30zm6v53z2a5xsm4s0";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0aybbwnzm15074smdk2bamj3ssck3hjvmilvgh49f19xjf4w8g2w";
};
patches = [
./fix_pkgconfig_includedir.patch
];
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig python3 gettext gobject-introspection meson
ninja
pkgconfig
python3
gettext
gobject-introspection
# docs
gtk-doc gtk-doc
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install` docbook_xsl
docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_43
] ];
# Broken meson with Darwin. Should hopefully be fixed soon. Tracking
# in https://bugzilla.gnome.org/show_bug.cgi?id=781148.
++ lib.optionals (!stdenv.isDarwin) [ meson ninja ];
# On Darwin, we currently use autoconf, on all other systems Meson buildInputs = [
# TODO Switch to Meson on Darwin as well orc
libtheora
# TODO How to pass these to Meson? libintl
configureFlags = lib.optionals stdenv.isDarwin [ libopus
"--enable-x11=${if enableX11 then "yes" else "no"}" isocodes
"--enable-wayland=${if enableWayland then "yes" else "no"}" libpng
"--enable-cocoa=${if enableCocoa then "yes" else "no"}" libjpeg
] tremor
# Introspection fails on my MacBook currently libGL
++ lib.optional stdenv.isDarwin "--disable-introspection"; ] ++ lib.optional (!stdenv.isDarwin) [
libvisual
mesonFlags = lib.optionals (!stdenv.isDarwin) [ ] ++ lib.optionals stdenv.isDarwin [
# Enables all features, so that we know when new dependencies are necessary. pango
"-Dauto_features=enabled" darwin.apple_sdk.frameworks.OpenGL
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users ] ++ lib.optional enableAlsa alsaLib
"-Dgl-graphene=disabled" # not packaged in nixpkgs as of writing
# See https://github.com/GStreamer/gst-plugins-base/blob/d64a4b7a69c3462851ff4dcfa97cc6f94cd64aef/meson_options.txt#L15 for a list of choices
"-Dgl_winsys=[${lib.concatStringsSep "," (lib.optional enableX11 "x11" ++ lib.optional enableWayland "wayland" ++ lib.optional enableCocoa "cocoa")}]"
# We must currently disable gtk_doc API docs generation,
# because it is not compatible with some features being disabled.
# See for example
# https://gitlab.gnome.org/GNOME/gnome-build-meta/issues/38
# for it failing because some Wayland symbols are missing.
# This problem appeared between 1.15.1 and 1.16.0.
"-Dgtk_doc=disabled"
]
++ lib.optional (!enableX11) "-Dx11=disabled"
# TODO How to disable Wayland?
++ lib.optional (!enableAlsa) "-Dalsa=disabled"
++ lib.optional (!enableCdparanoia) "-Dcdparanoia=disabled"
;
buildInputs = [ orc libtheora libintl libopus isocodes libjpeg tremor libGL ]
++ lib.optional (!stdenv.isDarwin) libvisual
++ lib.optional enableAlsa alsaLib
++ lib.optionals enableX11 [ libXv pango ] ++ lib.optionals enableX11 [ libXv pango ]
++ lib.optional enableWayland wayland ++ lib.optional enableWayland wayland
++ lib.optional enableCocoa darwin.apple_sdk.frameworks.Cocoa ++ lib.optional enableCocoa darwin.apple_sdk.frameworks.Cocoa
++ lib.optional enableCdparanoia cdparanoia; ++ lib.optional enableCdparanoia cdparanoia;
propagatedBuildInputs = [ gstreamer ]; propagatedBuildInputs = [
gstreamer
];
mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Dgl-graphene=disabled" # not packaged in nixpkgs as of writing
"-Dgl_platform=[${lib.optionalString (enableX11 || enableWayland || enableCocoa) "auto"}]"
# See https://github.com/GStreamer/gst-plugins-base/blob/d64a4b7a69c3462851ff4dcfa97cc6f94cd64aef/meson_options.txt#L15 for a list of choices
"-Dgl_winsys=[${lib.concatStringsSep "," (lib.optional enableX11 "x11" ++ lib.optional enableWayland "wayland" ++ lib.optional enableCocoa "cocoa")}]"
# We must currently disable gtk_doc API docs generation,
# because it is not compatible with some features being disabled.
# See for example
# https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/564
# for it failing because some Wayland symbols are missing.
# This problem appeared between 1.15.1 and 1.16.0.
# In 1.18 they should switch to hotdoc, which should make this issue irrelevant.
"-Dgtk_doc=disabled"
]
++ lib.optional (!enableX11) "-Dx11=disabled"
# TODO How to disable Wayland?
++ lib.optional (!enableGl) "-Dgl=disabled"
++ lib.optional (!enableAlsa) "-Dalsa=disabled"
++ lib.optional (!enableCdparanoia) "-Dcdparanoia=disabled"
++ lib.optionals stdenv.isDarwin [
"-Dlibvisual=disabled"
];
postPatch = '' postPatch = ''
patchShebangs . patchShebangs common/scangobj-merge.py
''; '';
enableParallelBuilding = true; # This package has some `_("string literal")` string formats
# that trip up clang with format security enabled.
hardeningDisable = [ "format" ];
doCheck = false; # fails, wants DRI access for OpenGL doCheck = false; # fails, wants DRI access for OpenGL
patches = [ passthru = {
./fix_pkgconfig_includedir.patch # Downstream `gst-*` packages depending on `gst-plugins-base`
]; # have meson build options like 'gl' etc. that depend
# on these features being built in `-base`.
# If they are not built here, then the downstream builds
# will fail, as they, too, use `-Dauto_features=enabled`
# which would enable these options unconditionally.
# That means we must communicate to these downstream packages
# if the `-base` enabled these options or not, so that
# the can enable/disable those features accordingly.
# The naming `*Enabled` vs `enable*` is intentional to
# distinguish inputs from outputs (what is to be built
# vs what was built) and to make them easier to search for.
glEnabled = enableGl;
waylandEnabled = enableWayland;
};
meta = with lib; {
description = "Base GStreamer plug-ins and helper libraries";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ matthewbauer ];
};
} }

View file

@ -1,10 +1,23 @@
{ stdenv, fetchurl, fetchpatch, meson, ninja { stdenv
, pkgconfig, gettext, gobject-introspection , fetchurl
, bison, flex, python3, glib, makeWrapper , fetchpatch
, libcap,libunwind, darwin , meson
, ninja
, pkgconfig
, gettext
, gobject-introspection
, bison
, flex
, python3
, glib
, makeWrapper
, libcap
, libunwind
, darwin
, elfutils # for libdw , elfutils # for libdw
, bash-completion , bash-completion
, docbook_xsl, docbook_xml_dtd_412 , docbook_xsl
, docbook_xml_dtd_43
, gtk-doc , gtk-doc
, lib , lib
, CoreServices , CoreServices
@ -12,50 +25,66 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gstreamer"; pname = "gstreamer";
version = "1.16.0"; version = "1.16.1";
meta = with lib ;{ outputs = [ "out" "dev" "devdoc" ];
description = "Open source multimedia framework"; outputBin = "dev";
homepage = https://gstreamer.freedesktop.org;
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ ttuegel matthewbauer ];
};
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gstreamer/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "003wy1p1in85p9sr5jsyhbnwqaiwz069flwkhyx7qhxy31qjz3hf"; sha256 = "0z9pyhf6zm1r0spw6zym80bvbyx6h8xg9h6535csbnn48ws1q882";
}; };
patches = [ patches = [
./fix_pkgconfig_includedir.patch ./fix_pkgconfig_includedir.patch
]; ];
outputs = [ "out" "dev" ];
outputBin = "dev";
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig gettext bison flex python3 makeWrapper gobject-introspection meson
ninja
pkgconfig
gettext
bison
flex
python3
makeWrapper
gobject-introspection
bash-completion bash-completion
# documentation
gtk-doc gtk-doc
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install` docbook_xsl
docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_43
]; ];
buildInputs = buildInputs = lib.optionals stdenv.isLinux [
lib.optionals stdenv.isLinux [ libcap libunwind elfutils ] libcap
++ lib.optional stdenv.isDarwin CoreServices; libunwind
elfutils
] ++ lib.optionals stdenv.isDarwin [
CoreServices
];
propagatedBuildInputs = [ glib ]; propagatedBuildInputs = [
glib
];
mesonFlags = [ mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Ddbghelp=disabled" # not needed as we already provide libunwind and libdw, and dbghelp is a fallback to those "-Ddbghelp=disabled" # not needed as we already provide libunwind and libdw, and dbghelp is a fallback to those
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
] ] ++ lib.optionals stdenv.isDarwin [
# darwin.libunwind doesn't have pkgconfig definitions so meson doesn't detect it. # darwin.libunwind doesn't have pkgconfig definitions so meson doesn't detect it.
++ stdenv.lib.optionals stdenv.isDarwin [ "-Dlibunwind=disabled" "-Dlibdw=disabled" ]; "-Dlibunwind=disabled"
"-Dlibdw=disabled"
];
postPatch = ''
patchShebangs \
gst/parse/get_flex_version.py \
gst/parse/gen_grammar.py.in \
gst/parse/gen_lex.py.in \
libs/gst/helpers/ptp_helper_post_install.sh
'';
postInstall = '' postInstall = ''
for prog in "$dev/bin/"*; do for prog in "$dev/bin/"*; do
@ -64,21 +93,17 @@ stdenv.mkDerivation rec {
done done
''; '';
preConfigure=
# These files are not executable upstream, so we need to
# make them executable for `patchShebangs` to pick them up.
# Can be removed when this is merged and available:
# https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/141
''
chmod +x gst/parse/get_flex_version.py
'' +
''
patchShebangs .
'';
preFixup = '' preFixup = ''
moveToOutput "share/bash-completion" "$dev" moveToOutput "share/bash-completion" "$dev"
''; '';
setupHook = ./setup-hook.sh; setupHook = ./setup-hook.sh;
meta = with lib ;{
description = "Open source multimedia framework";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ ttuegel matthewbauer ];
};
} }

View file

@ -1,7 +1,7 @@
addGstreamer1LibPath () { addGstreamer1LibPath () {
if test -d "$1/lib/gstreamer-1.0" if test -d "$1/lib/gstreamer-1.0"
then then
export GST_PLUGIN_SYSTEM_PATH_1_0="${GST_PLUGIN_SYSTEM_PATH_1_0}${GST_PLUGIN_SYSTEM_PATH_1_0:+:}$1/lib/gstreamer-1.0" export GST_PLUGIN_SYSTEM_PATH_1_0="${GST_PLUGIN_SYSTEM_PATH_1_0-}${GST_PLUGIN_SYSTEM_PATH_1_0:+:}$1/lib/gstreamer-1.0"
fi fi
} }

View file

@ -1,39 +1,66 @@
{ stdenv, fetchurl, fetchpatch, meson, ninja { stdenv
, pkgconfig, python, gst-plugins-base, libxml2 , fetchurl
, flex, perl, gettext, gobject-introspection , fetchpatch
, meson
, ninja
, pkgconfig
, python
, gst-plugins-base
, libxml2
, flex
, perl
, gettext
, gobject-introspection
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gstreamer-editing-services"; pname = "gstreamer-editing-services";
version = "1.16.0"; version = "1.16.1";
meta = with stdenv.lib; {
description = "Library for creation of audio/video non-linear editors";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
src = fetchurl {
url = "${meta.homepage}/src/gstreamer-editing-services/${pname}-${version}.tar.xz";
sha256 = "1las94jkx83sxmzi5w6b0xm89dqqwzpdsb6h9w9ixndhnbpzm8w2";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig gettext gobject-introspection python flex perl ]; src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
propagatedBuildInputs = [ gst-plugins-base libxml2 ]; sha256 = "10375z5mc3bwfs07mhmfx943sbp55z8m8ihp9xpcknkdks7qg168";
};
mesonFlags = [
"-Dgtk_doc=disabled"
];
patches = [ patches = [
./fix_pkgconfig_includedir.patch ./fix_pkgconfig_includedir.patch
]; ];
nativeBuildInputs = [
meson
ninja
pkgconfig
gettext
gobject-introspection
python
flex
perl
];
buildInputs = [
libxml2
];
propagatedBuildInputs = [
gst-plugins-base
];
mesonFlags = [
"-Dgtk_doc=disabled"
];
postPatch = '' postPatch = ''
# for some reason, gst-plugins-bad cannot be found
# fortunately, they are only used by tests, which we do not run
sed -i -r -e 's/p(bad|good) = .*/p\1 = pbase/' tests/check/meson.build sed -i -r -e 's/p(bad|good) = .*/p\1 = pbase/' tests/check/meson.build
''; '';
meta = with stdenv.lib; {
description = "Library for creation of audio/video non-linear editors";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
} }

View file

@ -1,14 +1,37 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, python { stdenv
, gst-plugins-base, orc, bzip2, gettext , fetchurl
, libv4l, libdv, libavc1394, libiec61883 , meson
, libvpx, speex, flac, taglib, libshout , ninja
, cairo, gdk-pixbuf, aalib, libcaca , pkgconfig
, libsoup, libpulseaudio, libintl , python
, darwin, lame, mpg123, twolame , gst-plugins-base
, orc
, bzip2
, gettext
, libv4l
, libdv
, libavc1394
, libiec61883
, libvpx
, speex
, flac
, taglib
, libshout
, cairo
, gdk-pixbuf
, aalib
, libcaca
, libsoup
, libpulseaudio
, libintl
, darwin
, lame
, mpg123
, twolame
, gtkSupport ? false, gtk3 ? null , gtkSupport ? false, gtk3 ? null
# As of writing, jack2 incurs a Qt dependency (big!) via `ffado`. # As of writing, jack2 incurs a Qt dependency (big!) via `ffado`.
# In the fuure we should probably split `ffado`. # In the future we should probably split `ffado`.
, enableJack ? false , enableJack ? false, jack2
, libXdamage , libXdamage
, libXext , libXext
, libXfixes , libXfixes
@ -16,7 +39,6 @@
, xorg , xorg
, libgudev , libgudev
, wavpack , wavpack
, jack2
}: }:
assert gtkSupport -> gtk3 != null; assert gtkSupport -> gtk3 != null;
@ -26,39 +48,44 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-good"; pname = "gst-plugins-good";
version = "1.16.0"; version = "1.16.1";
meta = with stdenv.lib; {
description = "Gstreamer Good Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that we consider to have good quality code,
correct functionality, our preferred license (LGPL for the plug-in
code, LGPL or LGPL-compatible for the supporting library).
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-good/${pname}-${version}.tar.xz";
sha256 = "1zdhif1mhf0ihkjpjyrh65g2iz2cawkjjb3h5w8h9ml06grxwjk5";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "07wgz9anf4ram2snp8n1wv6l0q3pd00iaw8bvw3wgklg05lvxflz";
};
patches = [ ./fix_pkgconfig_includedir.patch ]; patches = [ ./fix_pkgconfig_includedir.patch ];
nativeBuildInputs = [ pkgconfig python meson ninja gettext ]; nativeBuildInputs = [
pkgconfig
NIX_LDFLAGS = "-lncurses"; python
meson
ninja
gettext
];
buildInputs = [ buildInputs = [
gst-plugins-base orc bzip2 gst-plugins-base
libdv libvpx speex flac taglib orc
cairo gdk-pixbuf aalib libcaca bzip2
libsoup libshout lame mpg123 twolame libintl libdv
libvpx
speex
flac
taglib
cairo
gdk-pixbuf
aalib
libcaca
libsoup
libshout
lame
mpg123
twolame
libintl
libXdamage libXdamage
libXext libXext
libXfixes libXfixes
@ -66,29 +93,59 @@ stdenv.mkDerivation rec {
xorg.libXfixes xorg.libXfixes
xorg.libXdamage xorg.libXdamage
wavpack wavpack
] ] ++ optional gtkSupport [
++ optional gtkSupport gtk3 # for gtksink # for gtksink
++ optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ] gtk3
++ optionals stdenv.isLinux [ libv4l libpulseaudio libavc1394 libiec61883 libgudev ] ] ++ optionals stdenv.isDarwin [
++ optionals (stdenv.isLinux && enableJack) [ darwin.apple_sdk.frameworks.Cocoa
] ++ optionals stdenv.isLinux [
libv4l
libpulseaudio
libavc1394
libiec61883
libgudev
] ++ optionals (stdenv.isLinux && enableJack) [
jack2 jack2
]; ];
mesonFlags = [ mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
] ] ++ optionals (!gtkSupport) [
++ optional (!gtkSupport) "-Dgtk3=disabled" "-Dgtk3=disabled"
++ optionals (!stdenv.isLinux || !enableJack) [ ] ++ optionals (!stdenv.isLinux || !enableJack) [
"-Djack=disabled" # unclear whether Jack works on Darwin "-Djack=disabled" # unclear whether Jack works on Darwin
] ] ++ optionals (!stdenv.isLinux) [
++ optionals (!stdenv.isLinux) [ "-Ddv1394=disabled" # Linux only
"-Dv4l2-gudev=disabled" "-Doss4=disabled" # Linux only
"-Doss=disabled" # Linux only
"-Dpulse=disabled" # TODO check if we can keep this enabled
"-Dv4l2-gudev=disabled" # Linux-only
"-Dv4l2=disabled" # Linux-only
"-Dximagesrc=disabled" # Linux-only
"-Dpulse=disabled" # TODO check if we can keep this enabled
];
NIX_LDFLAGS = [
# linking error on Darwin
# https://github.com/NixOS/nixpkgs/pull/70690#issuecomment-553694896
"-lncurses"
]; ];
# fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''" # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
doCheck = false; doCheck = false;
meta = with stdenv.lib; {
description = "GStreamer Good Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that we consider to have good quality code,
correct functionality, our preferred license (LGPL for the plug-in
code, LGPL or LGPL-compatible for the supporting library).
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
} }

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, pkgconfig, gstreamer, xorg, alsaLib, cdparanoia { fetchurl, fetchpatch, stdenv, pkgconfig, gstreamer, xorg, alsaLib, cdparanoia
, libogg, libtheora, libvorbis, freetype, pango, liboil, glib, cairo, orc , libogg, libtheora, libvorbis, freetype, pango, liboil, glib, cairo, orc
, libintl , libintl
, ApplicationServices , ApplicationServices
@ -20,10 +20,10 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./gcc-4.9.patch ./gcc-4.9.patch
(fetchurl { (fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/f672277509705c4034bc92a141eefee4524d15aa.patch"; url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/f672277509705c4034bc92a141eefee4524d15aa.patch";
name = "CVE-2019-9928.patch"; name = "CVE-2019-9928.patch";
sha256 = "0hz3lsq3ppmaf329sbyi05y1qniqfj9vlp2f3z918383pvrcms4i"; sha256 = "1dlamsmyr7chrb6vqqmwikqvvqcx5l7k72p98448qm6k59ndnimc";
}) })
]; ];

View file

@ -1,7 +1,7 @@
addGstreamerLibPath () { addGstreamerLibPath () {
if test -d "$1/lib/gstreamer-0.10" if test -d "$1/lib/gstreamer-0.10"
then then
export GST_PLUGIN_SYSTEM_PATH="${GST_PLUGIN_SYSTEM_PATH}${GST_PLUGIN_SYSTEM_PATH:+:}$1/lib/gstreamer-0.10" export GST_PLUGIN_SYSTEM_PATH="${GST_PLUGIN_SYSTEM_PATH-}${GST_PLUGIN_SYSTEM_PATH:+:}$1/lib/gstreamer-0.10"
fi fi
} }

View file

@ -1,43 +1,46 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig { stdenv
, python, yasm, gst-plugins-base, orc, bzip2 , lib
, gettext, withSystemLibav ? true, libav ? null , fetchurl
, meson
, ninja
, pkgconfig
, python3
, gst-plugins-base
, gettext
, libav
}: }:
# Note that since gst-libav-1.6, libav is actually ffmpeg. See # Note that since gst-libav-1.6, libav is actually ffmpeg. See
# https://gstreamer.freedesktop.org/releases/1.6/ for more info. # https://gstreamer.freedesktop.org/releases/1.6/ for more info.
assert withSystemLibav -> libav != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-libav"; pname = "gst-libav";
version = "1.16.0"; version = "1.16.1";
meta = {
homepage = https://gstreamer.freedesktop.org;
license = stdenv.lib.licenses.lgpl2Plus;
platforms = stdenv.lib.platforms.unix;
};
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-libav/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "16ixqpfrr7plaaz14n3vagr2q5xbfkv7gpmcsyndrkx98f813b6z"; sha256 = "1i31ra0l77cfahb6k5xpx45zwvpskzm848aijsbbx9x4x65799g8";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = with stdenv.lib; nativeBuildInputs = [
[ meson ninja gettext pkgconfig python ] meson
++ optional (!withSystemLibav) yasm ninja
; gettext
pkgconfig
buildInputs = with stdenv.lib; python3
[ gst-plugins-base orc bzip2 ]
++ optional withSystemLibav libav
;
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
]; ];
buildInputs = [
gst-plugins-base
libav
];
meta = with lib; {
description = "FFmpeg/libav plugin for GStreamer";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
} }

View file

@ -1,38 +1,50 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig { stdenv
, gettext, gobject-introspection , fetchurl
, meson
, ninja
, pkgconfig
, gettext
, gobject-introspection
, gst-plugins-base , gst-plugins-base
, gst-plugins-bad , gst-plugins-bad
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-rtsp-server"; pname = "gst-rtsp-server";
version = "1.16.0"; version = "1.16.1";
meta = with stdenv.lib; {
description = "Gstreamer RTSP server";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a library on top of GStreamer for building an RTSP server.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bkchr ];
};
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-rtsp-server/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "069zy159izy50blci9fli1i2r8jh91qkmgrz1n0xqciy3bn9x3hr"; sha256 = "0i01f1nr0921z6z4nrh8icz76s2n7i228aqxg1ihvxl65ynsraxh";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja gettext gobject-introspection pkgconfig ]; nativeBuildInputs = [
meson
ninja
gettext
gobject-introspection
pkgconfig
];
buildInputs = [ gst-plugins-base gst-plugins-bad ]; buildInputs = [
gst-plugins-base
gst-plugins-bad
];
mesonFlags = [ mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
]; ];
meta = with stdenv.lib; {
description = "GStreamer RTSP server";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
A library on top of GStreamer for building an RTSP server.
'';
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ bkchr ];
};
} }

View file

@ -1,53 +1,76 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, python { stdenv
, gst-plugins-base, orc, gettext , fetchurl
, a52dec, libcdio, libdvdread , meson
, libmad, libmpeg2, x264, libintl, lib , ninja
, pkgconfig
, python
, gst-plugins-base
, orc
, gettext
, a52dec
, libcdio
, libdvdread
, libmad
, libmpeg2
, x264
, libintl
, lib
, opencore-amr , opencore-amr
, darwin , darwin
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-ugly"; pname = "gst-plugins-ugly";
version = "1.16.0"; version = "1.16.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "07cajqjs8pqchpf2sm87hljx4ibwvkiavqxmacxsr5airar17yab";
};
nativeBuildInputs = [
meson
ninja
gettext
pkgconfig
python
];
buildInputs = [
gst-plugins-base
orc
a52dec
libcdio
libdvdread
libmad
libmpeg2
x264
libintl
opencore-amr
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
IOKit
CoreFoundation
DiskArbitration
]);
mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Dsidplay=disabled" # sidplay / sidplay/player.h isn't packaged in nixpkgs as of writing
];
meta = with lib; { meta = with lib; {
description = "Gstreamer Ugly Plugins"; description = "Gstreamer Ugly Plugins";
homepage = "https://gstreamer.freedesktop.org"; homepage = "https://gstreamer.freedesktop.org";
longDescription = '' longDescription = ''
a set of plug-ins that have good quality and correct functionality, a set of plug-ins that have good quality and correct functionality,
but distributing them might pose problems. The license on either but distributing them might pose problems. The license on either
the plug-ins or the supporting libraries might not be how we'd the plug-ins or the supporting libraries might not be how we'd
like. The code might be widely known to present patent problems. like. The code might be widely known to present patent problems.
''; '';
license = licenses.lgpl2Plus; license = licenses.lgpl2Plus;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ matthewbauer ]; maintainers = with maintainers; [ matthewbauer ];
}; };
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-ugly/${pname}-${version}.tar.xz";
sha256 = "1hm46c1fy9vl1wfwipsj41zp79cm7in1fpmjw24j5hriy32n82g3";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja gettext pkgconfig python ];
buildInputs = [
gst-plugins-base orc
a52dec libcdio libdvdread
libmad libmpeg2 x264
libintl
opencore-amr
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks;
[ IOKit CoreFoundation DiskArbitration ]);
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Dsidplay=disabled" # sidplay / sidplay/player.h isn't packaged in nixpkgs as of writing
];
NIX_LDFLAGS = [ "-lm" ];
} }

View file

@ -1,49 +1,70 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, gst-plugins-base, bzip2, libva, wayland { stdenv
, libdrm, udev, xorg, libGLU_combined, gstreamer, gst-plugins-bad, nasm , fetchurl
, libvpx, python, fetchpatch , meson
, ninja
, pkgconfig
, gst-plugins-base
, bzip2
, libva
, wayland
, libdrm
, udev
, xorg
, libGLU_combined
, gstreamer
, gst-plugins-bad
, nasm
, libvpx
, python
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-vaapi"; pname = "gstreamer-vaapi";
version = "1.16.0"; version = "1.16.1";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "07qpynamiz0lniqajcaijh3n7ixs4lfk9a5mfk50sng0dricwzsf"; sha256 = "0fk0nymvbfc04fv63fj2r6q9vvi431svhkrwpr7kdjvq3rphymyb";
}; };
patches = [
# See: https://mail.gnome.org/archives/distributor-list/2019-September/msg00000.html
# Note that the patch has now been actually accepted upstream.
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/commit/a90daabb84f983d2fa05ff3159f7ad59aa648b55.patch";
sha256 = "0p2qygq6b5h6nxjdfnlzbsyih43hjq5c94ag8sbyyb8pmnids9rb";
})
];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig bzip2 ]; nativeBuildInputs = [
meson
buildInputs = [ ninja
gstreamer gst-plugins-base gst-plugins-bad libva wayland libdrm udev pkgconfig
xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM bzip2
xorg.libICE libGLU_combined nasm libvpx python
]; ];
preConfigure = '' buildInputs = [
export GST_PLUGIN_PATH_1_0=$out/lib/gstreamer-1.0 gstreamer
mkdir -p $GST_PLUGIN_PATH_1_0 gst-plugins-base
''; gst-plugins-bad
libva
wayland
libdrm
udev
xorg.libX11
xorg.libXext
xorg.libXv
xorg.libXrandr
xorg.libSM
xorg.libICE
libGLU_combined
nasm
libvpx
python
];
mesonFlags = [ mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
]; ];
meta = { meta = with stdenv.lib; {
homepage = https://gstreamer.freedesktop.org; description = "Set of VAAPI GStreamer Plug-ins";
license = stdenv.lib.licenses.lgpl21Plus; homepage = "https://gstreamer.freedesktop.org";
platforms = stdenv.lib.platforms.linux; license = licenses.lgpl21Plus;
maintainers = with stdenv.lib.maintainers; [ tstrobel ]; maintainers = with maintainers; [ tstrobel ];
platforms = platforms.linux;
}; };
} }

Some files were not shown because too many files have changed in this diff Show more