Merge pull request #168737 from NixOS/staging-next

This commit is contained in:
Martin Weinelt 2022-04-17 20:38:16 +02:00 committed by GitHub
commit 95af2245a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
634 changed files with 5673 additions and 4565 deletions

View File

@ -42,7 +42,21 @@ Unlike other libraries mentioned in this section, GdkPixbuf only supports a sing
### Icons {#ssec-gnome-icons} ### Icons {#ssec-gnome-icons}
When an application uses icons, an icon theme should be available in `XDG_DATA_DIRS` during runtime. The package for the default, icon-less [hicolor-icon-theme](https://www.freedesktop.org/wiki/Software/icon-theme/) (should be propagated by every icon theme) contains [a setup hook](#ssec-gnome-hooks-hicolor-icon-theme) that will pick up icon themes from `buildInputs` and pass it to our wrapper. Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed. When an application uses icons, an icon theme should be available in `XDG_DATA_DIRS` during runtime. The package for the default, icon-less [hicolor-icon-theme](https://www.freedesktop.org/wiki/Software/icon-theme/) (should be propagated by every icon theme) contains [a setup hook](#ssec-gnome-hooks-hicolor-icon-theme) that will pick up icon themes from `buildInputs` and add their datadirs to `XDG_ICON_DIRS` environment variable (this is Nixpkgs specific, not actually a XDG standard variable). Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed.
In the rare case you need to use icons from dependencies (e.g. when an app forces an icon theme), you can use the following to pick them up:
```nix
buildInputs = [
pantheon.elementary-icon-theme
];
preFixup = ''
gappsWrapperArgs+=(
# The icon theme is hardcoded.
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
)
'';
```
To avoid costly file system access when locating icons, GTK, [as well as Qt](https://woboq.com/blog/qicon-reads-gtk-icon-cache-in-qt57.html), can rely on `icon-theme.cache` files from the themes' top-level directories. These files are generated using `gtk-update-icon-cache`, which is expected to be run whenever an icon is added or removed to an icon theme (typically an application icon into `hicolor` theme) and some programs do indeed run this after icon installation. However, since packages are installed into their own prefix by Nix, this would lead to conflicts. For that reason, `gtk3` provides a [setup hook](#ssec-gnome-hooks-gtk-drop-icon-theme-cache) that will clean the file from installation. Since most applications only ship their own icon that will be loaded on start-up, it should not affect them too much. On the other hand, icon themes are much larger and more widely used so we need to cache them. Because we recommend installing icon themes globally, we will generate the cache files from all packages in a profile using a NixOS module. You can enable the cache generation using `gtk.iconCache.enable` option if your desktop environment does not already do that. To avoid costly file system access when locating icons, GTK, [as well as Qt](https://woboq.com/blog/qicon-reads-gtk-icon-cache-in-qt57.html), can rely on `icon-theme.cache` files from the themes' top-level directories. These files are generated using `gtk-update-icon-cache`, which is expected to be run whenever an icon is added or removed to an icon theme (typically an application icon into `hicolor` theme) and some programs do indeed run this after icon installation. However, since packages are installed into their own prefix by Nix, this would lead to conflicts. For that reason, `gtk3` provides a [setup hook](#ssec-gnome-hooks-gtk-drop-icon-theme-cache) that will clean the file from installation. Since most applications only ship their own icon that will be loaded on start-up, it should not affect them too much. On the other hand, icon themes are much larger and more widely used so we need to cache them. Because we recommend installing icon themes globally, we will generate the cache files from all packages in a profile using a NixOS module. You can enable the cache generation using `gtk.iconCache.enable` option if your desktop environment does not already do that.
@ -98,7 +112,7 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
- []{#ssec-gnome-hooks-dconf} `dconf.lib` is a dependency of `wrapGAppsHook`, which then also adds it to the `GIO_EXTRA_MODULES` variable. - []{#ssec-gnome-hooks-dconf} `dconf.lib` is a dependency of `wrapGAppsHook`, which then also adds it to the `GIO_EXTRA_MODULES` variable.
- []{#ssec-gnome-hooks-hicolor-icon-theme} `hicolor-icon-theme`s setup hook will add icon themes to `XDG_ICON_DIRS` which is prepended to `XDG_DATA_DIRS` by `wrapGAppsHook`. - []{#ssec-gnome-hooks-hicolor-icon-theme} `hicolor-icon-theme`s setup hook will add icon themes to `XDG_ICON_DIRS`.
- []{#ssec-gnome-hooks-gobject-introspection} `gobject-introspection` setup hook populates `GI_TYPELIB_PATH` variable with `lib/girepository-1.0` directories of dependencies, which is then added to wrapper by `wrapGAppsHook`. It also adds `share` directories of dependencies to `XDG_DATA_DIRS`, which is intended to promote GIR files but it also [pollutes the closures](https://github.com/NixOS/nixpkgs/issues/32790) of packages using `wrapGAppsHook`. - []{#ssec-gnome-hooks-gobject-introspection} `gobject-introspection` setup hook populates `GI_TYPELIB_PATH` variable with `lib/girepository-1.0` directories of dependencies, which is then added to wrapper by `wrapGAppsHook`. It also adds `share` directories of dependencies to `XDG_DATA_DIRS`, which is intended to promote GIR files but it also [pollutes the closures](https://github.com/NixOS/nixpkgs/issues/32790) of packages using `wrapGAppsHook`.

View File

@ -517,6 +517,15 @@
the FIDO security key middleware interface. the FIDO security key middleware interface.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>git</literal> no longer hardcodes the path to
openssh ssh binary to reduce the amount of rebuilds. If you
are using git with ssh remotes and do not have a ssh binary in
your enviroment consider adding <literal>openssh</literal> to
it or switching to <literal>gitFull</literal>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<literal>services.k3s.enable</literal> no longer implies <literal>services.k3s.enable</literal> no longer implies
@ -2130,6 +2139,16 @@
(<link xlink:href="https://github.com/NixOS/nixpkgs/pull/158992">#158992</link>). (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/158992">#158992</link>).
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The <literal>nss</literal> package was split into
<literal>nss_esr</literal> and <literal>nss_latest</literal>,
with <literal>nss</literal> being an alias for
<literal>nss_esr</literal>. This was done to ease maintenance
of <literal>nss</literal> and dependent high-profile packages
like <literal>firefox</literal>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The <literal>spark3</literal> package has been updated from The <literal>spark3</literal> package has been updated from

View File

@ -164,6 +164,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface. - `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
- `git` no longer hardcodes the path to openssh' ssh binary to reduce the amount of rebuilds. If you are using git with ssh remotes and do not have a ssh binary in your enviroment consider adding `openssh` to it or switching to `gitFull`.
- `services.k3s.enable` no longer implies `systemd.enableUnifiedCgroupHierarchy = false`, and will default to the 'systemd' cgroup driver when using `services.k3s.docker = true`. - `services.k3s.enable` no longer implies `systemd.enableUnifiedCgroupHierarchy = false`, and will default to the 'systemd' cgroup driver when using `services.k3s.docker = true`.
This change may require a reboot to take effect, and k3s may not be able to run if the boot cgroup hierarchy does not match its configuration. This change may require a reboot to take effect, and k3s may not be able to run if the boot cgroup hierarchy does not match its configuration.
The previous behavior may be retained by explicitly setting `systemd.enableUnifiedCgroupHierarchy = false` in your configuration. The previous behavior may be retained by explicitly setting `systemd.enableUnifiedCgroupHierarchy = false` in your configuration.
@ -748,6 +750,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `R` package now builds again on `aarch64-darwin` ([#158992](https://github.com/NixOS/nixpkgs/pull/158992)). - The `R` package now builds again on `aarch64-darwin` ([#158992](https://github.com/NixOS/nixpkgs/pull/158992)).
- The `nss` package was split into `nss_esr` and `nss_latest`, with `nss` being an alias for `nss_esr`. This was done to ease maintenance of `nss` and dependent high-profile packages like `firefox`.
- The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)): - The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)):
- Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`. - Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.

View File

@ -27,7 +27,7 @@ in
locate = mkOption { locate = mkOption {
type = package; type = package;
default = pkgs.findutils; default = pkgs.findutils.locate;
defaultText = literalExpression "pkgs.findutils"; defaultText = literalExpression "pkgs.findutils";
example = literalExpression "pkgs.mlocate"; example = literalExpression "pkgs.mlocate";
description = '' description = ''

View File

@ -166,7 +166,7 @@ in
} '' } ''
makeWrapper ${pythonEnv}/bin/etebase-server \ makeWrapper ${pythonEnv}/bin/etebase-server \
$out/bin/etebase-server \ $out/bin/etebase-server \
--run "cd ${cfg.dataDir}" \ --chdir ${escapeShellArg cfg.dataDir} \
--prefix ETEBASE_EASY_CONFIG_PATH : "${configIni}" --prefix ETEBASE_EASY_CONFIG_PATH : "${configIni}"
'') '')
]; ];

View File

@ -179,7 +179,7 @@ let
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \ ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
--set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \ --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
--set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \ --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab' --chdir '${cfg.packages.gitlab}/share/gitlab'
''; '';
}; };
@ -193,7 +193,7 @@ let
makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \ makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \ ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
--set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \ --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab' --chdir '${cfg.packages.gitlab}/share/gitlab'
''; '';
}; };

View File

@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
# files passed as arguments anyway, so this works well enough until the # files passed as arguments anyway, so this works well enough until the
# issue is fixed. # issue is fixed.
wrapProgram $out/bin/hivelytracker \ wrapProgram $out/bin/hivelytracker \
--run "cd $out/share/hivelytracker" --chdir "$out/share/hivelytracker"
# Also install the hvl2wav tool # Also install the hvl2wav tool
install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav

View File

@ -86,6 +86,7 @@ mkDerivation rec {
homepage = "https://www.signalyst.com/custom.html"; homepage = "https://www.signalyst.com/custom.html";
description = "High-end upsampling multichannel software HD-audio player"; description = "High-end upsampling multichannel software HD-audio player";
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ lovesegfault ]; maintainers = with maintainers; [ lovesegfault ];
}; };
} }

View File

