Merge #135477: branch 'staging-next'

This commit is contained in:
Vladimír Čunát 2021-09-15 08:35:08 +02:00
commit ff94eef5c1
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
642 changed files with 6486 additions and 4090 deletions

View File

@ -16,7 +16,7 @@ How to add a new (major) version of the Linux kernel to Nixpkgs:
1. Copy the old Nix expression (e.g. `linux-2.6.21.nix`) to the new one (e.g. `linux-2.6.22.nix`) and update it. 1. Copy the old Nix expression (e.g. `linux-2.6.21.nix`) to the new one (e.g. `linux-2.6.22.nix`) and update it.
2. Add the new kernel to `all-packages.nix` (e.g., create an attribute `kernel_2_6_22`). 2. Add the new kernel to the `kernels` attribute set in `linux-kernels.nix` (e.g., create an attribute `kernel_2_6_22`).
3. Now were going to update the kernel configuration. First unpack the kernel. Then for each supported platform (`i686`, `x86_64`, `uml`) do the following: 3. Now were going to update the kernel configuration. First unpack the kernel. Then for each supported platform (`i686`, `x86_64`, `uml`) do the following:
@ -36,6 +36,6 @@ How to add a new (major) version of the Linux kernel to Nixpkgs:
5. Copy `.config` over the new config file (e.g. `config-2.6.22-i686-smp`). 5. Copy `.config` over the new config file (e.g. `config-2.6.22-i686-smp`).
4. Test building the kernel: `nix-build -A kernel_2_6_22`. If it compiles, ship it! For extra credit, try booting NixOS with it. 4. Test building the kernel: `nix-build -A linuxKernel.kernels.kernel_2_6_22`. If it compiles, ship it! For extra credit, try booting NixOS with it.
5. It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the `linuxPackagesFor` function in `all-packages.nix` (such as the NVIDIA drivers, AUFS, etc.). If the updated packages arent backwards compatible with older kernels, you may need to keep the older versions around. 5. It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the `linuxPackagesFor` function in `linux-kernels.nix` (such as the NVIDIA drivers, AUFS, etc.). If the updated packages arent backwards compatible with older kernels, you may need to keep the older versions around.

View File