@ -1,42 +0,0 @@
{ config, lib, stdenv, fetchurl, fetchpatch, zlib, pkg-config, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
, usePulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio }:
stdenv.mkDerivation rec {
pname = "libopenmpt";
version = "0.5.11";
outputs = [ "out" "lib" "dev" ];
src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
sha256 = "1c54lldr2imjzhlhq5lvwhj7d5794xm97cby9pznr5wdjjay0sa4";
};
patches = [
# Fix pending upstream inclusion for gcc-12 include headers:
# https://github.com/OpenMPT/openmpt/pull/8
(fetchpatch {
name = "gcc-12.patch";
url = "https://github.com/OpenMPT/openmpt/commit/6e7a43190ef2f9ba0b3efc19b9527261b69ec8f7.patch";
sha256 = "081m1rf09bbrlg52aihaajmld5dcnwbp6y7zpyik92mm332r330h";
})
];
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [ zlib mpg123 libogg libvorbis portaudio libsndfile flac ]
++ lib.optional usePulseAudio libpulseaudio;
configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
doCheck = true;
meta = with lib; {
description = "A cross-platform command-line based module file player";
homepage = "https://lib.openmpt.org/libopenmpt/";
license = licenses.bsd3;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.unix;
};
}

View File

@ -23,7 +23,7 @@ stdenv.mkDerivation {
description = "Utility to check whether audio is truly lossless or not"; description = "Utility to check whether audio is truly lossless or not";
homepage = "https://losslessaudiochecker.com"; homepage = "https://losslessaudiochecker.com";
license = lib.licenses.unfree; license = lib.licenses.unfree;
platforms = lib.platforms.x86_64; platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ p-h ]; maintainers = with lib.maintainers; [ p-h ];
}; };
} }

View File

@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
makeWrapperArgs = [ makeWrapperArgs = [
"--prefix 'PATH' ':' '${lib.makeBinPath [ sox pulseaudio ]}'" "--prefix 'PATH' ':' '${lib.makeBinPath [ sox pulseaudio ]}'"
"--prefix 'PYTHONPATH' ':' '${placeholder "out"}/share/lyrebird'" "--prefix 'PYTHONPATH' ':' '${placeholder "out"}/share/lyrebird'"
"--run 'cd ${placeholder "out"}/share/lyrebird'" "--chdir '${placeholder "out"}/share/lyrebird'"
''"''${gappsWrapperArgs[@]}"'' ''"''${gappsWrapperArgs[@]}"''
]; ];

View File

@ -17,6 +17,7 @@
let let
# NOTE: check if we can drop any of these overrides when bumping the version # NOTE: check if we can drop any of these overrides when bumping the version
overrideVersions = [ overrideVersions = [
"lxml"
"pyparsing" "pyparsing"
"pyqt5" "pyqt5"
]; ];

View File

@ -1,91 +0,0 @@
{ stdenv
, runCommand
, fetchFromGitHub
, pulseaudio
, pkg-config
, ffmpeg
, patchelf
, fdk_aac
, libtool
, ldacbt
, cmake
, bluez
, dbus
, sbc
, lib
}:
let
pulseSources = runCommand "pulseaudio-sources" {} ''
mkdir $out
if [ -d ${pulseaudio.src} ]; then
ln -s ${pulseaudio.src}/* $out/
else
tar -xf ${pulseaudio.src}
mv pulseaudio*/* $out/
fi
'';
in stdenv.mkDerivation rec {
pname = "pulseaudio-modules-bt";
version = "1.4";
src = fetchFromGitHub {
owner = "EHfive";
repo = "pulseaudio-modules-bt";
rev = "v${version}";
sha256 = "0bzg6x405j39axnkvc6n6vkl1hv1frk94y1i9sl170081bk23asd";
};
patches = [
./fix-install-path.patch
];
nativeBuildInputs = [
pkg-config
patchelf
cmake
];
buildInputs = [
pulseaudio
ffmpeg
fdk_aac
libtool
ldacbt
bluez
dbus
sbc
];
postPatch = ''
# Upstream bundles pulseaudio as a submodule
rm -r pa
ln -s ${pulseSources} pa
# Pulseaudio version is detected with a -rebootstrapped suffix which build system assumptions
substituteInPlace config.h.in --replace PulseAudio_VERSION ${pulseaudio.version}
substituteInPlace CMakeLists.txt --replace '${"\${PULSE_DIR}"}' ${pulseaudio.pulseDir}
# Fraunhofer recommends to enable afterburner but upstream has it set to false by default
substituteInPlace src/modules/bluetooth/a2dp/a2dp_aac.c \
--replace "info->aac_afterburner = false;" "info->aac_afterburner = true;"
'';
postFixup = ''
for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
orig_rpath=$(patchelf --print-rpath "$so")
patchelf \
--set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/${pulseaudio.pulseDir}/modules:$orig_rpath" \
"$so"
done
'';
meta = with lib; {
homepage = "https://github.com/EHfive/pulseaudio-modules-bt";
description = "LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support for Linux PulseAudio";
platforms = platforms.linux;
license = licenses.mit;
maintainers = with maintainers; [ adisbladis ];
};
}

View File

@ -1,11 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8d20dbf..63fe7ba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -213,5 +213,4 @@ INSTALL(TARGETS
module-bluez5-device
module-bluetooth-discover
module-bluetooth-policy
- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
-
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PULSE_DIR}/modules/)

View File

@ -34,6 +34,7 @@ qt5.mkDerivation {
description = "Turn your Android device into wireless headphones / wireless speaker"; description = "Turn your Android device into wireless headphones / wireless speaker";
homepage = "https://georgielabs.net/"; homepage = "https://georgielabs.net/";
maintainers = with maintainers; [ mkg20001 ]; maintainers = with maintainers; [ mkg20001 ];
platforms = [ "x86_64-linux" ];
license = licenses.unfree; license = licenses.unfree;
}; };
} }

View File

@ -32,7 +32,7 @@ buildDotnetModule rec {
preConfigure = '' preConfigure = ''
makeWrapperArgs+=( makeWrapperArgs+=(
--run "cd $out/lib/${pname}" --chdir "$out/lib/${pname}"
) )
''; '';

View File

@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
homepage = "https://pinegrow.com"; homepage = "https://pinegrow.com";
description = "UI Web Editor"; description = "UI Web Editor";
platforms = platforms.linux; platforms = [ "x86_64-linux" ];
license = with licenses; [ unfreeRedistributable ]; license = with licenses; [ unfreeRedistributable ];
maintainers = with maintainers; [ gador ]; maintainers = with maintainers; [ gador ];
}; };

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }: { lib, fetchFromGitHub }:
rec { rec {
version = "8.2.4350"; version = "8.2.4609";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim"; owner = "vim";
repo = "vim"; repo = "vim";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-+fCyLZi9+9r7tYoRQsVESkcoHHtM7vrVuOGdJi/9iF0="; sha256 = "sha256-IiWZJ4zT+VbcxwKChl847pS9jU9AlxZ/yQUIL8I2MhQ=";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -46,7 +46,7 @@ in mkDerivation {
# AwesomeBump expects to find Core and Configs in its current directory. # AwesomeBump expects to find Core and Configs in its current directory.
makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \ makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \
--run "cd $d" --chdir "$d"
''; '';
# $ cd Sources; qmake; make ../workdir/linux-g++-dgb-gl4/obj/glwidget.o # $ cd Sources; qmake; make ../workdir/linux-g++-dgb-gl4/obj/glwidget.o

View File

@ -27,7 +27,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
pyparsing pyparsing
pyqtgraph pyqtgraph
spyder spyder
pathpy path
qtconsole qtconsole
requests requests
]; ];

View File

@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \ cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \
../{config.json,Shaders,Skyboxes} $out/lib/foxotron/ ../{config.json,Shaders,Skyboxes} $out/lib/foxotron/
wrapProgram $out/lib/foxotron/Foxotron \ wrapProgram $out/lib/foxotron/Foxotron \
--run "cd $out/lib/foxotron" --chdir "$out/lib/foxotron"
ln -s $out/{lib/foxotron,bin}/Foxotron ln -s $out/{lib/foxotron,bin}/Foxotron
runHook postInstall runHook postInstall

View File

@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
description = "A Beautifully Designed Image and Photo Editor for Windows and Linux"; description = "A Beautifully Designed Image and Photo Editor for Windows and Linux";
homepage = "http://www.pixeluvo.com/"; homepage = "http://www.pixeluvo.com/";
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ wolfangaukang ]; maintainers = with maintainers; [ wolfangaukang ];
}; };
} }

View File

@ -97,7 +97,7 @@ in
mkdir -p $out/bin mkdir -p $out/bin
install -m 0755 valley $out/bin/valley install -m 0755 valley $out/bin/valley
wrapProgram $out/bin/valley \ wrapProgram $out/bin/valley \
--run "cd $instdir" \ --chdir "$instdir" \
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$instdir/bin:$libPath --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$instdir/bin:$libPath
runHook postInstall runHook postInstall

View File

@ -7,8 +7,9 @@ let
version = "1.3.24"; version = "1.3.24";
src = oldAttrs.src.override { src = oldAttrs.src.override {
inherit version; inherit version;
sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519"; hash = "sha256-67t3fL+TEjWbiXv4G6ANrg9ctp+6KhgmXcwYpvXvdRk=";
}; };
doCheck = false;
}); });
sqlalchemy-utils = super.sqlalchemy-utils.overridePythonAttrs (oldAttrs: rec { sqlalchemy-utils = super.sqlalchemy-utils.overridePythonAttrs (oldAttrs: rec {
version = "0.36.6"; version = "0.36.6";

View File

@ -74,6 +74,7 @@ mkDerivation rec {
description = "A viewer for PDF documents"; description = "A viewer for PDF documents";
homepage = "https://www.foxitsoftware.com/"; homepage = "https://www.foxitsoftware.com/";
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ p-h rhoriguchi ]; maintainers = with maintainers; [ p-h rhoriguchi ];
}; };
} }

View File

@ -101,7 +101,7 @@ python3Packages.buildPythonApplication rec {
--prefix "PATH" ":" "${lib.makeBinPath runTimeDeps}" --prefix "PATH" ":" "${lib.makeBinPath runTimeDeps}"
# Finally, move to directory that contains data # Finally, move to directory that contains data
--run "cd $out/share/${pname}" --chdir "$out/share/${pname}"
) )
''; '';

View File

@ -233,7 +233,7 @@ let
self: super: { self: super: {
falcon = super.falcon.overridePythonAttrs (oldAttrs: rec { falcon = super.falcon.overridePythonAttrs (oldAttrs: rec {
#pytestFlagsArray = [ "-W ignore::DeprecationWarning" ]; #pytestFlagsArray = [ "-W ignore::DeprecationWarning" ];
disabledTestPaths = oldAttrs.disabledTestPaths ++ [ disabledTestPaths = oldAttrs.disabledTestPaths or [] ++ [
"tests/asgi/test_asgi_servers.py" "tests/asgi/test_asgi_servers.py"
]; ];
}); });
@ -244,7 +244,7 @@ let
( (
self: super: { self: super: {
sanic = super.sanic.overridePythonAttrs (oldAttrs: rec { sanic = super.sanic.overridePythonAttrs (oldAttrs: rec {
disabledTestPaths = oldAttrs.disabledTestPaths ++ [ disabledTestPaths = oldAttrs.disabledTestPaths or [] ++ [
"test_cli.py" "test_cli.py"
"test_cookies.py" "test_cookies.py"
# requires network # requires network

View File

@ -41,7 +41,7 @@ in stdenv.mkDerivation rec {
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/${pname} \ makeWrapper ${jre}/bin/java $out/bin/${pname} \
--add-flags "-jar $out/share/java/${pname}/${pname}.jar" \ --add-flags "-jar $out/share/java/${pname}/${pname}.jar" \
--run "cd $out/share/java/${pname}" --chdir "$out/share/java/${pname}"
''; '';
meta = with lib; { meta = with lib; {

View File

@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
description = "Online freelancing platform desktop application for time tracking"; description = "Online freelancing platform desktop application for time tracking";
homepage = "https://www.upwork.com/ab/downloads/"; homepage = "https://www.upwork.com/ab/downloads/";
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ zakkor wolfangaukang ]; maintainers = with maintainers; [ zakkor wolfangaukang ];
}; };
} }

View File

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
postFixup = '' postFixup = ''
# this is needed, because xteddy expects images to reside # this is needed, because xteddy expects images to reside
# in the current working directory # in the current working directory
wrapProgram $out/bin/xteddy --run "cd $out/share/images/" wrapProgram $out/bin/xteddy --chdir "$out/share/images/"
''; '';
meta = with lib; { meta = with lib; {

View File

@ -61,7 +61,8 @@
, libwebp , libwebp
, nasm , nasm
, nspr , nspr
, nss , nss_esr
, nss_latest
, pango , pango
, xorg , xorg
, zip , zip
@ -356,7 +357,6 @@ buildStdenv.mkDerivation ({
libwebp libwebp
nasm nasm
nspr nspr
nss
pango pango
perl perl
xorg.libX11 xorg.libX11
@ -373,6 +373,7 @@ buildStdenv.mkDerivation ({
zip zip
zlib zlib
] ]
++ [ (if (lib.versionAtLeast version "92") then nss_latest else nss_esr) ]
++ lib.optional alsaSupport alsa-lib ++ lib.optional alsaSupport alsa-lib
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed ++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
++ lib.optional gssSupport libkrb5 ++ lib.optional gssSupport libkrb5

View File

@ -17,7 +17,12 @@ stdenv.mkDerivation rec {
src = fetchurl source; src = fetchurl source;
nativeBuildInputs = [ autoPatchelfHook ] ++ (if stdenv.isDarwin then [ unzip ] else [ dpkg ]); nativeBuildInputs = lib.optionals stdenv.isLinux [
autoPatchelfHook
dpkg
] ++ lib.optionals stdenv.isDarwin [
unzip
];
unpackPhase = if stdenv.isDarwin then "unzip $src" else "dpkg-deb -x $src ."; unpackPhase = if stdenv.isDarwin then "unzip $src" else "dpkg-deb -x $src .";

View File

@ -48,7 +48,7 @@ mkDerivation rec {
install -Dm755 ${src}/Ripcord $out/Ripcord install -Dm755 ${src}/Ripcord $out/Ripcord
patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord
makeQtWrapper $out/Ripcord $out/bin/ripcord \ makeQtWrapper $out/Ripcord $out/bin/ripcord \
--run "cd $out" \ --chdir "$out" \
--set FONTCONFIG_FILE "${fontsConf}" \ --set FONTCONFIG_FILE "${fontsConf}" \
--prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \ --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \
--prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \ --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \

View File

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
cp -rf * $out/lib/torchat cp -rf * $out/lib/torchat
makeWrapper ${python2}/bin/python $out/bin/torchat \ makeWrapper ${python2}/bin/python $out/bin/torchat \
--set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \ --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \
--run "cd $out/lib/torchat" \ --chdir "$out/lib/torchat" \
--add-flags "-O $out/lib/torchat/torchat.py" --add-flags "-O $out/lib/torchat/torchat.py"
''; '';

View File

@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
# Clear Qt paths to prevent tripping over "foreign" Qt resources. # Clear Qt paths to prevent tripping over "foreign" Qt resources.
# Clear Qt screen scaling settings to prevent over-scaling. # Clear Qt screen scaling settings to prevent over-scaling.
makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \ makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \
--run "cd $out/opt/zoom" \ --chdir "$out/opt/zoom" \
--unset QML2_IMPORT_PATH \ --unset QML2_IMPORT_PATH \
--unset QT_PLUGIN_PATH \ --unset QT_PLUGIN_PATH \
--unset QT_SCREEN_SCALE_FACTORS \ --unset QT_SCREEN_SCALE_FACTORS \

View File

@ -95,6 +95,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ toschmidt doronbehar ]; maintainers = with maintainers; [ toschmidt doronbehar ];
homepage = "https://getmailspring.com"; homepage = "https://getmailspring.com";
downloadPage = "https://github.com/Foundry376/Mailspring"; downloadPage = "https://github.com/Foundry376/Mailspring";
platforms = platforms.x86_64; platforms = [ "x86_64-linux" ];
}; };
} }

View File

@ -38,7 +38,7 @@
, adwaita-icon-theme , adwaita-icon-theme
, libGLU, libGL , libGLU, libGL
, nspr , nspr
, nss , nss_latest
, pango , pango
, pipewire , pipewire
, pciutils , pciutils
@ -132,7 +132,7 @@ stdenv.mkDerivation {
libnotify libnotify
libGLU libGL libGLU libGL
nspr nspr
nss nss_latest
pango pango
pipewire pipewire
pciutils pciutils

View File

@ -74,10 +74,10 @@ stdenv.mkDerivation rec {
makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \ makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \
--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \ --set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
--set QT_PLUGIN_PATH "${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}" \ --set QT_PLUGIN_PATH "${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}" \
--set _TRIBLERPATH $out/src \ --set _TRIBLERPATH "$out/src" \
--set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \ --set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
--set NO_AT_BRIDGE 1 \ --set NO_AT_BRIDGE 1 \
--run 'cd $_TRIBLERPATH' \ --chdir "$out/src" \
--add-flags "-O $out/src/run_tribler.py" --add-flags "-O $out/src/run_tribler.py"
mkdir -p $out/share/applications $out/share/icons mkdir -p $out/share/applications $out/share/icons

View File

@ -86,7 +86,7 @@ rustPlatform.buildRustPackage rec {
ln -s ${libsciter}/lib/libsciter-gtk.so $out/lib/rustdesk ln -s ${libsciter}/lib/libsciter-gtk.so $out/lib/rustdesk
makeWrapper $out/lib/rustdesk/rustdesk $out/bin/rustdesk \ makeWrapper $out/lib/rustdesk/rustdesk $out/bin/rustdesk \
--run "cd $out/share" --chdir "$out/share"
cp -a $src/src/ui $out/share/src cp -a $src/src/ui $out/share/src

View File

@ -1,4 +1,8 @@
{ lib, fetchFromGitHub, python3, makeWrapper }: { lib
, fetchFromGitHub
, python3
, makeWrapper
}:
let let
# Seahub 8.x.x does not support django-webpack-loader >=1.x.x # Seahub 8.x.x does not support django-webpack-loader >=1.x.x
python = python3.override { python = python3.override {
@ -25,9 +29,12 @@ python.pkgs.buildPythonApplication rec {
}; };
dontBuild = true; dontBuild = true;
doCheck = false; # disabled because it requires a ccnet environment doCheck = false; # disabled because it requires a ccnet environment
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [
makeWrapper
];
propagatedBuildInputs = with python.pkgs; [ propagatedBuildInputs = with python.pkgs; [
django django
@ -44,7 +51,7 @@ python.pkgs.buildPythonApplication rec {
djangorestframework djangorestframework
openpyxl openpyxl
requests requests
requests_oauthlib requests-oauthlib
pyjwt pyjwt
pycryptodome pycryptodome
qrcode qrcode
@ -65,10 +72,10 @@ python.pkgs.buildPythonApplication rec {
}; };
meta = with lib; { meta = with lib; {
homepage = "https://github.com/haiwen/seahub";
description = "The web end of seafile server"; description = "The web end of seafile server";
homepage = "https://github.com/haiwen/seahub";
license = licenses.asl20; license = licenses.asl20;
platforms = platforms.linux;
maintainers = with maintainers; [ greizgh schmittlauch ]; maintainers = with maintainers; [ greizgh schmittlauch ];
platforms = platforms.linux;
}; };
} }

View File

@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
description = "Share your internet connection from your device to your PC and vice versa through a USB cable"; description = "Share your internet connection from your device to your PC and vice versa through a USB cable";
homepage = "https://tetrd.app"; homepage = "https://tetrd.app";
license = licenses.unfree; license = licenses.unfree;
platforms = platforms.all; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ Madouura ]; maintainers = with maintainers; [ Madouura ];
}; };
} }

View File

@ -1,14 +1,26 @@
{ lib, python3 }: { lib, python3, fetchpatch }:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "fava"; pname = "fava";
version = "1.19"; version = "1.21";
format = "pyproject";
src = python3.pkgs.fetchPypi { src = python3.pkgs.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "def7c0210bf0ce8dfffdb46ce21b3efcf71eba5a4e903565258419e4c53c2d43"; sha256 = "sha256-0aFCKEjmXn6yddgNMi9t4rzqHcN7VBLoz3LEg9apmNY=";
}; };
patches = [
(fetchpatch {
# Update werkzeug compatibility
url = "https://github.com/beancount/fava/commit/5a99417a42e1d739b1e57fae2d01ff1d146dcbc2.patch";
hash = "sha256-Y6IcxZAcFJEYgT8/xBIABdkP+pUdQX1EgSS5uNdSJUE=";
excludes = [
".pre-commit-config.yaml"
];
})
];
nativeBuildInputs = with python3.pkgs; [ setuptools-scm ]; nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [

View File

@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
lib.optionalString stdenv.isDarwin ''-Xdock:name="Jameica" -XstartOnFirstThread'' lib.optionalString stdenv.isDarwin ''-Xdock:name="Jameica" -XstartOnFirstThread''
} de.willuhn.jameica.Main" \ } de.willuhn.jameica.Main" \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} \ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} \
--run "cd $out/share/java/" --chdir "$out/share/java/"
''; '';
meta = with lib; { meta = with lib; {

View File

@ -12,7 +12,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing"; NIX_CFLAGS_COMPILE = [
"-std=c++11"
(lib.optional stdenv.cc.isClang "-Wno-error=c++11-narrowing")
];
meta = with lib; { meta = with lib; {
description = "Computational Morphometry Toolkit "; description = "Computational Morphometry Toolkit ";

View File

@ -1,20 +1,27 @@
{ stdenv, lib, fetchhg, cmake, which, python3, osi, cplex }: { stdenv
, lib
, fetchFromGitHub
, cmake
, python3
, osi
, cplex
}:
stdenv.mkDerivation { stdenv.mkDerivation rec {
version = "19.12";
pname = "fast-downward"; pname = "fast-downward";
version = "21.12.0";
src = fetchhg { src = fetchFromGitHub {
url = "http://hg.fast-downward.org/"; owner = "aibasel";
rev = "41688a4f16b3"; repo = "downward";
sha256 = "08m4k1mkx4sz7c2ab7xh7ip6b67zxv7kl68xrvwa83xw1yigqkna"; rev = "release-${version}";
sha256 = "sha256-qc+SaUpIYm7bnOZlHH2mdvUaMBB+VRyOCQM/BOoOaPE=";
}; };
nativeBuildInputs = [ cmake which ]; nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
buildInputs = [ python3 python3.pkgs.wrapPython osi ]; buildInputs = [ python3 osi ];
cmakeFlags = cmakeFlags = lib.optional osi.withCplex [ "-DDOWNWARD_CPLEX_ROOT=${cplex}/cplex" ];
lib.optional osi.withCplex [ "-DDOWNWARD_CPLEX_ROOT=${cplex}/cplex" ];
configurePhase = '' configurePhase = ''
python build.py release python build.py release
@ -54,7 +61,7 @@ stdenv.mkDerivation {
description = "A domain-independent planning system"; description = "A domain-independent planning system";
homepage = "https://www.fast-downward.org/"; homepage = "https://www.fast-downward.org/";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = with platforms; (linux ++ darwin); platforms = platforms.unix;
maintainers = with maintainers; [ abbradar ]; maintainers = with maintainers; [ abbradar ];
}; };
} }

View File

@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
"$(find "$out/toolbox" -name jspawnhelper)" "$(find "$out/toolbox" -name jspawnhelper)"
makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \ makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
--run "set -x; cd $out/toolbox" \ --chdir "$out/toolbox" \
--add-flags "-data ~/.tla-toolbox" \ --add-flags "-data ~/.tla-toolbox" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}" \ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}" \
"''${gappsWrapperArgs[@]}" "''${gappsWrapperArgs[@]}"

View File

@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
buildInputs = [ wxGTK30 boost lua zlib bzip2 xylib readline buildInputs = [ wxGTK30 boost lua zlib bzip2 xylib readline
gnuplot swig3 ]; gnuplot swig3 ];
NIX_CFLAGS_COMPILE = [
"-std=c++11"
];
meta = { meta = {
description = "Curve fitting and peak fitting software"; description = "Curve fitting and peak fitting software";
license = lib.licenses.gpl2; license = lib.licenses.gpl2;

View File

@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
# launcher with `cd` is required b/c otherwise the model library isn't usable # launcher with `cd` is required b/c otherwise the model library isn't usable
makeWrapper "${jre}/bin/java" "$out/bin/netlogo" \ makeWrapper "${jre}/bin/java" "$out/bin/netlogo" \
--run "cd $out/share/netlogo/app" \ --chdir "$out/share/netlogo/app" \
--add-flags "-jar netlogo-${version}.jar" --add-flags "-jar netlogo-${version}.jar"
cp $src1 $out/share/icons/hicolor/256x256/apps/netlogo.png cp $src1 $out/share/icons/hicolor/256x256/apps/netlogo.png

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
mkdir $out/bin mkdir $out/bin
dos2unix $out/opt/sumorobot-manager/main.py dos2unix $out/opt/sumorobot-manager/main.py
makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \ makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \
--run "cd $out/opt/sumorobot-manager" --chdir "$out/opt/sumorobot-manager"
''; '';
preFixup = '' preFixup = ''

View File

@ -34,6 +34,8 @@ stdenv.mkDerivation rec {
homepage = "https://syncterm.bbsdev.net/"; homepage = "https://syncterm.bbsdev.net/";
description = "BBS terminal emulator"; description = "BBS terminal emulator";
maintainers = with maintainers; [ embr ]; maintainers = with maintainers; [ embr ];
platforms = platforms.unix;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
broken = stdenv.isDarwin; # error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin'
}; };
} }

View File

@ -18,6 +18,7 @@
, withLibsecret ? false , withLibsecret ? false
, pkg-config, glib, libsecret , pkg-config, glib, libsecret
, gzip # needed at runtime by gitweb.cgi , gzip # needed at runtime by gitweb.cgi
, withSsh ? false
}: }:
assert osxkeychainSupport -> stdenv.isDarwin; assert osxkeychainSupport -> stdenv.isDarwin;
@ -25,9 +26,8 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport; assert svnSupport -> perlSupport;
let let
version = "2.35.1"; version = "2.35.3";
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 ];
in in
@ -39,37 +39,37 @@ 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 = "100h37cpw49pmlpf6lcpm1xi578gllf6y9in60h5mxj3cj754s6p"; sha256 = "sha256-FenbT5vy7Z//MMtioAxcfAkBAV9asEjNtOiwTd7gD6I=";
}; };
outputs = [ "out" ] ++ lib.optional withManual "doc"; outputs = [ "out" ] ++ lib.optional withManual "doc";
separateDebugInfo = true;
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
enableParallelBuilding = true; enableParallelBuilding = true;
## Patch
patches = [ patches = [
./docbook2texi.patch ./docbook2texi.patch
./git-sh-i18n.patch ./git-sh-i18n.patch
./ssh-path.patch
./git-send-email-honor-PATH.patch ./git-send-email-honor-PATH.patch
./installCheck-path.patch ./installCheck-path.patch
] ++ lib.optionals withSsh [
./ssh-path.patch
]; ];
postPatch = '' postPatch = ''
for x in connect.c git-gui/lib/remote_add.tcl ; do
substituteInPlace "$x" \
--subst-var-by ssh "${openssh}/bin/ssh"
done
# Fix references to gettext introduced by ./git-sh-i18n.patch # Fix references to gettext introduced by ./git-sh-i18n.patch
substituteInPlace git-sh-i18n.sh \ substituteInPlace git-sh-i18n.sh \
--subst-var-by gettext ${gettext} --subst-var-by gettext ${gettext}
# ensure we are using the correct shell when executing the test scripts # ensure we are using the correct shell when executing the test scripts
patchShebangs t/*.sh patchShebangs t/*.sh
'' + lib.optionalString withSsh ''
for x in connect.c git-gui/lib/remote_add.tcl ; do
substituteInPlace "$x" \
--subst-var-by ssh "${openssh}/bin/ssh"
done
''; '';
nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ] nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]

View File

@ -115,7 +115,7 @@ let
ln -sfT /var/lib/epgstation/thumbnail thumbnail ln -sfT /var/lib/epgstation/thumbnail thumbnail
makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \ makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
--run "cd $out/lib/node_modules/epgstation" \ --chdir "$out/lib/node_modules/epgstation" \
--prefix PATH : ${lib.makeBinPath runtimeDeps} \ --prefix PATH : ${lib.makeBinPath runtimeDeps} \
--set APP_ROOT_PATH "$out/lib/node_modules/epgstation" --set APP_ROOT_PATH "$out/lib/node_modules/epgstation"

View File

@ -61,7 +61,7 @@ stdenvNoCC.mkDerivation rec {
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${mirakurun}/bin/mirakurun-epgdump $out/bin/mirakurun-epgdump \ makeWrapper ${mirakurun}/bin/mirakurun-epgdump $out/bin/mirakurun-epgdump \
--run "cd ${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \ --chdir "${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \
--prefix PATH : ${lib.makeBinPath runtimeDeps} --prefix PATH : ${lib.makeBinPath runtimeDeps}
# XXX: The original mirakurun command uses PM2 to manage the Mirakurun # XXX: The original mirakurun command uses PM2 to manage the Mirakurun
@ -70,7 +70,7 @@ stdenvNoCC.mkDerivation rec {
# unique to PM2 is currently being used. # unique to PM2 is currently being used.
makeWrapper ${yarn}/bin/yarn $out/bin/mirakurun-start \ makeWrapper ${yarn}/bin/yarn $out/bin/mirakurun-start \
--add-flags "start" \ --add-flags "start" \
--run "cd ${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \ --chdir "${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \
--prefix PATH : ${lib.makeBinPath runtimeDeps} --prefix PATH : ${lib.makeBinPath runtimeDeps}
''; '';

View File

@ -45,7 +45,19 @@ stdenv.mkDerivation rec {
# A strange type of bug: dbus is not immediately found by pkg-config # A strange type of bug: dbus is not immediately found by pkg-config
preConfigure = '' preConfigure = ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)" # binutils 2.37 fix
# https://github.com/afterstep/afterstep/issues/2
fixupList=(
"autoconf/Makefile.defines.in"
"libAfterImage/aftershow/Makefile.in"
"libAfterImage/apps/Makefile.in"
"libAfterBase/Makefile.in"
"libAfterImage/Makefile.in"
)
for toFix in "''${fixupList[@]}"; do
substituteInPlace "$toFix" --replace "clq" "cq"
done
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
''; '';
# Parallel build fails due to missing dependencies between private libaries: # Parallel build fails due to missing dependencies between private libaries:

View File

@ -18,6 +18,7 @@ assertExecutable() {
# --set-default VAR VAL : like --set, but only adds VAR if not already set in # --set-default VAR VAL : like --set, but only adds VAR if not already set in
# the environment # the environment
# --unset VAR : remove VAR from the environment # --unset VAR : remove VAR from the environment
# --chdir DIR : change working directory (use instead of --run "cd DIR")
# --run COMMAND : run command before the executable # --run COMMAND : run command before the executable
# --add-flags FLAGS : add FLAGS to invocation of executable # --add-flags FLAGS : add FLAGS to invocation of executable
@ -126,6 +127,10 @@ makeWrapper() {
varName="${params[$((n + 1))]}" varName="${params[$((n + 1))]}"
n=$((n + 1)) n=$((n + 1))
echo "unset $varName" >> "$wrapper" echo "unset $varName" >> "$wrapper"
elif [[ "$p" == "--chdir" ]]; then
dir="${params[$((n + 1))]}"
n=$((n + 1))
echo "cd ${dir@Q}" >> "$wrapper"
elif [[ "$p" == "--run" ]]; then elif [[ "$p" == "--run" ]]; then
command="${params[$((n + 1))]}" command="${params[$((n + 1))]}"
n=$((n + 1)) n=$((n + 1))

View File

@ -14,10 +14,6 @@ gappsWrapperArgsHook() {
gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE") gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE")
fi fi
if [ -n "$XDG_ICON_DIRS" ]; then
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS")
fi
if [ -n "$GSETTINGS_SCHEMAS_PATH" ]; then if [ -n "$GSETTINGS_SCHEMAS_PATH" ]; then
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH") gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH")
fi fi

View File

@ -515,15 +515,19 @@ rec {
* # setup hook that depends on the hello package and runs ./myscript.sh * # setup hook that depends on the hello package and runs ./myscript.sh
* myhellohook = makeSetupHook { deps = [ hello ]; } ./myscript.sh; * myhellohook = makeSetupHook { deps = [ hello ]; } ./myscript.sh;
* *
* # wrotes a setup hook where @bash@ myscript.sh is substituted for the * # writes a Linux-exclusive setup hook where @bash@ myscript.sh is substituted for the
* # bash interpreter. * # bash interpreter.
* myhellohookSub = makeSetupHook { * myhellohookSub = makeSetupHook {
* deps = [ hello ]; * deps = [ hello ];
* substitutions = { bash = "${pkgs.bash}/bin/bash"; }; * substitutions = { bash = "${pkgs.bash}/bin/bash"; };
* meta.platforms = lib.platforms.linux;
* } ./myscript.sh; * } ./myscript.sh;
*/ */
makeSetupHook = { name ? "hook", deps ? [], substitutions ? {} }: script: makeSetupHook = { name ? "hook", deps ? [], substitutions ? {}, meta ? {} }: script:
runCommand name substitutions runCommand name
(substitutions // {
inherit meta;
})
('' (''
mkdir -p $out/nix-support mkdir -p $out/nix-support
cp ${script} $out/nix-support/setup-hook cp ${script} $out/nix-support/setup-hook

View File

@ -20,7 +20,7 @@ let
blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist); blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings); extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
srcVersion = "3.74"; srcVersion = "3.77";
version = if nssOverride != null then nssOverride.version else srcVersion; version = if nssOverride != null then nssOverride.version else srcVersion;
meta = with lib; { meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html"; homepage = "https://curl.haxx.se/docs/caextract.html";
@ -35,7 +35,7 @@ let
src = if nssOverride != null then nssOverride.src else fetchurl { src = if nssOverride != null then nssOverride.src else fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz"; url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
sha256 = "0mnhdkm4galhpvfz4rv0918jwmjlwkvcvb1f5va8f3zlz48qi4l8"; sha256 = "1pfy33b51914sivqyaxdwfd930hzb77gm07z4f57hnyk5xddypl2";
}; };
dontBuild = true; dontBuild = true;

View File

@ -13,14 +13,11 @@
# As of this writing there are a few magnitudes more packages depending on # As of this writing there are a few magnitudes more packages depending on
# cacert than on nss. # cacert than on nss.
# #
# If the current nixpkgs revision contains the attribute `nss_latest` that will # We use `nss_latest` instead of `nss_esr`, because that is the newer version
# be used instead of `nss`. This is done to help the stable branch maintenance # and we want up-to-date certificates.
# where (usually) after branch-off during the first Firefox upgrade that # `nss_esr` is used for the ecosystem at large through the `nss` attribute,
# requries a new NSS version that attribute is introduced. # because it is updated less frequently and maintained for longer, whereas `nss_latest`
# By having this change in the unstable branch we can safely carry it from # is used for software that actually needs a new nss, e.g. Firefox.
# release to release without requiring more backport churn on those doing the
# stable maintenance.
set -ex set -ex
@ -28,7 +25,7 @@ BASEDIR="$(dirname "$0")/../../../.."
CURRENT_PATH=$(nix-build --no-out-link -A cacert.out) CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.override { nssOverride = nss_pkg; }).out") PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; (cacert.override { nssOverride = nss_latest; }).out")
# Check the hash of the etc subfolder # Check the hash of the etc subfolder
# We can't check the entire output as that contains the nix-support folder # We can't check the entire output as that contains the nix-support folder
@ -37,6 +34,6 @@ CURRENT_HASH=$(nix-hash "$CURRENT_PATH/etc")
PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc") PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc")
if [[ "$CURRENT_HASH" != "$PATCHED_HASH" ]]; then if [[ "$CURRENT_HASH" != "$PATCHED_HASH" ]]; then
NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss.version" | jq -r .) NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss_latest.version" | jq -r .)
update-source-version --version-key=srcVersion cacert.src "$NSS_VERSION" update-source-version --version-key=srcVersion cacert.src "$NSS_VERSION"
fi fi