@ -5,13 +5,18 @@ option `boot.kernelPackages`. For instance, this selects the Linux 3.10
kernel: kernel:
```nix ```nix
boot.kernelPackages = pkgs.linuxPackages_3_10; boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10;
``` ```
Note that this not only replaces the kernel, but also packages that are Note that this not only replaces the kernel, but also packages that are
specific to the kernel version, such as the NVIDIA video drivers. This specific to the kernel version, such as the NVIDIA video drivers. This
ensures that driver packages are consistent with the kernel. ensures that driver packages are consistent with the kernel.
While `pkgs.linuxKernel.packages` contains all available kernel packages,
you may want to use one of the unversioned `pkgs.linuxPackages_*` aliases
such as `pkgs.linuxPackages_latest`, that are kept up to date with new
versions.
The default Linux kernel configuration should be fine for most users. The default Linux kernel configuration should be fine for most users.
You can see the configuration of your current kernel with the following You can see the configuration of your current kernel with the following
command: command:
@ -25,14 +30,13 @@ If you want to change the kernel configuration, you can use the
instance, to enable support for the kernel debugger KGDB: instance, to enable support for the kernel debugger KGDB:
```nix ```nix
nixpkgs.config.packageOverrides = pkgs: nixpkgs.config.packageOverrides = pkgs: pkgs.lib.recursiveUpdate pkgs {
{ linux_3_4 = pkgs.linux_3_4.override { linuxKernel.kernels.linux_5_10 = pkgs.linuxKernel.kernels.linux_5_10.override {
extraConfig = extraConfig = ''
''
KGDB y KGDB y
''; '';
}; };
}; };
``` ```
`extraConfig` takes a list of Linux kernel configuration options, one `extraConfig` takes a list of Linux kernel configuration options, one
@ -72,13 +76,14 @@ available parameters, run `sysctl -a`.
The first step before compiling the kernel is to generate an appropriate The first step before compiling the kernel is to generate an appropriate
`.config` configuration. Either you pass your own config via the `.config` configuration. Either you pass your own config via the
`configfile` setting of `linuxManualConfig`: `configfile` setting of `linuxKernel.manualConfig`:
```nix ```nix
custom-kernel = super.linuxManualConfig { custom-kernel = let base_kernel = linuxKernel.kernels.linux_4_9;
in super.linuxKernel.manualConfig {
inherit (super) stdenv hostPlatform; inherit (super) stdenv hostPlatform;
inherit (linux_4_9) src; inherit (base_kernel) src;
version = "${linux_4_9.version}-custom"; version = "${base_kernel.version}-custom";
configfile = /home/me/my_kernel_config; configfile = /home/me/my_kernel_config;
allowImportFromDerivation = true; allowImportFromDerivation = true;

View File

@ -6,7 +6,7 @@
selects the Linux 3.10 kernel: selects the Linux 3.10 kernel:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
boot.kernelPackages = pkgs.linuxPackages_3_10; boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10;
</programlisting> </programlisting>
<para> <para>
Note that this not only replaces the kernel, but also packages that Note that this not only replaces the kernel, but also packages that
@ -14,6 +14,13 @@ boot.kernelPackages = pkgs.linuxPackages_3_10;
drivers. This ensures that driver packages are consistent with the drivers. This ensures that driver packages are consistent with the
kernel. kernel.
</para> </para>
<para>
While <literal>pkgs.linuxKernel.packages</literal> contains all
available kernel packages, you may want to use one of the
unversioned <literal>pkgs.linuxPackages_*</literal> aliases such as
<literal>pkgs.linuxPackages_latest</literal>, that are kept up to
date with new versions.
</para>
<para> <para>
The default Linux kernel configuration should be fine for most The default Linux kernel configuration should be fine for most
users. You can see the configuration of your current kernel with the users. You can see the configuration of your current kernel with the
@ -29,14 +36,13 @@ zcat /proc/config.gz
enable support for the kernel debugger KGDB: enable support for the kernel debugger KGDB:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
nixpkgs.config.packageOverrides = pkgs: nixpkgs.config.packageOverrides = pkgs: pkgs.lib.recursiveUpdate pkgs {
{ linux_3_4 = pkgs.linux_3_4.override { linuxKernel.kernels.linux_5_10 = pkgs.linuxKernel.kernels.linux_5_10.override {
extraConfig = extraConfig = ''
''
KGDB y KGDB y
''; '';
}; };
}; };
</programlisting> </programlisting>
<para> <para>
<literal>extraConfig</literal> takes a list of Linux kernel <literal>extraConfig</literal> takes a list of Linux kernel
@ -82,13 +88,14 @@ boot.kernel.sysctl.&quot;net.ipv4.tcp_keepalive_time&quot; = 120;
The first step before compiling the kernel is to generate an The first step before compiling the kernel is to generate an
appropriate <literal>.config</literal> configuration. Either you appropriate <literal>.config</literal> configuration. Either you
pass your own config via the <literal>configfile</literal> setting pass your own config via the <literal>configfile</literal> setting
of <literal>linuxManualConfig</literal>: of <literal>linuxKernel.manualConfig</literal>:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
custom-kernel = super.linuxManualConfig { custom-kernel = let base_kernel = linuxKernel.kernels.linux_4_9;
in super.linuxKernel.manualConfig {
inherit (super) stdenv hostPlatform; inherit (super) stdenv hostPlatform;
inherit (linux_4_9) src; inherit (base_kernel) src;
version = &quot;${linux_4_9.version}-custom&quot;; version = &quot;${base_kernel.version}-custom&quot;;
configfile = /home/me/my_kernel_config; configfile = /home/me/my_kernel_config;
allowImportFromDerivation = true; allowImportFromDerivation = true;

View File

@ -983,6 +983,20 @@ Superuser created successfully.
<section xml:id="sec-release-21.11-notable-changes"> <section xml:id="sec-release-21.11-notable-changes">
<title>Other Notable Changes</title> <title>Other Notable Changes</title>
<itemizedlist> <itemizedlist>
<listitem>
<para>
The linux kernel package infrastructure was moved out of
<literal>all-packages.nix</literal>, and restructured. Linux
related functions and attributes now live under the
<literal>pkgs.linuxKernel</literal> attribute set. In
particular the versioned <literal>linuxPackages_*</literal>
package sets (such as <literal>linuxPackages_5_4</literal>)
and kernels from <literal>pkgs</literal> were moved there and
now live under <literal>pkgs.linuxKernel.packages.*</literal>.
The unversioned ones (such as
<literal>linuxPackages_latest</literal>) remain untouched.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The setting The setting
@ -1171,6 +1185,24 @@ Superuser created successfully.
but instead use more of the YAML-specific syntax. but instead use more of the YAML-specific syntax.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
MariaDB was upgraded from 10.5.x to 10.6.x. Please read the
<link xlink:href="https://mariadb.com/kb/en/changes-improvements-in-mariadb-106/">upstream
release notes</link> for changes and upgrade instructions.
</para>
</listitem>
<listitem>
<para>
The MariaDB C client library, also known as libmysqlclient or
mariadb-connector-c, was upgraded from 3.1.x to 3.2.x. While
this should hopefully not have any impact, this upgrade comes
with some changes to default behavior, so you might want to
review the
<link xlink:href="https://mariadb.com/kb/en/changes-and-improvements-in-mariadb-connector-c-32/">upstream
release notes</link>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
GNOME desktop environment now enables GNOME desktop environment now enables

View File

@ -302,6 +302,9 @@ To be able to access the web UI this port needs to be opened in the firewall.
## Other Notable Changes {#sec-release-21.11-notable-changes} ## Other Notable Changes {#sec-release-21.11-notable-changes}
- The linux kernel package infrastructure was moved out of `all-packages.nix`, and restructured. Linux related functions and attributes now live under the `pkgs.linuxKernel` attribute set.
In particular the versioned `linuxPackages_*` package sets (such as `linuxPackages_5_4`) and kernels from `pkgs` were moved there and now live under `pkgs.linuxKernel.packages.*`. The unversioned ones (such as `linuxPackages_latest`) remain untouched.
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets. - The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
However, if [`services.fail2ban.enable`](options.html#opt-services.fail2ban.enable) is `true`, the `fail2ban` will override the verbosity to `"VERBOSE"`, so that `fail2ban` can observe the failed login attempts from the SSH logs. However, if [`services.fail2ban.enable`](options.html#opt-services.fail2ban.enable) is `true`, the `fail2ban` will override the verbosity to `"VERBOSE"`, so that `fail2ban` can observe the failed login attempts from the SSH logs.
@ -352,6 +355,10 @@ To be able to access the web UI this port needs to be opened in the firewall.
- `lib.formats.yaml`'s `generate` will not generate JSON anymore, but instead use more of the YAML-specific syntax. - `lib.formats.yaml`'s `generate` will not generate JSON anymore, but instead use more of the YAML-specific syntax.
- MariaDB was upgraded from 10.5.x to 10.6.x. Please read the [upstream release notes](https://mariadb.com/kb/en/changes-improvements-in-mariadb-106/) for changes and upgrade instructions.
- The MariaDB C client library, also known as libmysqlclient or mariadb-connector-c, was upgraded from 3.1.x to 3.2.x. While this should hopefully not have any impact, this upgrade comes with some changes to default behavior, so you might want to review the [upstream release notes](https://mariadb.com/kb/en/changes-and-improvements-in-mariadb-connector-c-32/).
- GNOME desktop environment now enables `QGnomePlatform` as the Qt platform theme, which should avoid crashes when opening file chooser dialogs in Qt apps by using XDG desktop portal. Additionally, it will make the apps fit better visually. - GNOME desktop environment now enables `QGnomePlatform` as the Qt platform theme, which should avoid crashes when opening file chooser dialogs in Qt apps by using XDG desktop portal. Additionally, it will make the apps fit better visually.
- `rofi` has been updated from '1.6.1' to '1.7.0', one important thing is the removal of the old xresources based configuration setup. Read more [in rofi's changelog](https://github.com/davatorium/rofi/blob/cb12e6fc058f4a0f4f/Changelog#L1). - `rofi` has been updated from '1.6.1' to '1.7.0', one important thing is the removal of the old xresources based configuration setup. Read more [in rofi's changelog](https://github.com/davatorium/rofi/blob/cb12e6fc058f4a0f4f/Changelog#L1).

View File

@ -93,7 +93,7 @@ in
boot.initrd.availableKernelModules = boot.initrd.availableKernelModules =
[ "vfat" "reiserfs" ]; [ "vfat" "reiserfs" ];
boot.kernelPackages = pkgs.linuxPackages_3_10; boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10;
boot.kernelParams = [ "console=tty1" ]; boot.kernelParams = [ "console=tty1" ];
boot.postBootCommands = boot.postBootCommands =

View File

@ -114,7 +114,7 @@ in
# To be able to use the systemTarball to catch troubles. # To be able to use the systemTarball to catch troubles.
boot.crashDump = { boot.crashDump = {
enable = true; enable = true;
kernelPackages = pkgs.linuxPackages_3_4; kernelPackages = pkgs.linuxKernel.packages.linux_3_4;
}; };
# No grub for the tarball. # No grub for the tarball.

View File

@ -111,7 +111,7 @@ in
# "console=ttyS0,115200n8" # serial console # "console=ttyS0,115200n8" # serial console
]; ];
boot.kernelPackages = pkgs.linuxPackages_3_4; boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_4;
boot.supportedFilesystems = [ "reiserfs" ]; boot.supportedFilesystems = [ "reiserfs" ];

View File

@ -12,7 +12,7 @@
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.consoleLogLevel = lib.mkDefault 7; boot.consoleLogLevel = lib.mkDefault 7;
boot.kernelPackages = pkgs.linuxPackages_rpi1; boot.kernelPackages = pkgs.linuxKernel.packages.linux_rpi1;
sdImage = { sdImage = {
populateFirmwareCommands = let populateFirmwareCommands = let

View File

@ -73,6 +73,7 @@ in
services.automysqlbackup.config = mapAttrs (name: mkDefault) { services.automysqlbackup.config = mapAttrs (name: mkDefault) {
mysql_dump_username = user; mysql_dump_username = user;
mysql_dump_host = "localhost"; mysql_dump_host = "localhost";
mysql_dump_socket = "/run/mysqld/mysqld.sock";
backup_dir = "/var/backup/mysql"; backup_dir = "/var/backup/mysql";
db_exclude = [ "information_schema" "performance_schema" ]; db_exclude = [ "information_schema" "performance_schema" ];
mailcontent = "stdout"; mailcontent = "stdout";

View File

@ -47,7 +47,7 @@ in
# We don't want to evaluate all of linuxPackages for the manual # We don't want to evaluate all of linuxPackages for the manual
# - some of it might not even evaluate correctly. # - some of it might not even evaluate correctly.
defaultText = "pkgs.linuxPackages"; defaultText = "pkgs.linuxPackages";
example = literalExample "pkgs.linuxPackages_2_6_25"; example = literalExample "pkgs.linuxKernel.packages.linux_5_10";
description = '' description = ''
This option allows you to override the Linux kernel used by This option allows you to override the Linux kernel used by
NixOS. Since things like external kernel module packages are NixOS. Since things like external kernel module packages are

View File

@ -26,6 +26,13 @@ let chia = python3Packages.buildPythonApplication rec {
}) })
]; ];
postPatch = ''
substituteInPlace setup.py \
--replace "==" ">="
ln -sf ${cacert}/etc/ssl/certs/ca-bundle.crt mozilla-ca/cacert.pem
'';
nativeBuildInputs = [ nativeBuildInputs = [
python3Packages.setuptools-scm python3Packages.setuptools-scm
]; ];
@ -75,17 +82,6 @@ let chia = python3Packages.buildPythonApplication rec {
"test_using_legacy_keyring" "test_using_legacy_keyring"
]; ];
postPatch = ''
# tweak version requirements to what's available in Nixpkgs
substituteInPlace setup.py \
--replace "aiohttp==3.7.4" "aiohttp>=3.7.4" \
--replace "sortedcontainers==2.3.0" "sortedcontainers>=2.3.0" \
--replace "click==7.1.2" "click>=7.1.2" \
--replace "clvm==0.9.7" "clvm>=0.9.7" \
ln -sf ${cacert}/etc/ssl/certs/ca-bundle.crt mozilla-ca/cacert.pem
'';
preCheck = '' preCheck = ''
export HOME=`mktemp -d` export HOME=`mktemp -d`
''; '';

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }: { lib, fetchFromGitHub }:
rec { rec {
version = "8.2.2567"; version = "8.2.3337";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim"; owner = "vim";
repo = "vim"; repo = "vim";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-FS3TZX7FKnnNpGYKbng2LIfWA9z2jqg7d2HC6t3xYTU="; sha256 = "sha256-iwSGcLeqXH0bVIXEI5OnotG88Uv8ntycisD9EcHjz/c=";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -10,11 +10,11 @@
mkDerivation rec { mkDerivation rec {
pname = "krita"; pname = "krita";
version = "4.4.5"; version = "4.4.7";
src = fetchurl { src = fetchurl {
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz"; url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz";
sha256 = "sha256-S/1ygIcNEGCgDREj2Db8Gltb+KAoZ2Z58CaM1ef7dWg="; sha256 = "sha256-I6fFxPRCcRU5dyFXZPvGvTb9MuGikrvTaGCXpp4LRRk=";
}; };
nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip_4 makeWrapper ]; nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip_4 makeWrapper ];

View File

@ -3,8 +3,8 @@
extra-cmake-modules, extra-cmake-modules,
qtwebengine, qtwebengine,
grantlee, grantleetheme, grantlee, grantleetheme,
kdbusaddons, ki18n, kiconthemes, kio, kitemmodels, ktextwidgets, prison, kcmutils, kdbusaddons, ki18n, kiconthemes, kio, kitemmodels, ktextwidgets,
akonadi, akonadi-mime, kcontacts, kmime, libkleo, prison, akonadi, akonadi-mime, kcontacts, kmime, libkleo,
}: }:
mkDerivation { mkDerivation {
@ -17,7 +17,7 @@ mkDerivation {
buildInputs = [ buildInputs = [
qtwebengine qtwebengine
grantlee grantleetheme grantlee grantleetheme
kdbusaddons ki18n kiconthemes kio kitemmodels ktextwidgets prison kcmutils kdbusaddons ki18n kiconthemes kio kitemmodels ktextwidgets prison
akonadi-mime kcontacts kmime libkleo akonadi-mime kcontacts kmime libkleo
]; ];
propagatedBuildInputs = [ akonadi ]; propagatedBuildInputs = [ akonadi ];

View File

@ -1 +1 @@
WGET_ARGS=( http://download.kde.org/stable/release-service/21.04.0/src -A '*.tar.xz' ) WGET_ARGS=( http://download.kde.org/stable/release-service/21.08.0/src -A '*.tar.xz' )

View File

@ -19,12 +19,15 @@
, makeWrapper , makeWrapper
, pulseaudio-qt , pulseaudio-qt
, qca-qt5 , qca-qt5
, qqc2-desktop-style
, qtgraphicaleffects , qtgraphicaleffects
, qtmultimedia , qtmultimedia
, qtquickcontrols2 , qtquickcontrols2
, qtx11extras , qtx11extras
, breeze-icons , breeze-icons
, sshfs , sshfs
, wayland
, wayland-scanner
}: }:
mkDerivation { mkDerivation {
@ -46,10 +49,13 @@ mkDerivation {
libfakekey libfakekey
pulseaudio-qt pulseaudio-qt
qca-qt5 qca-qt5
qqc2-desktop-style
qtgraphicaleffects qtgraphicaleffects
qtmultimedia qtmultimedia
qtquickcontrols2 qtquickcontrols2
qtx11extras qtx11extras
wayland
wayland-scanner
# otherwise buttons are blank on non-kde # otherwise buttons are blank on non-kde
breeze-icons breeze-icons
]; ];

File diff suppressed because it is too large Load Diff

View File

@ -9,13 +9,13 @@
mkDerivation rec { mkDerivation rec {
pname = "moolticute"; pname = "moolticute";
version = "0.45.0"; version = "0.50.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mooltipass"; owner = "mooltipass";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-azJ63NI0wzzv3acgoPaeF+lTM1WKpXg595FrK908k1U="; sha256 = "sha256-/luba+qYRATP3EjNMB+GIRP6JQOlADsvpF8PzRFqFlM=";
}; };
outputs = [ "out" "udev" ]; outputs = [ "out" "udev" ];

View File

@ -1,4 +1,4 @@
{ lib, fetchurl, python27Packages, python36Packages, wmctrl, { lib, fetchurl, python27Packages, python3Packages, wmctrl,
qtbase, mkDerivationWith }: qtbase, mkDerivationWith }:
{ {
@ -24,9 +24,9 @@
]; ];
}; };
dev = with python36Packages; mkDerivationWith buildPythonPackage rec { dev = with python3Packages; mkDerivationWith buildPythonPackage rec {
pname = "plover"; pname = "plover";
version = "4.0.0.dev8"; version = "4.0.0.dev10";
meta = with lib; { meta = with lib; {
description = "OpenSteno Plover stenography software"; description = "OpenSteno Plover stenography software";
@ -36,7 +36,7 @@
src = fetchurl { src = fetchurl {
url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz"; url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz";
sha256 = "1wxkmik1zyw5gqig5r0cas5v6f5408fbnximzw610rdisqy09rxp"; sha256 = "sha256-Eun+ZgmOIjYw6FS/2OGoBvYh52U/Ue0+NtIqrvV2Tqc=";
}; };
# I'm not sure why we don't find PyQt5 here but there's a similar # I'm not sure why we don't find PyQt5 here but there's a similar

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub { stdenv, lib, fetchFromGitHub
, python37Packages , python3Packages
, fehSupport ? false, feh , fehSupport ? false, feh
, imagemagickSupport ? true, imagemagick , imagemagickSupport ? true, imagemagick
, intltool , intltool
@ -13,7 +13,7 @@
, makeWrapper , makeWrapper
}: }:
with python37Packages; with python3Packages;
buildPythonApplication rec { buildPythonApplication rec {
pname = "variety"; pname = "variety";

View File

@ -12,8 +12,10 @@ stdenv.mkDerivation {
buildInputs = [ libXt libXaw libXpm libXext ]; buildInputs = [ libXt libXaw libXpm libXext ];
makeFlags = [ makeFlags = [
"BINDIR=$(out)/bin" "BINDIR=${placeholder "out"}/bin"
"XAPPLOADDIR=$(out)/etc/X11/app-defaults" "CONFDIR=${placeholder "out"}/etc/X11"
"LIBDIR=${placeholder "out"}/lib/X11"
"XAPPLOADDIR=${placeholder "out"}/etc/X11/app-defaults"
]; ];
meta = with lib; { meta = with lib; {

View File

@ -24,7 +24,9 @@ stdenv.mkDerivation rec {
makeFlags = [ makeFlags = [
"BINDIR=${placeholder "out"}/bin" "BINDIR=${placeholder "out"}/bin"
"CONFDIR=${placeholder "out"}/etc/X11"
"PIXMAPDIR=${placeholder "out"}/share/xxkb" "PIXMAPDIR=${placeholder "out"}/share/xxkb"
"LIBDIR=${placeholder "out"}/lib/X11"
"XAPPLOADDIR=${placeholder "out"}/etc/X11/app-defaults" "XAPPLOADDIR=${placeholder "out"}/etc/X11/app-defaults"
"MANDIR=${placeholder "man"}/share/man" "MANDIR=${placeholder "man"}/share/man"
]; ];

View File

@ -32,8 +32,7 @@
, openssl , openssl
, pango , pango
, procps , procps
, python37 , python3
, python37Packages
, stdenv , stdenv
, systemd , systemd
, xdg-utils , xdg-utils
@ -101,8 +100,8 @@ stdenv.mkDerivation rec {
dontBuild = true; dontBuild = true;
buildInputs = [ buildInputs = [
python37 python3
python37Packages.dbus-python python3.pkgs.dbus-python
]; ];
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,22 +1,37 @@
{ buildPythonApplication, fetchFromGitHub, isPy27, pytest, testfixtures, lib }: { lib
, buildPythonApplication
, fetchFromGitHub
, pytestCheckHook
, pythonOlder
, testfixtures
}:
buildPythonApplication rec { buildPythonApplication rec {
pname = "bump2version"; pname = "bump2version";
version = "1.0.0"; version = "1.0.1";
disabled = isPy27;
disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "c4urself"; owner = "c4urself";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "v${version}";
sha256 = "10p7rg569rk3qvzs5kjj17894bqlsg3ihhbln6ciwwfhkfq1kpja"; sha256 = "sha256-j6HKi3jTwSgGBrA8PCJJNg+yQqRMo1aqaLgPGf4KAKU=";
}; };
checkInputs = [ pytest testfixtures ]; checkInputs = [
pytestCheckHook
testfixtures
];
disabledTests = [
# X's in pytest are git tests which won't run in sandbox # X's in pytest are git tests which won't run in sandbox
checkPhase = '' "usage_string_fork"
pytest tests/ -k 'not usage_string_fork' "test_usage_string"
''; "test_defaults_in_usage_with_config"
];
pythonImportsCheck = [ "bumpversion" ];
meta = with lib; { meta = with lib; {
description = "Version-bump your software with a single command"; description = "Version-bump your software with a single command";

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }: { lib, stdenv, fetchFromGitHub, fetchpatch, rustPlatform, libiconv, Security }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "git-interactive-rebase-tool"; pname = "git-interactive-rebase-tool";
@ -11,7 +11,15 @@ rustPlatform.buildRustPackage rec {
sha256 = "sha256-DYl/GUbeNtKmXoR3gq8mK8EfsZNVNlrdngAwfzG+epw="; sha256 = "sha256-DYl/GUbeNtKmXoR3gq8mK8EfsZNVNlrdngAwfzG+epw=";
}; };
cargoSha256 = "sha256-1joMWPfn0s+pLsO6NHMT6AoXZ33R8MY2AWSrROY2mw8="; cargoPatches = [
# update git2 crate to fix a compile error
(fetchpatch {
url = "https://github.com/MitMaro/git-interactive-rebase-tool/commit/f4d3026f23118d29a263bbca6c83f963e76c34c4.patch";
sha256 = "sha256-6ErPRcPbPRXbEslNiNInbbUhbOWb9ZRll7ZDRgTpWS4=";
})
];
cargoSha256 = "sha256-2aHW9JIiqkO0X0B0D44tSZ8QkmKH/QZoYvKNEQWldo4=";
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ]; buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];

View File

@ -25,7 +25,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport; assert svnSupport -> perlSupport;
let let
version = "2.32.0"; version = "2.33.0";
svn = subversionClient.override { perlBindings = perlSupport; }; svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ]; gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@ -37,7 +37,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "08rnm3ipjqdd2n31dw7mxl3iv9g4nxgc409krmz892a37kd43a38"; sha256 = "0kqcs8nj5h7rh3q86pw5777awq7gn77lgxk88ynjl1rfz2snlg5z";
}; };
outputs = [ "out" ] ++ lib.optional withManual "doc"; outputs = [ "out" ] ++ lib.optional withManual "doc";
@ -297,6 +297,8 @@ stdenv.mkDerivation {
disable_test t0001-init 'shared overrides system' disable_test t0001-init 'shared overrides system'
disable_test t0001-init 'init honors global core.sharedRepository' disable_test t0001-init 'init honors global core.sharedRepository'
disable_test t1301-shared-repo disable_test t1301-shared-repo
# git-completion.bash: line 405: compgen: command not found:
disable_test t9902-completion 'option aliases are shown with GIT_COMPLETION_SHOW_ALL'
# Our patched gettext never fallbacks # Our patched gettext never fallbacks
disable_test t0201-gettext-fallbacks disable_test t0201-gettext-fallbacks

View File

@ -1,28 +1,31 @@
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 1afe9fc858..05dd7c3a90 100644 index 3db4eab4ba..39bc0e77c9 100644
--- a/Documentation/git-send-email.txt --- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt
@@ -215,8 +215,7 @@ a password is obtained using 'git-credential'. @@ -220,9 +220,9 @@ a password is obtained using 'git-credential'.
specify a full pathname of a sendmail-like program instead; --smtp-server=<host>::
the program must support the `-i` option. Default value can If set, specifies the outgoing SMTP server to use (e.g.
be specified by the `sendemail.smtpServer` configuration `smtp.example.com` or a raw IP address). If unspecified, and if
- option; the built-in default is to search for `sendmail` in - `--sendmail-cmd` is also unspecified, the default is to search
- `/usr/sbin`, `/usr/lib` and $PATH if such program is - for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a
+ option; the built-in default is to search in $PATH if such program is - program is available, falling back to `localhost` otherwise.
available, falling back to `localhost` otherwise. + `--sendmail-cmd` is also unspecified, the default is to search for
+ `sendmail` in $PATH if such a program is available, falling back to
--smtp-server-port=<port>:: + `localhost` otherwise.
+
For backward compatibility, this option can also specify a full pathname
of a sendmail-like program instead; the program must support the `-i`
diff --git a/git-send-email.perl b/git-send-email.perl diff --git a/git-send-email.perl b/git-send-email.perl
index 8eb63b5a2f..74a61d8213 100755 index e65d969d0b..508d49483d 100755
--- a/git-send-email.perl --- a/git-send-email.perl
+++ b/git-send-email.perl +++ b/git-send-email.perl
@@ -956,8 +956,7 @@ sub expand_one_alias { @@ -1066,8 +1066,7 @@ sub expand_one_alias {
} }
if (!defined $smtp_server) { if (!defined $sendmail_cmd && !defined $smtp_server) {
- my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail ); - my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail );
- push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH}; - push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH};
+ my @sendmail_paths = map {"$_/sendmail"} split /:/, $ENV{PATH}; + my @sendmail_paths = map {"$_/sendmail"} split /:/, $ENV{PATH};
foreach (@sendmail_paths) { foreach (@sendmail_paths) {
if (-x $_) { if (-x $_) {
$smtp_server = $_; $sendmail_cmd = $_;

View File

@ -50,12 +50,12 @@ stdenv.mkDerivation rec {
sha256 = "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47"; sha256 = "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47";
}; };
nativeBuildInputs = [ python python.pkgs.sphinx pkg-config flex bison meson ninja ] nativeBuildInputs = [ makeWrapper python python.pkgs.sphinx pkg-config flex bison meson ninja ]
++ lib.optionals gtkSupport [ wrapGAppsHook ] ++ lib.optionals gtkSupport [ wrapGAppsHook ]
++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
buildInputs = [ zlib glib perl pixman buildInputs = [ zlib glib perl pixman
vde2 texinfo makeWrapper lzo snappy vde2 texinfo lzo snappy
gnutls nettle curl gnutls nettle curl
] ]
++ lib.optionals ncursesSupport [ ncurses ] ++ lib.optionals ncursesSupport [ ncurses ]

View File

@ -1,6 +1,7 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, asciidoc , asciidoc
, cmake , cmake
, expat , expat
@ -48,6 +49,15 @@ stdenv.mkDerivation rec {
hash = "sha256-R06tiWS9z6K5Nbi+vvk7DyozpcFdrHleMeh7Iq/FfHQ="; hash = "sha256-R06tiWS9z6K5Nbi+vvk7DyozpcFdrHleMeh7Iq/FfHQ=";
}; };
patches = [
# https://github.com/ice-wm/icewm/pull/57
# Fix trailing -I that leads to "to generate dependencies you must specify either '-M' or '-MM'"
(fetchpatch {
url = "https://github.com/ice-wm/icewm/pull/57/commits/ebd2c45341cc31755758a423392a0f78a64d2d37.patch";
sha256 = "16m9znd3ijcfl7la3l27ac3clx8l9qng3fprkpxqcifd89ny1ml5";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
asciidoc asciidoc
cmake cmake

View File

@ -19,16 +19,33 @@ stdenv.mkDerivation {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
nativeBuildInputs = [ pkg-config ]; strictDeps = true;
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
pkg-config
asciidoc
docbook_xsl
libxslt
makeWrapper
libconfig
pango
];
buildInputs = [ buildInputs = [
cairo gdk-pixbuf libconfig pango xcbutilwm docbook_xsl cairo
alsa-lib wirelesstools asciidoc libxslt makeWrapper gdk-pixbuf
libconfig
pango
xcbutilwm
alsa-lib
wirelesstools
]; ];
postPatch = '' postPatch = ''
substituteInPlace ./Makefile \ substituteInPlace ./Makefile \
--replace "\$(shell git describe)" "${version}" \ --replace "\$(shell git describe)" "${version}" \
--replace "a2x" "${asciidoc}/bin/a2x --no-xmllint" --replace "a2x" "a2x --no-xmllint"
''; '';
makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" ]; makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" ];

View File

@ -10,7 +10,11 @@ use JSON::PP;
STDOUT->autoflush(1); STDOUT->autoflush(1);
$SIG{__WARN__} = sub { warn "warning: ", @_ };
$SIG{__DIE__} = sub { die "error: ", @_ };
my $out = $ENV{"out"}; my $out = $ENV{"out"};
my $extraPrefix = $ENV{"extraPrefix"};
my @pathsToLink = split ' ', $ENV{"pathsToLink"}; my @pathsToLink = split ' ', $ENV{"pathsToLink"};
@ -88,6 +92,10 @@ sub findFilesInDir {
sub checkCollision { sub checkCollision {
my ($path1, $path2) = @_; my ($path1, $path2) = @_;
if (! -e $path1 || ! -e $path2) {
return 0;
}
my $stat1 = (stat($path1))[2]; my $stat1 = (stat($path1))[2];
my $stat2 = (stat($path2))[2]; my $stat2 = (stat($path2))[2];
@ -101,6 +109,11 @@ sub checkCollision {
return compare($path1, $path2) == 0; return compare($path1, $path2) == 0;
} }
sub prependDangling {
my $path = shift;
return (-l $path && ! -e $path ? "dangling symlink " : "") . "`$path'";
}
sub findFiles { sub findFiles {
my ($relName, $target, $baseName, $ignoreCollisions, $checkCollisionContents, $priority) = @_; my ($relName, $target, $baseName, $ignoreCollisions, $checkCollisionContents, $priority) = @_;
@ -125,12 +138,21 @@ sub findFiles {
# symlink to a file (not a directory) in a lower-priority package, # symlink to a file (not a directory) in a lower-priority package,
# overwrite it. # overwrite it.
if (!defined $oldTarget || ($priority < $oldPriority && ($oldTarget ne "" && ! -d $oldTarget))) { if (!defined $oldTarget || ($priority < $oldPriority && ($oldTarget ne "" && ! -d $oldTarget))) {
# If target is a dangling symlink, emit a warning.
if (-l $target && ! -e $target) {
my $link = readlink $target;
warn "creating dangling symlink `$out$extraPrefix/$relName' -> `$target' -> `$link'\n";
}
$symlinks{$relName} = [$target, $priority]; $symlinks{$relName} = [$target, $priority];
return; return;
} }
# If target already exists and both targets resolves to the same path, skip # If target already exists and both targets resolves to the same path, skip
if (defined $oldTarget && $oldTarget ne "" && abs_path($target) eq abs_path($oldTarget)) { if (
defined $oldTarget && $oldTarget ne "" &&
defined abs_path($target) && defined abs_path($oldTarget) &&
abs_path($target) eq abs_path($oldTarget)
) {
# Prefer the target that is not a symlink, if any # Prefer the target that is not a symlink, if any
if (-l $oldTarget && ! -l $target) { if (-l $oldTarget && ! -l $target) {
$symlinks{$relName} = [$target, $priority]; $symlinks{$relName} = [$target, $priority];
@ -144,14 +166,25 @@ sub findFiles {
return; return;
} }
# If target is supposed to be a directory but it isn't, die with an error message
# instead of attempting to recurse into it, only to fail then.
# This happens e.g. when pathsToLink contains a non-directory path.
if ($oldTarget eq "" && ! -d $target) {
die "not a directory: `$target'\n";
}
unless (-d $target && ($oldTarget eq "" || -d $oldTarget)) { unless (-d $target && ($oldTarget eq "" || -d $oldTarget)) {
# Prepend "dangling symlink" to paths if applicable.
my $targetRef = prependDangling($target);
my $oldTargetRef = prependDangling($oldTarget);
if ($ignoreCollisions) { if ($ignoreCollisions) {
warn "collision between `$target' and `$oldTarget'\n" if $ignoreCollisions == 1; warn "collision between $targetRef and $oldTargetRef\n" if $ignoreCollisions == 1;
return; return;
} elsif ($checkCollisionContents && checkCollision($oldTarget, $target)) { } elsif ($checkCollisionContents && checkCollision($oldTarget, $target)) {
return; return;
} else { } else {
die "collision between `$target' and `$oldTarget'\n"; die "collision between $targetRef and $oldTargetRef\n";
} }
} }
@ -224,7 +257,6 @@ while (scalar(keys %postponed) > 0) {
# Create the symlinks. # Create the symlinks.
my $extraPrefix = $ENV{"extraPrefix"};
my $nrLinks = 0; my $nrLinks = 0;
foreach my $relName (sort keys %symlinks) { foreach my $relName (sort keys %symlinks) {
my ($target, $priority) = @{$symlinks{$relName}}; my ($target, $priority) = @{$symlinks{$relName}};

View File

@ -1,6 +1,6 @@
{ lib, stdenv, writeText, ocaml, findlib, ocamlbuild, camlp4 }: { lib, stdenv, writeText, ocaml, findlib, ocamlbuild, camlp4 }:
{ name, version, buildInputs ? [], { name, version, nativeBuildInputs ? [],
createFindlibDestdir ? true, createFindlibDestdir ? true,
dontStrip ? true, dontStrip ? true,
minimumSupportedOcamlVersion ? null, minimumSupportedOcamlVersion ? null,
@ -19,7 +19,7 @@ in
stdenv.mkDerivation (args // { stdenv.mkDerivation (args // {
name = "ocaml-${name}-${version}"; name = "ocaml-${name}-${version}";
buildInputs = [ ocaml findlib ocamlbuild camlp4 ] ++ buildInputs; nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 ] ++ nativeBuildInputs;
setupHook = if setupHook == null && hasSharedObjects setupHook = if setupHook == null && hasSharedObjects
then writeText "setupHook.sh" '' then writeText "setupHook.sh" ''

View File

@ -1,6 +1,6 @@
{ lib, stdenv, ocaml, findlib, dune_1, dune_2 }: { lib, stdenv, ocaml, findlib, dune_1, dune_2 }:
{ pname, version, buildInputs ? [], enableParallelBuilding ? true, ... }@args: { pname, version, nativeBuildInputs ? [], enableParallelBuilding ? true, ... }@args:
let Dune = if args.useDune2 or false then dune_2 else dune_1; in let Dune = if args.useDune2 or false then dune_2 else dune_1; in
@ -12,6 +12,8 @@ else
stdenv.mkDerivation ({ stdenv.mkDerivation ({
inherit enableParallelBuilding; inherit enableParallelBuilding;
dontAddStaticConfigureFlags = true;
configurePlatforms = [];
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
@ -33,7 +35,7 @@ stdenv.mkDerivation ({
name = "ocaml${ocaml.version}-${pname}-${version}"; name = "ocaml${ocaml.version}-${pname}-${version}";
buildInputs = [ ocaml Dune findlib ] ++ buildInputs; nativeBuildInputs = [ ocaml Dune findlib ] ++ nativeBuildInputs;
meta = (args.meta or {}) // { platforms = args.meta.platforms or ocaml.meta.platforms; }; meta = (args.meta or {}) // { platforms = args.meta.platforms or ocaml.meta.platforms; };

View File

@ -1,4 +1,4 @@
preConfigurePhases+=" autoreconfPhase" preConfigurePhases="${preConfigurePhases:-} autoreconfPhase"
autoreconfPhase() { autoreconfPhase() {
runHook preAutoreconf runHook preAutoreconf

View File

@ -2,8 +2,9 @@
# This should ensure that it is deterministic across rebuilds of the same # This should ensure that it is deterministic across rebuilds of the same
# derivation and not easily collide with other builds. # derivation and not easily collide with other builds.
# We also truncate the hash so that it cannot cause reference cycles. # We also truncate the hash so that it cannot cause reference cycles.
export NIX_CFLAGS_COMPILE+=" -frandom-seed=$( NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE:-} -frandom-seed=$(
outbase="${out##*/}" outbase="${out##*/}"
randomseed="${outbase:0:10}" randomseed="${outbase:0:10}"
echo $randomseed echo $randomseed
)" )"
export NIX_CFLAGS_COMPILE

View File

@ -14,7 +14,7 @@ _separateDebugInfo() {
dst="$dst/lib/debug/.build-id" dst="$dst/lib/debug/.build-id"
# Find executables and dynamic libraries. # Find executables and dynamic libraries.
local i magic local i
while IFS= read -r -d $'\0' i; do while IFS= read -r -d $'\0' i; do
if ! isELF "$i"; then continue; fi if ! isELF "$i"; then continue; fi

View File

@ -0,0 +1,58 @@
{ lib
, stdenv
, fetchFromGitHub
, scfbuild
, nodejs
, nodePackages
, python3Packages
, variant ? "color" # "color" or "black"
}:
let
filename = builtins.replaceStrings
[ "color" "black" ]
[ "OpenMoji-Color.ttf" "OpenMoji-Black.ttf" ]
variant;
in stdenv.mkDerivation rec {
pname = "openmoji";
version = "13.1.0";
src = fetchFromGitHub {
owner = "hfg-gmuend";
repo = pname;
rev = version;
sha256 = "sha256-7G6a+LFq79njyPhnDhhSJ98Smw5fWlfcsFj6nWBPsSk=";
};
nativeBuildInputs = [
scfbuild
nodejs
nodePackages.glob
nodePackages.lodash
];
buildPhase = ''
runHook preBuild
node helpers/generate-font-glyphs.js
cd font
scfbuild -c scfbuild-${variant}.yml
runHook postBuild
'';
installPhase = ''
install -Dm644 ${filename} $out/share/fonts/truetype/${filename}
'';
meta = with lib; {
license = licenses.cc-by-sa-40;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
homepage = "https://openmoji.org/";
downloadPage = "https://github.com/hfg-gmuend/openmoji/releases";
description = "Open-source emojis for designers, developers and everyone else";
};
}

View File

@ -1,28 +1,17 @@
{ lib, stdenv, fetchurl, nss, python3 { lib
, blacklist ? [] , stdenv
, fetchurl
, nss
, python3
, blacklist ? [ ]
# Used for tests only # Used for tests only
, runCommand , runCommand
, cacert , cacert
, openssl , openssl
}: }:
with lib;
let let
version = "3.66";
underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
in
stdenv.mkDerivation {
name = "nss-cacert-${version}";
src = fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/nss-${version}.tar.gz";
sha256 = "1jfdnh5l4k57r2vb07s06hqi7m2qzk0d9x25lsdsrw3cflx9x9w9";
};
certdata2pem = fetchurl { certdata2pem = fetchurl {
name = "certdata2pem.py"; name = "certdata2pem.py";
urls = [ urls = [
@ -31,6 +20,16 @@ stdenv.mkDerivation {
]; ];
sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy"; sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
}; };
in
stdenv.mkDerivation rec {
pname = "nss-cacert";
version = "3.66";
src = fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
sha256 = "1jfdnh5l4k57r2vb07s06hqi7m2qzk0d9x25lsdsrw3cflx9x9w9";
};
outputs = [ "out" "unbundled" ]; outputs = [ "out" "unbundled" ];
@ -40,11 +39,11 @@ stdenv.mkDerivation {
ln -s nss/lib/ckfw/builtins/certdata.txt ln -s nss/lib/ckfw/builtins/certdata.txt
cat << EOF > blacklist.txt cat << EOF > blacklist.txt
${concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)} ${lib.concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
EOF EOF
# copy from the store, otherwise python will scan it for imports # copy from the store, otherwise python will scan it for imports
cat "$certdata2pem" > certdata2pem.py cat "${certdata2pem}" > certdata2pem.py
''; '';
buildPhase = '' buildPhase = ''
@ -63,22 +62,26 @@ stdenv.mkDerivation {
# install individual certs in unbundled output # install individual certs in unbundled output
mkdir -pv $unbundled/etc/ssl/certs mkdir -pv $unbundled/etc/ssl/certs
cp -v *.crt $unbundled/etc/ssl/certs cp -v *.crt $unbundled/etc/ssl/certs
rm -f $unbundled/etc/ssl/certs/ca-bundle.crt # not wanted in unbundled rm $unbundled/etc/ssl/certs/ca-bundle.crt # not wanted in unbundled
''; '';
setupHook = ./setup-hook.sh; setupHook = ./setup-hook.sh;
passthru.updateScript = ./update.sh; passthru = {
passthru.tests = { updateScript = ./update.sh;
tests = {
# Test that building this derivation with a blacklist works, and that UTF-8 is supported. # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
blacklist-utf8 = let blacklist-utf8 =
let
blacklistCAToFingerprint = { blacklistCAToFingerprint = {
# "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint. # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
"CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD"; "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
"NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98"; "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
}; };
mapBlacklist = f: concatStringsSep "\n" (mapAttrsToList f blacklistCAToFingerprint); mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint);
in runCommand "verify-the-cacert-filter-output" { in
runCommand "verify-the-cacert-filter-output"
{
cacert = cacert.unbundled; cacert = cacert.unbundled;
cacertWithExcludes = (cacert.override { cacertWithExcludes = (cacert.override {
blacklist = builtins.attrNames blacklistCAToFingerprint; blacklist = builtins.attrNames blacklistCAToFingerprint;
@ -116,8 +119,9 @@ stdenv.mkDerivation {
touch $out touch $out
''; '';
}; };
};
meta = { meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html"; homepage = "https://curl.haxx.se/docs/caextract.html";
description = "A bundle of X.509 certificates of public Certificate Authorities (CA)"; description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
platforms = platforms.all; platforms = platforms.all;

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mobile-broadband-provider-info"; pname = "mobile-broadband-provider-info";
version = "20201225"; version = "20210805";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "1g9x2i4xjm2sagaha07n9psacbylrwfrmfqkp17gjwhpyi6w0zqd"; sha256 = "sha256-a/ihVY6lVBr7xve0QV50zJ9aqYKbE07Ks+8ch0ElaLw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -10,11 +10,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "yelp-xsl"; pname = "yelp-xsl";
version = "40.0"; version = "40.2";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-Nh7NTTP8zbO7CKaH9g5cPpCdLp47Ai2ETgSYINDPYrA="; sha256 = "sha256-kZxVL4RqrsdB/lHVr0FrRpvNslx37/w7WhWktLf/gU4=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-shell-extension-arcmenu"; pname = "gnome-shell-extension-arcmenu";
version = "12"; version = "14";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "arcmenu"; owner = "arcmenu";
repo = "ArcMenu"; repo = "ArcMenu";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-R1OUDf/YMyMlxwXM9rNsrasPumHEoYhJK0evnYGeIkA="; sha256 = "sha256-Iobu5eNWSvAiTRe6wyx/0PgUtB9QIC9KdH0M1xhsM1I=";
}; };
patches = [ patches = [

View File

@ -129,7 +129,8 @@ let
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background. # see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && !targetPlatform.isMusl && !targetPlatform.isWindows); useLdGold = targetPlatform.linker == "gold" ||
(targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
runtimeDeps = [ runtimeDeps = [
targetPackages.stdenv.cc.bintools targetPackages.stdenv.cc.bintools

View File

@ -137,7 +137,8 @@ let
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background. # see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && !targetPlatform.isMusl && !targetPlatform.isWindows); useLdGold = targetPlatform.linker == "gold" ||
(targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
runtimeDeps = [ runtimeDeps = [
targetPackages.stdenv.cc.bintools targetPackages.stdenv.cc.bintools

View File

@ -123,7 +123,8 @@ let
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background. # see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && !targetPlatform.isMusl); useLdGold = targetPlatform.linker == "gold" ||
(targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
runtimeDeps = [ runtimeDeps = [
targetPackages.stdenv.cc.bintools targetPackages.stdenv.cc.bintools

View File

@ -133,7 +133,8 @@ let
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background. # see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && !targetPlatform.isMusl); useLdGold = targetPlatform.linker == "gold" ||
(targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
runtimeDeps = [ runtimeDeps = [
targetPackages.stdenv.cc.bintools targetPackages.stdenv.cc.bintools

View File

@ -1,71 +0,0 @@
diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp
--- a/lib/sanitizer_common/sanitizer_mac.cpp
+++ b/lib/sanitizer_common/sanitizer_mac.cpp
@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) {
// Offset example:
// XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4
constexpr u16 GetOSMajorKernelOffset() {
- if (TARGET_OS_OSX) return 4;
- if (TARGET_OS_IOS || TARGET_OS_TV) return 6;
- if (TARGET_OS_WATCH) return 13;
+#if TARGET_OS_OSX
+ return 4;
+#endif
+#if TARGET_OS_IOS || TARGET_OS_TV
+ return 6;
+#endif
+#if TARGET_OS_WATCH
+ return 13;
+#endif
}
using VersStr = char[64];
@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) {
u16 os_major = kernel_major - offset;
const char *format = "%d.0";
- if (TARGET_OS_OSX) {
- if (os_major >= 16) { // macOS 11+
- os_major -= 5;
- } else { // macOS 10.15 and below
- format = "10.%d";
- }
+#if TARGET_OS_OSX
+ if (os_major >= 16) { // macOS 11+
+ os_major -= 5;
+ } else { // macOS 10.15 and below
+ format = "10.%d";
}
+#endif
return internal_snprintf(vers, sizeof(VersStr), format, os_major);
}
@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) {
// Aligned versions example:
// macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6
static void MapToMacos(u16 *major, u16 *minor) {
- if (TARGET_OS_OSX)
- return;
-
- if (TARGET_OS_IOS || TARGET_OS_TV)
+#if !TARGET_OS_OSX
+#if TARGET_OS_IOS || TARGET_OS_TV
*major += 2;
- else if (TARGET_OS_WATCH)
+#elif TARGET_OS_WATCH
*major += 9;
- else
+#else
UNREACHABLE("unsupported platform");
+#endif
if (*major >= 16) { // macOS 11+
*major -= 5;
@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) {
*minor = *major;
*major = 10;
}
+#endif
}
static MacosVersion GetMacosAlignedVersionInternal() {

View File

@ -59,8 +59,6 @@ stdenv.mkDerivation {
# extra `/`. # extra `/`.
./normalize-var.patch ./normalize-var.patch
]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
# Prevent a compilation error on darwin
++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch
++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks

View File

@ -3,7 +3,7 @@
let let
versionNoPatch = "${toString major_version}.${toString minor_version}"; versionNoPatch = "${toString major_version}.${toString minor_version}";
version = "${versionNoPatch}.${toString patch_version}"; version = "${versionNoPatch}.${toString patch_version}";
safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips); safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips || stdenv.hostPlatform.isStatic);
in in
{ lib, stdenv, fetchurl, ncurses, buildEnv, libunwind { lib, stdenv, fetchurl, ncurses, buildEnv, libunwind
@ -13,7 +13,7 @@ in
, spaceTimeSupport ? false , spaceTimeSupport ? false
}: }:
assert useX11 -> !stdenv.isAarch32 && !stdenv.isMips; assert useX11 -> safeX11 stdenv;
assert aflSupport -> lib.versionAtLeast version "4.05"; assert aflSupport -> lib.versionAtLeast version "4.05";
assert flambdaSupport -> lib.versionAtLeast version "4.03"; assert flambdaSupport -> lib.versionAtLeast version "4.03";
assert spaceTimeSupport -> lib.versionAtLeast version "4.04"; assert spaceTimeSupport -> lib.versionAtLeast version "4.04";
@ -44,6 +44,8 @@ stdenv.mkDerivation (args // {
inherit src; inherit src;
strictDeps = true;
prefixKey = "-prefix "; prefixKey = "-prefix ";
configureFlags = configureFlags =
let flags = new: old: let flags = new: old:
@ -56,7 +58,15 @@ stdenv.mkDerivation (args // {
++ optional aflSupport (flags "--with-afl" "-afl-instrument") ++ optional aflSupport (flags "--with-afl" "-afl-instrument")
++ optional flambdaSupport (flags "--enable-flambda" "-flambda") ++ optional flambdaSupport (flags "--enable-flambda" "-flambda")
++ optional spaceTimeSupport (flags "--enable-spacetime" "-spacetime") ++ optional spaceTimeSupport (flags "--enable-spacetime" "-spacetime")
; ++ optional (stdenv.hostPlatform.isStatic && (lib.versionOlder version "4.08")) "-no-shared-libs"
++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && lib.versionOlder version "4.08") [
"-host ${stdenv.hostPlatform.config}"
"-target ${stdenv.targetPlatform.config}"
];
dontAddStaticConfigureFlags = lib.versionOlder version "4.08";
configurePlatforms = lib.optionals (lib.versionAtLeast version "4.08") [ "host" "target" ];
# x86_64-unknown-linux-musl-ld: -r and -pie may not be used together
hardeningDisable = lib.optional (lib.versionAtLeast version "4.09" && stdenv.hostPlatform.isMusl) "pie";
buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ]; buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
buildInputs = optional (!lib.versionAtLeast version "4.07") ncurses buildInputs = optional (!lib.versionAtLeast version "4.07") ncurses
@ -70,6 +80,8 @@ stdenv.mkDerivation (args // {
# Do what upstream does by default now: https://github.com/ocaml/ocaml/pull/10176 # Do what upstream does by default now: https://github.com/ocaml/ocaml/pull/10176
# This is required for aarch64-darwin, everything else works as is. # This is required for aarch64-darwin, everything else works as is.
AS="${stdenv.cc}/bin/cc -c" ASPP="${stdenv.cc}/bin/cc -c" AS="${stdenv.cc}/bin/cc -c" ASPP="${stdenv.cc}/bin/cc -c"
'' + optionalString (lib.versionOlder version "4.08" && stdenv.hostPlatform.isStatic) ''
configureFlagsArray+=("-cc" "$CC" "-as" "$AS" "-partialld" "$LD -r")
''; '';
postBuild = '' postBuild = ''
mkdir -p $out/include mkdir -p $out/include

View File

@ -24,6 +24,11 @@ let
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;
postPatch = ''
substituteInPlace buildSrc/linux.gradle \
--replace ', "-Werror=implicit-function-declaration"' ""
'';
config = writeText "gradle.properties" ('' config = writeText "gradle.properties" (''
CONF = Release CONF = Release
JDK_HOME = ${openjdk11-bootstrap.home} JDK_HOME = ${openjdk11-bootstrap.home}

View File

@ -12,6 +12,11 @@ in stdenv.mkDerivation rec {
sha256 = "1w0qmyj3v9sb2g7ff39pp38b9850y9hyy0bag26ifrby5f7ksvm6"; sha256 = "1w0qmyj3v9sb2g7ff39pp38b9850y9hyy0bag26ifrby5f7ksvm6";
}; };
postPatch = lib.optionalString stdenv.isAarch32 ''
# https://gitlab.freedesktop.org/gstreamer/orc/-/issues/20
sed -i '/exec_opcodes_sys/d' testsuite/meson.build
'';
outputs = [ "out" "dev" ] outputs = [ "out" "dev" ]
++ optional buildDevDoc "devdoc" ++ optional buildDevDoc "devdoc"
; ;

View File

@ -20,8 +20,8 @@
} @ args: } @ args:
import ./default.nix { import ./default.nix {
rustcVersion = "1.53.0"; rustcVersion = "1.54.0";
rustcSha256 = "1f95p259dfp5ca118bg107rj3rqwlswy65dxn3hg8sqgl4wwmxsw"; rustcSha256 = "0xk9dhfff16caambmwij67zgshd8v9djw6ha0fnnanlv7rii31dc";
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_12.libllvm.override { enableSharedLibraries = true; }; llvmSharedForBuild = pkgsBuildBuild.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvmPackages_12.libllvm.override { enableSharedLibraries = true; }; llvmSharedForHost = pkgsBuildHost.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
@ -34,24 +34,24 @@ import ./default.nix {
# Note: the version MUST be one version prior to the version we're # Note: the version MUST be one version prior to the version we're
# building # building
bootstrapVersion = "1.52.1"; bootstrapVersion = "1.53.0";
# fetch hashes by running `print-hashes.sh ${bootstrapVersion}` # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
bootstrapHashes = { bootstrapHashes = {
i686-unknown-linux-gnu = "c91f0431c8137a4e98e097ab47b49846820531aafb6e9c249b71b770771832e9"; i686-unknown-linux-gnu = "4ebeeba05448b9484bb2845dba2ff4c0e2b7208fa8b08bef2b2ca3b171d0db99";
x86_64-unknown-linux-gnu = "617ae06e212cb65bc4abbf52b158b0328b9f1a6c2f822c27c95b274d6fbc0627"; x86_64-unknown-linux-gnu = "5e9e556d2ccce27aa8f01a528f1348bf8cdd34496c35ec2abf131660b9792fed";
x86_64-unknown-linux-musl = "c3eae6e78ee29e03416897f89b54448b2a03d063f07a78cde41757ad2e02c2f0"; x86_64-unknown-linux-musl = "908b6163b62660f289bcd1eda1a0eb6d849b4b29da12546d24a033e5718e93ff";
arm-unknown-linux-gnueabihf = "ef412d923a0c5a9fa54422f40cde62f2e85a62339057cb8b986a545b108d3347"; arm-unknown-linux-gnueabihf = "6ae3108f4a0b0478c76f5dbaf1827c9e4a983fa78a9f973b24d501e693cfdcab";
armv7-unknown-linux-gnueabihf = "ec47b3f5c801f8a4df7180e088dcc1817ee160df34ef64ddac4fa50f714f119f"; armv7-unknown-linux-gnueabihf = "886e78f7c5bd92e16322ca3af70d1899c064837343cdfeb9a216b76edfd18157";
aarch64-unknown-linux-gnu = "17d9aa7bb73b819ef70d81013498727b7218533ee6cf3bd802c4eac29137fbcb"; aarch64-unknown-linux-gnu = "cba81d5c3d16deee04098ea18af8636bc7415315a44c9e44734fd669aa778040";
aarch64-unknown-linux-musl = "f2bae2b32f05a90eec041352d9329deb3e907f5560b9fda525788df3b8008b6b"; aarch64-unknown-linux-musl = "a0065a6313bf370f2844af6f3b47fe292360e9cca3da31b5f6cb32db311ba686";
x86_64-apple-darwin = "cfa73228ea54e2c94f75d1b142ea41444c463f4ee8562a3eca1b11b2fe8af95a"; x86_64-apple-darwin = "940a4488f907b871f9fb1be309086509e4a48efb19303f8b5fe115c6f12abf43";
aarch64-apple-darwin = "217e9723f828c5359467d69b363a342d702bdcbbcc4107be907e6bc4531f4912"; aarch64-apple-darwin = "c519da905514c05240a8fe39e459de2c4ef5943535e3655502e8fb756070aee1";
powerpc64le-unknown-linux-gnu = "f258c5d7d6d9022108672b7383412d930a5f59d7644d148e413c3ab0ae45604f"; powerpc64le-unknown-linux-gnu = "9f6c17427d1023b10694e4ba60d6d9deec0aeb07d051f99763789ed18e07e2e6";
riscv64gc-unknown-linux-gnu = "c1c98ccc8bb4147a819411a10162c8f8ce1aaa5c65cf2c74802dce4dacd6e64b"; riscv64gc-unknown-linux-gnu = "6ae23ac00269df72b0790f10f2d9a98d03acf542c6090f4d30a87365fafd14ed";
}; };
selectRustPackage = pkgs: pkgs.rust_1_53; selectRustPackage = pkgs: pkgs.rust_1_54;
rustcPatches = [ rustcPatches = [
]; ];

View File

@ -1,10 +1,11 @@
{lib, stdenv, fetchurl}: {lib, stdenv, fetchurl}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "yasm-1.3.0"; pname = "yasm";
version = "1.3.0";
src = fetchurl { src = fetchurl {
url = "https://www.tortall.net/projects/yasm/releases/${name}.tar.gz"; url = "https://www.tortall.net/projects/yasm/releases/yasm-${version}.tar.gz";
sha256 = "0gv0slmm0qpq91za3v2v9glff3il594x5xsrbgab7xcmnh0ndkix"; sha256 = "0gv0slmm0qpq91za3v2v9glff3il594x5xsrbgab7xcmnh0ndkix";
}; };

View File

@ -23,7 +23,8 @@ in buildFHSUserEnv {
name = "platformio"; name = "platformio";
targetPkgs = pio-pkgs; targetPkgs = pio-pkgs;
multiPkgs = pio-pkgs; # disabled temporarily because fastdiff no longer support 32bit
# multiPkgs = pio-pkgs;
meta = with lib; { meta = with lib; {
description = "An open source ecosystem for IoT development"; description = "An open source ecosystem for IoT development";

View File

@ -1,5 +1,6 @@
{ stdenv, lib, python3 { stdenv, lib, python3
, fetchFromGitHub , fetchFromGitHub
, fetchPypi
, git , git
, spdx-license-list-data , spdx-license-list-data
, version, src , version, src
@ -20,6 +21,15 @@ let
doCheck = false; doCheck = false;
}); });
ajsonrpc = super.ajsonrpc.overridePythonAttrs (oldAttrs: rec {
pname = "ajsonrpc";
version = "1.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-CgHCtW0gxZho7ZavvEaODNc+KbFW4sAsHtM2Xk5Cuaw=";
};
});
click = super.click.overridePythonAttrs (oldAttrs: rec { click = super.click.overridePythonAttrs (oldAttrs: rec {
version = "7.1.2"; version = "7.1.2";
src = oldAttrs.src.override { src = oldAttrs.src.override {
@ -28,6 +38,18 @@ let
}; };
}); });
starlette = super.starlette.overridePythonAttrs (oldAttrs: rec {
pname = "starlette";
version = "0.14.2";
src = fetchFromGitHub {
owner = "encode";
repo = pname;
rev = version;
sha256 = "sha256-Ki5jTEr5w6CrGK6F60E9uvdUlGx8pxdHMpxHvj9D4js=";
};
doCheck = false;
});
uvicorn = super.uvicorn.overridePythonAttrs (oldAttrs: rec { uvicorn = super.uvicorn.overridePythonAttrs (oldAttrs: rec {
version = "0.13.2"; version = "0.13.2";
src = fetchFromGitHub { src = fetchFromGitHub {

View File

@ -86,6 +86,8 @@ let
configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
dontAddStaticConfigureFlags = true;
dontAddPrefix = !crossCompiling; dontAddPrefix = !crossCompiling;
enableParallelBuilding = !crossCompiling; enableParallelBuilding = !crossCompiling;

View File

@ -26,10 +26,10 @@
, sourceVersion , sourceVersion
, sha256 , sha256
, passthruFun , passthruFun
, static ? false , static ? stdenv.hostPlatform.isStatic
, stripBytecode ? reproducibleBuild , stripBytecode ? reproducibleBuild
, rebuildBytecode ? true , rebuildBytecode ? true
, reproducibleBuild ? true , reproducibleBuild ? false
, enableOptimizations ? false , enableOptimizations ? false
, pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}"
}: }:
@ -48,6 +48,8 @@ assert lib.assertMsg (reproducibleBuild -> stripBytecode)
assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations)) assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations))
"Deterministic builds are not achieved when optimizations are enabled."; "Deterministic builds are not achieved when optimizations are enabled.";
assert lib.assertMsg (reproducibleBuild -> (!rebuildBytecode))
"Deterministic builds are not achieved when (default unoptimized) bytecode is created.";
with lib; with lib;
@ -185,8 +187,9 @@ let
configureFlags = optionals enableOptimizations [ configureFlags = optionals enableOptimizations [
"--enable-optimizations" "--enable-optimizations"
] ++ [ ] ++ optionals (!static) [
"--enable-shared" "--enable-shared"
] ++ [
"--with-threads" "--with-threads"
"--enable-unicode=ucs${toString ucsEncoding}" "--enable-unicode=ucs${toString ucsEncoding}"
] ++ optionals (stdenv.hostPlatform.isCygwin || stdenv.hostPlatform.isAarch64) [ ] ++ optionals (stdenv.hostPlatform.isCygwin || stdenv.hostPlatform.isAarch64) [
@ -224,6 +227,7 @@ let
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no" ++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no"
++ optional static "LDFLAGS=-static"; ++ optional static "LDFLAGS=-static";
strictDeps = true;
buildInputs = buildInputs =
optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++ optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++
[ bzip2 openssl zlib ] [ bzip2 openssl zlib ]
@ -296,8 +300,10 @@ in with passthru; stdenv.mkDerivation ({
# First we delete all old bytecode. # First we delete all old bytecode.
find $out -name "*.pyc" -delete find $out -name "*.pyc" -delete
'' + optionalString rebuildBytecode '' '' + optionalString rebuildBytecode ''
# Then, we build for the two optimization levels. # We build 3 levels of optimized bytecode. Note the default level, without optimizations,
# We do not build unoptimized bytecode, because its not entirely deterministic yet. # is not reproducible yet. https://bugs.python.org/issue29708
# Not creating bytecode will result in a large performance loss however, so we do build it.
find $out -name "*.py" | ${pythonForBuildInterpreter} -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i -
'' + optionalString stdenv.hostPlatform.isCygwin '' '' + optionalString stdenv.hostPlatform.isCygwin ''

View File

@ -0,0 +1,15 @@
diff --git a/setup.py b/setup.py
index 04eb6b2..2e1160d 100644
--- a/setup.py
+++ b/setup.py
@@ -1981,8 +1981,8 @@ class PyBuildExt(build_ext):
# Rather than complicate the code below, detecting and building
# AquaTk is a separate method. Only one Tkinter will be built on
# Darwin - either AquaTk, if it is found, or X11 based Tk.
- if (MACOS and self.detect_tkinter_darwin()):
- return True
+ # if (MACOS and self.detect_tkinter_darwin()):
+ # return True
# Assume we haven't found any of the libraries or include files
# The versions with dots are used on Unix, and the versions without

View File

@ -35,7 +35,7 @@
, stripTests ? false , stripTests ? false
, stripTkinter ? false , stripTkinter ? false
, rebuildBytecode ? true , rebuildBytecode ? true
, stripBytecode ? reproducibleBuild , stripBytecode ? true
, includeSiteCustomize ? true , includeSiteCustomize ? true
, static ? stdenv.hostPlatform.isStatic , static ? stdenv.hostPlatform.isStatic
, enableOptimizations ? false , enableOptimizations ? false
@ -48,7 +48,7 @@
# enabling LTO with musl and dynamic linking fails with a linker error although it should # enabling LTO with musl and dynamic linking fails with a linker error although it should
# be possible as alpine is doing it: https://github.com/alpinelinux/aports/blob/a8ccb04668c7729e0f0db6c6ff5f25d7519e779b/main/python3/APKBUILD#L82 # be possible as alpine is doing it: https://github.com/alpinelinux/aports/blob/a8ccb04668c7729e0f0db6c6ff5f25d7519e779b/main/python3/APKBUILD#L82
, enableLTO ? stdenv.is64bit && stdenv.isLinux && !(stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isStatic) , enableLTO ? stdenv.is64bit && stdenv.isLinux && !(stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isStatic)
, reproducibleBuild ? true , reproducibleBuild ? false
, pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}"
}: }:
@ -75,6 +75,9 @@ assert lib.assertMsg (reproducibleBuild -> stripBytecode)
assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations)) assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations))
"Deterministic builds are not achieved when optimizations are enabled."; "Deterministic builds are not achieved when optimizations are enabled.";
assert lib.assertMsg (reproducibleBuild -> (!rebuildBytecode))
"Deterministic builds are not achieved when (default unoptimized) bytecode is created.";
with lib; with lib;
let let
@ -100,6 +103,8 @@ let
version = with sourceVersion; "${major}.${minor}.${patch}${suffix}"; version = with sourceVersion; "${major}.${minor}.${patch}${suffix}";
strictDeps = true;
nativeBuildInputs = optionals (!stdenv.isDarwin) [ nativeBuildInputs = optionals (!stdenv.isDarwin) [
autoreconfHook autoreconfHook
] ++ optionals (!stdenv.isDarwin && passthru.pythonAtLeast "3.10") [ ] ++ optionals (!stdenv.isDarwin && passthru.pythonAtLeast "3.10") [
@ -234,6 +239,9 @@ in with passthru; stdenv.mkDerivation {
else else
./3.5/profile-task.patch ./3.5/profile-task.patch
) )
] ++ optionals (pythonAtLeast "3.9" && stdenv.isDarwin) [
# Stop checking for TCL/TK in global macOS locations
./3.9/darwin-tcl-tk.patch
] ++ optionals (isPy3k && hasDistutilsCxxPatch) [ ] ++ optionals (isPy3k && hasDistutilsCxxPatch) [
# Fix for http://bugs.python.org/issue1222585 # Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which # Upstream distutils is calling C compiler to compile C++ code, which
@ -283,10 +291,11 @@ in with passthru; stdenv.mkDerivation {
PYTHONHASHSEED=0; PYTHONHASHSEED=0;
configureFlags = [ configureFlags = [
"--enable-shared"
"--without-ensurepip" "--without-ensurepip"
"--with-system-expat" "--with-system-expat"
"--with-system-ffi" "--with-system-ffi"
] ++ optionals (!static) [
"--enable-shared"
] ++ optionals enableOptimizations [ ] ++ optionals enableOptimizations [
"--enable-optimizations" "--enable-optimizations"
] ++ optionals enableLTO [ ] ++ optionals enableLTO [
@ -334,6 +343,8 @@ in with passthru; stdenv.mkDerivation {
'' + optionalString stdenv.isDarwin '' '' + optionalString stdenv.isDarwin ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2" export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
export MACOSX_DEPLOYMENT_TARGET=10.6 export MACOSX_DEPLOYMENT_TARGET=10.6
# Override the auto-detection in setup.py, which assumes a universal build
export PYTHON_DECIMAL_WITH_MACHINE=${if stdenv.isAarch64 then "uint128" else "x64"}
'' + optionalString (isPy3k && pythonOlder "3.7") '' '' + optionalString (isPy3k && pythonOlder "3.7") ''
# Determinism: The interpreter is patched to write null timestamps when compiling Python files # Determinism: The interpreter is patched to write null timestamps when compiling Python files
# so Python doesn't try to update the bytecode when seeing frozen timestamps in Nix's store. # so Python doesn't try to update the bytecode when seeing frozen timestamps in Nix's store.
@ -424,11 +435,14 @@ in with passthru; stdenv.mkDerivation {
# First we delete all old bytecode. # First we delete all old bytecode.
find $out -type d -name __pycache__ -print0 | xargs -0 -I {} rm -rf "{}" find $out -type d -name __pycache__ -print0 | xargs -0 -I {} rm -rf "{}"
'' + optionalString rebuildBytecode '' '' + optionalString rebuildBytecode ''
# Then, we build for the two optimization levels.
# We do not build unoptimized bytecode, because its not entirely deterministic yet.
# Python 3.7 implements PEP 552, introducing support for deterministic bytecode. # Python 3.7 implements PEP 552, introducing support for deterministic bytecode.
# compileall uses this checked-hash method by default when `SOURCE_DATE_EPOCH` is set. # compileall uses the therein introduced checked-hash method by default when
# `SOURCE_DATE_EPOCH` is set.
# We exclude lib2to3 because that's Python 2 code which fails # We exclude lib2to3 because that's Python 2 code which fails
# We build 3 levels of optimized bytecode. Note the default level, without optimizations,
# is not reproducible yet. https://bugs.python.org/issue29708
# Not creating bytecode will result in a large performance loss however, so we do build it.
find $out -name "*.py" | ${pythonForBuildInterpreter} -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i -
''; '';

View File

@ -64,10 +64,10 @@ stdenv.mkDerivation rec {
# fix build with gcc9, can be removed after bumping to current version # fix build with gcc9, can be removed after bumping to current version
NIX_CFLAGS_COMPILE = [ "-Wno-error" ]; NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
preConfigure = # aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp
'' # aws-cpp-sdk-core-tests/aws/client/AWSClientTest.cpp
rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp # seem to have a datarace
''; enableParallelChecking = false;
postFixupHooks = [ postFixupHooks = [
# This bodge is necessary so that the file that the generated -config.cmake file # This bodge is necessary so that the file that the generated -config.cmake file

View File

@ -0,0 +1,47 @@
{ lib
, callPackage
, boost-build
, fetchurl
}:
let
# for boost 1.55 we need to use 1.56's b2
# since 1.55's build system is not working
# with our derivation
useBoost156 = rec {
version = "1.56.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_${lib.replaceStrings ["."] ["_"] version}.tar.bz2";
sha256 = "07gz62nj767qzwqm3xjh11znpyph8gcii0cqhnx7wvismyn34iqk";
};
};
makeBoost = file:
lib.fix (self:
callPackage file {
boost-build = boost-build.override {
# useBoost allows us passing in src and version from
# the derivation we are building to get a matching b2 version.
useBoost =
if lib.versionAtLeast self.version "1.56"
then self
else useBoost156; # see above
};
}
);
in {
boost155 = makeBoost ./1.55.nix;
boost159 = makeBoost ./1.59.nix;
boost160 = makeBoost ./1.60.nix;
boost165 = makeBoost ./1.65.nix;
boost166 = makeBoost ./1.66.nix;
boost167 = makeBoost ./1.67.nix;
boost168 = makeBoost ./1.68.nix;
boost169 = makeBoost ./1.69.nix;
boost170 = makeBoost ./1.70.nix;
boost171 = makeBoost ./1.71.nix;
boost172 = makeBoost ./1.72.nix;
boost173 = makeBoost ./1.73.nix;
boost174 = makeBoost ./1.74.nix;
boost175 = makeBoost ./1.75.nix;
}

View File

@ -1,8 +1,9 @@
{ lib, stdenv, icu, expat, zlib, bzip2, python ? null, fixDarwinDylibNames, libiconv { lib, stdenv, icu, expat, zlib, bzip2, python ? null, fixDarwinDylibNames, libiconv
, boost-build
, fetchpatch , fetchpatch
, which , which
, buildPackages
, toolset ? /**/ if stdenv.cc.isClang then "clang" , toolset ? /**/ if stdenv.cc.isClang then "clang"
else if stdenv.cc.isGNU then "gcc"
else null else null
, enableRelease ? true , enableRelease ? true
, enableDebug ? false , enableDebug ? false
@ -67,6 +68,8 @@ let
else else
"$NIX_BUILD_CORES"; "$NIX_BUILD_CORES";
needUserConfig = stdenv.hostPlatform != stdenv.buildPlatform || useMpi || stdenv.isDarwin;
b2Args = concatStringsSep " " ([ b2Args = concatStringsSep " " ([
"--includedir=$dev/include" "--includedir=$dev/include"
"--libdir=$out/lib" "--libdir=$out/lib"
@ -95,7 +98,7 @@ let
++ optional (variant == "release") "debug-symbols=off" ++ optional (variant == "release") "debug-symbols=off"
++ optional (toolset != null) "toolset=${toolset}" ++ optional (toolset != null) "toolset=${toolset}"
++ optional (!enablePython) "--without-python" ++ optional (!enablePython) "--without-python"
++ optional (useMpi || stdenv.hostPlatform != stdenv.buildPlatform) "--user-config=user-config.jam" ++ optional needUserConfig "--user-config=user-config.jam"
++ optionals (stdenv.hostPlatform.libc == "msvcrt") [ ++ optionals (stdenv.hostPlatform.libc == "msvcrt") [
"threadapi=win32" "threadapi=win32"
] ++ extraB2Args ] ++ extraB2Args
@ -137,22 +140,39 @@ stdenv.mkDerivation {
maintainers = with maintainers; [ peti ]; maintainers = with maintainers; [ peti ];
}; };
preConfigure = '' preConfigure = optionalString useMpi ''
if test -f tools/build/src/tools/clang-darwin.jam ; then
substituteInPlace tools/build/src/tools/clang-darwin.jam \
--replace '@rpath/$(<[1]:D=)' "$out/lib/\$(<[1]:D=)";
fi;
'' + optionalString useMpi ''
cat << EOF >> user-config.jam cat << EOF >> user-config.jam
using mpi : ${mpi}/bin/mpiCC ; using mpi : ${mpi}/bin/mpiCC ;
EOF EOF
'' + optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' ''
# On darwin we need to add the `$out/lib` to the libraries' rpath explicitly,
# otherwise the dynamic linker is unable to resolve the reference to @rpath
# when the boost libraries want to load each other at runtime.
+ optionalString (stdenv.isDarwin && enableShared) ''
cat << EOF >> user-config.jam cat << EOF >> user-config.jam
using gcc : cross : ${stdenv.cc.targetPrefix}c++ ; using clang-darwin : : ${stdenv.cc.targetPrefix}c++
: <linkflags>"-rpath $out/lib/"
;
EOF
''
# b2 has trouble finding the correct compiler and tools for cross compilation
# since it apparently ignores $CC, $AR etc. Thus we need to set everything
# in user-config.jam. To keep things simple we just set everything in an
# uniform way for clang and gcc (which works thanks to our cc-wrapper).
# We pass toolset later which will make b2 invoke everything in the right
# way -- the other toolset in user-config.jam will be ignored.
+ optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
cat << EOF >> user-config.jam
using gcc : cross : ${stdenv.cc.targetPrefix}c++
: <archiver>$AR
<ranlib>$RANLIB
;
using clang : cross : ${stdenv.cc.targetPrefix}c++
: <archiver>$AR
<ranlib>$RANLIB
;
EOF EOF
# Build b2 with buildPlatform CC/CXX.
sed '2i export CC=$CC_FOR_BUILD; export CXX=$CXX_FOR_BUILD' \
-i ./tools/build/src/engine/build.sh
''; '';
NIX_CFLAGS_LINK = lib.optionalString stdenv.isDarwin NIX_CFLAGS_LINK = lib.optionalString stdenv.isDarwin
@ -160,9 +180,8 @@ stdenv.mkDerivation {
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ which ] nativeBuildInputs = [ which boost-build ]
++ optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; ++ optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
depsBuildBuild = [ buildPackages.stdenv.cc ];
buildInputs = [ expat zlib bzip2 libiconv ] buildInputs = [ expat zlib bzip2 libiconv ]
++ optional (stdenv.hostPlatform == stdenv.buildPlatform) icu ++ optional (stdenv.hostPlatform == stdenv.buildPlatform) icu
++ optional enablePython python ++ optional enablePython python
@ -170,16 +189,19 @@ stdenv.mkDerivation {
configureScript = "./bootstrap.sh"; configureScript = "./bootstrap.sh";
configurePlatforms = []; configurePlatforms = [];
dontDisableStatic = true;
dontAddStaticConfigureFlags = true;
configureFlags = [ configureFlags = [
"--includedir=$(dev)/include" "--includedir=$(dev)/include"
"--libdir=$(out)/lib" "--libdir=$(out)/lib"
"--with-bjam=b2" # prevent bootstrapping b2 in configurePhase
] ++ optional enablePython "--with-python=${python.interpreter}" ] ++ optional enablePython "--with-python=${python.interpreter}"
++ [ (if stdenv.hostPlatform == stdenv.buildPlatform then "--with-icu=${icu.dev}" else "--without-icu") ] ++ optional (toolset != null) "--with-toolset=${toolset}"
++ optional (toolset != null) "--with-toolset=${toolset}"; ++ [ (if stdenv.hostPlatform == stdenv.buildPlatform then "--with-icu=${icu.dev}" else "--without-icu") ];
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
./b2 ${b2Args} b2 ${b2Args}
runHook postBuild runHook postBuild
''; '';
@ -191,7 +213,7 @@ stdenv.mkDerivation {
cp -a tools/boostbook/{xsl,dtd} $dev/share/boostbook/ cp -a tools/boostbook/{xsl,dtd} $dev/share/boostbook/
# Let boost install everything else # Let boost install everything else
./b2 ${b2Args} install b2 ${b2Args} install
runHook postInstall runHook postInstall
''; '';

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, python37Packages }: { lib, stdenv, fetchFromGitHub, meson, ninja, python3Packages }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "unstable-2019-10-09"; version = "unstable-2019-10-09";
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
patchShebangs ci/isdir.py patchShebangs ci/isdir.py
''; '';
checkInputs = with python37Packages; [ cram ]; checkInputs = with python3Packages; [ cram ];
doCheck = true; doCheck = true;

View File

@ -8,13 +8,15 @@
let self = let self =
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "c-ares"; pname = "c-ares";
version = "1.17.1"; version = "1.17.2";
src = fetchurl { src = fetchurl {
url = "https://c-ares.haxx.se/download/${pname}-${version}.tar.gz"; url = "https://c-ares.haxx.se/download/${pname}-${version}.tar.gz";
sha256 = "0h7wjfnk2092glqcp9mqaax7xx0s13m501z1gi0gsjl2vvvd0gfp"; sha256 = "sha256-SAPIRM4gzlEO8OuD+OpB+iTsqunSgMRoxYLSuyWzkT0=";
}; };
enableParallelBuilding = true;
meta = with lib; { meta = with lib; {
description = "A C library for asynchronous DNS requests"; description = "A C library for asynchronous DNS requests";
homepage = "https://c-ares.haxx.se"; homepage = "https://c-ares.haxx.se";

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, boxfort, cmake, libcsptr, pkg-config, gettext { lib, stdenv, fetchFromGitHub, boxfort, cmake, libcsptr, pkg-config, gettext
, dyncall , nanomsg, python37Packages }: , dyncall , nanomsg, python3Packages }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2.3.3"; version = "2.3.3";
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
nanomsg nanomsg
]; ];
checkInputs = with python37Packages; [ cram ]; checkInputs = with python3Packages; [ cram ];
cmakeFlags = [ "-DCTESTS=ON" ]; cmakeFlags = [ "-DCTESTS=ON" ];
doCheck = true; doCheck = true;

View File

@ -10,14 +10,14 @@ assert useVulkan -> withExamples;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "dav1d"; pname = "dav1d";
version = "0.9.0"; version = "0.9.1";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "code.videolan.org"; domain = "code.videolan.org";
owner = "videolan"; owner = "videolan";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0ki3wlyaqr80gl1srbbd18dd5bs1sl9icxym8ar62abpvgzxl5yk"; sha256 = "15ngaqyjbwkj0rd9mvxaqf3i9vzsnlrqgr50cnxxjqnpf7xdmslj";
}; };
nativeBuildInputs = [ meson ninja nasm pkg-config ]; nativeBuildInputs = [ meson ninja nasm pkg-config ];

View File

@ -11,13 +11,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "enchant"; pname = "enchant";
version = "2.3.0"; version = "2.3.1";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz"; url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
sha256 = "sha256-32gGO2wTskX6ckaw4JigPnT3qRxtiUe8XE9CzlXi5B0="; sha256 = "sha256-e0sa/PLNi/ppHe6mGIQE0zfyMXS7w5ucKt0r80Bzbpw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -244,7 +244,7 @@ assert opensslExtlib -> gnutls == null && openssl != null && nonfreeLicensing;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ffmpeg-full"; pname = "ffmpeg-full";
inherit (ffmpeg) src version; inherit (ffmpeg) src version patches;
prePatch = '' prePatch = ''
patchShebangs . patchShebangs .
@ -447,6 +447,14 @@ stdenv.mkDerivation rec {
buildFlags = [ "all" ] buildFlags = [ "all" ]
++ optional qtFaststartProgram "tools/qt-faststart"; # Build qt-faststart executable ++ optional qtFaststartProgram "tools/qt-faststart"; # Build qt-faststart executable
doCheck = true;
checkPhase = let
ldLibraryPathEnv = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
in ''
${ldLibraryPathEnv}="libavcodec:libavdevice:libavfilter:libavformat:libavresample:libavutil:libpostproc:libswresample:libswscale:''${${ldLibraryPathEnv}}" \
make check -j$NIX_BUILD_CORES
'';
# Hacky framework patching technique borrowed from the phantomjs2 package # Hacky framework patching technique borrowed from the phantomjs2 package
postInstall = optionalString qtFaststartProgram '' postInstall = optionalString qtFaststartProgram ''
cp -a tools/qt-faststart $out/bin/ cp -a tools/qt-faststart $out/bin/

View File

@ -7,4 +7,5 @@ callPackage ./generic.nix (rec {
knownVulnerabilities = [ knownVulnerabilities = [
"CVE-2021-30123" "CVE-2021-30123"
]; ];
doCheck = false;
} // args) } // args)

View File

@ -13,6 +13,16 @@ callPackage ./generic.nix (rec {
darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ]; darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
patches = [ patches = [
(fetchpatch {
name = "CVE-2021-33815.patch";
url = "https://github.com/FFmpeg/FFmpeg/commit/26d3c81bc5ef2f8c3f09d45eaeacfb4b1139a777.patch";
sha256 = "0l8dqga5845f7d3wdbvd05i23saldq4pm2cyfdgszbr0c18sxagf";
})
(fetchpatch {
name = "CVE-2021-38114.patch";
url = "https://github.com/FFmpeg/FFmpeg/commit/7150f9575671f898382c370acae35f9087a30ba1.patch";
sha256 = "0gwkc7v1wsh4j0am2nnskhsca1b5aqzhcfd41sd9mh2swsdyf27i";
})
# Fix incorrect segment length in HLS child playlist with fmp4 segment format # Fix incorrect segment length in HLS child playlist with fmp4 segment format
# FIXME remove in version 4.5 # FIXME remove in version 4.5
# https://trac.ffmpeg.org/ticket/9193 # https://trac.ffmpeg.org/ticket/9193

View File

@ -2,6 +2,7 @@
, alsa-lib, bzip2, fontconfig, freetype, gnutls, libiconv, lame, libass, libogg , alsa-lib, bzip2, fontconfig, freetype, gnutls, libiconv, lame, libass, libogg
, libssh, libtheora, libva, libdrm, libvorbis, libvpx, xz, libpulseaudio, soxr , libssh, libtheora, libva, libdrm, libvorbis, libvpx, xz, libpulseaudio, soxr
, x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d , x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d
, srt ? null
, openglSupport ? false, libGLU ? null, libGL ? null , openglSupport ? false, libGLU ? null, libGL ? null
, libmfxSupport ? false, intel-media-sdk ? null , libmfxSupport ? false, intel-media-sdk ? null
, libaomSupport ? false, libaom ? null , libaomSupport ? false, libaom ? null
@ -17,7 +18,8 @@
# Darwin frameworks # Darwin frameworks
, Cocoa, darwinFrameworks ? [ Cocoa ] , Cocoa, darwinFrameworks ? [ Cocoa ]
# Inherit generics # Inherit generics
, branch, sha256, version, patches ? [], knownVulnerabilities ? [], ... , branch, sha256, version, patches ? [], knownVulnerabilities ? []
, doCheck ? true, ...
}: }:
/* Maintainer notes: /* Maintainer notes:
@ -94,6 +96,7 @@ stdenv.mkDerivation rec {
# Build flags # Build flags
"--enable-shared" "--enable-shared"
(ifMinVer "0.6" "--enable-pic") (ifMinVer "0.6" "--enable-pic")
(ifMinVer "4.0" (enableFeature (srt != null) "libsrt"))
(enableFeature runtimeCpuDetectBuild "runtime-cpudetect") (enableFeature runtimeCpuDetectBuild "runtime-cpudetect")
"--enable-hardcoded-tables" "--enable-hardcoded-tables"
] ++ ] ++
@ -171,7 +174,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
bzip2 fontconfig freetype gnutls libiconv lame libass libogg libssh libtheora bzip2 fontconfig freetype gnutls libiconv lame libass libogg libssh libtheora
libvorbis xz soxr x264 x265 xvidcore zlib libopus speex nv-codec-headers libvorbis xz soxr x264 x265 xvidcore zlib libopus speex srt nv-codec-headers
] ++ optionals openglSupport [ libGL libGLU ] ] ++ optionals openglSupport [ libGL libGLU ]
++ optional libmfxSupport intel-media-sdk ++ optional libmfxSupport intel-media-sdk
++ optional libaomSupport libaom ++ optional libaomSupport libaom
@ -187,7 +190,13 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = false; # fails inherit doCheck;
checkPhase = let
ldLibraryPathEnv = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
in ''
${ldLibraryPathEnv}="libavcodec:libavdevice:libavfilter:libavformat:libavresample:libavutil:libpostproc:libswresample:libswscale:''${${ldLibraryPathEnv}}" \
make check -j$NIX_BUILD_CORES
'';
# ffmpeg 3+ generates pkg-config (.pc) files that don't have the # ffmpeg 3+ generates pkg-config (.pc) files that don't have the
# form automatically handled by the multiple-outputs hooks. # form automatically handled by the multiple-outputs hooks.

View File

@ -43,6 +43,9 @@ stdenv.mkDerivation rec {
makeFlags = [ makeFlags = [
"SYSTEM=${if stdenv.hostPlatform.isMinGW then "mingw" else stdenv.hostPlatform.parsed.kernel.name}" "SYSTEM=${if stdenv.hostPlatform.isMinGW then "mingw" else stdenv.hostPlatform.parsed.kernel.name}"
"CC=${stdenv.cc.targetPrefix}cc"
"LD=${stdenv.cc.targetPrefix}cc"
"AR=${stdenv.cc.targetPrefix}ar"
]; ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -18,13 +18,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "glib-networking"; pname = "glib-networking";
version = "2.68.1"; version = "2.68.2";
outputs = [ "out" "installedTests" ]; outputs = [ "out" "installedTests" ];
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0c1vylxly8k7g454g02spi44ybjidlwg461vp713zxd94k8qnpfh"; sha256 = "U168BU72l9tWpP/+2RvA4RyO4cmstIqtKMjh1cPVmU8=";
}; };
patches = [ patches = [

View File

@ -42,7 +42,7 @@
let let
version = "2.33"; version = "2.33";
patchSuffix = "-47"; patchSuffix = "-49";
sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8="; sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8=";
in in
@ -61,7 +61,7 @@ stdenv.mkDerivation ({
[ [
/* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
$ git fetch --all -p && git checkout origin/release/2.33/master && git describe $ git fetch --all -p && git checkout origin/release/2.33/master && git describe
glibc-2.33-47-gb5711025bc glibc-2.33-49-g22d37364ae
$ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz $ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz
To compare the archive contents zdiff can be used. To compare the archive contents zdiff can be used.

View File

@ -21,22 +21,10 @@ stdenv.mkDerivation rec {
}; };
patches = [ patches = [
(fetchpatch { # probably included in > 1.16.0 # probably included in > 1.16.0
name = "test_t-edit-sign.diff"; # we experienced segmentation fault in this test ./test_t-edit-sign.diff
urls = [ # https://dev.gnupg.org/rMc4cf527ea227edb468a84bf9b8ce996807bd6992
"https://files.gnupg.net/file/data/w43xz2zf73pnyqk5mm5l/PHID-FILE-hm2x5mjntsdyxrxve5tb/file" ./fix_gpg_list_keys.diff
"https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=81a33ea5e1b86d586b956e893a5b25c4cd41c969"
];
sha256 = "1xxvv0kc9wdj5hzpddzs3cn8dhmm2cb29224a7h9vairraq5272h";
})
(fetchpatch { # gpg: Send --with-keygrip when listing keys
name = "c4cf527ea227edb468a84bf9b8ce996807bd6992.patch";
urls = [
"https://files.gnupg.net/file/data/2ufcg7ny5jdnv7hmewb4/PHID-FILE-7iwvryn2btti6txr3bsz/file"
"http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=c4cf527ea227edb468a84bf9b8ce996807bd6992"
];
sha256 = "0y0b0lb2nq5p9kx13b59b2jaz157mvflliw1qdvg1v1hynvgb8m4";
})
# https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html # https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html
(fetchpatch { (fetchpatch {
name = "0001-Fix-python-tests-on-non-Linux.patch"; name = "0001-Fix-python-tests-on-non-Linux.patch";

View File

@ -0,0 +1,12 @@
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index b51ea173..4e74665e 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -3005,6 +3005,7 @@ gpg_keylist_build_options (engine_gpg_t gpg, int secret_only,
gpg_error_t err;
err = add_arg (gpg, "--with-colons");
+ err = add_arg (gpg, "--with-keygrip");
/* Since gpg 2.1.15 fingerprints are always printed, thus there is
* no more need to explicitly request them. */

View File

@ -0,0 +1,125 @@
From 81a33ea5e1b86d586b956e893a5b25c4cd41c969 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
Date: Sat, 26 Jun 2021 18:02:47 +0200
Subject: [PATCH] core: Fix use-after-free issue in test
* tests/gpg/t-edit-sign.c (sign_key, verify_key_signature): New.
(main): Factored out signing and verifying the result.
--
Factoring the two steps of the test into different functions fixes the
use-after-free issue that was caused by accidentaly using a variable
of the first step in the second step.
GnuPG-bug-id: 5509
---
tests/gpg/t-edit-sign.c | 54 ++++++++++++++++++++++++++++-------------
1 file changed, 37 insertions(+), 17 deletions(-)
diff --git a/tests/gpg/t-edit-sign.c b/tests/gpg/t-edit-sign.c
index 2f983622..e0494c54 100644
--- a/tests/gpg/t-edit-sign.c
+++ b/tests/gpg/t-edit-sign.c
@@ -107,31 +107,19 @@ interact_fnc (void *opaque, const char *status, const char *args, int fd)
}
-int
-main (int argc, char **argv)
+void
+sign_key (const char *key_fpr, const char *signer_fpr)
{
gpgme_ctx_t ctx;
gpgme_error_t err;
gpgme_data_t out = NULL;
- const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */
gpgme_key_t signing_key = NULL;
- const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */
gpgme_key_t key = NULL;
- gpgme_key_t signed_key = NULL;
- gpgme_user_id_t signed_uid = NULL;
- gpgme_key_sig_t key_sig = NULL;
char *agent_info;
- int mode;
-
- (void)argc;
- (void)argv;
-
- init_gpgme (GPGME_PROTOCOL_OpenPGP);
err = gpgme_new (&ctx);
fail_if_err (err);
- /* Sign the key */
agent_info = getenv("GPG_AGENT_INFO");
if (!(agent_info && strchr (agent_info, ':')))
gpgme_set_passphrase_cb (ctx, passphrase_cb, 0);
@@ -159,8 +147,23 @@ main (int argc, char **argv)
gpgme_data_release (out);
gpgme_key_unref (key);
gpgme_key_unref (signing_key);
+ gpgme_release (ctx);
+}
+
+
+void
+verify_key_signature (const char *key_fpr, const char *signer_keyid)
+{
+ gpgme_ctx_t ctx;
+ gpgme_error_t err;
+ gpgme_key_t signed_key = NULL;
+ gpgme_user_id_t signed_uid = NULL;
+ gpgme_key_sig_t key_sig = NULL;
+ int mode;
+
+ err = gpgme_new (&ctx);
+ fail_if_err (err);
- /* Verify the key signature */
mode = gpgme_get_keylist_mode (ctx);
mode |= GPGME_KEYLIST_MODE_SIGS;
err = gpgme_set_keylist_mode (ctx, mode);
@@ -168,7 +171,7 @@ main (int argc, char **argv)
err = gpgme_get_key (ctx, key_fpr, &signed_key, 0);
fail_if_err (err);
- signed_uid = key->uids;
+ signed_uid = signed_key->uids;
if (!signed_uid)
{
fprintf (stderr, "Signed key has no user IDs\n");
@@ -180,7 +183,7 @@ main (int argc, char **argv)
exit (1);
}
key_sig = signed_uid->signatures->next;
- if (strcmp ("2D727CC768697734", key_sig->keyid))
+ if (strcmp (signer_keyid, key_sig->keyid))
{
fprintf (stderr, "Unexpected key ID in second user ID sig: %s\n",
key_sig->keyid);
@@ -196,6 +199,23 @@ main (int argc, char **argv)
gpgme_key_unref (signed_key);
gpgme_release (ctx);
+}
+
+
+int
+main (int argc, char **argv)
+{
+ const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */
+ const char *signer_keyid = signer_fpr + strlen(signer_fpr) - 16;
+ const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */
+
+ (void)argc;
+ (void)argv;
+
+ init_gpgme (GPGME_PROTOCOL_OpenPGP);
+
+ sign_key (key_fpr, signer_fpr);
+ verify_key_signature (key_fpr, signer_keyid);
return 0;
}
--
2.32.0

View File

@ -107,6 +107,7 @@ stdenv.mkDerivation rec {
"-Dgl_winsys=${lib.concatStringsSep "," (lib.optional enableX11 "x11" ++ lib.optional enableWayland "wayland" ++ lib.optional enableCocoa "cocoa")}" "-Dgl_winsys=${lib.concatStringsSep "," (lib.optional enableX11 "x11" ++ lib.optional enableWayland "wayland" ++ lib.optional enableCocoa "cocoa")}"
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"-Dintrospection=disabled" "-Dintrospection=disabled"
"-Dtests=disabled"
] ]
++ lib.optional (!enableX11) "-Dx11=disabled" ++ lib.optional (!enableX11) "-Dx11=disabled"
# TODO How to disable Wayland? # TODO How to disable Wayland?

View File

@ -76,12 +76,7 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./patches/3.0-immodules.cache.patch ./patches/3.0-immodules.cache.patch
./patches/3.0-Xft-setting-fallback-compute-DPI-properly.patch
(fetchpatch {
name = "Xft-setting-fallback-compute-DPI-properly.patch";
url = "https://bug757142.bugzilla-attachments.gnome.org/attachment.cgi?id=344123";
sha256 = "0g6fhqcv8spfy3mfmxpyji93k8d4p4q4fz1v9a1c1cgcwkz41d7p";
})
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
# X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin # X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin
# lets drop that dependency in similar way to how other parts of the library do it # lets drop that dependency in similar way to how other parts of the library do it

View File

@ -0,0 +1,34 @@
From 269f2d80ea41cde17612600841fbdc32e99010f5 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Tue, 24 Jan 2017 12:30:08 +0100
Subject: [PATCH] Xft setting fallback: compute DPI properly
This is a partial revert of bdf0820c501437a2150d8ff0d5340246e713f73f. If
the Xft DPI settings are not explicitly set, use the values provided by
the X server rather than hard-coding the fallback value of 96.
While an auto-configured Xorg already reports 96, this value can be
overriden by the user, and we should respect the user choice in this
case. There is no need to require them to set the same value in
different places (the Xorg DPI settings and Xft.dpi).
---
gdk/x11/gdkxftdefaults.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gdk/x11/gdkxftdefaults.c b/gdk/x11/gdkxftdefaults.c
index fa1cfde2ec..c462b78c4b 100644
--- a/gdk/x11/gdkxftdefaults.c
+++ b/gdk/x11/gdkxftdefaults.c
@@ -174,7 +174,8 @@ init_xft_settings (GdkScreen *screen)
x11_screen->xft_rgba = FC_RGBA_UNKNOWN;
if (!get_double_default (xdisplay, "dpi", &dpi_double))
- dpi_double = 96.0;
+ dpi_double = (DisplayHeight(xdisplay, x11_screen->screen_num)*25.4)/
+ DisplayHeightMM(xdisplay, x11_screen->screen_num);
x11_screen->xft_dpi = (int)(0.5 + PANGO_SCALE * dpi_double);
}
--
2.11.0.616.gd72966cf44.dirty

View File

@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
# CPU detection isn't supported on Darwin and breaks the aarch64-darwin build: # CPU detection isn't supported on Darwin and breaks the aarch64-darwin build:
"-DCONFIG_RUNTIME_CPU_DETECT=0" "-DCONFIG_RUNTIME_CPU_DETECT=0"
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"-DAS_EXECUTABLE=${stdenv.cc.targetPrefix}as"
] ++ lib.optionals stdenv.isAarch32 [ ] ++ lib.optionals stdenv.isAarch32 [
# armv7l-hf-multiplatform does not support NEON # armv7l-hf-multiplatform does not support NEON
# see lib/systems/platform.nix # see lib/systems/platform.nix

View File

@ -30,6 +30,7 @@ stdenv.mkDerivation {
# We update these ourselves # We update these ourselves
dontUpdateAutotoolsGnuConfigScripts = true; dontUpdateAutotoolsGnuConfigScripts = true;
strictDeps = true;
nativeBuildInputs = [ autoreconfHook bison ]; nativeBuildInputs = [ autoreconfHook bison ];
buildInputs = [ libiberty zlib.dev ]; buildInputs = [ libiberty zlib.dev ];
@ -37,9 +38,8 @@ stdenv.mkDerivation {
configureFlags = [ configureFlags = [
"--enable-targets=all" "--enable-64-bit-bfd" "--enable-targets=all" "--enable-64-bit-bfd"
"--enable-install-libbfd" "--enable-install-libbfd"
"--enable-shared"
"--with-system-zlib" "--with-system-zlib"
]; ] ++ lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared";
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,14 +1,10 @@
{ lib, stdenv, fetchFromGitLab, pkg-config, meson, ninja { lib, stdenv, fetchurl, pkg-config, meson, ninja
, libevdev, mtdev, udev, libwacom , libevdev, mtdev, udev, libwacom
, documentationSupport ? false, doxygen ? null, graphviz ? null # Documentation , documentationSupport ? false, doxygen, graphviz # Documentation
, eventGUISupport ? false, cairo ? null, glib ? null, gtk3 ? null # GUI event viewer support , eventGUISupport ? false, cairo, glib, gtk3 # GUI event viewer support
, testsSupport ? false, check ? null, valgrind ? null, python3 ? null , testsSupport ? false, check, valgrind, python3
}: }:
assert documentationSupport -> doxygen != null && graphviz != null && python3 != null;
assert eventGUISupport -> cairo != null && glib != null && gtk3 != null;
assert testsSupport -> check != null && valgrind != null && python3 != null;
let let
mkFlag = optSet: flag: "-D${flag}=${lib.boolToString optSet}"; mkFlag = optSet: flag: "-D${flag}=${lib.boolToString optSet}";
@ -24,17 +20,13 @@ let
else null; else null;
in in
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libinput"; pname = "libinput";
version = "1.16.4"; version = "1.18.1";
src = fetchFromGitLab { src = fetchurl {
domain = "gitlab.freedesktop.org"; url = "https://www.freedesktop.org/software/libinput/libinput-${version}.tar.xz";
owner = pname; sha256 = "1jx7y48ym89grjz67jmn80h5j8c36qgwb0h5c703nln2zchl18cw";
repo = pname;
rev = version;
sha256 = "1c81429kh9av9fanxmnjw5rvsjbzcyi7d0dx0gkyq5yysmpmrppi";
}; };
outputs = [ "bin" "out" "dev" ]; outputs = [ "bin" "out" "dev" ];
@ -48,7 +40,7 @@ stdenv.mkDerivation rec {
]; ];
nativeBuildInputs = [ pkg-config meson ninja ] nativeBuildInputs = [ pkg-config meson ninja ]
++ optionals documentationSupport [ doxygen graphviz sphinx-build ]; ++ lib.optionals documentationSupport [ doxygen graphviz sphinx-build ];
buildInputs = [ buildInputs = [
libevdev libevdev
@ -60,8 +52,7 @@ stdenv.mkDerivation rec {
pyyaml pyyaml
setuptools setuptools
])) ]))
] ] ++ lib.optionals eventGUISupport [ cairo glib gtk3 ];
++ optionals eventGUISupport [ cairo glib gtk3 ];
checkInputs = [ checkInputs = [
check check
@ -73,15 +64,19 @@ stdenv.mkDerivation rec {
patches = [ ./udev-absolute-path.patch ]; patches = [ ./udev-absolute-path.patch ];
postPatch = '' postPatch = ''
patchShebangs tools/helper-copy-and-exec-from-tmp.sh patchShebangs \
patchShebangs test/symbols-leak-test tools/helper-copy-and-exec-from-tmp.sh \
patchShebangs test/check-leftover-udev-rules.sh test/symbols-leak-test \
patchShebangs test/helper-copy-and-exec-from-tmp.sh test/check-leftover-udev-rules.sh \
test/helper-copy-and-exec-from-tmp.sh
# Don't create an empty /etc directory.
sed -i "/install_subdir('libinput', install_dir : dir_etc)/d" meson.build
''; '';
doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform; doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform;
meta = { meta = with lib; {
description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver"; description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
homepage = "https://www.freedesktop.org/wiki/Software/libinput/"; homepage = "https://www.freedesktop.org/wiki/Software/libinput/";
license = licenses.mit; license = licenses.mit;

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, glib }: { lib, stdenv, fetchFromGitHub, pkg-config, glib, Carbon }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "liblqr-1"; pname = "liblqr-1";
@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = lib.optionals stdenv.isDarwin [ Carbon ];
propagatedBuildInputs = [ glib ]; propagatedBuildInputs = [ glib ];
meta = with lib; { meta = with lib; {

View File

@ -1,21 +1,21 @@
{ lib, stdenv { lib
, stdenv
, fetchurl , fetchurl
, pkg-config , pkg-config
, glib , glib
, python3 , python3
, systemd , systemd
, libgudev
, withIntrospection ? stdenv.hostPlatform == stdenv.buildPlatform , withIntrospection ? stdenv.hostPlatform == stdenv.buildPlatform
, gobject-introspection , gobject-introspection
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libmbim"; pname = "libmbim";
version = "1.24.8"; version = "1.26.0";
src = fetchurl { src = fetchurl {
url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz"; url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
sha256 = "sha256-AlkHNhY//xDlcyGR/MwbmSCWlhbdxZYToAMFKhFqPCU="; sha256 = "1kqkx139z62w391bz6lwmcjg7v12jxlcm7hj88222xrcn8k0j7qy";
}; };
outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ];
@ -33,7 +33,6 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
glib glib
libgudev
systemd systemd
]; ];
@ -43,6 +42,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.freedesktop.org/wiki/Software/libmbim/"; homepage = "https://www.freedesktop.org/wiki/Software/libmbim/";
description = "Library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"; description = "Library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl2; license = licenses.gpl2Plus;
}; };
} }

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libqmi"; pname = "libqmi";
version = "1.28.6"; version = "1.28.8";
outputs = [ "out" "dev" "devdoc" ]; outputs = [ "out" "dev" "devdoc" ];
src = fetchurl { src = fetchurl {
url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz"; url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
sha256 = "1zg5k8f6l87iy9hmzwckdx532s845z9c5npblmpf1pp17n4r1f6b"; sha256 = "sha256-bju70gC8G2SyP2JU/vkhLyaZ7HfPsyB10rpQecc6n3g=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
# Tools # Tools
gpl2Plus gpl2Plus
]; ];
changelog = "https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/blob/${version}/NEWS";
}; };
} }

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libsndfile"; pname = "libsndfile";
version = "1.0.30"; version = "1.0.31";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = version;
sha256 = "1rh79y4s4m2wcm2kahmzs2kijpdpayif2gyca6m71f3k7jbhgcwa"; sha256 = "1alba3iv8i7i2jb5fd6q5s7j9bcj48sf28nfjd3qigz2n2is5jl2";
}; };
nativeBuildInputs = [ autoreconfHook autogen pkg-config python3 ]; nativeBuildInputs = [ autoreconfHook autogen pkg-config python3 ];

View File

@ -0,0 +1,10 @@
{ libssh2, fetchurl }:
libssh2.overrideAttrs (attrs: rec {
version = "1.10.0";
src = fetchurl {
url = with attrs; "${meta.homepage}/download/${pname}-${version}.tar.gz";
sha256 = "sha256-LWTpDz3tOUuR06LndMogOkF59prr7gMAPlpvpiHkHVE=";
};
patches = [];
})

View File

@ -2,7 +2,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libwacom"; pname = "libwacom";
version = "1.10"; version = "1.11";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
owner = "linuxwacom"; owner = "linuxwacom";
repo = "libwacom"; repo = "libwacom";
rev = "libwacom-${version}"; rev = "libwacom-${version}";
sha256 = "sha256-Q7b54AMAxdIzN7TUuhIdlrXaVtj2szV4n3y9bAE0LsU="; sha256 = "sha256-HDBWycdZf/pUL7ZzCuF55tfby3GW0WW6Vq3htPWT1v4=";
}; };
nativeBuildInputs = [ pkg-config meson ninja doxygen python3 ]; nativeBuildInputs = [ pkg-config meson ninja doxygen python3 ];

View File

@ -2,7 +2,7 @@
, zlib, xz, libintl, python, gettext, ncurses, findXMLCatalogs , zlib, xz, libintl, python, gettext, ncurses, findXMLCatalogs
, pythonSupport ? enableShared && stdenv.buildPlatform == stdenv.hostPlatform , pythonSupport ? enableShared && stdenv.buildPlatform == stdenv.hostPlatform
, icuSupport ? false, icu ? null , icuSupport ? false, icu ? null
, enableShared ? stdenv.hostPlatform.libc != "msvcrt" , enableShared ? stdenv.hostPlatform.libc != "msvcrt" && !stdenv.hostPlatform.isStatic
, enableStatic ? !enableShared , enableStatic ? !enableShared
}: }:
@ -40,6 +40,8 @@ stdenv.mkDerivation rec {
++ lib.optional pythonSupport "py" ++ lib.optional pythonSupport "py"
++ lib.optional (enableStatic && enableShared) "static"; ++ lib.optional (enableStatic && enableShared) "static";
strictDeps = true;
buildInputs = lib.optional pythonSupport python buildInputs = lib.optional pythonSupport python
++ lib.optional (pythonSupport && python?isPy2 && python.isPy2) gettext ++ lib.optional (pythonSupport && python?isPy2 && python.isPy2) gettext
++ lib.optional (pythonSupport && python?isPy3 && python.isPy3) ncurses ++ lib.optional (pythonSupport && python?isPy3 && python.isPy3) ncurses

View File

@ -9,12 +9,14 @@ stdenv.mkDerivation rec {
sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60"; sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60";
}; };
configureFlags = [ "--enable-shared" ]; configureFlags = lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared" ;
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = true; # not cross; doCheck = true; # not cross;
strictDeps = true;
meta = with lib; { meta = with lib; {
description = "Real-time data (de)compression library"; description = "Real-time data (de)compression library";
longDescription = '' longDescription = ''

View File

@ -31,7 +31,7 @@ with lib;
let let
# Release calendar: https://www.mesa3d.org/release-calendar.html # Release calendar: https://www.mesa3d.org/release-calendar.html
# Release frequency: https://www.mesa3d.org/releasing.html#schedule # Release frequency: https://www.mesa3d.org/releasing.html#schedule
version = "21.1.7"; version = "21.2.1";
branch = versions.major version; branch = versions.major version;
self = stdenv.mkDerivation { self = stdenv.mkDerivation {
@ -45,11 +45,9 @@ self = stdenv.mkDerivation {
"ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
]; ];
sha256 = "1fx7nfvh1drfa6vv34j7ma944qbs014b0jwlbgqlnbjgcl87rrp9"; sha256 = "11qpq16xbxymcgiy0wk787dk4yw2pv8fzgj8d92ng6s11dqycr9c";
}; };
prePatch = "patchShebangs .";
# TODO: # TODO:
# revive ./dricore-gallium.patch when it gets ported (from Ubuntu), as it saved # revive ./dricore-gallium.patch when it gets ported (from Ubuntu), as it saved
# ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog # ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
@ -64,12 +62,6 @@ self = stdenv.mkDerivation {
url = "https://gitlab.freedesktop.org/mesa/mesa/commit/aebbf819df6d1e.patch"; url = "https://gitlab.freedesktop.org/mesa/mesa/commit/aebbf819df6d1e.patch";
sha256 = "17248hyzg43d73c86p077m4lv1pkncaycr3l27hwv9k4ija9zl8q"; sha256 = "17248hyzg43d73c86p077m4lv1pkncaycr3l27hwv9k4ija9zl8q";
}) })
# For RISC-V support:
(fetchpatch {
name = "add-riscv-default-selections.patch";
url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/9908da1b7a5eaf0156d458e0e24b694c070ba345.patch";
sha256 = "036gv95m5gzzs6qpgkydf5fwgdlm7kpbdfalg8vmayghd260rw1w";
})
] ++ optionals (stdenv.isDarwin && stdenv.isAarch64) [ ] ++ optionals (stdenv.isDarwin && stdenv.isAarch64) [
# Fix aarch64-darwin build, remove when upstreaam supports it out of the box. # Fix aarch64-darwin build, remove when upstreaam supports it out of the box.
# See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1020 # See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1020
@ -77,6 +69,8 @@ self = stdenv.mkDerivation {
]; ];
postPatch = '' postPatch = ''
patchShebangs .
substituteInPlace meson.build --replace \ substituteInPlace meson.build --replace \
"find_program('pkg-config')" \ "find_program('pkg-config')" \
"find_program('${buildPackages.pkg-config.targetPrefix}pkg-config')" "find_program('${buildPackages.pkg-config.targetPrefix}pkg-config')"

View File

@ -1,5 +1,6 @@
{ lib { lib
, fetchFromGitHub , fetchFromGitHub
, cmake
, SDL , SDL
, ffmpeg , ffmpeg
, frei0r , frei0r
@ -26,13 +27,13 @@
mkDerivation rec { mkDerivation rec {
pname = "mlt"; pname = "mlt";
version = "6.24.0"; version = "7.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mltframework"; owner = "mltframework";
repo = "mlt"; repo = "mlt";
rev = "v${version}"; rev = "v${version}";
sha256 = "1my43ica2qax2622307dv4gn3w8hkchy643i9pq8r9yh2hd4pvs9"; sha256 = "13c5miph9jjbz69dhy0zvbkk5zbb05dr3vraaci0d5fdbrlhyscf";
}; };
buildInputs = [ buildInputs = [
@ -56,42 +57,15 @@ mkDerivation rec {
ladspaPlugins ladspaPlugins
]; ];
nativeBuildInputs = [ which ]; nativeBuildInputs = [ cmake which ];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
# Mostly taken from:
# http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/installing-source/installing-mlt-rendering-engine
configureFlags = [
"--avformat-swscale"
"--enable-gpl"
"--enable-gpl3"
"--enable-opengl"
];
# mlt is unable to cope with our multi-prefix Qt build
# because it does not use CMake or qmake.
NIX_CFLAGS_COMPILE = "-I${lib.getDev qtsvg}/include/QtSvg";
CXXFLAGS = "-std=c++11";
qtWrapperArgs = [ qtWrapperArgs = [
"--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1" "--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1"
"--prefix LADSPA_PATH : ${ladspaPlugins}/lib/ladspa" "--prefix LADSPA_PATH : ${ladspaPlugins}/lib/ladspa"
]; ];
postInstall = ''
# Remove an unnecessary reference to movit.dev.
s=${movit.dev}/include
t=$(for ((i = 0; i < ''${#s}; i++)); do echo -n X; done)
sed -i $out/lib/mlt/libmltopengl.so -e "s|$s|$t|g"
# Remove an unnecessary reference to movit.dev.
s=${qtbase.dev}/include
t=$(for ((i = 0; i < ''${#s}; i++)); do echo -n X; done)
sed -i $out/lib/mlt/libmltqt.so -e "s|$s|$t|g"
'';
passthru = { passthru = {
inherit ffmpeg; inherit ffmpeg;
}; };

View File

@ -12,16 +12,21 @@ stdenv.mkDerivation rec {
sha256 = "0cdvbancr7y4nrj8257y5n45hmhizr8isynagy4fpsnpammv8pi6"; sha256 = "0cdvbancr7y4nrj8257y5n45hmhizr8isynagy4fpsnpammv8pi6";
}; };
patchPhase = '' postPatch = ''
sed -i -e s,/usr/bin/install,install, -e s,-I/usr/include/slang,, Makefile.in po/Makefile sed -i -e s,/usr/bin/install,install, -e s,-I/usr/include/slang,, Makefile.in po/Makefile
substituteInPlace configure \ substituteInPlace configure \
--replace "/usr/include/python" "${pythonIncludePath}" --replace "/usr/include/python" "${pythonIncludePath}"
substituteInPlace configure.ac \ substituteInPlace configure.ac \
--replace "/usr/include/python" "${pythonIncludePath}" --replace "/usr/include/python" "${pythonIncludePath}"
substituteInPlace Makefile.in \
--replace "ar rv" "${stdenv.cc.targetPrefix}ar rv"
''; '';
buildInputs = [ slang popt python ]; strictDeps = true;
nativeBuildInputs = [ python ];
buildInputs = [ slang popt ];
NIX_LDFLAGS = "-lncurses"; NIX_LDFLAGS = "-lncurses";

View File

@ -1,45 +1,39 @@
{ lib, stdenv, fetchFromGitHub, cmake { lib, stdenv, fetchFromGitHub, cmake
, alsaSupport ? !stdenv.isDarwin, alsa-lib ? null , alsaSupport ? !stdenv.isDarwin, alsa-lib
, pulseSupport ? !stdenv.isDarwin, libpulseaudio ? null , pulseSupport ? !stdenv.isDarwin, libpulseaudio
, CoreServices, AudioUnit, AudioToolbox , CoreServices, AudioUnit, AudioToolbox
}: }:
with lib;
assert alsaSupport -> alsa-lib != null;
assert pulseSupport -> libpulseaudio != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.19.1";
pname = "openal-soft"; pname = "openal-soft";
version = "1.21.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kcat"; owner = "kcat";
repo = "openal-soft"; repo = "openal-soft";
rev = "${pname}-${version}"; rev = version;
sha256 = "0b0g0q1c36nfb289xcaaj3cmyfpiswvvgky3qyalsf9n4dj7vnzi"; sha256 = "sha256-rgc6kjXaZb6sCR+e9Gu7BEEHIiCHMygpLIeSqgWkuAg=";
}; };
# this will make it find its own data files (e.g. HRTF profiles) # this will make it find its own data files (e.g. HRTF profiles)
# without any other configuration # without any other configuration
patches = [ ./search-out.patch ]; patches = [ ./search-out.patch ];
postPatch = '' postPatch = ''
substituteInPlace Alc/helpers.c \ substituteInPlace alc/helpers.cpp \
--replace "@OUT@" $out --replace "@OUT@" $out
''; '';
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [] buildInputs = lib.optional alsaSupport alsa-lib
++ optional alsaSupport alsa-lib ++ lib.optional pulseSupport libpulseaudio
++ optional pulseSupport libpulseaudio ++ lib.optionals stdenv.isDarwin [ CoreServices AudioUnit AudioToolbox ];
++ optionals stdenv.isDarwin [ CoreServices AudioUnit AudioToolbox ];
NIX_LDFLAGS = toString ([] NIX_LDFLAGS = toString (
++ optional alsaSupport "-lasound" lib.optional alsaSupport "-lasound"
++ optional pulseSupport "-lpulse"); ++ lib.optional pulseSupport "-lpulse");
meta = { meta = with lib; {
description = "OpenAL alternative"; description = "OpenAL alternative";
homepage = "https://kcat.strangesoft.net/openal.html"; homepage = "https://kcat.strangesoft.net/openal.html";
license = licenses.lgpl2; license = licenses.lgpl2;

View File

@ -1,12 +1,12 @@
diff -Nuar a/Alc/helpers.c b/Alc/helpers.c diff --git a/alc/helpers.cpp b/alc/helpers.cpp
--- a/Alc/helpers.c 1970-01-01 00:00:01.000000000 +0000 index 8c1c856..19bbc0f 100644
+++ b/Alc/helpers.c 1970-01-01 00:00:02.000000000 +0000 --- a/alc/helpers.cpp
@@ -951,6 +951,8 @@ +++ b/alc/helpers.cpp
} @@ -402,6 +402,7 @@ al::vector<std::string> SearchDataFiles(const char *ext, const char *subdir)
}
+ DirectorySearch("@OUT@/share", ext, &results); DirectorySearch(path.c_str(), ext, &results);
+
alstr_reset(&path);
} }
+ DirectorySearch("@OUT@/share/", ext, &results);
return results;
}

View File

@ -139,5 +139,9 @@ stdenv.mkDerivation rec {
platforms = with lib.platforms; linux; platforms = with lib.platforms; linux;
license = lib.licenses.asl20; license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ yuriaisaka ]; maintainers = with lib.maintainers; [ yuriaisaka ];
# fails to compile with
# error: invalid conversion from 'const char*' to 'char*'
# TODO: Remove usage of python2, protobuf overwrite
broken = true;
}; };
} }

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, perl, which { lib, stdenv, fetchFromGitHub, perl, which
# Most packages depending on openblas expect integer width to match # Most packages depending on openblas expect integer width to match
# pointer width, but some expect to use 32-bit integers always # pointer width, but some expect to use 32-bit integers always
# (for compatibility with reference BLAS). # (for compatibility with reference BLAS).
@ -129,7 +129,7 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "openblas"; pname = "openblas";
version = "0.3.15"; version = "0.3.17";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -137,23 +137,9 @@ stdenv.mkDerivation rec {
owner = "xianyi"; owner = "xianyi";
repo = "OpenBLAS"; repo = "OpenBLAS";
rev = "v${version}"; rev = "v${version}";
sha256 = "1qjr02cqncv20abdp1yzr55n7smhx6h9chqvb0xbp18byynvj87w"; sha256 = "11j103s851mml6kns781kha0asxjz6b6s1vbv80aq3b6g7p05pms";
}; };
# remove both patches when updating to 0.3.16
patches = [
(fetchpatch {
name = "riscv64-imin-fix-wrong-comparison.patch";
url = "https://github.com/xianyi/OpenBLAS/commit/1e0192a5ccac28fc0c749f49d36ec7eda9757428.patch";
sha256 = "0kjkmrj8023vcjxhgin5dqs5w3gf93hzhwdhg0vsjhdra2ghkwzj";
})
(fetchpatch {
name = "riscv64-generic-use-generic-kernel-for-dsdot.patch";
url = "https://github.com/xianyi/OpenBLAS/commit/3521cd48cbfb3d50f6ae9a10377382d37075c696.patch";
sha256 = "0ljwbldff4db377s8rzmqxrszilqdivy656yqvfq46x5338v3gi0";
})
];
inherit blas64; inherit blas64;
# Some hardening features are disabled due to sporadic failures in # Some hardening features are disabled due to sporadic failures in

View File

@ -5,6 +5,7 @@
, freetype , freetype
, cmake , cmake
, static ? stdenv.hostPlatform.isStatic , static ? stdenv.hostPlatform.isStatic
, libgcc
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -18,7 +19,9 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ pkg-config cmake ]; nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [ freetype ]; buildInputs = [ freetype ]
# On aarch64-darwin libgcc won't even build currently, and it doesn't seem needed.
++ lib.optionals (with stdenv; !cc.isGNU && !(isDarwin && isAarch64)) [ libgcc ];
patches = lib.optionals stdenv.isDarwin [ ./macosx.patch ]; patches = lib.optionals stdenv.isDarwin [ ./macosx.patch ];

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