View File

@ -19,7 +19,8 @@ let
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "dns-root-data-2019-01-11"; pname = "dns-root-data";
version = "2019-01-11";
buildCommand = '' buildCommand = ''
mkdir $out mkdir $out

View File

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl }: { lib, stdenv, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "freepats-20060219"; pname = "freepats";
version = "20060219";
src = fetchurl { src = fetchurl {
url = "https://freepats.zenvoid.org/${name}.tar.bz2"; url = "https://freepats.zenvoid.org/freepats-${version}.tar.bz2";
sha256 = "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"; sha256 = "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82";
}; };

View File

@ -56,6 +56,19 @@ in stdenv.mkDerivation rec {
"LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive" "LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive"
]; ];
preConfigure = ''
# binutils 2.37 fix
fixupList=(
"config/cf/Imake.tmpl"
"config/util/crayar.sh"
"config/util/crayar.sh"
"programs/dtwm/Makefile.tmpl"
)
for toFix in "''${fixupList[@]}"; do
substituteInPlace "$toFix" --replace "clq" "cq"
done
'';
preBuild = '' preBuild = ''
while IFS= read -r -d ''$'\0' i; do while IFS= read -r -d ''$'\0' i; do
substituteInPlace "$i" --replace /usr/dt $out/opt/dt substituteInPlace "$i" --replace /usr/dt $out/opt/dt

View File

@ -32,6 +32,7 @@
, mesa , mesa
, meson , meson
, gnome-settings-daemon , gnome-settings-daemon
, libxcvt
, xorgserver , xorgserver
, python3 , python3
, wrapGAppsHook , wrapGAppsHook
@ -99,7 +100,8 @@ let self = stdenv.mkDerivation rec {
pkg-config pkg-config
python3 python3
wrapGAppsHook wrapGAppsHook
xorgserver # for cvt command libxcvt
xorgserver
]; ];
buildInputs = [ buildInputs = [

View File

@ -33,6 +33,7 @@
, mesa , mesa
, meson , meson
, gnome-settings-daemon , gnome-settings-daemon
, libxcvt
, xorgserver , xorgserver
, python3 , python3
, wrapGAppsHook , wrapGAppsHook
@ -95,7 +96,8 @@ let self = stdenv.mkDerivation rec {
pkg-config pkg-config
python3 python3
wrapGAppsHook wrapGAppsHook
xorgserver # for cvt command libxcvt
xorgserver
]; ];
buildInputs = [ buildInputs = [

View File

@ -18,8 +18,9 @@ in stdenv.mkDerivation {
dontConfigure = true; dontConfigure = true;
dontBuild = true; dontBuild = true;
nativeBuildInputs = [ autoPatchelfHook ] nativeBuildInputs = lib.optionals hostPlatform.isLinux [
++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames; autoPatchelfHook
] ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames;
propagatedBuildInputs = [ curl tzdata ] ++ lib.optional hostPlatform.isLinux glibc; propagatedBuildInputs = [ curl tzdata ] ++ lib.optional hostPlatform.isLinux glibc;
installPhase = '' installPhase = ''

View File

@ -7,7 +7,6 @@
, perl , perl
, which , which
, pkg-config , pkg-config
, patch
, procps , procps
, pcre , pcre
, cacert , cacert
@ -63,7 +62,7 @@ stdenv.mkDerivation rec {
}; };
# perl is used for testing go vet # perl is used for testing go vet
nativeBuildInputs = [ perl which pkg-config patch procps ]; nativeBuildInputs = [ perl which pkg-config procps ];
buildInputs = [ cacert pcre ] buildInputs = [ cacert pcre ]
++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];

View File

@ -7,7 +7,6 @@
, perl , perl
, which , which
, pkg-config , pkg-config
, patch
, procps , procps
, pcre , pcre
, cacert , cacert
@ -55,15 +54,15 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "go"; pname = "go";
version = "1.17.8"; version = "1.17.9";
src = fetchurl { src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz"; url = "https://dl.google.com/go/go${version}.src.tar.gz";
sha256 = "sha256-Lv/NiYFA2nmgYfN4TKT42LE9gR+yq+na0kBEQtq733o="; sha256 = "sha256-djrUuvuAqSBEWMX6K45zJ/qXGu5FQlLA42LBEjYVaBM=";
}; };
# perl is used for testing go vet # perl is used for testing go vet
nativeBuildInputs = [ perl which pkg-config patch procps ]; nativeBuildInputs = [ perl which pkg-config procps ];
buildInputs = [ cacert pcre ] buildInputs = [ cacert pcre ]
++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];

View File

@ -7,7 +7,6 @@
, perl , perl
, which , which
, pkg-config , pkg-config
, patch
, procps , procps
, pcre , pcre
, cacert , cacert
@ -63,7 +62,7 @@ stdenv.mkDerivation rec {
}; };
# perl is used for testing go vet # perl is used for testing go vet
nativeBuildInputs = [ perl which pkg-config patch procps ]; nativeBuildInputs = [ perl which pkg-config procps ];
buildInputs = [ cacert pcre ] buildInputs = [ cacert pcre ]
++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];

View File

@ -17,7 +17,7 @@ buildDotnetModule rec {
sha256 = "00lagmwsbxap5mgnw4gndpavmv3xsgincdaq1zvw7fkc3vn3pxqc"; sha256 = "00lagmwsbxap5mgnw4gndpavmv3xsgincdaq1zvw7fkc3vn3pxqc";
}; };
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
buildInputs = [ stdenv.cc.cc.lib ]; buildInputs = [ stdenv.cc.cc.lib ];
projectFile = "inklecate/inklecate.csproj"; projectFile = "inklecate/inklecate.csproj";

View File

@ -18,8 +18,9 @@ in stdenv.mkDerivation {
dontConfigure = true; dontConfigure = true;
dontBuild = true; dontBuild = true;
nativeBuildInputs = [ autoPatchelfHook ] nativeBuildInputs = lib.optionals hostPlatform.isLinux [
++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames; autoPatchelfHook
] ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames;
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ];

View File

@ -244,6 +244,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -255,6 +255,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -242,6 +242,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -205,6 +205,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -200,6 +200,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -222,6 +222,12 @@ stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
'') versionSuffixes} '') versionSuffixes}
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -215,6 +215,12 @@ stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
'') versionSuffixes} '') versionSuffixes}
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -234,6 +234,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
'') versionSuffixes} '') versionSuffixes}
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -226,6 +226,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -241,6 +241,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -200,6 +200,12 @@ in stdenv.mkDerivation (rec {
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
'' ''
+ optionalString enableSharedLibraries ''
mkdir -p $dev/lib
mv $lib/lib/*.a $dev/lib
sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
"$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
''
+ optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
''; '';

View File

@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
sed -i 's/\$(shell git show --pretty=%H -s)/${rev}/' Makefile sed -i 's/\$(shell git show --pretty=%H -s)/${rev}/' Makefile
sed -i 's/\$(shell git symbolic-ref -q --short HEAD || git describe --tags --exact-match)/${tag}/' Makefile sed -i 's/\$(shell git symbolic-ref -q --short HEAD || git describe --tags --exact-match)/${tag}/' Makefile
sed -i 's/\$(shell git diff-index --quiet HEAD; echo $$?)/0/' Makefile sed -i 's/\$(shell git diff-index --quiet HEAD; echo $$?)/0/' Makefile
sed '1i#include <limits>' -i src/trans/codegen_c.cpp
''; '';
strictDeps = true; strictDeps = true;

View File

@ -1,64 +0,0 @@
# New rust versions should first go to staging.
# Things to check after updating:
# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
# This testing can be also done by other volunteers as part of the pull
# request review, in case platforms cannot be covered.
# 2. The LLVM version used for building should match with rust upstream.
# Check the version number in the src/llvm-project git submodule in:
# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
# 3. Firefox and Thunderbird should still build on x86_64-linux.
{ stdenv, lib
, buildPackages
, newScope, callPackage
, CoreFoundation, Security, SystemConfiguration
, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
, makeRustPlatform
, llvmPackages_11
, llvmPackages_13, llvm_13
} @ args:
import ./default.nix {
rustcVersion = "1.59.0";
rustcSha256 = "sha256-p8juruhb/O+EyWsCsxcdHmVA0VF5/4Pd3Z6vuhhfhfk=";
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
llvmSharedForTarget = pkgsBuildTarget.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
llvmBootstrapForDarwin = llvmPackages_11;
# For use at runtime
llvmShared = llvm_13.override { enableSharedLibraries = true; };
# Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_13;
# Note: the version MUST be one version prior to the version we're
# building
bootstrapVersion = "1.58.1";
# fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
bootstrapHashes = {
i686-unknown-linux-gnu = "c3d282cd96cc9e5292e62db1ebb9fa6d5b738f4684d5ece9883f7472e2f76ad4";
x86_64-unknown-linux-gnu = "4fac6df9ea49447682c333e57945bebf4f9f45ec7b08849e507a64b2ccd5f8fb";
x86_64-unknown-linux-musl = "7036e34eadc8ce22d16b0625919d9f2244ca49a5441d6599f4822116c181d272";
arm-unknown-linux-gnueabihf = "739389d46c5862b0e67d01dece99aa3db2229e055a3d7f7624679c55b6c33e06";
armv7-unknown-linux-gnueabihf = "6cede2c7795e8126b0f17b1032d52500e594bac64c7d190bdc0ac1c832ef30bd";
aarch64-unknown-linux-gnu = "ce557516593e4526709b0f33c2e1d7c932b3ddf76af94c2417d8d667921ce90c";
aarch64-unknown-linux-musl = "b1533fdeeda483a3633617fd18a79d8fad7821331614b8dc13efd8b22acc30f5";
x86_64-apple-darwin = "d0044680fc132a721481b130a0a4282a444867f423efdb890fe13e447966412f";
aarch64-apple-darwin = "00b44985bc87e53c53d92622fb10226f09e9f25c79db48a77c0a769a36f83b1e";
powerpc64le-unknown-linux-gnu = "b15baef702cbd6f0ea2bef7bf98ca7ce5644f2beb219028e8a12e7053da4c849";
riscv64gc-unknown-linux-gnu = "d8ea2b11a4b24d1169fa3190127488b951b8bdef28293a4129ddd46c0ba9469b";
mips64el-unknown-linux-gnuabi64 = "4f03bc972ae784d4f66cfa77215b369723531e67f647de9f49ce9fc21e5691af";
};
selectRustPackage = pkgs: pkgs.rust_1_59;
rustcPatches = [
];
}
(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_13" "llvm_13"])

View File

@ -0,0 +1,64 @@
# New rust versions should first go to staging.
# Things to check after updating:
# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
# This testing can be also done by other volunteers as part of the pull
# request review, in case platforms cannot be covered.
# 2. The LLVM version used for building should match with rust upstream.
# Check the version number in the src/llvm-project git submodule in:
# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
# 3. Firefox and Thunderbird should still build on x86_64-linux.
{ stdenv, lib
, buildPackages
, newScope, callPackage
, CoreFoundation, Security, SystemConfiguration
, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
, makeRustPlatform
, llvmPackages_11
, llvmPackages_14, llvm_14
} @ args:
import ./default.nix {
rustcVersion = "1.60.0";
rustcSha256 = "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0";
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
llvmSharedForTarget = pkgsBuildTarget.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
llvmBootstrapForDarwin = llvmPackages_11;
# For use at runtime
llvmShared = llvm_14.override { enableSharedLibraries = true; };
# Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_14;
# Note: the version MUST be one version prior to the version we're
# building
bootstrapVersion = "1.59.0";
# fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
bootstrapHashes = {
i686-unknown-linux-gnu = "f57ebfafed1e857b2b1dc1a22cf1133766f68a0759dc2f717dec54a8d4385dec";
x86_64-unknown-linux-gnu = "0c1c2da3fa26372e5178123aa5bb0fdcd4933fbad9bfb268ffbd71807182ecae";
x86_64-unknown-linux-musl = "c0ae76fa4bb0f1c85b86b9f7637db0fddf5084ce4c8f86c4d4acc3c41813201f";
arm-unknown-linux-gnueabihf = "f934ddd8533d5df922e3397a5d30404930c5992c6c91c72d3e1475e2978e8793";
armv7-unknown-linux-gnueabihf = "acb0f793c517de927b17e1c85135f6d58ae7430a8bd094a92009bcf0d4bbb8eb";
aarch64-unknown-linux-gnu = "ab5da30a3de5433e26cbc74c56b9d97b569769fc2e456fc54378adc8baaee4f0";
aarch64-unknown-linux-musl = "a3f8afdf23c98e6d25bf3b4bfcf5e9a4712f4c425f3754500931232d946204a9";
x86_64-apple-darwin = "d82204f536af0c7bfd2ea2213dc46b99911860cfc5517f7321244412ae96f159";
aarch64-apple-darwin = "5449ae915982967bae97746ce8bea30844f9ab40b4ee4da392b9997e0e7b2926";
powerpc64le-unknown-linux-gnu = "6892a706ea8118344a4f4624b57a99460a784b5b30cccd9df430c33008d341f3";
riscv64gc-unknown-linux-gnu = "e0cb22c2383d73b3928c17a630ae8d37f6787ddcea7871c9b3e21fd4560226b2";
mips64el-unknown-linux-gnuabi64 = "2e2c404741b1dd02b5d73361f187568a91a8531997ade41bd855eca3972e2a5b";
};
selectRustPackage = pkgs: pkgs.rust_1_60;
rustcPatches = [
];
}
(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_14" "llvm_14"])

View File

@ -1,13 +0,0 @@
--- a/src/tools/rustfmt/src/ignore_path.rs
+++ b/src/tools/rustfmt/src/ignore_path.rs
@@ -37,9 +37,9 @@
#[nightly_only_test]
#[test]
fn test_ignore_path_set() {
- use std::path::{Path, PathBuf};
use crate::config::{Config, FileName};
use crate::ignore_path::IgnorePathSet;
+ use std::path::{Path, PathBuf};
let config =
Config::from_toml(r#"ignore = ["foo.rs", "bar_dir/*"]"#, Path::new("")).unwrap();

View File

@ -21,9 +21,6 @@ rustPlatform.buildRustPackage rec {
CFG_RELEASE = rustPlatform.rust.rustc.version; CFG_RELEASE = rustPlatform.rust.rustc.version;
CFG_RELEASE_CHANNEL = if asNightly then "nightly" else "stable"; CFG_RELEASE_CHANNEL = if asNightly then "nightly" else "stable";
# FIXME: seems fixed upstream, remove after the next update
patches = [ ./rustfmt-fix-self-tests.patch ];
meta = with lib; { meta = with lib; {
description = "A tool for formatting Rust code according to style guidelines"; description = "A tool for formatting Rust code according to style guidelines";
homepage = "https://github.com/rust-lang-nursery/rustfmt"; homepage = "https://github.com/rust-lang-nursery/rustfmt";

View File

@ -61,18 +61,22 @@ in stdenv.mkDerivation {
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
autoPatchelfHook makeWrapper makeWrapper
] ++ lib.optionals stdenv.isLinux [
autoPatchelfHook
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
unzip unzip
]; ];
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out mkdir -p $out
cp -r ./* "$out/" cp -r ./* "$out/"
'' + lib.optionalString stdenv.isLinux ''
# jni.h expects jni_md.h to be in the header search path. # jni.h expects jni_md.h to be in the header search path.
ln -s $out/include/linux/*_md.h $out/include/ ln -s $out/include/linux/*_md.h $out/include/
'' + ''
mkdir -p $out/nix-support mkdir -p $out/nix-support
printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
@ -87,6 +91,8 @@ in stdenv.mkDerivation {
wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
fi fi
done done
'' + ''
runHook postInstall
''; '';
preFixup = '' preFixup = ''

View File

@ -63,12 +63,16 @@ in stdenv.mkDerivation {
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
autoPatchelfHook makeWrapper makeWrapper
] ++ lib.optionals stdenv.isLinux [
autoPatchelfHook
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
unzip unzip
]; ];
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out mkdir -p $out
cp -r ./* "$out/" cp -r ./* "$out/"
'' + lib.optionalString stdenv.isLinux '' '' + lib.optionalString stdenv.isLinux ''
@ -90,6 +94,8 @@ in stdenv.mkDerivation {
for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do
wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
done done
'' + ''
runHook postInstall
''; '';
preFixup = '' preFixup = ''

View File

@ -204,7 +204,7 @@ let
if [ -n "$subPackages" ]; then if [ -n "$subPackages" ]; then
echo "$subPackages" | sed "s,\(^\| \),\1./,g" echo "$subPackages" | sed "s,\(^\| \),\1./,g"
else else
find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique | grep -v "$exclude"
fi fi
} }
@ -221,7 +221,6 @@ let
export NIX_BUILD_CORES=1 export NIX_BUILD_CORES=1
fi fi
for pkg in $(getGoDirs ""); do for pkg in $(getGoDirs ""); do
grep -q "$exclude" <<<$pkg && continue
echo "Building subPackage $pkg" echo "Building subPackage $pkg"
buildGoDir install "$pkg" buildGoDir install "$pkg"
done done

View File

@ -184,7 +184,7 @@ let
echo "$subPackages" | sed "s,\(^\| \),\1$goPackagePath/,g" echo "$subPackages" | sed "s,\(^\| \),\1$goPackagePath/,g"
else else
pushd "$NIX_BUILD_TOP/go/src" >/dev/null pushd "$NIX_BUILD_TOP/go/src" >/dev/null
find "$goPackagePath" -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort | uniq find "$goPackagePath" -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort | uniq | grep -v "$exclude"
popd >/dev/null popd >/dev/null
fi fi
} }
@ -202,7 +202,6 @@ let
export NIX_BUILD_CORES=1 export NIX_BUILD_CORES=1
fi fi
for pkg in $(getGoDirs ""); do for pkg in $(getGoDirs ""); do
grep -q "$exclude" <<<$pkg && continue
echo "Building subPackage $pkg" echo "Building subPackage $pkg"
buildGoDir install "$pkg" buildGoDir install "$pkg"
done done

View File

@ -11,14 +11,16 @@ stdenv.mkDerivation rec {
buildInputs = [ readline gettext ncurses ]; buildInputs = [ readline gettext ncurses ];
# Needed with GCC 8
NIX_CFLAGS_COMPILE = with lib; toString ((optionals stdenv.cc.isGNU [ NIX_CFLAGS_COMPILE = with lib; toString ((optionals stdenv.cc.isGNU [
# Needed with GCC 8
"-Wno-error=int-in-bool-context" "-Wno-error=int-in-bool-context"
"-Wno-error=class-memaccess" "-Wno-error=class-memaccess"
"-Wno-error=restrict" "-Wno-error=restrict"
"-Wno-error=format-truncation" "-Wno-error=format-truncation"
# Needed with GCC 10 # Needed with GCC 10
"-Wno-error=maybe-uninitialized" "-Wno-error=maybe-uninitialized"
# Needed with GCC 11
"-Wno-error=misleading-indentation"
]) ++ optional stdenv.cc.isClang "-Wno-error=null-dereference"); ]) ++ optional stdenv.cc.isClang "-Wno-error=null-dereference");
patchPhase = lib.optionalString stdenv.isDarwin '' patchPhase = lib.optionalString stdenv.isDarwin ''

View File

@ -1,4 +1,4 @@
{ config, lib, stdenv, fetchurl, fetchpatch, fetchFromGitHub, pkgs, buildPackages { config, lib, stdenv, fetchurl, fetchFromGitHub, pkgs, buildPackages
, callPackage , callPackage
, enableThreading ? true, coreutils, makeWrapper , enableThreading ? true, coreutils, makeWrapper
, zlib , zlib
@ -41,14 +41,7 @@ let
] ]
++ optional stdenv.isSunOS ./ld-shared.patch ++ optional stdenv.isSunOS ./ld-shared.patch
++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ] ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
++ optionals crossCompiling [ ++ optional crossCompiling ./MakeMaker-cross.patch;
./MakeMaker-cross.patch
# https://github.com/arsv/perl-cross/pull/120
(fetchpatch {
url = "https://github.com/arsv/perl-cross/commit/3c318ae6572f8b36cb077c8b49c851e2f5fe181e.patch";
sha256 = "0cmcy8bams3c68f6xadl52z2w378wcpdjzi3qi4pcyvcfs011l6g";
})
];
# This is not done for native builds because pwd may need to come from # This is not done for native builds because pwd may need to come from
# bootstrap tools when building bootstrap perl. # bootstrap tools when building bootstrap perl.
@ -204,14 +197,14 @@ let
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`
}; };
} // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
crossVersion = "393821c7cf53774233aaf130ff2c8ccec701b0a9"; # Sep 22, 2021 crossVersion = "1.3.7"; # Mar 15, 2022
perl-cross-src = fetchFromGitHub { perl-cross-src = fetchFromGitHub {
name = "perl-cross-${crossVersion}"; name = "perl-cross-${crossVersion}";
owner = "arsv"; owner = "arsv";
repo = "perl-cross"; repo = "perl-cross";
rev = crossVersion; rev = crossVersion;
sha256 = "1fn35b1773aibi2z54m0mar7114737mvfyp81wkdwhakrmzr5nv1"; sha256 = "sha256-F7Vi3RAgIE/3NPlbD5zQ3Q8Ex9ddXTC4zoCRaOxXK0A=";
}; };
depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ]; depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@ -240,15 +233,15 @@ in {
perl534 = common { perl534 = common {
perl = pkgs.perl534; perl = pkgs.perl534;
buildPerl = buildPackages.perl534; buildPerl = buildPackages.perl534;
version = "5.34.0"; version = "5.34.1";
sha256 = "16mywn5afpv1mczv9dlc1w84rbgjgrr0pyr4c0hhb2wnif0zq7jm"; sha256 = "sha256-NXlRpJGwuhzjYRJjki/ux4zNWB3dwkpEawM+JazyQqE=";
}; };
# the latest Devel version # the latest Devel version
perldevel = common { perldevel = common {
perl = pkgs.perldevel; perl = pkgs.perldevel;
buildPerl = buildPackages.perldevel; buildPerl = buildPackages.perldevel;
version = "5.35.4"; version = "5.35.9";
sha256 = "1ss2r0qq5li6d2qghfv1iah5nl6nraymd7b7ib1iy1395rwyhl4q"; sha256 = "sha256-/nmSCIIXHXoC68DxFM9b5GM2AKU4WlLbfWLgduanL7U=";
}; };
} }

View File

@ -284,7 +284,7 @@ in with passthru; stdenv.mkDerivation {
CPPFLAGS = concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs); CPPFLAGS = concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs);
LDFLAGS = concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs); LDFLAGS = concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs);
LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"; LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"}";
NIX_LDFLAGS = lib.optionalString stdenv.cc.isGNU ({ NIX_LDFLAGS = lib.optionalString stdenv.cc.isGNU ({
"glibc" = "-lgcc_s"; "glibc" = "-lgcc_s";
"musl" = "-lgcc_eh"; "musl" = "-lgcc_eh";

View File

@ -124,19 +124,19 @@ with pkgs;
sourceVersion = { sourceVersion = {
major = "3"; major = "3";
minor = "9"; minor = "9";
patch = "11"; patch = "12";
suffix = ""; suffix = "";
}; };
sha256 = "sha256-ZnZ6NTCdck83DfnlA8FytO5ET0nWK5i8TspyUSPibEk="; sha256 = "sha256-LNlLIGcOQVnG2atX+R2/JVuX2MGhRR0cNfTsGWit+XE=";
}; };
python310 = { python310 = {
sourceVersion = { sourceVersion = {
major = "3"; major = "3";
minor = "10"; minor = "10";
patch = "3"; patch = "4";
suffix = ""; suffix = "";
}; };
sha256 = "sha256-WWxy3pmNw5IFvE9w7w2/ft7HQKMG0JtJqb0Kd4BnMNw="; sha256 = "sha256-gL+SX1cdpDazUhCIbPefbrX6XWxXExa3NWg0NFH3ehk=";
}; };
}; };

View File

@ -59,14 +59,9 @@ let
pname = "ruby"; pname = "ruby";
inherit version; inherit version;
src = if useRailsExpress then fetchFromGitHub { src = fetchurl {
owner = "ruby";
repo = "ruby";
rev = tag;
sha256 = sha256.git;
} else fetchurl {
url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz"; url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz";
sha256 = sha256.src; inherit sha256;
}; };
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
@ -100,17 +95,22 @@ let
patchLevel = ver.patchLevel; patchLevel = ver.patchLevel;
}).${ver.majMinTiny} }).${ver.majMinTiny}
++ op (lib.versionOlder ver.majMin "3.1") ./do-not-regenerate-revision.h.patch ++ op (lib.versionOlder ver.majMin "3.1") ./do-not-regenerate-revision.h.patch
++ op (atLeast30 && useRailsExpress) ./do-not-update-gems-baseruby.patch ++ op (atLeast30 && useBaseRuby) ./do-not-update-gems-baseruby.patch
# Ruby prior to 3.0 has a bug the installer (tools/rbinstall.rb) but ++ ops (!atLeast30 && rubygemsSupport) [
# the resulting error was swallowed. Newer rubygems no longer swallows # We upgrade rubygems to a version that isn't compatible with the
# this error. We upgrade rubygems when rubygemsSupport is enabled, so # ruby 2.7 installer. Backport the upstream fix.
# we have to fix this bug to prevent the install step from failing. ./rbinstall-new-rubygems-compat.patch
# See https://github.com/ruby/ruby/pull/2930
++ op (!atLeast30 && rubygemsSupport) # Ruby prior to 3.0 has a bug the installer (tools/rbinstall.rb) but
# the resulting error was swallowed. Newer rubygems no longer swallows
# this error. We upgrade rubygems when rubygemsSupport is enabled, so
# we have to fix this bug to prevent the install step from failing.
# See https://github.com/ruby/ruby/pull/2930
(fetchpatch { (fetchpatch {
url = "https://github.com/ruby/ruby/commit/261d8dd20afd26feb05f00a560abd99227269c1c.patch"; url = "https://github.com/ruby/ruby/commit/261d8dd20afd26feb05f00a560abd99227269c1c.patch";
sha256 = "0wrii25cxcz2v8bgkrf7ibcanjlxwclzhayin578bf0qydxdm9qy"; sha256 = "0wrii25cxcz2v8bgkrf7ibcanjlxwclzhayin578bf0qydxdm9qy";
}); })
];
postUnpack = opString rubygemsSupport '' postUnpack = opString rubygemsSupport ''
rm -rf $sourceRoot/{lib,test}/rubygems* rm -rf $sourceRoot/{lib,test}/rubygems*
@ -182,6 +182,11 @@ let
sed -i '/CC_VERSION_MESSAGE/d' $rbConfig sed -i '/CC_VERSION_MESSAGE/d' $rbConfig
'' ''
} }
# Remove unnecessary external intermediate files created by gems
extMakefiles=$(find $out/lib/ruby/gems -name Makefile)
for makefile in $extMakefiles; do
make -C "$(dirname "$makefile")" distclean
done
# Bundler tries to create this directory # Bundler tries to create this directory
mkdir -p $out/nix-support mkdir -p $out/nix-support
cat > $out/nix-support/setup-hook <<EOF cat > $out/nix-support/setup-hook <<EOF
@ -252,26 +257,17 @@ let
in { in {
ruby_2_7 = generic { ruby_2_7 = generic {
version = rubyVersion "2" "7" "5" ""; version = rubyVersion "2" "7" "6" "";
sha256 = { sha256 = "042xrdk7hsv4072bayz3f8ffqh61i8zlhvck10nfshllq063n877";
src = "1wc1hwmz4m6iqlmqag8liyld917p6a8dvnhnpd1v8d8jl80bjm97";
git = "16565fyl7141hr6q6d74myhsz46lvgam8ifnacshi68vzibwjbbh";
};
}; };
ruby_3_0 = generic { ruby_3_0 = generic {
version = rubyVersion "3" "0" "3" ""; version = rubyVersion "3" "0" "4" "";
sha256 = { sha256 = "0avj4g3s2839b2y4m6pk8kid74r8nj7k0qm2rsdcwjzhg8h7rd3h";
src = "1b4j39zyyvdkf1ax2c6qfa40b4mxfkr87zghhw19fmnzn8f8d1im";
git = "1q19w5i1jkfxn7qq6f9v9ngax9h52gxwijk7hp312dx6amwrkaim";
};
}; };
ruby_3_1 = generic { ruby_3_1 = generic {
version = rubyVersion "3" "1" "1" ""; version = rubyVersion "3" "1" "2" "";
sha256 = { sha256 = "0gm84ipk6mrfw94852w5h7xxk2lqrxjbnlwb88svf0lz70933131";
src = "sha256-/m5Hgt6XRDl43bqLpL440iKqJNw+PwKmqOdwHA7rYZ0=";
git = "sha256-76t/tGyK5nz7nvcRdHJTjjckU+Kv+/kbTMiNWJ93jU8=";
};
}; };
} }

View File

@ -1,15 +1,15 @@
{ patchSet, useRailsExpress, ops, patchLevel, fetchpatch }: { patchSet, useRailsExpress, ops, patchLevel, fetchpatch }:
{ {
"2.7.5" = ops useRailsExpress [ "2.7.6" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch" "${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
"${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch" "${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch"
]; ];
"3.0.3" = ops useRailsExpress [ "3.0.4" = ops useRailsExpress [
"${patchSet}/patches/ruby/3.0/head/railsexpress/01-improve-gc-stats.patch" "${patchSet}/patches/ruby/3.0/head/railsexpress/01-improve-gc-stats.patch"
"${patchSet}/patches/ruby/3.0/head/railsexpress/02-malloc-trim.patch" "${patchSet}/patches/ruby/3.0/head/railsexpress/02-malloc-trim.patch"
]; ];
"3.1.1" = ops useRailsExpress [ # no patches yet (2021-12-25) "3.1.2" = ops useRailsExpress [ # no patches yet (2021-12-25)
]; ];
} }

View File

@ -0,0 +1,87 @@
From 8e85d27f9ccfe152fc1b891c19f125915a907493 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Tue, 1 Oct 2019 12:03:33 +0200
Subject: [PATCH] Use `Gem::Package` like object instead of monkey patching.
1. This is similar to what RubyGems does and it is less magic [[1]].
2. It avoids deprecated code paths in RubyGems [[2]].
[1]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L151
[2]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L187
(cherry picked from commit e960ef6f18a25c637c54f00c75bb6c24f8ab55d0)
---
tool/rbinstall.rb | 47 +++++++++++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 20 deletions(-)
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index 060390626f..28ae8c409a 100755
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
@@ -710,28 +710,34 @@ def remove_prefix(prefix, string)
end
end
- class UnpackedInstaller < Gem::Installer
- module DirPackage
- def extract_files(destination_dir, pattern = "*")
- path = File.dirname(@gem.path)
- return if path == destination_dir
- File.chmod(0700, destination_dir)
- mode = pattern == "bin/*" ? $script_mode : $data_mode
- spec.files.each do |f|
- src = File.join(path, f)
- dest = File.join(without_destdir(destination_dir), f)
- makedirs(dest[/.*(?=\/)/m])
- install src, dest, :mode => mode
- end
- File.chmod($dir_mode, destination_dir)
+ class DirPackage
+ attr_reader :spec
+
+ attr_accessor :dir_mode
+ attr_accessor :prog_mode
+ attr_accessor :data_mode
+
+ def initialize(spec)
+ @spec = spec
+ @src_dir = File.dirname(@spec.loaded_from)
+ end
+
+ def extract_files(destination_dir, pattern = "*")
+ path = @src_dir
+ return if path == destination_dir
+ File.chmod(0700, destination_dir)
+ mode = pattern == "bin/*" ? $script_mode : $data_mode
+ spec.files.each do |f|
+ src = File.join(path, f)
+ dest = File.join(without_destdir(destination_dir), f)
+ makedirs(dest[/.*(?=\/)/m])
+ install src, dest, :mode => mode
end
+ File.chmod($dir_mode, destination_dir)
end
+ end
- def initialize(spec, *options)
- super(spec.loaded_from, *options)
- @package.extend(DirPackage).spec = spec
- end
-
+ class UnpackedInstaller < Gem::Installer
def write_cache_file
end
@@ -890,7 +896,8 @@ def install_default_gem(dir, srcdir)
if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}")
spec.extensions[0] ||= "-"
end
- ins = RbInstall::UnpackedInstaller.new(spec, options)
+ package = RbInstall::DirPackage.new spec
+ ins = RbInstall::UnpackedInstaller.new(package, options)
puts "#{INDENT}#{spec.name} #{spec.version}"
ins.install
File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
--
2.35.1

View File

@ -22,6 +22,9 @@
, waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid , waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, wayland , wayland
, wayland-protocols , wayland-protocols
, drmSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, libdrm
, mesa
, libxkbcommon , libxkbcommon
, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid , dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, dbus , dbus
@ -92,7 +95,8 @@ stdenv.mkDerivation rec {
++ optional pulseaudioSupport libpulseaudio ++ optional pulseaudioSupport libpulseaudio
++ optional udevSupport udev ++ optional udevSupport udev
++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]; ++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]
++ optionals drmSupport [ libdrm mesa ];
buildInputs = [ libiconv ] buildInputs = [ libiconv ]
++ dlopenBuildInputs ++ dlopenBuildInputs

View File

@ -0,0 +1,66 @@
{ config
, lib
, stdenv
, fetchurl
, zlib
, pkg-config
, mpg123
, libogg
, libvorbis
, portaudio
, libsndfile
, flac
, usePulseAudio ? config.pulseaudio or stdenv.isLinux
, libpulseaudio
}:
stdenv.mkDerivation rec {
pname = "libopenmpt";
version = "0.6.2";
outputs = [ "out" "dev" "bin" ];
src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
sha256 = "1dp645gg6d3pzjh82srq1d7qvyxi5h22k7yfdjiyzbyry8pxdh2h";
};
enableParallelBuilding = true;
nativeBuildInputs = [
pkg-config
];
buildInputs = [
zlib
mpg123
libogg
libvorbis
portaudio
libsndfile
flac
] ++ lib.optional usePulseAudio libpulseaudio;
configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
doCheck = true;
postFixup = ''
moveToOutput share/doc $dev
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Cross-platform C++ and C library to decode tracked music files into a raw PCM audio stream";
longDescription = ''
libopenmpt is a cross-platform C++ and C library to decode tracked music files (modules) into a raw PCM audio stream.
openmpt123 is a cross-platform command-line or terminal based module file player.
libopenmpt is based on the player code of the OpenMPT project.
'';
homepage = "https://lib.openmpt.org/libopenmpt/";
license = licenses.bsd3;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.unix;
};
}

View File

@ -0,0 +1,31 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts curl xmlstarlet
attr=libopenmpt
set -eu -o pipefail
# Get update notifications, remove updates for libopenmpt-modplug, find latest eligible & extract versions
versions="$(
curl -s 'https://lib.openmpt.org/libopenmpt/feed.xml' |
xmlstarlet sel -N atom="http://www.w3.org/2005/Atom" -t -m /atom:feed/atom:entry -v atom:title -n |
grep -v 'libopenmpt-modplug' | head -n1 |
grep -Eo '([0-9][^,\s]+)' | tr '\n' ' '
)"
echo "Latest $attr versions: $versions"
# Find a version that is > current version and not a rc
# rc's have different download path and a full release will usually follow shortly
currentVersion="$(nix-instantiate --eval -E "with import ./. {}; $attr.version" | tr -d '"')"
echo "Current $attr version: $currentVersion"
for version in $versions; do
(echo "$version" | grep -q 'rc') && continue
[ "$version" = "$(printf '%s\n%s' "$version" "$currentVersion" | sort -V | head -n1)" ] && continue
echo "Updating to $version. Please check if other versions qualify for backport to stable!"
update-source-version "$attr" "$version"
exit 0
done
echo "No version eligible for bump."
exit 0

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