Merge branch 'staging' into fix.icon-theme-inheritance

This commit is contained in:
José Romildo Malaquias 2020-04-21 10:29:12 -03:00 committed by GitHub
commit adcb685ec0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
213 changed files with 3962 additions and 1524 deletions

View File

@ -53,9 +53,9 @@ For package version upgrades and such a one-line commit message is usually suffi
To [backport a change into a release branch](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches): To [backport a change into a release branch](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches):
1. Take note of the commit in which the change was introduced into `master`. 1. Take note of the commit in which the change was introduced into `master`.
2. Check out the target _release branch_, e.g. `release-19.09`. Do not use a _channel branch_ like `nixos-19.09` or `nixpkgs-19.09`. 2. Check out the target _release branch_, e.g. `release-20.03`. Do not use a _channel branch_ like `nixos-20.03` or `nixpkgs-20.03`.
3. Use `git cherry-pick -x <original commit>`. 3. Use `git cherry-pick -x <original commit>`.
4. Open your backport PR. Make sure to select the release branch (e.g. `release-19.09`) as the target branch of the PR, and link to the PR in which the original change was made to `master`. 4. Open your backport PR. Make sure to select the release branch (e.g. `release-20.03`) as the target branch of the PR, and link to the PR in which the original change was made to `master`.
## Reviewing contributions ## Reviewing contributions

View File

@ -45,9 +45,9 @@ Nixpkgs and NixOS are built and tested by our continuous integration
system, [Hydra](https://hydra.nixos.org/). system, [Hydra](https://hydra.nixos.org/).
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined) * [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
* [Continuous package builds for the NixOS 19.09 release](https://hydra.nixos.org/jobset/nixos/release-19.09) * [Continuous package builds for the NixOS 20.03 release](https://hydra.nixos.org/jobset/nixos/release-20.03)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents) * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
* [Tests for the NixOS 19.09 release](https://hydra.nixos.org/job/nixos/release-19.09/tested#tabs-constituents) * [Tests for the NixOS 20.03 release](https://hydra.nixos.org/job/nixos/release-20.03/tested#tabs-constituents)
Artifacts successfully built with Hydra are published to cache at Artifacts successfully built with Hydra are published to cache at
https://cache.nixos.org/. When successful build and test criteria are https://cache.nixos.org/. When successful build and test criteria are

View File

@ -149,31 +149,4 @@ EOF
]]></programlisting> ]]></programlisting>
</para> </para>
</section> </section>
<section xml:id="sec-language-texlive-known-problems">
<title>Known problems</title>
<itemizedlist>
<listitem>
<para>
Some tools are still missing, e.g. luajittex;
</para>
</listitem>
<listitem>
<para>
some apps aren't packaged/tested yet (asymptote, biber, etc.);
</para>
</listitem>
<listitem>
<para>
feature/bug: when a package is rejected by <varname>pkgFilter</varname>, its dependencies are still propagated;
</para>
</listitem>
<listitem>
<para>
in case of any bugs or feature requests, file a github issue or better a pull request and /cc @vcunat.
</para>
</listitem>
</itemizedlist>
</section>
</section> </section>

View File

@ -727,6 +727,16 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
<variablelist> <variablelist>
<title>Variables controlling the patch phase</title> <title>Variables controlling the patch phase</title>
<varlistentry>
<term>
<varname>dontPatch</varname>
</term>
<listitem>
<para>
Set to true to skip the patch phase.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<varname>patches</varname> <varname>patches</varname>

View File

@ -271,6 +271,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
fullName = "European Union Public License 1.1"; fullName = "European Union Public License 1.1";
}; };
eupl12 = spdx {
spdxId = "EUPL-1.2";
fullName = "European Union Public License 1.2";
};
fdl12 = spdx { fdl12 = spdx {
spdxId = "GFDL-1.2-only"; spdxId = "GFDL-1.2-only";
fullName = "GNU Free Documentation License v1.2 only"; fullName = "GNU Free Documentation License v1.2 only";

View File

@ -14,7 +14,7 @@
<para> <para>
<emphasis>Stable channels</emphasis>, such as <emphasis>Stable channels</emphasis>, such as
<literal <literal
xlink:href="https://nixos.org/channels/nixos-19.09">nixos-19.09</literal>. xlink:href="https://nixos.org/channels/nixos-20.03">nixos-20.03</literal>.
These only get conservative bug fixes and package upgrades. For instance, These only get conservative bug fixes and package upgrades. For instance,
a channel update may cause the Linux kernel on your system to be upgraded a channel update may cause the Linux kernel on your system to be upgraded
from 4.19.34 to 4.19.38 (a minor bug fix), but not from from 4.19.34 to 4.19.38 (a minor bug fix), but not from
@ -38,7 +38,7 @@
<para> <para>
<emphasis>Small channels</emphasis>, such as <emphasis>Small channels</emphasis>, such as
<literal <literal
xlink:href="https://nixos.org/channels/nixos-19.09-small">nixos-19.09-small</literal> xlink:href="https://nixos.org/channels/nixos-20.03-small">nixos-20.03-small</literal>
or or
<literal <literal
xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>. xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
@ -63,8 +63,8 @@
<para> <para>
When you first install NixOS, youre automatically subscribed to the NixOS When you first install NixOS, youre automatically subscribed to the NixOS
channel that corresponds to your installation source. For instance, if you channel that corresponds to your installation source. For instance, if you
installed from a 19.09 ISO, you will be subscribed to the installed from a 20.03 ISO, you will be subscribed to the
<literal>nixos-19.09</literal> channel. To see which NixOS channel youre <literal>nixos-20.03</literal> channel. To see which NixOS channel youre
subscribed to, run the following as root: subscribed to, run the following as root:
<screen> <screen>
# nix-channel --list | grep nixos # nix-channel --list | grep nixos
@ -75,13 +75,13 @@ nixos https://nixos.org/channels/nixos-unstable
# nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos # nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
</screen> </screen>
(Be sure to include the <literal>nixos</literal> parameter at the end.) For (Be sure to include the <literal>nixos</literal> parameter at the end.) For
instance, to use the NixOS 19.09 stable channel: instance, to use the NixOS 20.03 stable channel:
<screen> <screen>
# nix-channel --add https://nixos.org/channels/nixos-19.09 nixos # nix-channel --add https://nixos.org/channels/nixos-20.03 nixos
</screen> </screen>
If you have a server, you may want to use the “small” channel instead: If you have a server, you may want to use the “small” channel instead:
<screen> <screen>
# nix-channel --add https://nixos.org/channels/nixos-19.09-small nixos # nix-channel --add https://nixos.org/channels/nixos-20.03-small nixos
</screen> </screen>
And if you want to live on the bleeding edge: And if you want to live on the bleeding edge:
<screen> <screen>
@ -132,7 +132,7 @@ nixos https://nixos.org/channels/nixos-unstable
kernel, initrd or kernel modules. kernel, initrd or kernel modules.
You can also specify a channel explicitly, e.g. You can also specify a channel explicitly, e.g.
<programlisting> <programlisting>
<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-19.09; <xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-20.03;
</programlisting> </programlisting>
</para> </para>
</section> </section>

View File

@ -3,7 +3,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0" version="5.0"
xml:id="sec-release-20.03"> xml:id="sec-release-20.03">
<title>Release 20.03 (“Markhor”, 2020.03/??)</title> <title>Release 20.03 (“Markhor”, 2020.04/20)</title>
<section xmlns="http://docbook.org/ns/docbook" <section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"

View File

@ -45,6 +45,9 @@ let
# generate the font cache setting file for a fontconfig version # generate the font cache setting file for a fontconfig version
# use latest when no version is passed # use latest when no version is passed
# When cross-compiling, we cant generate the cache, so we skip the
# <cachedir> part. fontconfig still works but is a little slower in
# looking things up.
makeCacheConf = { version ? null }: makeCacheConf = { version ? null }:
let let
fcPackage = if version == null fcPackage = if version == null
@ -60,11 +63,13 @@ let
<fontconfig> <fontconfig>
<!-- Font directories --> <!-- Font directories -->
${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)} ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
<!-- Pre-generated font caches --> <!-- Pre-generated font caches -->
<cachedir>${cache}</cachedir> <cachedir>${cache}</cachedir>
${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) '' ${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
<cachedir>${cache32}</cachedir> <cachedir>${cache32}</cachedir>
''} ''}
''}
</fontconfig> </fontconfig>
''; '';

View File

@ -197,7 +197,7 @@ in
} // optionalAttrs (pkgs.stdenv.hostPlatform.libc == "glibc") { } // optionalAttrs (pkgs.stdenv.hostPlatform.libc == "glibc") {
# /etc/rpc: RPC program numbers. # /etc/rpc: RPC program numbers.
rpc.source = pkgs.glibc.out + "/etc/rpc"; rpc.source = pkgs.stdenv.cc.libc.out + "/etc/rpc";
}; };
networking.proxy.envVars = networking.proxy.envVars =

View File

@ -10,14 +10,6 @@ let
videoDrivers = config.services.xserver.videoDrivers; videoDrivers = config.services.xserver.videoDrivers;
makePackage = p: pkgs.buildEnv {
name = "mesa-drivers+txc-${p.mesa.version}";
paths =
[ p.mesa.drivers
(if cfg.s3tcSupport then p.libtxc_dxtn else p.libtxc_dxtn_s2tc)
];
};
package = pkgs.buildEnv { package = pkgs.buildEnv {
name = "opengl-drivers"; name = "opengl-drivers";
paths = [ cfg.package ] ++ cfg.extraPackages; paths = [ cfg.package ] ++ cfg.extraPackages;
@ -34,6 +26,9 @@ in
imports = [ imports = [
(mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ]) (mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ])
(mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] ''
S3TC support is now always enabled in Mesa.
'')
]; ];
options = { options = {
@ -74,17 +69,6 @@ in
''; '';
}; };
s3tcSupport = mkOption {
type = types.bool;
default = false;
description = ''
Make S3TC(S3 Texture Compression) via libtxc_dxtn available
to OpenGL drivers instead of the patent-free S2TC replacement.
Using this library may require a patent license depending on your location.
'';
};
package = mkOption { package = mkOption {
type = types.package; type = types.package;
internal = true; internal = true;
@ -166,8 +150,8 @@ in
environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath
([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib"); ([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib");
hardware.opengl.package = mkDefault (makePackage pkgs); hardware.opengl.package = mkDefault pkgs.mesa.drivers;
hardware.opengl.package32 = mkDefault (makePackage pkgs.pkgsi686Linux); hardware.opengl.package32 = mkDefault pkgs.pkgsi686Linux.mesa.drivers;
boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions; boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions;
}; };

View File

@ -180,7 +180,7 @@ sub pciCheck {
) ) ) )
{ {
# we need e.g. brcmfmac43602-pcie.bin # we need e.g. brcmfmac43602-pcie.bin
push @imports, "<nixpkgs/nixos/modules/hardware/network/broadcom-43xx.nix>"; push @imports, "(modulesPath + \"/hardware/network/broadcom-43xx.nix\")";
} }
# Can't rely on $module here, since the module may not be loaded # Can't rely on $module here, since the module may not be loaded
@ -279,7 +279,7 @@ if ($virt eq "oracle") {
# Likewise for QEMU. # Likewise for QEMU.
if ($virt eq "qemu" || $virt eq "kvm" || $virt eq "bochs") { if ($virt eq "qemu" || $virt eq "kvm" || $virt eq "bochs") {
push @imports, "<nixpkgs/nixos/modules/profiles/qemu-guest.nix>"; push @imports, "(modulesPath + \"/profiles/qemu-guest.nix\")";
} }
# Also for Hyper-V. # Also for Hyper-V.
@ -296,7 +296,7 @@ if ($virt eq "systemd-nspawn") {
# Provide firmware for devices that are not detected by this script, # Provide firmware for devices that are not detected by this script,
# unless we're in a VM/container. # unless we're in a VM/container.
push @imports, "<nixpkgs/nixos/modules/installer/scan/not-detected.nix>" push @imports, "(modulesPath + \"/installer/scan/not-detected.nix\")"
if $virt eq "none"; if $virt eq "none";
@ -549,7 +549,7 @@ my $hwConfig = <<EOF;
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports =${\multiLineList(" ", @imports)}; imports =${\multiLineList(" ", @imports)};

View File

@ -7,6 +7,10 @@ let
nssModulesPath = config.system.nssModules.path; nssModulesPath = config.system.nssModules.path;
cfg = config.services.nscd; cfg = config.services.nscd;
nscd = if pkgs.stdenv.hostPlatform.libc == "glibc"
then pkgs.stdenv.cc.libc.bin
else pkgs.glibc.bin;
in in
{ {
@ -59,16 +63,16 @@ in
# files. So prefix the ExecStart command with "!" to prevent systemd # files. So prefix the ExecStart command with "!" to prevent systemd
# from dropping privileges early. See ExecStart in systemd.service(5). # from dropping privileges early. See ExecStart in systemd.service(5).
serviceConfig = serviceConfig =
{ ExecStart = "!@${pkgs.glibc.bin}/sbin/nscd nscd"; { ExecStart = "!@${nscd}/sbin/nscd nscd";
Type = "forking"; Type = "forking";
DynamicUser = true; DynamicUser = true;
RuntimeDirectory = "nscd"; RuntimeDirectory = "nscd";
PIDFile = "/run/nscd/nscd.pid"; PIDFile = "/run/nscd/nscd.pid";
Restart = "always"; Restart = "always";
ExecReload = ExecReload =
[ "${pkgs.glibc.bin}/sbin/nscd --invalidate passwd" [ "${nscd}/sbin/nscd --invalidate passwd"
"${pkgs.glibc.bin}/sbin/nscd --invalidate group" "${nscd}/sbin/nscd --invalidate group"
"${pkgs.glibc.bin}/sbin/nscd --invalidate hosts" "${nscd}/sbin/nscd --invalidate hosts"
]; ];
}; };
}; };

View File

@ -3,13 +3,14 @@
let let
inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types; inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types;
inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep;
cfg = config.services.dokuwiki; eachSite = config.services.dokuwiki;
user = config.services.nginx.user; user = "dokuwiki";
group = config.services.nginx.group; group = config.services.nginx.group;
dokuwikiAclAuthConfig = pkgs.writeText "acl.auth.php" '' dokuwikiAclAuthConfig = cfg: pkgs.writeText "acl.auth.php" ''
# acl.auth.php # acl.auth.php
# <?php exit()?> # <?php exit()?>
# #
@ -18,244 +19,353 @@ let
${toString cfg.acl} ${toString cfg.acl}
''; '';
dokuwikiLocalConfig = pkgs.writeText "local.php" '' dokuwikiLocalConfig = cfg: pkgs.writeText "local.php" ''
<?php <?php
$conf['savedir'] = '${cfg.stateDir}'; $conf['savedir'] = '${cfg.stateDir}';
$conf['superuser'] = '${toString cfg.superUser}'; $conf['superuser'] = '${toString cfg.superUser}';
$conf['useacl'] = '${toString cfg.aclUse}'; $conf['useacl'] = '${toString cfg.aclUse}';
$conf['disableactions'] = '${cfg.disableActions}';
${toString cfg.extraConfig} ${toString cfg.extraConfig}
''; '';
dokuwikiPluginsLocalConfig = pkgs.writeText "plugins.local.php" '' dokuwikiPluginsLocalConfig = cfg: pkgs.writeText "plugins.local.php" ''
<?php <?php
${cfg.pluginsConfig} ${cfg.pluginsConfig}
''; '';
pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
pname = "dokuwiki-${hostName}";
version = src.version;
src = cfg.package;
installPhase = ''
mkdir -p $out
cp -r * $out/
# symlink the dokuwiki config
ln -s ${dokuwikiLocalConfig cfg} $out/share/dokuwiki/local.php
# symlink plugins config
ln -s ${dokuwikiPluginsLocalConfig cfg} $out/share/dokuwiki/plugins.local.php
# symlink acl
ln -s ${dokuwikiAclAuthConfig cfg} $out/share/dokuwiki/acl.auth.php
# symlink additional plugin(s) and templates(s)
${concatMapStringsSep "\n" (template: "ln -s ${template} $out/share/dokuwiki/lib/tpl/${template.name}") cfg.templates}
${concatMapStringsSep "\n" (plugin: "ln -s ${plugin} $out/share/dokuwiki/lib/plugins/${plugin.name}") cfg.plugins}
'';
};
siteOpts = { config, lib, name, ...}: {
options = {
enable = mkEnableOption "DokuWiki web application.";
package = mkOption {
type = types.package;
default = pkgs.dokuwiki;
description = "Which dokuwiki package to use.";
};
hostName = mkOption {
type = types.str;
default = "localhost";
description = "FQDN for the instance.";
};
stateDir = mkOption {
type = types.path;
default = "/var/lib/dokuwiki/${name}/data";
description = "Location of the dokuwiki state directory.";
};
acl = mkOption {
type = types.nullOr types.lines;
default = null;
example = "* @ALL 8";
description = ''
Access Control Lists: see <link xlink:href="https://www.dokuwiki.org/acl"/>
Mutually exclusive with services.dokuwiki.aclFile
Set this to a value other than null to take precedence over aclFile option.
Warning: Consider using aclFile instead if you do not
want to store the ACL in the world-readable Nix store.
'';
};
aclFile = mkOption {
type = with types; nullOr str;
default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
description = ''
Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl
Mutually exclusive with services.dokuwiki.acl which is preferred.
Consult documentation <link xlink:href="https://www.dokuwiki.org/acl"/> for further instructions.
Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/acl.auth.php.dist"/>
'';
example = "/var/lib/dokuwiki/${name}/acl.auth.php";
};
aclUse = mkOption {
type = types.bool;
default = true;
description = ''
Necessary for users to log in into the system.
Also limits anonymous users. When disabled,
everyone is able to create and edit content.
'';
};
pluginsConfig = mkOption {
type = types.lines;
default = ''
$plugins['authad'] = 0;
$plugins['authldap'] = 0;
$plugins['authmysql'] = 0;
$plugins['authpgsql'] = 0;
'';
description = ''
List of the dokuwiki (un)loaded plugins.
'';
};
superUser = mkOption {
type = types.nullOr types.str;
default = "@admin";
description = ''
You can set either a username, a list of usernames (admin1,admin2),
or the name of a group by prepending an @ char to the groupname
Consult documentation <link xlink:href="https://www.dokuwiki.org/config:superuser"/> for further instructions.
'';
};
usersFile = mkOption {
type = with types; nullOr str;
default = if config.aclUse then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
description = ''
Location of the dokuwiki users file. List of users. Format:
login:passwordhash:Real Name:email:groups,comma,separated
Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1`
Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist"/>
'';
example = "/var/lib/dokuwiki/${name}/users.auth.php";
};
disableActions = mkOption {
type = types.nullOr types.str;
default = "";
example = "search,register";
description = ''
Disable individual action modes. Refer to
<link xlink:href="https://www.dokuwiki.org/config:action_modes"/>
for details on supported values.
'';
};
extraConfig = mkOption {
type = types.nullOr types.lines;
default = null;
example = ''
$conf['title'] = 'My Wiki';
$conf['userewrite'] = 1;
'';
description = ''
DokuWiki configuration. Refer to
<link xlink:href="https://www.dokuwiki.org/config"/>
for details on supported values.
'';
};
plugins = mkOption {
type = types.listOf types.path;
default = [];
description = ''
List of path(s) to respective plugin(s) which are copied from the 'plugin' directory.
<note><para>These plugins need to be packaged before use, see example.</para></note>
'';
example = ''
# Let's package the icalevents plugin
plugin-icalevents = pkgs.stdenv.mkDerivation {
name = "icalevents";
# Download the plugin from the dokuwiki site
src = pkgs.fetchurl {
url = https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip;
sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
};
sourceRoot = ".";
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
# And then pass this theme to the plugin list like this:
plugins = [ plugin-icalevents ];
'';
};
templates = mkOption {
type = types.listOf types.path;
default = [];
description = ''
List of path(s) to respective template(s) which are copied from the 'tpl' directory.
<note><para>These templates need to be packaged before use, see example.</para></note>
'';
example = ''
# Let's package the bootstrap3 theme
template-bootstrap3 = pkgs.stdenv.mkDerivation {
name = "bootstrap3";
# Download the theme from the dokuwiki site
src = pkgs.fetchurl {
url = https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip;
sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
# And then pass this theme to the template list like this:
templates = [ template-bootstrap3 ];
'';
};
poolConfig = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
default = {
"pm" = "dynamic";
"pm.max_children" = 32;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 2;
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
description = ''
Options for the dokuwiki PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives.
'';
};
nginx = mkOption {
type = types.submodule (
recursiveUpdate
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; })
{
# Enable encryption by default,
options.forceSSL.default = true;
options.enableACME.default = true;
}
);
default = {forceSSL = true; enableACME = true;};
example = {
serverAliases = [
"wiki.\${config.networking.domain}"
];
enableACME = false;
};
description = ''
With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki.
'';
};
};
};
in in
{ {
options.services.dokuwiki = { # interface
enable = mkEnableOption "DokuWiki web application."; options = {
services.dokuwiki = mkOption {
hostName = mkOption { type = types.attrsOf (types.submodule siteOpts);
type = types.str; default = {};
default = "localhost"; description = "Sepcification of one or more dokuwiki sites to service.";
description = "FQDN for the instance.";
};
stateDir = mkOption {
type = types.path;
default = "/var/lib/dokuwiki/data";
description = "Location of the dokuwiki state directory.";
};
acl = mkOption {
type = types.nullOr types.lines;
default = null;
example = "* @ALL 8";
description = ''
Access Control Lists: see <link xlink:href="https://www.dokuwiki.org/acl"/>
Mutually exclusive with services.dokuwiki.aclFile
Set this to a value other than null to take precedence over aclFile option.
'';
};
aclFile = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl
Mutually exclusive with services.dokuwiki.acl which is preferred.
Consult documentation <link xlink:href="https://www.dokuwiki.org/acl"/> for further instructions.
Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/acl.auth.php.dist"/>
'';
};
aclUse = mkOption {
type = types.bool;
default = true;
description = ''
Necessary for users to log in into the system.
Also limits anonymous users. When disabled,
everyone is able to create and edit content.
'';
};
pluginsConfig = mkOption {
type = types.lines;
default = ''
$plugins['authad'] = 0;
$plugins['authldap'] = 0;
$plugins['authmysql'] = 0;
$plugins['authpgsql'] = 0;
'';
description = ''
List of the dokuwiki (un)loaded plugins.
'';
};
superUser = mkOption {
type = types.nullOr types.str;
default = "@admin";
description = ''
You can set either a username, a list of usernames (admin1,admin2),
or the name of a group by prepending an @ char to the groupname
Consult documentation <link xlink:href="https://www.dokuwiki.org/config:superuser"/> for further instructions.
'';
};
usersFile = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
Location of the dokuwiki users file. List of users. Format:
login:passwordhash:Real Name:email:groups,comma,separated
Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1`
Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist"/>
'';
};
extraConfig = mkOption {
type = types.nullOr types.lines;
default = null;
example = ''
$conf['title'] = 'My Wiki';
$conf['userewrite'] = 1;
'';
description = ''
DokuWiki configuration. Refer to
<link xlink:href="https://www.dokuwiki.org/config"/>
for details on supported values.
'';
};
poolConfig = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
default = {
"pm" = "dynamic";
"pm.max_children" = 32;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 2;
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
description = ''
Options for the dokuwiki PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives.
'';
};
nginx = mkOption {
type = types.submodule (
recursiveUpdate
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; })
{
# Enable encryption by default,
options.forceSSL.default = true;
options.enableACME.default = true;
}
);
default = {forceSSL = true; enableACME = true;};
example = {
serverAliases = [
"wiki.\${config.networking.domain}"
];
enableACME = false;
};
description = ''
With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki.
'';
}; };
}; };
# implementation # implementation
config = mkIf cfg.enable { config = mkIf (eachSite != {}) {
warnings = mkIf (cfg.superUser == null) ["Not setting services.dokuwiki.superUser will impair your ability to administer DokuWiki"]; warnings = mapAttrsToList (hostName: cfg: mkIf (cfg.superUser == null) "Not setting services.dokuwiki.${hostName} superUser will impair your ability to administer DokuWiki") eachSite;
assertions = [ assertions = flatten (mapAttrsToList (hostName: cfg:
{ [{
assertion = cfg.aclUse -> (cfg.acl != null || cfg.aclFile != null); assertion = cfg.aclUse -> (cfg.acl != null || cfg.aclFile != null);
message = "Either services.dokuwiki.acl or services.dokuwiki.aclFile is mandatory when aclUse is true"; message = "Either services.dokuwiki.${hostName}.acl or services.dokuwiki.${hostName}.aclFile is mandatory if aclUse true";
} }
{ {
assertion = cfg.usersFile != null -> cfg.aclUse != false; assertion = cfg.usersFile != null -> cfg.aclUse != false;
message = "services.dokuwiki.aclUse must be true when usersFile is not null"; message = "services.dokuwiki.${hostName}.aclUse must must be true if usersFile is not null";
} }
]; ]) eachSite);
services.phpfpm.pools.dokuwiki = { services.phpfpm.pools = mapAttrs' (hostName: cfg: (
inherit user; nameValuePair "dokuwiki-${hostName}" {
inherit group; inherit user;
phpEnv = { inherit group;
DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig}"; phpEnv = {
DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig}"; DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig cfg}";
} //optionalAttrs (cfg.usersFile != null) { DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig cfg}";
DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}"; } // optionalAttrs (cfg.usersFile != null) {
} //optionalAttrs (cfg.aclUse) { DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}";
DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig}" else "${toString cfg.aclFile}"; } //optionalAttrs (cfg.aclUse) {
}; DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig cfg}" else "${toString cfg.aclFile}";
};
settings = {
"listen.mode" = "0660"; settings = {
"listen.owner" = user; "listen.mode" = "0660";
"listen.group" = group; "listen.owner" = user;
} // cfg.poolConfig; "listen.group" = group;
}; } // cfg.poolConfig;
})) eachSite;
services.nginx = { services.nginx = {
enable = true; enable = true;
virtualHosts = mapAttrs (hostName: cfg: mkMerge [ cfg.nginx {
virtualHosts = { root = mkForce "${pkg hostName cfg}/share/dokuwiki";
${cfg.hostName} = mkMerge [ cfg.nginx { extraConfig = "fastcgi_param HTTPS on;";
root = mkForce "${pkgs.dokuwiki}/share/dokuwiki/";
extraConfig = "fastcgi_param HTTPS on;";
locations."~ /(conf/|bin/|inc/|install.php)" = { locations."~ /(conf/|bin/|inc/|install.php)" = {
extraConfig = "deny all;"; extraConfig = "deny all;";
}; };
locations."~ ^/data/" = { locations."~ ^/data/" = {
root = "${cfg.stateDir}"; root = "${cfg.stateDir}";
extraConfig = "internal;"; extraConfig = "internal;";
}; };
locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = { locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;"; extraConfig = "expires 365d;";
}; };
locations."/" = { locations."/" = {
priority = 1; priority = 1;
index = "doku.php"; index = "doku.php";
extraConfig = ''try_files $uri $uri/ @dokuwiki;''; extraConfig = ''try_files $uri $uri/ @dokuwiki;'';
}; };
locations."@dokuwiki" = { locations."@dokuwiki" = {
extraConfig = '' extraConfig = ''
# rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page # rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page
rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
rewrite ^/(.*) /doku.php?id=$1&$args last; rewrite ^/(.*) /doku.php?id=$1&$args last;
''; '';
}; };
locations."~ \.php$" = { locations."~ \.php$" = {
extraConfig = '' extraConfig = ''
try_files $uri $uri/ /doku.php; try_files $uri $uri/ /doku.php;
include ${pkgs.nginx}/conf/fastcgi_params; include ${pkgs.nginx}/conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200; fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:${config.services.phpfpm.pools.dokuwiki.socket}; fastcgi_pass unix:${config.services.phpfpm.pools."dokuwiki-${hostName}".socket};
fastcgi_param HTTPS on; fastcgi_param HTTPS on;
''; '';
}; };
}]; }]) eachSite;
};
}; };
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [
"d ${cfg.stateDir}/attic 0750 ${user} ${group} - -" "d ${cfg.stateDir}/attic 0750 ${user} ${group} - -"
"d ${cfg.stateDir}/cache 0750 ${user} ${group} - -" "d ${cfg.stateDir}/cache 0750 ${user} ${group} - -"
"d ${cfg.stateDir}/index 0750 ${user} ${group} - -" "d ${cfg.stateDir}/index 0750 ${user} ${group} - -"
@ -266,7 +376,13 @@ in
"d ${cfg.stateDir}/meta 0750 ${user} ${group} - -" "d ${cfg.stateDir}/meta 0750 ${user} ${group} - -"
"d ${cfg.stateDir}/pages 0750 ${user} ${group} - -" "d ${cfg.stateDir}/pages 0750 ${user} ${group} - -"
"d ${cfg.stateDir}/tmp 0750 ${user} ${group} - -" "d ${cfg.stateDir}/tmp 0750 ${user} ${group} - -"
]; ] ++ lib.optional (cfg.aclFile != null) "C ${cfg.aclFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/acl.auth.php.dist"
++ lib.optional (cfg.usersFile != null) "C ${cfg.usersFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/users.auth.php.dist"
) eachSite);
users.users.${user} = {
group = group;
isSystemUser = true;
};
}; };
} }

View File

@ -19,7 +19,7 @@ let
continue continue
fi fi
GDK_PIXBUF_MODULEDIR="$module_dir" \ GDK_PIXBUF_MODULEDIR="$module_dir" \
${pkgs.gdk-pixbuf.dev}/bin/gdk-pixbuf-query-loaders ${pkgs.stdenv.hostPlatform.emulator pkgs.buildPackages} ${pkgs.gdk-pixbuf.dev}/bin/gdk-pixbuf-query-loaders
done done
) > "$out" ) > "$out"
''; '';
@ -37,7 +37,7 @@ in
# If there is any package configured in modulePackages, we generate the # If there is any package configured in modulePackages, we generate the
# loaders.cache based on that and set the environment variable # loaders.cache based on that and set the environment variable
# GDK_PIXBUF_MODULE_FILE to point to it. # GDK_PIXBUF_MODULE_FILE to point to it.
config = mkIf (cfg.modulePackages != []) { config = mkIf (cfg.modulePackages != [] || pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform) {
environment.variables = { environment.variables = {
GDK_PIXBUF_MODULE_FILE = "${loadersCache}"; GDK_PIXBUF_MODULE_FILE = "${loadersCache}";
}; };

View File

@ -894,6 +894,13 @@ in
"sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf"; "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf";
"sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf"; "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf";
"tmpfiles.d/00-nixos.conf".text = ''
# This file is created automatically and should not be modified.
# Please change the option systemd.tmpfiles.rules instead.
${concatStringsSep "\n" cfg.tmpfiles.rules}
'';
"tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf"; "tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf";
"tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf"; "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf";
"tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf"; "tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf";
@ -906,13 +913,6 @@ in
"tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf"; "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf";
"tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf"; "tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf";
"tmpfiles.d/nixos.conf".text = ''
# This file is created automatically and should not be modified.
# Please change the option systemd.tmpfiles.rules instead.
${concatStringsSep "\n" cfg.tmpfiles.rules}
'';
"systemd/system-generators" = { source = hooks "generators" cfg.generators; }; "systemd/system-generators" = { source = hooks "generators" cfg.generators; };
"systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; }; "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
}); });

View File

@ -463,10 +463,15 @@ in
A specification of the desired configuration of this A specification of the desired configuration of this
container, as a NixOS module. container, as a NixOS module.
''; '';
type = lib.mkOptionType { type = let
confPkgs = if config.pkgs == null then pkgs else config.pkgs;
in lib.mkOptionType {
name = "Toplevel NixOS config"; name = "Toplevel NixOS config";
merge = loc: defs: (import ../../lib/eval-config.nix { merge = loc: defs: (import (confPkgs.path + "/nixos/lib/eval-config.nix") {
inherit system; inherit system;
pkgs = confPkgs;
baseModules = import (confPkgs.path + "/nixos/modules/module-list.nix");
inherit (confPkgs) lib;
modules = modules =
let let
extraConfig = { extraConfig = {
@ -515,6 +520,15 @@ in
''; '';
}; };
pkgs = mkOption {
type = types.nullOr types.attrs;
default = null;
example = literalExample "pkgs";
description = ''
Customise which nixpkgs to use for this container.
'';
};
ephemeral = mkOption { ephemeral = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;

View File

@ -53,6 +53,7 @@ in
consul = handleTest ./consul.nix {}; consul = handleTest ./consul.nix {};
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {}; cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
containers-bridge = handleTest ./containers-bridge.nix {}; containers-bridge = handleTest ./containers-bridge.nix {};
containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
containers-ephemeral = handleTest ./containers-ephemeral.nix {}; containers-ephemeral = handleTest ./containers-ephemeral.nix {};
containers-extra_veth = handleTest ./containers-extra_veth.nix {}; containers-extra_veth = handleTest ./containers-extra_veth.nix {};
containers-hosts = handleTest ./containers-hosts.nix {}; containers-hosts = handleTest ./containers-hosts.nix {};

View File

@ -0,0 +1,42 @@
# Test for NixOS' container support.
import ./make-test-python.nix ({ pkgs, lib, ...} : let
customPkgs = pkgs // {
hello = pkgs.hello.overrideAttrs(old: {
name = "custom-hello";
});
};
in {
name = "containers-hosts";
meta = with lib.maintainers; {
maintainers = [ adisbladis ];
};
machine =
{ ... }:
{
virtualisation.memorySize = 256;
virtualisation.vlans = [];
containers.simple = {
autoStart = true;
pkgs = customPkgs;
config = {pkgs, config, ... }: {
environment.systemPackages = [
pkgs.hello
];
};
};
};
testScript = ''
start_all()
machine.wait_for_unit("default.target")
machine.succeed(
"test $(nixos-container run simple -- readlink -f /run/current-system/sw/bin/hello) = ${customPkgs.hello}/bin/hello"
)
'';
})

View File

@ -1,29 +1,74 @@
import ./make-test-python.nix ({ lib, ... }: import ./make-test-python.nix ({ pkgs, ... }:
with lib; let
template-bootstrap3 = pkgs.stdenv.mkDerivation {
{ name = "bootstrap3";
name = "dokuwiki"; # Download the theme from the dokuwiki site
meta.maintainers = with maintainers; [ maintainers."1000101" ]; src = pkgs.fetchurl {
url = https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip;
nodes.machine = sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
{ pkgs, ... }:
{ services.dokuwiki = {
enable = true;
acl = " ";
superUser = null;
nginx = {
forceSSL = false;
enableACME = false;
};
};
}; };
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
# Let's package the icalevents plugin
plugin-icalevents = pkgs.stdenv.mkDerivation {
name = "icalevents";
# Download the plugin from the dokuwiki site
src = pkgs.fetchurl {
url = https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip;
sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
sourceRoot = ".";
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
in {
name = "dokuwiki";
meta.maintainers = with pkgs.lib.maintainers; [ "1000101" ];
machine = { ... }: {
services.dokuwiki."site1.local" = {
aclUse = false;
superUser = "admin";
nginx = {
forceSSL = false;
enableACME = false;
};
};
services.dokuwiki."site2.local" = {
aclUse = true;
superUser = "admin";
nginx = {
forceSSL = false;
enableACME = false;
};
templates = [ template-bootstrap3 ];
plugins = [ plugin-icalevents ];
};
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
};
testScript = '' testScript = ''
machine.start() site_names = ["site1.local", "site2.local"]
machine.wait_for_unit("phpfpm-dokuwiki.service")
start_all()
machine.wait_for_unit("phpfpm-dokuwiki-site1.local.service")
machine.wait_for_unit("phpfpm-dokuwiki-site2.local.service")
machine.wait_for_unit("nginx.service") machine.wait_for_unit("nginx.service")
machine.wait_for_open_port(80) machine.wait_for_open_port(80)
machine.succeed("curl -sSfL http://localhost/ | grep 'DokuWiki'")
machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'")
machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'")
''; '';
}) })

View File

@ -11,13 +11,13 @@ stdenv.mkDerivation {
}; };
buildInputs = [ libpulseaudio ]; buildInputs = [ libpulseaudio ];
configureFlagsArray = configureFlags =
[ "--without-test" "--without-contrib" "--disable-devdsp" [ "--without-test" "--without-contrib" "--disable-devdsp"
"--enable-pulse" "--disable-alsa" "--disable-midi" "--enable-pulse" "--disable-alsa" "--disable-midi"
"--disable-nas" "--disable-dsound" "--disable-i18n" ]; "--disable-nas" "--disable-dsound" "--disable-i18n" ];
makeFlagsArray = [ "tests=" ]; makeFlags = [ "tests=" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "gameboy sound player"; description = "gameboy sound player";

View File

@ -0,0 +1,34 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
, qtbase, qttools, qtxmlpatterns
}:
stdenv.mkDerivation rec {
pname = "hydrogen";
version = "1.0.0-beta2";
src = fetchFromGitHub {
owner = "hydrogen-music";
repo = pname;
rev = version;
sha256 = "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a";
};
nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
buildInputs = [
alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
qtbase qttools qtxmlpatterns
];
cmakeFlags = [
"-DWANT_DEBUG=OFF"
];
meta = with stdenv.lib; {
description = "Advanced drum machine";
homepage = "http://www.hydrogen-music.org";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ goibhniu orivej ];
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm { stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm
, Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif , Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf , alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
@ -44,6 +44,11 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./clean-env.patch ./clean-env.patch
./tramp-detect-wrapped-gvfsd.patch ./tramp-detect-wrapped-gvfsd.patch
# unbreak macOS unexec
(fetchpatch {
url = https://github.com/emacs-mirror/emacs/commit/888ffd960c06d56a409a7ff15b1d930d25c56089.patch;
sha256 = "08q3ygdigqwky70r47rcgzlkc5jy82xiq8am5kwwy891wlpl7frw";
})
]; ];
postPatch = lib.optionalString srcRepo '' postPatch = lib.optionalString srcRepo ''

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }: { lib, fetchFromGitHub }:
rec { rec {
version = "8.2.0343"; version = "8.2.0510";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim"; owner = "vim";
repo = "vim"; repo = "vim";
rev = "v${version}"; rev = "v${version}";
sha256 = "063i52h8v7f87zamrw2ph057f0x2nzwf1s0izrm2psy41cyf4wa3"; sha256 = "16ggwf238pzzkn3ng6n09qz9cgdzha9vc0ghlcxhwilnjh12l7p9";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -104,6 +104,12 @@ rustPlatform.buildRustPackage rec {
'' else '' '' else ''
install -D extra/linux/Alacritty.desktop -t $out/share/applications/ install -D extra/linux/Alacritty.desktop -t $out/share/applications/
install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
# patchelf generates an ELF that binutils' "strip" doesn't like:
# strip: not enough room for program headers, try linking with -N
# As a workaround, strip manually before running patchelf.
strip -S $out/bin/alacritty
patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
'' ''
) + '' ) + ''

View File

@ -0,0 +1,27 @@
{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcsclite, qtsvg, qttools, qtwebsockets
, qtquickcontrols2, qtgraphicaleffects }:
mkDerivation rec {
pname = "AusweisApp2";
version = "1.20.0";
src = fetchFromGitHub {
owner = "Governikus";
repo = "AusweisApp2";
rev = "${version}";
sha256 = "0qkwdaxhig4qjim7h20j6ln6w76ycppfc786nd8l69bd1qv46m40";
};
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ qtsvg qttools qtwebsockets qtquickcontrols2 qtgraphicaleffects pcsclite ];
meta = with stdenv.lib; {
description = "Authentication software for the German ID card";
downloadPage = "https://github.com/Governikus/AusweisApp2/releases";
homepage = "https://www.ausweisapp.bund.de/ausweisapp2/";
license = licenses.eupl12;
maintainers = with maintainers; [ b4dm4n ];
platforms = platforms.linux;
};
}

View File

@ -7,29 +7,24 @@
, qtbase , qtbase
, qttools , qttools
, qtx11extras , qtx11extras
, sqlite
}: }:
mkDerivation rec { mkDerivation rec {
pname = "birdtray"; pname = "birdtray";
version = "1.7.0"; version = "1.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gyunaev"; owner = "gyunaev";
repo = pname; repo = pname;
rev = "RELEASE_${version}"; rev = version;
sha256 = "0wj2lq5bz1p0cf6yj43v3ifxschcrh5amwx30wqw2m4bb8syzjw1"; sha256 = "15d0gz889vf9b2a046m93s5kdi6lw2sqjd5gaxgjkjrs20x5vr18";
}; };
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ buildInputs = [
qtbase qtx11extras sqlite qtbase qttools qtx11extras
]; ];
installPhase = ''
install -Dm755 birdtray $out/bin/birdtray
'';
meta = with lib; { meta = with lib; {
description = "Mail system tray notification icon for Thunderbird"; description = "Mail system tray notification icon for Thunderbird";
homepage = "https://github.com/gyunaev/birdtray"; homepage = "https://github.com/gyunaev/birdtray";

View File

@ -94,7 +94,7 @@ in buildFHSUserEnv {
libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio
libao libusb libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l libao libusb libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l
libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio
libcap libtiff libva libgphoto2 libxslt libtxc_dxtn libsndfile giflib zlib glib libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
vulkan-loader xdg_utils sqlite gnutls libbsd vulkan-loader xdg_utils sqlite gnutls libbsd

View File

@ -82,11 +82,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "brave"; pname = "brave";
version = "1.5.123"; version = "1.7.92";
src = fetchurl { src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "1yv6hfjqzcd60b0bjpfbj8d4s2yf10swanxhbmnslcqp6ajb2nqr"; sha256 = "1f262xh88c83m6ixqxc69z8kvkl3qbjc6jnv2g8n0flw8s70hs7z";
}; };
dontConfigure = true; dontConfigure = true;

View File

@ -1,18 +1,19 @@
{ stdenv, fetchFromGitHub, buildGoPackage }: { lib, fetchFromGitHub, buildGoPackage }:
buildGoPackage rec { buildGoPackage rec {
pname = "cni"; pname = "cni";
version = "0.7.0"; version = "0.7.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containernetworking"; owner = "containernetworking";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz";
}; };
goPackagePath = "github.com/containernetworking/cni"; goPackagePath = "github.com/containernetworking/cni";
meta = with stdenv.lib; {
meta = with lib; {
description = "Container Network Interface - networking for Linux containers"; description = "Container Network Interface - networking for Linux containers";
license = licenses.asl20; license = licenses.asl20;
homepage = "https://github.com/containernetworking/cni"; homepage = "https://github.com/containernetworking/cni";

View File

@ -1,210 +0,0 @@
# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
[
{
goPackagePath = "github.com/Microsoft/go-winio";
fetch = {
type = "git";
url = "https://github.com/Microsoft/go-winio";
rev = "v0.4.11";
sha256 = "14y1gryr3pb3zy09v2g8dh89m363rfd9sch0wgbabh531hfx72vn";
};
}
{
goPackagePath = "github.com/Microsoft/hcsshim";
fetch = {
type = "git";
url = "https://github.com/Microsoft/hcsshim";
rev = "v0.7.4";
sha256 = "0hky9p6xvkkx2jfkd4fy2d6iaikvlzalyw67gypyqyxygf2hsshg";
};
}
{
goPackagePath = "github.com/alexflint/go-filemutex";
fetch = {
type = "git";
url = "https://github.com/alexflint/go-filemutex";
rev = "72bdc8eae2ae";
sha256 = "082y6y9zv40q3kaqvsv6fyaw2fc42j0sn9z0dl9rbiz4szixj3c4";
};
}
{
goPackagePath = "github.com/buger/jsonparser";
fetch = {
type = "git";
url = "https://github.com/buger/jsonparser";
rev = "f4dd9f5a6b44";
sha256 = "12qa2n33s7yz88ywpr3k9kg3b4gm6rqgnv28iyikyxw8h5jascz5";
};
}
{
goPackagePath = "github.com/containernetworking/cni";
fetch = {
type = "git";
url = "https://github.com/containernetworking/cni";
rev = "v0.7.0";
sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8";
};
}
{
goPackagePath = "github.com/coreos/go-iptables";
fetch = {
type = "git";
url = "https://github.com/coreos/go-iptables";
rev = "v0.4.1";
sha256 = "0id1npqw3rd5rrkslf6i9yy6lpmd7l5qcglln38g85ylq7inysyi";
};
}
{
goPackagePath = "github.com/coreos/go-systemd";
fetch = {
type = "git";
url = "https://github.com/coreos/go-systemd";
rev = "39ca1b05acc7";
sha256 = "1kzqrrzqspa5qm7kwslxl3m16lqzns23c24rv474ajzwmj3ixmx1";
};
}
{
goPackagePath = "github.com/d2g/dhcp4";
fetch = {
type = "git";
url = "https://github.com/d2g/dhcp4";
rev = "f0e4d29ff023";
sha256 = "07gn9bjvnlfz2jv9wdq3gxxxm9lpwgrwk8z65072jdrz9rs9izpr";
};
}
{
goPackagePath = "github.com/d2g/dhcp4client";
fetch = {
type = "git";
url = "https://github.com/d2g/dhcp4client";
rev = "bed07e1bc5b8";
sha256 = "0kyjalv1kah7sk3i96abg71cgy5s9kzpff2zc7mwj69vicbj7mi3";
};
}
{
goPackagePath = "github.com/d2g/dhcp4server";
fetch = {
type = "git";
url = "https://github.com/d2g/dhcp4server";
rev = "477b11cea4dc";
sha256 = "010dpw6cxrsm6dm49w1q6qpz5xz3lbi5viz6wywxk49fxvnzmx9l";
};
}
{
goPackagePath = "github.com/godbus/dbus";
fetch = {
type = "git";
url = "https://github.com/godbus/dbus";
rev = "885f9cc04c9c";
sha256 = "0wjpaj4vr5lvpnwc5faf3qizd7zd2v9yq0fm0558wap1hiyqb8x8";
};
}
{
goPackagePath = "github.com/j-keck/arping";
fetch = {
type = "git";
url = "https://github.com/j-keck/arping";
rev = "2cf9dc699c56";
sha256 = "1bid8mpx3j4546ni0a6q5xyz7hb854g95qnxqmg5jzs9vrcird3c";
};
}
{
goPackagePath = "github.com/juju/errors";
fetch = {
type = "git";
url = "https://github.com/juju/errors";
rev = "22422dad46e1";
sha256 = "1766ys24y9qgngaqbx0g84lmh54b3369v8hk5fa1k8si2d34fxas";
};
}
{
goPackagePath = "github.com/mattn/go-shellwords";
fetch = {
type = "git";
url = "https://github.com/mattn/go-shellwords";
rev = "v1.0.3";
sha256 = "1pg7pl25wvpl2dbpyrv9p1r7prnqimxlf6136vn0dfm54j2x4mnr";
};
}
{
goPackagePath = "github.com/onsi/ginkgo";
fetch = {
type = "git";
url = "https://github.com/onsi/ginkgo";
rev = "7f8ab55aaf3b";
sha256 = "0nas6wqdym4jx42kw9wj80b58r69k9qhnvglz009lj34g5gba7rw";
};
}
{
goPackagePath = "github.com/onsi/gomega";
fetch = {
type = "git";
url = "https://github.com/onsi/gomega";
rev = "2152b45fa28a";
sha256 = "0amjlkawp84mmdqjgdamf93p1546cla6h4wwrx7hf5r862r2qcw2";
};
}
{
goPackagePath = "github.com/safchain/ethtool";
fetch = {
type = "git";
url = "https://github.com/safchain/ethtool";
rev = "42ed695e3de8";
sha256 = "0n5hkrzc1bh46nidcssx4539kvcmgj501v3kzh2pljpg27509daj";
};
}
{
goPackagePath = "github.com/sirupsen/logrus";
fetch = {
type = "git";
url = "https://github.com/sirupsen/logrus";
rev = "v1.0.6";
sha256 = "029irw2lsbqi944gdrbkwdw0m2794sqni4g21gsnmz142hbzds8c";
};
}
{
goPackagePath = "github.com/vishvananda/netlink";
fetch = {
type = "git";
url = "https://github.com/vishvananda/netlink";
rev = "023a6dafdcdf";
sha256 = "1i5q8r8rg7lxzvq2vhbf25lrkzdlgficfv0bxg9rf7cgg6z819sn";
};
}
{
goPackagePath = "github.com/vishvananda/netns";
fetch = {
type = "git";
url = "https://github.com/vishvananda/netns";
rev = "13995c7128cc";
sha256 = "1zk6w8158qi4niva5rijchbv9ixgmijsgqshh54wdaav4xrhjshn";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "7c1a557ab941";
sha256 = "1f1q9mby8m7ws3gbj90v0prhnf4g2sgf74azmw31kzwd6azlar3m";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "49bb7cea24b1";
sha256 = "111q4qm3hcjvzvyv9y5rz8ydnyg48rckcygxqy6gv63q618wz6gn";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "66b7b1311ac8";
sha256 = "00ny4r2bbj6rz939iy9g699acqydq7rfi6r6awn25w9i2dld9m13";
};
}
]

View File

@ -1,24 +1,22 @@
{ stdenv, lib, fetchFromGitHub, go, removeReferencesTo, buildGoPackage }: { lib, fetchFromGitHub, buildGoPackage }:
buildGoPackage rec { buildGoPackage rec {
pname = "cni-plugins"; pname = "cni-plugins";
version = "0.8.4"; version = "0.8.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containernetworking"; owner = "containernetworking";
repo = "plugins"; repo = "plugins";
rev = "v${version}"; rev = "v${version}";
sha256 = "02kz6y3klhbriybsskn4hmldwli28cycnp2klsm2x0y9c73iczdp"; sha256 = "17c8pvpn0dpda6ah7irr9hhd8sk7mnm32zv72nc5pxg1xvfpaipi";
}; };
goDeps = ./plugins-deps.nix;
goPackagePath = "github.com/containernetworking/plugins"; goPackagePath = "github.com/containernetworking/plugins";
subPackages = [ subPackages = [
"plugins/meta/bandwidth" "plugins/ipam/dhcp"
"plugins/meta/firewall" "plugins/ipam/host-local"
"plugins/meta/flannel" "plugins/ipam/static"
"plugins/meta/portmap"
"plugins/meta/sbr"
"plugins/meta/tuning"
"plugins/main/bridge" "plugins/main/bridge"
"plugins/main/host-device" "plugins/main/host-device"
"plugins/main/ipvlan" "plugins/main/ipvlan"
@ -26,10 +24,14 @@ buildGoPackage rec {
"plugins/main/macvlan" "plugins/main/macvlan"
"plugins/main/ptp" "plugins/main/ptp"
"plugins/main/vlan" "plugins/main/vlan"
"plugins/ipam/dhcp" "plugins/meta/bandwidth"
"plugins/ipam/host-local" "plugins/meta/firewall"
"plugins/ipam/static" "plugins/meta/flannel"
"plugins/meta/portmap"
"plugins/meta/sbr"
"plugins/meta/tuning"
]; ];
meta = with lib; { meta = with lib; {
description = "Some standard networking plugins, maintained by the CNI team"; description = "Some standard networking plugins, maintained by the CNI team";
homepage = "https://github.com/containernetworking/plugins"; homepage = "https://github.com/containernetworking/plugins";

View File

@ -5,11 +5,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "zeek"; pname = "zeek";
version = "3.1.1"; version = "3.1.2";
src = fetchurl { src = fetchurl {
url = "https://old.zeek.org/downloads/zeek-${version}.tar.gz"; url = "https://download.zeek.org/zeek-${version}.tar.gz";
sha256 = "0siybzdp8w62jqk5vdi5fxwvj6cn4r6c2d4z2axd4rj5vhv5zvx2"; sha256 = "18aa4pfwav8m6vq7cr4bhfg243da54ak933rqbriljnhsrgp4n0q";
}; };
nativeBuildInputs = [ cmake flex bison file ]; nativeBuildInputs = [ cmake flex bison file ];

View File

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, python3Packages }: { stdenv, fetchFromGitHub, python3Packages }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
name = "gmailieer-${version}"; pname = "lieer";
version = "1.0"; version = "1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gauteh"; owner = "gauteh";
repo = "gmailieer"; repo = "lieer";
rev = "v${version}"; rev = "v${version}";
sha256 = "1zzylv8xbcrh34bz0s29dawzcyx39lai8y8wk0bl4x75v1jfynvf"; sha256 = "19jx3sm925nrzl26km1bxbp6y5gk1mzwadd79vip2jl70b3xk9f8";
}; };
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
@ -27,8 +27,8 @@ python3Packages.buildPythonApplication rec {
tags in the notmuch database may be pushed back remotely to your tags in the notmuch database may be pushed back remotely to your
GMail account. GMail account.
''; '';
homepage = "https://github.com/gauteh/gmailieer"; homepage = "https://lieer.gaute.vetsj.com/";
repositories.git = "https://github.com/gauteh/gmailieer.git"; repositories.git = "https://github.com/gauteh/lieer.git";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ kaiha ]; maintainers = with maintainers; [ kaiha ];
}; };

View File

@ -62,6 +62,11 @@ in (stdenv.mkDerivation rec {
patches = [ patches = [
./xdg-open-brief.patch ./xdg-open-brief.patch
(fetchpatch {
url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
name = "poppler-0.86.patch";
sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
})
]; ];
tarballPath = "external/tarballs"; tarballPath = "external/tarballs";

View File

@ -728,11 +728,11 @@
md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2"; md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2";
} }
{ {
name = "Python-3.7.6.tar.xz"; name = "Python-3.7.7.tar.xz";
url = "http://dev-www.libreoffice.org/src/Python-3.7.6.tar.xz"; url = "http://dev-www.libreoffice.org/src/Python-3.7.7.tar.xz";
sha256 = "55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f"; sha256 = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136";
md5 = ""; md5 = "";
md5name = "55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f-Python-3.7.6.tar.xz"; md5name = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136-Python-3.7.7.tar.xz";
} }
{ {
name = "QR-Code-generator-1.4.0.tar.gz"; name = "QR-Code-generator-1.4.0.tar.gz";

View File

@ -8,8 +8,8 @@ rec {
major = "6"; major = "6";
minor = "4"; minor = "4";
patch = "1"; patch = "3";
tweak = "1"; tweak = "2";
subdir = "${major}.${minor}.${patch}"; subdir = "${major}.${minor}.${patch}";
@ -17,13 +17,13 @@ rec {
src = fetchurl { src = fetchurl {
url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "03fqpkilz4yi35l447hb9r8gjwj23l61bpdkwg21jm8blm8kkvyj"; sha256 = "1cmbrhha7mlflnlbpla8fix07cxcgkdb7krnrgs1bylf31y5855w";
}; };
# FIXME rename # FIXME rename
translations = fetchSrc { translations = fetchSrc {
name = "translations"; name = "translations";
sha256 = "0a7arjlxxy7hjm1brxwd124bf1gkbl92bgygi3sbbhbsv07pjdcr"; sha256 = "06z9hz4m3kdcljjc6y5s18001axjibj9xiyakdndkl9pmnnhn9h3";
}; };
# the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@ -31,6 +31,6 @@ rec {
help = fetchSrc { help = fetchSrc {
name = "help"; name = "help";
sha256 = "1hfllrdyxrg5mgqry3dcrhjbdrd0d27k5mvv4sfj7nwjlmjh8rqq"; sha256 = "0mpgrwg8z1q38j03l6m1sdpcplyjd5nz1nqaa13vfkryj2lflw45";
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "verilator"; pname = "verilator";
version = "4.030"; version = "4.032";
src = fetchurl { src = fetchurl {
url = "https://www.veripool.org/ftp/${pname}-${version}.tgz"; url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
sha256 = "07ldkf7xkr31n1dmx82bmzam8bvc1vsp32k76vd7yzn7r853qyky"; sha256 = "1l3rhgw7pk59dz7dyhcl0iygn6c9rv9bv131rfzg66asxfwbfq1s";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,34 +1,40 @@
{ stdenv, fetchFromGitHub, ocamlPackages, omake }: { lib, fetchFromGitHub, ocamlPackages, rsync }:
stdenv.mkDerivation { ocamlPackages.buildDunePackage {
name = "beluga-20180403"; pname = "beluga";
version = "unstable-2020-03-11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Beluga-lang"; owner = "Beluga-lang";
repo = "Beluga"; repo = "Beluga";
rev = "046aa59f008be70a7c4700b723bed0214ea8b687"; rev = "6133b2f572219333f304bb4f77c177592324c55b";
sha256 = "0m68y0r0wdw3mg2jks68bihaww7sg305zdfnic1rkndq2cxv0mld"; sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q";
}; };
nativeBuildInputs = with ocamlPackages; [ findlib ocamlbuild omake ]; useDune2 = true;
buildInputs = with ocamlPackages; [ ocaml ulex ocaml_extlib ];
installPhase = '' buildInputs = with ocamlPackages; [
mkdir -p $out gen sedlex_2 ocaml_extlib dune-build-info linenoise
cp -r bin $out/ ];
mkdir -p $out/share/beluga postPatch = ''
cp -r tools/ examples/ $out/share/beluga patchShebangs ./TEST ./run_harpoon_test.sh
'';
checkPhase = "./TEST";
checkInputs = [ rsync ];
doCheck = true;
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/beluga/ mkdir -p $out/share/emacs/site-lisp/beluga/
cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga
''; '';
meta = { meta = with lib; {
description = "A functional language for reasoning about formal systems"; description = "A functional language for reasoning about formal systems";
homepage = "http://complogic.cs.mcgill.ca/beluga/"; homepage = "http://complogic.cs.mcgill.ca/beluga/";
license = stdenv.lib.licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.bcdarwin ]; maintainers = [ maintainers.bcdarwin ];
platforms = stdenv.lib.platforms.unix; platforms = platforms.unix;
}; };
} }

View File

@ -80,6 +80,8 @@ stdenv.mkDerivation {
configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"ac_cv_fread_reads_directories=yes" "ac_cv_fread_reads_directories=yes"
"ac_cv_snprintf_returns_bogus=no" "ac_cv_snprintf_returns_bogus=no"
"ac_cv_iconv_omits_bom=no"
"ac_cv_prog_CURL_CONFIG=${curl.dev}/bin/curl-config"
]; ];
preBuild = '' preBuild = ''

View File

@ -4,22 +4,20 @@
, boost, avahi, lame, autoreconfHook , boost, avahi, lame, autoreconfHook
, gettext, pcre-cpp, yajl, fribidi, which , gettext, pcre-cpp, yajl, fribidi, which
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre , openssl, gperf, tinyxml2, taglib, libssh, swig, jre
, libX11, xorgproto, libxml2 , libxml2, systemd
, libXt, libXmu, libXext
, libXinerama, libXrandr
, libXtst, libXfixes, systemd
, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl , alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
, libjpeg, libpng, libtiff , libjpeg, libpng, libtiff
, libmpeg2, libsamplerate, libmad , libmpeg2, libsamplerate, libmad
, libogg, libvorbis, flac, libxslt , libogg, libvorbis, flac, libxslt
, lzo, libcdio, libmodplug, libass, libbluray , lzo, libcdio, libmodplug, libass, libbluray
, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm , sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
, curl, bzip2, zip, unzip, glxinfo, xdpyinfo , curl, bzip2, zip, unzip, glxinfo
, libcec, libcec_platform, dcadec, libuuid , libcec, libcec_platform, dcadec, libuuid
, libcrossguid, libmicrohttpd , libcrossguid, libmicrohttpd
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1, libXdmcp , bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson , libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
, lirc , lirc
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
, dbusSupport ? true, dbus ? null , dbusSupport ? true, dbus ? null
, joystickSupport ? true, cwiid ? null , joystickSupport ? true, cwiid ? null
, nfsSupport ? true, libnfs ? null , nfsSupport ? true, libnfs ? null
@ -32,6 +30,7 @@
, useWayland ? false, wayland ? null, wayland-protocols ? null , useWayland ? false, wayland ? null, wayland-protocols ? null
, waylandpp ? null, libxkbcommon ? null , waylandpp ? null, libxkbcommon ? null
, useGbm ? false, mesa ? null, libinput ? null , useGbm ? false, mesa ? null, libinput ? null
, buildPackages
}: }:
assert dbusSupport -> dbus != null; assert dbusSupport -> dbus != null;
@ -94,10 +93,18 @@ let
sha256 = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy"; sha256 = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy";
preConfigure = '' preConfigure = ''
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} . cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
''; '';
buildInputs = [ gnutls libidn libtasn1 p11-kit zlib libva ] cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DCROSSCOMPILING=ON"
"-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
"-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
"-DPKG_CONFIG_EXECUTABLE=pkgconfig"
];
buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
++ lib.optional vdpauSupport libvdpau; ++ lib.optional vdpauSupport libvdpau;
nativeBuildInputs = [ cmake nasm pkgconfig ]; nativeBuildInputs = [ cmake nasm pkgconfig gnutls ];
}; };
# We can build these externally but FindLibDvd.cmake forces us to build it # We can build these externally but FindLibDvd.cmake forces us to build it
@ -152,29 +159,31 @@ in stdenv.mkDerivation {
buildInputs = [ buildInputs = [
gnutls libidn libtasn1 nasm p11-kit gnutls libidn libtasn1 nasm p11-kit
libxml2 yasm python2Packages.python libxml2 python2Packages.python
boost libmicrohttpd boost libmicrohttpd
gettext pcre-cpp yajl fribidi libva libdrm gettext pcre-cpp yajl fribidi libva libdrm
openssl gperf tinyxml2 taglib libssh swig jre openssl gperf tinyxml2 taglib libssh
libX11 xorgproto libXt libXmu libXext alsaLib libGL libGLU fontconfig freetype ftgl
libXinerama libXrandr libXtst libXfixes
alsaLib libGL libGLU glew fontconfig freetype ftgl
libjpeg libpng libtiff libjpeg libpng libtiff
libmpeg2 libsamplerate libmad libmpeg2 libsamplerate libmad
libogg libvorbis flac libxslt systemd libogg libvorbis flac libxslt systemd
lzo libcdio libmodplug libass libbluray lzo libcdio libmodplug libass libbluray
sqlite libmysqlclient avahi lame sqlite libmysqlclient avahi lame
curl bzip2 zip unzip glxinfo xdpyinfo curl bzip2 zip unzip glxinfo
libcec libcec_platform dcadec libuuid libcec libcec_platform dcadec libuuid
libgcrypt libgpgerror libunistring libgcrypt libgpgerror libunistring
libcrossguid cwiid libplist libcrossguid libplist
bluez giflib glib harfbuzz lcms2 libpthreadstubs libXdmcp bluez giflib glib harfbuzz lcms2 libpthreadstubs
ffmpeg flatbuffers fmt fstrcmp rapidjson ffmpeg flatbuffers fmt fstrcmp rapidjson
lirc lirc
# libdvdcss libdvdnav libdvdread # libdvdcss libdvdnav libdvdread
] ]
++ lib.optional x11Support [
libX11 xorgproto libXt libXmu libXext libXdmcp
libXinerama libXrandr libXtst libXfixes
]
++ lib.optional dbusSupport dbus ++ lib.optional dbusSupport dbus
++ lib.optionals joystickSupport [ cwiid ] ++ lib.optional joystickSupport cwiid
++ lib.optional nfsSupport libnfs ++ lib.optional nfsSupport libnfs
++ lib.optional pulseSupport libpulseaudio ++ lib.optional pulseSupport libpulseaudio
++ lib.optional rtmpSupport rtmpdump ++ lib.optional rtmpSupport rtmpdump
@ -183,7 +192,7 @@ in stdenv.mkDerivation {
++ lib.optional usbSupport libusb ++ lib.optional usbSupport libusb
++ lib.optional vdpauSupport libvdpau ++ lib.optional vdpauSupport libvdpau
++ lib.optionals useWayland [ ++ lib.optionals useWayland [
wayland waylandpp wayland waylandpp wayland-protocols
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
libxkbcommon.dev libxkbcommon.dev
] ]
@ -200,8 +209,16 @@ in stdenv.mkDerivation {
which which
pkgconfig gnumake pkgconfig gnumake
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0 autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
jre yasm gettext python2Packages.python flatbuffers
# for TexturePacker
giflib zlib libpng libjpeg lzo
] ++ lib.optionals useWayland [ wayland-protocols ]; ] ++ lib.optionals useWayland [ wayland-protocols ];
depsBuildBuild = [
buildPackages.stdenv.cc
];
cmakeFlags = [ cmakeFlags = [
"-Dlibdvdcss_URL=${libdvdcss.src}" "-Dlibdvdcss_URL=${libdvdcss.src}"
"-Dlibdvdnav_URL=${libdvdnav.src}" "-Dlibdvdnav_URL=${libdvdnav.src}"
@ -210,9 +227,14 @@ in stdenv.mkDerivation {
"-DENABLE_EVENTCLIENTS=ON" "-DENABLE_EVENTCLIENTS=ON"
"-DENABLE_INTERNAL_CROSSGUID=OFF" "-DENABLE_INTERNAL_CROSSGUID=OFF"
"-DENABLE_OPTICAL=ON" "-DENABLE_OPTICAL=ON"
"-DLIRC_DEVICE=/run/lirc/lircd"
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
"-DPYTHON_EXECUTABLE=${buildPackages.python2Packages.python}/bin/python"
] ++ lib.optional useWayland [ ] ++ lib.optional useWayland [
"-DCORE_PLATFORM_NAME=wayland" "-DCORE_PLATFORM_NAME=wayland"
"-DWAYLAND_RENDER_SYSTEM=gl" "-DWAYLAND_RENDER_SYSTEM=gl"
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
] ++ lib.optional useGbm [ ] ++ lib.optional useGbm [
"-DCORE_PLATFORM_NAME=gbm" "-DCORE_PLATFORM_NAME=gbm"
"-DGBM_RENDER_SYSTEM=gles" "-DGBM_RENDER_SYSTEM=gles"
@ -224,6 +246,16 @@ in stdenv.mkDerivation {
# I'm guessing there is a thing waiting to time out # I'm guessing there is a thing waiting to time out
doCheck = false; doCheck = false;
# Need these tools on the build system when cross compiling,
# hacky, but have found no other way.
preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
CXX=c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
CXX=c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
'';
postPatch = '' postPatch = ''
substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \ substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo' --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
@ -232,9 +264,11 @@ in stdenv.mkDerivation {
postInstall = '' postInstall = ''
for p in $(ls $out/bin/) ; do for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \ wrapProgram $out/bin/$p \
--prefix PATH ":" "${lib.makeBinPath [ python2Packages.python glxinfo xdpyinfo ]}" \ --prefix PATH ":" "${lib.makeBinPath ([ python2Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
([ curl systemd libmad libvdpau libcec libcec_platform rtmpdump libass ] ++ lib.optional nfsSupport libnfs)}" ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
++ lib.optional nfsSupport libnfs
++ lib.optional rtmpSupport rtmpdump)}"
done done
substituteInPlace $out/share/xsessions/kodi.desktop \ substituteInPlace $out/share/xsessions/kodi.desktop \

View File

@ -5,45 +5,20 @@ let
# During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`, # During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`,
# which then downloads a handful of web client-related files. To enable # which then downloads a handful of web client-related files. To enable
# sandboxed builds, we manually download them and save them so these files # sandboxed builds, we manually download them and save them so these files
# are fetched ahead-of-time instead of during the CMake build. Whenever # are fetched ahead-of-time instead of during the CMake build. To update
# plex-media-player is updated, the versions for these files are changed, # plex-media-player use the update.sh script, so the versions and hashes
# so the build IDs (and SHAs) below will need to be updated! # for these files are are also updated!
depSrcs = rec { depSrcs = import ./deps.nix { inherit fetchurl; };
webClientBuildId = "141-4af71961b12c68";
webClientDesktopBuildId = "3.104.2-1b12c68";
webClientTvBuildId = "4.3.0-4af7196";
webClient = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake";
sha256 = "0fpkd1s49dbiqqlijxbillqd71a78p8y2sc23mwp0lvcmxrg265p";
};
webClientDesktopHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1";
sha256 = "0sb0j44lwqz9zbm98nba4x6c1jxdzvs36ynwfg527avkxxna0f8f";
};
webClientDesktop = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz";
sha256 = "0dxa0ka0igfsryzda4r5clwdl47ah78nmlmgj9d5pgsvyvzjp87z";
};
webClientTvHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1";
sha256 = "086w1bavk2aqsyhv9zi5fynk31zf61sl91r6gjrdrz656wfk5bxa";
};
webClientTv = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz";
sha256 = "12vbgsfnj0j2y5jd73dpi08hqsr9888sma41nvd4ydsd7qblm455";
};
};
in mkDerivation rec { in mkDerivation rec {
pname = "plex-media-player"; pname = "plex-media-player";
version = "2.40.0.1007"; version = "2.55.0.1069";
vsnHash = "5482132c"; vsnHash = "2369bed9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "plexinc"; owner = "plexinc";
repo = "plex-media-player"; repo = "plex-media-player";
rev = "v${version}-${vsnHash}"; rev = "v${version}-${vsnHash}";
sha256 = "0ibdh5g8x32iy74q97jfsmxd08wnyrzs3gfiwjfgc10vaa1qdhli"; sha256 = "1jq4592sgaia0xy2h7n3vh5i7c84sdh4l64fdc774r4i0bmg66qi";
}; };
nativeBuildInputs = [ pkgconfig cmake python3 ]; nativeBuildInputs = [ pkgconfig cmake python3 ];
@ -61,6 +36,8 @@ in mkDerivation rec {
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ]; cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ];
passthru.updateScript = ./update.sh;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Streaming media player for Plex"; description = "Streaming media player for Plex";
license = licenses.gpl2; license = licenses.gpl2;

View File

@ -0,0 +1,28 @@
{ fetchurl }:
rec {
webClientBuildId = "180-afec74de50e175";
webClientDesktopBuildId = "4.29.2-e50e175";
webClientTvBuildId = "4.29.3-afec74d";
webClient = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake";
sha256 = "0rabrg3lk9vgpswk8npa54hzqf2v8ghqqnysxpwn12wrp1pc2rr9";
};
webClientDesktopHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1";
sha256 = "02b5yq4yc411qlg2dkw5j9lrr3cn2y4d27sin0skf6qza180473g";
};
webClientDesktop = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz";
sha256 = "0l3xv48kr2rx878a40zrgwif2ga2ikv6fdcbq9pylycnmm41pxmh";
};
webClientTvHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1";
sha256 = "0wq115y2xrgwqrzr43nhkq8ba237z20yfp426ki2kdypsq8fjqka";
};
webClientTv = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz";
sha256 = "1wax1qslm226l2w53m2fnl849jw349qhg3rjghx7vip5pmb43vw9";
};
}

View File

@ -0,0 +1,71 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq
set -xeuo pipefail
nixpkgs="$(git rev-parse --show-toplevel)"
oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; plex-media-player.version or (builtins.parseDrvName plex-media-player.name).version" | tr -d '"')"
latestTag="$(curl -s https://api.github.com/repos/plexinc/plex-media-player/tags | jq -r '.[] | .name' | sort --version-sort | tail -1)"
latestVersion="$(expr $latestTag : 'v\(.*\)-.*')"
latestHash="$(expr $latestTag : 'v.*-\(.*\)')"
if [ ! "$oldVersion" = "$latestVersion" ]; then
# update default.nix with the new version and hash
expectedHash=$(nix-prefetch-git --url https://github.com/plexinc/plex-media-player.git --rev $latestTag --quiet | jq -r '.sha256')
update-source-version plex-media-player --version-key=vsnHash "${latestHash}" 0000
update-source-version plex-media-player "${latestVersion}" $expectedHash
# extract the webClientBuildId from the source folder
src="$(nix-build --no-out-link $nixpkgs -A plex-media-player.src)"
webClientBuildId="$(grep 'set(WEB_CLIENT_BUILD_ID' $src/CMakeModules/WebClient.cmake | cut -d' ' -f2 | tr -d ')')"
# retreive the included cmake file and hash
{ read -r webClientBuildIdHash; read -r webClientBuildIdPath; } < \
<(nix-prefetch-url --print-path "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake")
webClientDesktopBuildId="$(grep 'set(DESKTOP_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
webClientTvBuildId="$(grep 'set(TV_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
# get the hashes for the other files
webClientDesktopHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1")"
webClientDesktop="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz")"
webClientTvHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1")"
webClientTv="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz")"
# update deps.nix
cat > $nixpkgs/pkgs/applications/video/plex-media-player/deps.nix <<EOF
{ fetchurl }:
rec {
webClientBuildId = "${webClientBuildId}";
webClientDesktopBuildId = "${webClientDesktopBuildId}";
webClientTvBuildId = "${webClientTvBuildId}";
webClient = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/buildid.cmake";
sha256 = "${webClientBuildIdHash}";
};
webClientDesktopHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz.sha1";
sha256 = "${webClientDesktopHash}";
};
webClientDesktop = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz";
sha256 = "${webClientDesktop}";
};
webClientTvHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz.sha1";
sha256 = "${webClientTvHash}";
};
webClientTv = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz";
sha256 = "${webClientTv}";
};
}
EOF
git add "$nixpkgs"/pkgs/applications/video/plex-media-player/{default,deps}.nix
git commit -m "plex-media-player: ${oldVersion} -> ${latestVersion}"
else
echo "plex-media-player is already up-to-date"
fi

View File

@ -18,10 +18,10 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ glib systemd ] ++ buildInputs = [ glib systemd ]
stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ]; ++ stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
installPhase = "install -Dm755 bin/${pname} $out/bin/${pname}"; installFlags = [ "PREFIX=$(out)" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://github.com/containers/conmon"; homepage = "https://github.com/containers/conmon";

View File

@ -0,0 +1,45 @@
{ stdenv, mkDerivation, fetchFromGitLab, pkgconfig, qmake, qtbase, qemu, makeWrapper }:
mkDerivation rec {
pname = "qtemu";
version = "2.1";
src = fetchFromGitLab {
owner = "qtemu";
repo = "gui";
rev = version;
sha256 = "1555178mkfw0gwmw8bsxmg4339j2ifp0yb4b2f39nxh9hwshg07j";
};
nativeBuildInputs = [
qmake
pkgconfig
];
buildInputs = [
qtbase
qemu
];
installPhase = ''
runHook preInstall
# upstream lacks an install method
install -D -t $out/share/applications qtemu.desktop
install -D -t $out/share/pixmaps qtemu.png
install -D -t $out/bin qtemu
# make sure that the qemu-* executables are found
wrapProgram $out/bin/qtemu --prefix PATH : ${stdenv.lib.makeBinPath [ qemu ]}
runHook postInstall
'';
meta = with stdenv.lib; {
description = "Qt-based front-end for QEMU emulator";
homepage = "https://qtemu.org";
license = licenses.gpl2;
platforms = with platforms; linux;
maintainers = with maintainers; [ romildo ];
};
}

View File

@ -81,7 +81,7 @@ stdenv.mkDerivation {
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension} patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension}
'' else if stdenv.hostPlatform.isDarwin then '' '' else if stdenv.hostPlatform.isDarwin then ''
install_name_tool \ install_name_tool \
-id libblas${canonicalExtension} -id libblas${canonicalExtension} \
-add_rpath ${lib.getLib blasProvider}/lib \ -add_rpath ${lib.getLib blasProvider}/lib \
$out/lib/libblas${canonicalExtension} $out/lib/libblas${canonicalExtension}
'' else "") + '' '' else "") + ''

View File

@ -10,6 +10,7 @@ var_templates_list=(
NIX+CFLAGS_LINK NIX+CFLAGS_LINK
NIX+CXXSTDLIB_COMPILE NIX+CXXSTDLIB_COMPILE
NIX+CXXSTDLIB_LINK NIX+CXXSTDLIB_LINK
NIX+GNATFLAGS_COMPILE
) )
var_templates_bool=( var_templates_bool=(
NIX+ENFORCE_NO_NATIVE NIX+ENFORCE_NO_NATIVE
@ -40,6 +41,10 @@ if [ -e @out@/nix-support/cc-cflags ]; then
NIX_@infixSalt@_CFLAGS_COMPILE="$(< @out@/nix-support/cc-cflags) $NIX_@infixSalt@_CFLAGS_COMPILE" NIX_@infixSalt@_CFLAGS_COMPILE="$(< @out@/nix-support/cc-cflags) $NIX_@infixSalt@_CFLAGS_COMPILE"
fi fi
if [ -e @out@/nix-support/gnat-cflags ]; then
NIX_@infixSalt@_GNATFLAGS_COMPILE="$(< @out@/nix-support/gnat-cflags) $NIX_@infixSalt@_GNATFLAGS_COMPILE"
fi
if [ -e @out@/nix-support/cc-ldflags ]; then if [ -e @out@/nix-support/cc-ldflags ]; then
NIX_@infixSalt@_LDFLAGS+=" $(< @out@/nix-support/cc-ldflags)" NIX_@infixSalt@_LDFLAGS+=" $(< @out@/nix-support/cc-ldflags)"
fi fi

View File

@ -199,6 +199,12 @@ stdenv.mkDerivation {
fi fi
'' ''
+ optionalString cc.langAda or false ''
wrap ${targetPrefix}gnatmake ${./gnat-wrapper.sh} $ccPath/${targetPrefix}gnatmake
wrap ${targetPrefix}gnatbind ${./gnat-wrapper.sh} $ccPath/${targetPrefix}gnatbind
wrap ${targetPrefix}gnatlink ${./gnat-wrapper.sh} $ccPath/${targetPrefix}gnatlink
''
+ optionalString cc.langFortran or false '' + optionalString cc.langFortran or false ''
wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran
ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77 ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77
@ -283,6 +289,13 @@ stdenv.mkDerivation {
ccLDFlags+=" -L${cc_solib}/lib" ccLDFlags+=" -L${cc_solib}/lib"
ccCFlags+=" -B${cc_solib}/lib" ccCFlags+=" -B${cc_solib}/lib"
'' + optionalString cc.langAda or false ''
basePath=$(echo $cc/lib/*/*/*)
ccCFlags+=" -B$basePath -I$basePath/adainclude"
gnatCFlags="-I$basePath/adainclude -I$basePath/adalib"
echo "$gnatCFlags" > $out/nix-support/gnat-cflags
'' + ''
echo "$ccLDFlags" > $out/nix-support/cc-ldflags echo "$ccLDFlags" > $out/nix-support/cc-ldflags
echo "$ccCFlags" > $out/nix-support/cc-cflags echo "$ccCFlags" > $out/nix-support/cc-cflags
'' + optionalString (targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false)) '' '' + optionalString (targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false)) ''
@ -351,6 +364,8 @@ stdenv.mkDerivation {
hardening_unsupported_flags+=" stackprotector fortify pie pic" hardening_unsupported_flags+=" stackprotector fortify pie pic"
'' + optionalString targetPlatform.isNetBSD '' '' + optionalString targetPlatform.isNetBSD ''
hardening_unsupported_flags+=" stackprotector fortify" hardening_unsupported_flags+=" stackprotector fortify"
'' + optionalString cc.langAda or false ''
hardening_unsupported_flags+=" stackprotector strictoverflow"
'' ''
+ optionalString targetPlatform.isWasm '' + optionalString targetPlatform.isWasm ''

View File

@ -0,0 +1,165 @@
#! @shell@
set -eu -o pipefail +o posix
shopt -s nullglob
if (( "${NIX_DEBUG:-0}" >= 7 )); then
set -x
fi
path_backup="$PATH"
# That @-vars are substituted separately from bash evaluation makes
# shellcheck think this, and others like it, are useless conditionals.
# shellcheck disable=SC2157
if [[ -n "@coreutils_bin@" && -n "@gnugrep_bin@" ]]; then
PATH="@coreutils_bin@/bin:@gnugrep_bin@/bin"
fi
source @out@/nix-support/utils.bash
# Flirting with a layer violation here.
if [ -z "${NIX_BINTOOLS_WRAPPER_@infixSalt@_FLAGS_SET:-}" ]; then
source @bintools@/nix-support/add-flags.sh
fi
# Put this one second so libc ldflags take priority.
if [ -z "${NIX_CC_WRAPPER_@infixSalt@_FLAGS_SET:-}" ]; then
source @out@/nix-support/add-flags.sh
fi
# Parse command line options and set several variables.
# For instance, figure out if linker flags should be passed.
# GCC prints annoying warnings when they are not needed.
dontLink=0
nonFlagArgs=0
# shellcheck disable=SC2193
expandResponseParams "$@"
declare -i n=0
nParams=${#params[@]}
while (( "$n" < "$nParams" )); do
p=${params[n]}
p2=${params[n+1]:-} # handle `p` being last one
if [ "$p" = -c ]; then
dontLink=1
elif [ "$p" = -S ]; then
dontLink=1
elif [ "$p" = -E ]; then
dontLink=1
elif [ "$p" = -E ]; then
dontLink=1
elif [ "$p" = -M ]; then
dontLink=1
elif [ "$p" = -MM ]; then
dontLink=1
elif [[ "$p" = -x && "$p2" = *-header ]]; then
dontLink=1
elif [[ "$p" != -?* ]]; then
# A dash alone signifies standard input; it is not a flag
nonFlagArgs=1
fi
n+=1
done
# If we pass a flag like -Wl, then gcc will call the linker unless it
# can figure out that it has to do something else (e.g., because of a
# "-c" flag). So if no non-flag arguments are given, don't pass any
# linker flags. This catches cases like "gcc" (should just print
# "gcc: no input files") and "gcc -v" (should print the version).
if [ "$nonFlagArgs" = 0 ]; then
dontLink=1
fi
# Optionally filter out paths not refering to the store.
if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then
rest=()
nParams=${#params[@]}
declare -i n=0
while (( "$n" < "$nParams" )); do
p=${params[n]}
p2=${params[n+1]:-} # handle `p` being last one
if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then
skip "${p:2}"
elif [ "$p" = -L ] && badPath "$p2"; then
n+=1; skip "$p2"
elif [ "${p:0:3}" = -I/ ] && badPath "${p:2}"; then
skip "${p:2}"
elif [ "$p" = -I ] && badPath "$p2"; then
n+=1; skip "$p2"
elif [ "${p:0:4}" = -aI/ ] && badPath "${p:3}"; then
skip "${p:3}"
elif [ "$p" = -aI ] && badPath "$p2"; then
n+=1; skip "$p2"
elif [ "${p:0:4}" = -aO/ ] && badPath "${p:3}"; then
skip "${p:3}"
elif [ "$p" = -aO ] && badPath "$p2"; then
n+=1; skip "$p2"
elif [ "$p" = -isystem ] && badPath "$p2"; then
n+=1; skip "$p2"
else
rest+=("$p")
fi
n+=1
done
# Old bash empty array hack
params=(${rest+"${rest[@]}"})
fi
# Clear march/mtune=native -- they bring impurity.
if [ "$NIX_@infixSalt@_ENFORCE_NO_NATIVE" = 1 ]; then
rest=()
# Old bash empty array hack
for p in ${params+"${params[@]}"}; do
if [[ "$p" = -m*=native ]]; then
skip "$p"
else
rest+=("$p")
fi
done
# Old bash empty array hack
params=(${rest+"${rest[@]}"})
fi
if [ "$(basename $0)x" = "gnatmakex" ]; then
extraBefore=("--GNATBIND=@out@/bin/gnatbind" "--GNATLINK=@out@/bin/gnatlink")
extraAfter=($NIX_@infixSalt@_GNATFLAGS_COMPILE)
fi
if [ "$(basename $0)x" = "gnatbindx" ]; then
extraBefore=()
extraAfter=($NIX_@infixSalt@_GNATFLAGS_COMPILE)
fi
if [ "$(basename $0)x" = "gnatlinkx" ]; then
extraBefore=()
extraAfter=("--GCC=@out@/bin/gcc")
fi
# As a very special hack, if the arguments are just `-v', then don't
# add anything. This is to prevent `gcc -v' (which normally prints
# out the version number and returns exit code 0) from printing out
# `No input files specified' and returning exit code 1.
if [ "$*" = -v ]; then
extraAfter=()
extraBefore=()
fi
# Optionally print debug info.
if (( "${NIX_DEBUG:-0}" >= 1 )); then
# Old bash workaround, see ld-wrapper for explanation.
echo "extra flags before to @prog@:" >&2
printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2
echo "original flags to @prog@:" >&2
printf " %q\n" ${params+"${params[@]}"} >&2
echo "extra flags after to @prog@:" >&2
printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2
fi
PATH="$path_backup"
# Old bash workaround, see above.
exec @prog@ \
${extraBefore+"${extraBefore[@]}"} \
${params+"${params[@]}"} \
${extraAfter+"${extraAfter[@]}"}

View File

@ -15,7 +15,7 @@ isExecutable() {
# *or* there is an INTERP section. This also catches position-independent # *or* there is an INTERP section. This also catches position-independent
# executables, as they typically have an INTERP section but their ELF type # executables, as they typically have an INTERP section but their ELF type
# is DYN. # is DYN.
isExeResult="$(LANG=C readelf -h -l "$1" 2> /dev/null \ isExeResult="$(LANG=C $READELF -h -l "$1" 2> /dev/null \
| grep '^ *Type: *EXEC\>\|^ *INTERP\>')" | grep '^ *Type: *EXEC\>\|^ *INTERP\>')"
# not using grep -q, because it can cause Broken pipe # not using grep -q, because it can cause Broken pipe
[ -n "$isExeResult" ] [ -n "$isExeResult" ]
@ -207,7 +207,7 @@ autoPatchelf() {
# outside of this function. # outside of this function.
while IFS= read -r -d $'\0' file; do while IFS= read -r -d $'\0' file; do
isELF "$file" || continue isELF "$file" || continue
segmentHeaders="$(LANG=C readelf -l "$file")" segmentHeaders="$(LANG=C $READELF -l "$file")"
# Skip if the ELF file doesn't have segment headers (eg. object files). # Skip if the ELF file doesn't have segment headers (eg. object files).
# not using grep -q, because it can cause Broken pipe # not using grep -q, because it can cause Broken pipe
[ -n "$(echo "$segmentHeaders" | grep '^Program Headers:')" ] || continue [ -n "$(echo "$segmentHeaders" | grep '^Program Headers:')" ] || continue

View File

@ -10,8 +10,7 @@ hicolorIconThemeHook() {
} }
# I think this is meant to be a runtime dep # I think this is meant to be a runtime dep
addEnvHooks "${hostOffset:?}" hicolorIconThemeHook addEnvHooks "${targetOffset:?}" hicolorIconThemeHook
# Make symbolic links of parent icon themes that are inherited in the # Make symbolic links of parent icon themes that are inherited in the
# icon themes installed by the package. # icon themes installed by the package.

View File

@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ simonvandel romildo ]; maintainers = with maintainers; [ simonvandel romildo ];
platforms = platforms.linux; platforms = platforms.linux;
broken = true; # since libsass 3.6.3
}; };
} }

View File

@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
license = with licenses; [ cc-by-sa-40 gpl3 ]; license = with licenses; [ cc-by-sa-40 gpl3 ];
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.jD91mZM2 ]; maintainers = [ maintainers.jD91mZM2 ];
broken = true; # since libsass 3.6.3
}; };
} }

View File

@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
python3 python3
wrapGAppsHook wrapGAppsHook
buildPackages.glib buildPackages.glib
buildPackages.gtk3
]; ];
buildInputs = [ buildInputs = [

View File

@ -65,7 +65,10 @@ in stdenv.mkDerivation rec {
# Install bash-completions to correct prefix. # Install bash-completions to correct prefix.
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1194 # https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1194
./fix-bash-completion.patch (fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/9f1ad5d86ddbabaa840eb2860279d53f4e635453.patch";
sha256 = "f8MDFbfg9D7ORF84Ld9GIvf0xRCYuSszo3QLMji2VaE=";
})
# Use absolute path for libshew installation to make our patched gobject-introspection # Use absolute path for libshew installation to make our patched gobject-introspection
# aware of the location to hardcode in the generated GIR file. # aware of the location to hardcode in the generated GIR file.

View File

@ -1,10 +0,0 @@
--- a/subprojects/extensions-tool/meson.build
+++ a/subprojects/extensions-tool/meson.build
@@ -39,6 +39,6 @@ subdir('src')
if bash_completion.found()
install_data('completion/bash/gnome-extensions',
- install_dir: bash_completion.get_pkgconfig_variable('completionsdir')
+ install_dir: bash_completion.get_pkgconfig_variable('completionsdir', define_variable: ['prefix', prefix])
)
endif

View File

@ -1,5 +1,6 @@
{ stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs { stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs
, langC ? true, langCC ? true, langFortran ? false , langC ? true, langCC ? true, langFortran ? false
, langAda ? false
, langObjC ? stdenv.targetPlatform.isDarwin , langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin , langObjCpp ? stdenv.targetPlatform.isDarwin
, langJava ? false , langJava ? false
@ -15,6 +16,7 @@
, libelf # optional, for link-time optimizations (LTO) , libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework. , isl ? null # optional, for the Graphite optimization framework.
, zlib ? null, boehmgc ? null , zlib ? null, boehmgc ? null
, gnatboot ? null
, zip ? null, unzip ? null, pkgconfig ? null , zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null , gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null , libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
@ -48,6 +50,8 @@ assert stdenv.hostPlatform.isDarwin -> gnused != null;
# The go frontend is written in c++ # The go frontend is written in c++
assert langGo -> langCC; assert langGo -> langCC;
assert langAda -> gnatboot != null;
# threadsCross is just for MinGW # threadsCross is just for MinGW
assert threadsCross != null -> stdenv.targetPlatform.isWindows; assert threadsCross != null -> stdenv.targetPlatform.isWindows;
@ -63,6 +67,7 @@ let majorVersion = "6";
[ ../use-source-date-epoch.patch ] [ ../use-source-date-epoch.patch ]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch ++ optional noSysDirs ../no-sys-dirs.patch
++ optional langAda ../gnat-cflags.patch
++ optional langFortran ../gfortran-driving.patch ++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch { ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
@ -200,6 +205,7 @@ stdenv.mkDerivation ({
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
++ (optional hostPlatform.isDarwin gnused) ++ (optional hostPlatform.isDarwin gnused)
++ (optional langAda gnatboot)
; ;
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
@ -208,7 +214,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix { preConfigure = import ../common/pre-configure.nix {
inherit (stdenv) lib; inherit (stdenv) lib;
inherit version hostPlatform langJava langGo; inherit version hostPlatform gnatboot langJava langAda langGo;
}; };
dontDisableStatic = true; dontDisableStatic = true;
@ -234,6 +240,7 @@ stdenv.mkDerivation ({
langCC langCC
langFortran langFortran
langJava javaAwtGtk javaAntlr javaEcj langJava javaAwtGtk javaAntlr javaEcj
langAda
langGo langGo
langObjC langObjC
langObjCpp langObjCpp
@ -292,7 +299,7 @@ stdenv.mkDerivation ({
; ;
passthru = { passthru = {
inherit langC langCC langObjC langObjCpp langFortran langGo version; inherit langC langCC langObjC langObjCpp langFortran langAda langGo version;
isGNU = true; isGNU = true;
}; };

View File

@ -1,5 +1,6 @@
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs { stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
, langC ? true, langCC ? true, langFortran ? false , langC ? true, langCC ? true, langFortran ? false
, langAda ? false
, langObjC ? stdenv.targetPlatform.isDarwin , langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin , langObjCpp ? stdenv.targetPlatform.isDarwin
, langGo ? false , langGo ? false
@ -13,6 +14,7 @@
, libelf # optional, for link-time optimizations (LTO) , libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework. , isl ? null # optional, for the Graphite optimization framework.
, zlib ? null , zlib ? null
, gnatboot ? null
, enableMultilib ? false , enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins , enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
, name ? "gcc" , name ? "gcc"
@ -35,6 +37,7 @@ assert stdenv.hostPlatform.isDarwin -> gnused != null;
# The go frontend is written in c++ # The go frontend is written in c++
assert langGo -> langCC; assert langGo -> langCC;
assert langAda -> gnatboot != null;
# threadsCross is just for MinGW # threadsCross is just for MinGW
assert threadsCross != null -> stdenv.targetPlatform.isWindows; assert threadsCross != null -> stdenv.targetPlatform.isWindows;
@ -54,6 +57,7 @@ let majorVersion = "9";
url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02"; url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
sha256 = ""; # TODO: uncomment and check hash when available. sha256 = ""; # TODO: uncomment and check hash when available.
}) */ }) */
++ optional langAda ../gnat-cflags.patch
++ optional langFortran ../gfortran-driving.patch ++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch { ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
@ -160,6 +164,7 @@ stdenv.mkDerivation ({
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
++ (optional hostPlatform.isDarwin gnused) ++ (optional hostPlatform.isDarwin gnused)
++ (optional langAda gnatboot)
; ;
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
@ -168,7 +173,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix { preConfigure = import ../common/pre-configure.nix {
inherit (stdenv) lib; inherit (stdenv) lib;
inherit version hostPlatform langGo; inherit version hostPlatform gnatboot langAda langGo;
}; };
dontDisableStatic = true; dontDisableStatic = true;
@ -193,6 +198,7 @@ stdenv.mkDerivation ({
langC langC
langCC langCC
langFortran langFortran
langAda
langGo langGo
langObjC langObjC
langObjCpp langObjCpp
@ -236,7 +242,7 @@ stdenv.mkDerivation ({
; ;
passthru = { passthru = {
inherit langC langCC langObjC langObjCpp langFortran langGo version; inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
isGNU = true; isGNU = true;
}; };

View File

@ -216,6 +216,7 @@ postInstall() {
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "$lib" moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la" "$lib" moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "$lib" moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dll.a" "$lib"
moveToOutput "share/gcc-*/python" "$lib" moveToOutput "share/gcc-*/python" "$lib"
for i in "$lib/${targetConfig}"/lib/*.{la,py}; do for i in "$lib/${targetConfig}"/lib/*.{la,py}; do

View File

@ -16,6 +16,7 @@
, langCC , langCC
, langFortran , langFortran
, langJava ? false, javaAwtGtk ? false, javaAntlr ? null, javaEcj ? null , langJava ? false, javaAwtGtk ? false, javaAntlr ? null, javaEcj ? null
, langAda ? false
, langGo , langGo
, langObjC , langObjC
, langObjCpp , langObjCpp
@ -115,6 +116,7 @@ let
++ lib.optional langCC "c++" ++ lib.optional langCC "c++"
++ lib.optional langFortran "fortran" ++ lib.optional langFortran "fortran"
++ lib.optional langJava "java" ++ lib.optional langJava "java"
++ lib.optional langAda "ada"
++ lib.optional langGo "go" ++ lib.optional langGo "go"
++ lib.optional langObjC "objc" ++ lib.optional langObjC "objc"
++ lib.optional langObjCpp "obj-c++" ++ lib.optional langObjCpp "obj-c++"
@ -140,6 +142,9 @@ let
"--enable-cloog-backend=isl" "--enable-cloog-backend=isl"
] ]
# Ada options
++ lib.optional langAda "--enable-libada"
# Java options # Java options
++ lib.optionals langJava [ ++ lib.optionals langJava [
"--with-ecj-jar=${javaEcj}" "--with-ecj-jar=${javaEcj}"

View File

@ -1,6 +1,11 @@
{ lib, version, hostPlatform, langJava ? false, langGo }: { lib, version, hostPlatform
, gnatboot ? null
, langAda ? false
, langJava ? false
, langGo }:
assert langJava -> lib.versionOlder version "7"; assert langJava -> lib.versionOlder version "7";
assert langAda -> gnatboot != null;
lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g` export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
@ -9,4 +14,6 @@ lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET" export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET"
'' + lib.optionalString (lib.versionOlder version "7" && (langJava || langGo)) '' '' + lib.optionalString (lib.versionOlder version "7" && (langJava || langGo)) ''
export lib=$out; export lib=$out;
'' + lib.optionalString langAda ''
export PATH=${gnatboot}/bin:$PATH
'' ''

View File

@ -0,0 +1,35 @@
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index 4e74252bd74..0d848b5b4e3 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -111,7 +111,7 @@ NO_OMIT_ADAFLAGS = -fno-omit-frame-pointer
NO_SIBLING_ADAFLAGS = -fno-optimize-sibling-calls
NO_REORDER_ADAFLAGS = -fno-toplevel-reorder
GNATLIBFLAGS = -W -Wall -gnatpg -nostdinc
-GNATLIBCFLAGS = -g -O2
+GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET)
# Pretend that _Unwind_GetIPInfo is available for the target by default. This
# should be autodetected during the configuration of libada and passed down to
# here, but we need something for --disable-libada and hope for the best.
@@ -198,7 +198,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
# Link flags used to build gnat tools. By default we prefer to statically
# link with libgcc to avoid a dependency on shared libgcc (which is tricky
# to deal with as it may conflict with the libgcc provided by the system).
-GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc
+GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc $(CFLAGS_FOR_TARGET)
# End of variables for you to override.
diff --git a/libada/Makefile.in b/libada/Makefile.in
index 522b9207326..ca866c74471 100644
--- a/libada/Makefile.in
+++ b/libada/Makefile.in
@@ -59,7 +59,7 @@ LDFLAGS=
CFLAGS=-g
PICFLAG = @PICFLAG@
GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc
-GNATLIBCFLAGS= -g -O2
+GNATLIBCFLAGS= -g -O2 $(CFLAGS)
GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(CFLAGS_FOR_TARGET) \
-fexceptions -DIN_RTS @have_getipinfo@ @have_capability@

View File

@ -0,0 +1,40 @@
{ stdenv, fetchFromGitHub, gnat, zlib, llvm, lib
, backend ? "mcode" }:
assert backend == "mcode" || backend == "llvm";
stdenv.mkDerivation rec {
pname = "ghdl-${backend}";
version = "0.37";
src = fetchFromGitHub {
owner = "ghdl";
repo = "ghdl";
rev = "v${version}";
sha256 = "0b53yl4im33c1cd4mdyc4ks9cmrpixym17gzchfmplrl22w3l17y";
};
LIBRARY_PATH = "${stdenv.cc.libc}/lib";
buildInputs = [ gnat zlib ];
preConfigure = ''
# If llvm 7.0 works, 7.x releases should work too.
sed -i 's/check_version 7.0/check_version 7/g' configure
'';
configureFlags = lib.optional (backend == "llvm")
"--with-llvm-config=${llvm}/bin/llvm-config";
hardeningDisable = [ "format" ];
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://github.com/ghdl/ghdl";
description = "VHDL 2008/93/87 simulator";
maintainers = with maintainers; [ lucus16 ];
platforms = platforms.linux;
license = licenses.gpl2;
};
}

View File

@ -0,0 +1,51 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation {
pname = "gentoo-gnatboot";
version = "4.1";
src = if stdenv.system == "i686-linux" then
fetchurl {
url = mirror://gentoo/distfiles/gnatboot-4.1-i386.tar.bz2;
sha256 = "0665zk71598204bf521vw68i5y6ccqarq9fcxsqp7ccgycb4lysr";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = mirror://gentoo/distfiles/gnatboot-4.1-amd64.tar.bz2;
sha256 = "1li4d52lmbnfs6llcshlbqyik2q2q4bvpir0f7n38nagp0h6j0d4";
}
else
throw "Platform not supported";
dontStrip = 1;
installPhase = ''
mkdir -p $out
cp -R * $out
set +e
for a in $out/bin/* ; do
patchelf --interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--set-rpath $(cat $NIX_CC/nix-support/orig-libc)/lib:$(cat $NIX_CC/nix-support/orig-cc)/lib64:$(cat $NIX_CC/nix-support/orig-cc)/lib $a
done
set -e
mv $out/bin/gnatgcc_2wrap $out/bin/gnatgcc
ln -s $out/bin/gnatgcc $out/bin/gcc
'';
passthru = {
langC = true; # TRICK for gcc-wrapper to wrap it
langCC = false;
langFortran = false;
langAda = true;
};
meta = with stdenv.lib; {
homepage = "https://gentoo.org";
license = licenses.gpl3Plus;
maintainers = [ maintainers.lucus16 ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,41 @@
{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2
, version, hashes }:
with stdenv;
let
OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
ARCH = toString hostPlatform.parsed.cpu.name;
in mkDerivation {
pname = "ldc-bootstrap";
inherit version;
src = fetchurl rec {
name = "ldc2-${version}-${OS}-${ARCH}.tar.xz";
url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}";
sha256 = hashes."${OS}-${ARCH}" or (throw "missing bootstrap sha256 for ${OS}-${ARCH}");
};
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ];
propagatedBuildInputs = [ curl tzdata ];
installPhase = ''
mkdir -p $out
mv bin etc import lib LICENSE README $out/
'';
meta = with lib; {
inherit version;
description = "The LLVM-based D Compiler";
homepage = "https://github.com/ldc-developers/ldc";
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
maintainers = with maintainers; [ ThomasMader lionello ];
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
};
}

View File

@ -0,0 +1,10 @@
{ callPackage }:
callPackage ./binary.nix {
version = "1.19.0";
hashes = {
# Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
osx-x86_64 = "1bp3xkh9zp64dzq8isanib1gacb3nfbl70qv15qygwk1zan6zgy7";
linux-x86_64 = "146grr2lwarfk13wgkpyb77xb6b3as1is2rf4s2hipqjmc8biy1h";
linux-aarch64 = "1fv6jshfvi15m7masgxq1hgp216qjd5amizrqdf26vhrq3a08li3";
};
}

View File

@ -1,173 +1,5 @@
{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata import ./generic.nix {
, libconfig, lit, gdb, unzip, darwin, bash version = "1.20.1";
, callPackage, makeWrapper, runCommand, targetPackages ldcSha256 = "1bqsgab22v02pc3c9gcyf15y7aimadv24d68icaw5lpgnvzxy89b";
, bootstrapVersion ? false
, version ? "1.17.0"
, ldcSha256 ? "1aag5jfrng6p4ms0fs90hjbv9bcj3hj8h52r68c3cm6racdajbva"
}:
let
bootstrapLdc = if !bootstrapVersion then
# LDC 0.17.x is the last version which doesn't need a working D compiler to
# build so we use that version to bootstrap the actual build.
callPackage ./default.nix {
bootstrapVersion = true;
version = "0.17.6";
ldcSha256 = "0qf5kbxddgmg3kqzi0kf4bgv8vdrnv16y07hcpm0cwv9mc3qr2w6";
}
else
"";
pathConfig = runCommand "ldc-lib-paths" {} ''
mkdir $out
echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile
echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile
'';
in
stdenv.mkDerivation rec {
pname = "ldc";
inherit version;
enableParallelBuilding = true;
src = fetchurl {
url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz";
sha256 = ldcSha256;
};
# https://issues.dlang.org/show_bug.cgi?id=19553
hardeningDisable = [ "fortify" ];
postUnpack = ''
patchShebangs .
''
+ stdenv.lib.optionalString (!bootstrapVersion) ''
rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d
rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d
rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d
# test depends on current year
rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d
''
+ stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
# https://github.com/NixOS/nixpkgs/issues/34817
rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
'';
postPatch = ''
# Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow
substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
''
+ stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isLinux) ''
substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
''
+ stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
''
+ stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
# Was not able to compile on darwin due to "__inline_isnanl"
# being undefined.
# TODO Remove with version > 0.17.6
substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan
'';
nativeBuildInputs = [ cmake ninja makeWrapper unzip ]
++ stdenv.lib.optionals (!bootstrapVersion) [
bootstrapLdc lit lit.python
]
++ stdenv.lib.optional (!bootstrapVersion && stdenv.hostPlatform.isDarwin)
# https://github.com/NixOS/nixpkgs/issues/57120
# https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515
llvm_5
++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin)
llvm_8
++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin)
# https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
gdb
++ stdenv.lib.optionals (bootstrapVersion) [
libconfig llvm_5
]
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin
darwin.apple_sdk.frameworks.Foundation;
buildInputs = [ curl tzdata ];
cmakeFlags = stdenv.lib.optionals (!bootstrapVersion) [
"-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}"
"-DCMAKE_BUILD_TYPE=Release"
];
postConfigure = ''
export DMD=$PWD/bin/ldmd2
'';
makeFlags = [ "DMD=$DMD" ];
fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
fixDarwinDylibNames() {
local flags=()
for fn in "$@"; do
flags+=(-change "$(basename "$fn")" "$fn")
done
for fn in "$@"; do
if [ -L "$fn" ]; then continue; fi
echo "$fn: fixing dylib"
install_name_tool -id "$fn" "''${flags[@]}" "$fn"
done
}
fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib")
export DYLD_LIBRARY_PATH=$(pwd)/lib
'';
# https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746
additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin
"|druntime-test-shared";
doCheck = !bootstrapVersion;
checkPhase = stdenv.lib.optionalString doCheck ''
# Build default lib test runners
ninja -j$NIX_BUILD_CORES all-test-runners
${fixNames}
# Run dmd testsuite
export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD CC=$CXX"
ctest -V -R "dmd-testsuite"
# Build and run LDC D unittests.
ctest --output-on-failure -R "ldc2-unittest"
# Run LIT testsuite.
ctest -V -R "lit-tests"
# Run default lib unittests
ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}"
'';
postInstall = ''
wrapProgram $out/bin/ldc2 \
--prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
--set-default CC "${targetPackages.stdenv.cc}/bin/cc"
'';
meta = with stdenv.lib; {
description = "The LLVM-based D compiler";
homepage = "https://github.com/ldc-developers/ldc";
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
maintainers = with maintainers; [ ThomasMader ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
};
} }

View File

@ -0,0 +1,143 @@
{ version, ldcSha256 }:
{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata
, libconfig, lit, gdb, unzip, darwin, bash
, callPackage, makeWrapper, runCommand, targetPackages
, ldcBootstrap ? callPackage ./bootstrap.nix { }
}:
let
pathConfig = runCommand "ldc-lib-paths" {} ''
mkdir $out
echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile
echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile
'';
in
stdenv.mkDerivation rec {
pname = "ldc";
inherit version;
enableParallelBuilding = true;
src = fetchurl {
url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz";
sha256 = ldcSha256;
};
# https://issues.dlang.org/show_bug.cgi?id=19553
hardeningDisable = [ "fortify" ];
postUnpack = ''
patchShebangs .
''
+ ''
rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d
rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d
rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d
# test depends on current year
rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d
''
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
# https://github.com/NixOS/nixpkgs/issues/34817
rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
'';
postPatch = ''
# Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow
substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
''
+ stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
''
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
'';
nativeBuildInputs = [
cmake ninja makeWrapper unzip ldcBootstrap lit lit.python
]
++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.Foundation
# https://github.com/NixOS/nixpkgs/issues/57120
# https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515
llvm_5
]
++ stdenv.lib.optionals (!stdenv.hostPlatform.isDarwin) [
llvm_8
# https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
gdb
];
buildInputs = [ curl tzdata ];
cmakeFlags = [
"-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}"
"-DCMAKE_BUILD_TYPE=Release"
];
postConfigure = ''
export DMD=$PWD/bin/ldmd2
'';
makeFlags = [ "DMD=$DMD" ];
fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
fixDarwinDylibNames() {
local flags=()
for fn in "$@"; do
flags+=(-change "$(basename "$fn")" "$fn")
done
for fn in "$@"; do
if [ -L "$fn" ]; then continue; fi
echo "$fn: fixing dylib"
install_name_tool -id "$fn" "''${flags[@]}" "$fn"
done
}
fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib")
export DYLD_LIBRARY_PATH=$(pwd)/lib
'';
# https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746
additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin
"|druntime-test-shared";
checkPhase = ''
# Build default lib test runners
ninja -j$NIX_BUILD_CORES all-test-runners
${fixNames}
# Run dmd testsuite
export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD"
ctest -V -R "dmd-testsuite"
# Build and run LDC D unittests.
ctest --output-on-failure -R "ldc2-unittest"
# Run LIT testsuite.
ctest -V -R "lit-tests"
# Run default lib unittests
ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}"
'';
postInstall = ''
wrapProgram $out/bin/ldc2 \
--prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
--set-default CC "${targetPackages.stdenv.cc}/bin/cc"
'';
meta = with stdenv.lib; {
description = "The LLVM-based D compiler";
homepage = "https://github.com/ldc-developers/ldc";
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
maintainers = with maintainers; [ ThomasMader lionello ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
};
}

View File

@ -2,13 +2,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "j"; pname = "j";
version = "807"; version = "901";
jtype = "release"; jtype = "release-e";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jsoftware"; owner = "jsoftware";
repo = "jsource"; repo = "jsource";
rev = "j${version}-${jtype}"; rev = "j${version}-${jtype}";
sha256 = "1qciw2yg9x996zglvj2461qby038x89xcmfb3qyrh3myn8m1nq2n"; sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw";
name = "jsource";
}; };
buildInputs = [ readline libedit bc ]; buildInputs = [ readline libedit bc ];
@ -26,57 +27,33 @@ stdenv.mkDerivation rec {
export HOME=$TMPDIR export HOME=$TMPDIR
export JLIB=$SOURCE_DIR/jlibrary export JLIB=$SOURCE_DIR/jlibrary
export jbld=$HOME/bld
export jplatform=${platform}
export jmake=$SOURCE_DIR/make
export jgit=$SOURCE_DIR
export JBIN=$jbld/j${bits}/bin
mkdir -p $JBIN
echo $OUT_DIR echo $OUT_DIR
cd make cd make2
patchShebangs . patchShebangs .
sed -i jvars.sh -e "
s@~/git/jsource@$SOURCE_DIR@;
s@~/jbld@$HOME@;
"
sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;" sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;"
# For future versions, watch ./build_all.sh
# https://github.com/jsoftware/jsource/pull/4
cp ./jvars.sh $HOME
echo ' cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin"
#define jversion "${version}"
#define jplatform "${platform}"
#define jtype "${jtype}" // release,beta,...
#define jlicense "GPL3"
#define jbuilder "nixpkgs" // website or email
' > ../jsrc/jversion.h
./build_jconsole.sh j${bits}
./build_libj.sh j${bits}
''; '';
checkPhase = '' checkPhase = ''
echo 'i. 5' | $JBIN/jconsole | fgrep "0 1 2 3 4"
echo 'i. 5' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4"
# Now run the real tests # Now run the real tests
cd $SOURCE_DIR/test cd $SOURCE_DIR/test
for f in *.ijs for f in *.ijs
do do
echo $f echo $f
$JBIN/jconsole < $f > /dev/null || echo FAIL && echo PASS $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS
done done
''; '';
installPhase = '' installPhase = ''
mkdir -p "$out" mkdir -p "$out"
cp -r $JBIN "$out/bin"
rm $out/bin/*.txt # Remove logs from the bin folder
mkdir -p "$out/share/j" mkdir -p "$out/share/j"
cp -r $JLIB/{addons,system} "$out/share/j" cp -r $JLIB/{addons,system} "$out/share/j"

View File

@ -57,10 +57,10 @@ in {
sourceVersion = { sourceVersion = {
major = "2"; major = "2";
minor = "7"; minor = "7";
patch = "17"; patch = "18";
suffix = ""; suffix = "";
}; };
sha256 = "0hds28cg226m8j8sr394nm9yc4gxhvlv109w0avsf2mxrlrz0hsd"; sha256 = "0hzgxl94hnflis0d6m4szjx0b52gah7wpmcg5g00q7am6xwhwb5n";
inherit (darwin) configd; inherit (darwin) configd;
inherit passthruFun; inherit passthruFun;
}; };

View File

@ -4,7 +4,7 @@
let let
pname = "atk"; pname = "atk";
version = "2.35.1"; version = "2.36.0";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "111qajn7kxwmh40drc8i6jc3hnril2rp63n207q92pl47zx614xy"; sha256 = "1217cmmykjgkkim0zr1lv5j13733m4w5vipmy4ivw0ll6rz28xpv";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View File

@ -61,7 +61,7 @@ in stdenv.mkDerivation rec {
++ optional glSupport libGL ++ optional glSupport libGL
; # TODO: maybe liblzo but what would it be for here? ; # TODO: maybe liblzo but what would it be for here?
configureFlags = if stdenv.isDarwin then [ configureFlags = (if stdenv.isDarwin then [
"--disable-dependency-tracking" "--disable-dependency-tracking"
"--enable-quartz" "--enable-quartz"
"--enable-quartz-font" "--enable-quartz-font"
@ -71,7 +71,7 @@ in stdenv.mkDerivation rec {
++ optional xcbSupport "--enable-xcb" ++ optional xcbSupport "--enable-xcb"
++ optional glSupport "--enable-gl" ++ optional glSupport "--enable-gl"
++ optional pdfSupport "--enable-pdf" ++ optional pdfSupport "--enable-pdf"
); )) ++ optional (!x11Support) "--disable-xlib";
preConfigure = preConfigure =
# On FreeBSD, `-ldl' doesn't exist. # On FreeBSD, `-ldl' doesn't exist.

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "chromaprint"; pname = "chromaprint";
version = "1.4.3"; version = "1.5.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/acoustid/chromaprint/releases/download/v${version}/${pname}-${version}.tar.gz"; url = "https://github.com/acoustid/chromaprint/releases/download/v${version}/${pname}-${version}.tar.gz";
sha256 = "10kz8lncal4s2rp2rqpgc6xyjp0jzcrihgkx7chf127vfs5n067a"; sha256 = "0sknmyl5254rc55bvkhfwpl4dfvz45xglk1rq8zq5crmwq058fjp";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -18,10 +18,11 @@ stdenv.mkDerivation rec {
nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) buildPackages.cracklib; nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) buildPackages.cracklib;
buildInputs = [ zlib gettext ]; buildInputs = [ zlib gettext ];
postPatch = '' postPatch = stdenv.lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
chmod +x util/cracklib-format chmod +x util/cracklib-format
patchShebangs util patchShebangs util
'' + ''
ln -vs ${toString wordlists} dicts/ ln -vs ${toString wordlists} dicts/
''; '';

View File

@ -1,28 +1,61 @@
{ stdenv, fetchurl, meson, ninja, python3, vala, libxslt, pkgconfig, glib, bash-completion, dbus, gnome3 { stdenv
, libxml2, gtk-doc, docbook_xsl, docbook_xml_dtd_42 }: , fetchurl
, fetchpatch
, meson
, ninja
, python3
, vala
, libxslt
, pkg-config
, glib
, bash-completion
, dbus
, gnome3
, libxml2
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_42
}:
let
pname = "dconf";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; pname = "dconf";
version = "0.36.0"; version = "0.36.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz";
};
postPatch = ''
chmod +x meson_post_install.py tests/test-dconf.py
patchShebangs meson_post_install.py
patchShebangs tests/test-dconf.py
'';
outputs = [ "out" "lib" "dev" "devdoc" ]; outputs = [ "out" "lib" "dev" "devdoc" ];
nativeBuildInputs = [ meson ninja vala pkgconfig python3 libxslt libxml2 glib gtk-doc docbook_xsl docbook_xml_dtd_42 ]; src = fetchurl {
buildInputs = [ glib bash-completion dbus ]; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz";
};
patches = [
# Fix bash-completion installation
# https://gitlab.gnome.org/GNOME/dconf/merge_requests/58
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/dconf/commit/b3c9423c6151f3c28e526083ea2f04987a780fdf.patch";
sha256 = "zrIPKmgEpa1iIGUKv03+z+GNwJwgdf2hDATgP3i8qk0=";
})
];
nativeBuildInputs = [
meson
ninja
vala
pkg-config
python3
libxslt
libxml2
glib
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_42
];
buildInputs = [
glib
bash-completion
dbus
];
mesonFlags = [ mesonFlags = [
"--sysconfdir=/etc" "--sysconfdir=/etc"
@ -31,6 +64,12 @@ stdenv.mkDerivation rec {
doCheck = !stdenv.isAarch32 && !stdenv.isAarch64 && !stdenv.isDarwin; doCheck = !stdenv.isAarch32 && !stdenv.isAarch64 && !stdenv.isDarwin;
postPatch = ''
chmod +x meson_post_install.py tests/test-dconf.py
patchShebangs meson_post_install.py
patchShebangs tests/test-dconf.py
'';
passthru = { passthru = {
updateScript = gnome3.updateScript { updateScript = gnome3.updateScript {
packageName = pname; packageName = pname;
@ -40,7 +79,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://wiki.gnome.org/Projects/dconf"; homepage = "https://wiki.gnome.org/Projects/dconf";
license = licenses.lgpl21Plus; license = licenses.lgpl21Plus;
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.unix;
maintainers = teams.gnome.members; maintainers = teams.gnome.members;
}; };
} }

View File

@ -18,7 +18,9 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = true; cmakeFlags = [ "-DFLATBUFFERS_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" ];
doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
checkTarget = "test"; checkTarget = "test";
meta = { meta = {

View File

@ -0,0 +1,24 @@
diff '--color=auto' -ur fstrcmp-0.7-D001-old/configure.ac fstrcmp-0.7.D001/configure.ac
--- fstrcmp-0.7-D001-old/configure.ac 2014-03-04 19:13:45.000000000 -0500
+++ fstrcmp-0.7.D001/configure.ac 2020-04-02 13:57:52.805154634 -0400
@@ -32,6 +32,8 @@
AC_OBJEXT
AC_EXEEXT
+LT_INIT
+
dnl @synopsis AC_ADD_CFLAGS
dnl
dnl Add the given option to CFLAGS, if it doesn't break the compiler
diff '--color=auto' -ur fstrcmp-0.7-D001-old/Makefile.in fstrcmp-0.7.D001/Makefile.in
--- fstrcmp-0.7-D001-old/Makefile.in 2014-03-04 19:13:45.000000000 -0500
+++ fstrcmp-0.7.D001/Makefile.in 2020-04-02 13:57:12.355269595 -0400
@@ -37,6 +37,8 @@
srcdir = @srcdir@
VPATH = @srcdir@
+top_builddir = $(srcdir)
+
#
# the name of the install program to use
#

View File

@ -1,4 +1,4 @@
{ stdenv, fetchzip, libtool, ghostscript, groff }: { stdenv, fetchzip, libtool, ghostscript, groff, autoreconfHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fstrcmp"; pname = "fstrcmp";
@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
sha256 = "0yg3y3k0wz50gmhgigfi2dx725w1gc8snb95ih7vpcnj6kabgz9a"; sha256 = "0yg3y3k0wz50gmhgigfi2dx725w1gc8snb95ih7vpcnj6kabgz9a";
}; };
patches = [ ./cross.patch ];
outputs = [ "out" "dev" "doc" "man" "devman" ]; outputs = [ "out" "dev" "doc" "man" "devman" ];
nativeBuildInputs = [ libtool ghostscript groff ]; nativeBuildInputs = [ libtool ghostscript groff autoreconfHook ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -18,6 +18,8 @@ stdenv.mkDerivation {
[ libGL libGLU ]) [ libGL libGLU ])
; ;
configureFlags = [ "--with-ft-prefix=${stdenv.lib.getDev freetype}" ];
enableParallelBuilding = true; enableParallelBuilding = true;
meta = { meta = {

View File

@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig gettext python3 libxml2 libxslt docbook_xsl docbook_xml_dtd_43 meson ninja pkgconfig gettext python3 libxml2 libxslt docbook_xsl docbook_xml_dtd_43
gtk-doc gobject-introspection makeWrapper gtk-doc gobject-introspection makeWrapper glib
] ]
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
@ -68,7 +68,7 @@ in stdenv.mkDerivation rec {
+ '' + ''
moveToOutput "bin" "$dev" moveToOutput "bin" "$dev"
moveToOutput "bin/gdk-pixbuf-thumbnailer" "$out" moveToOutput "bin/gdk-pixbuf-thumbnailer" "$out"
'' + stdenv.lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
# We need to install 'loaders.cache' in lib/gdk-pixbuf-2.0/2.10.0/ # We need to install 'loaders.cache' in lib/gdk-pixbuf-2.0/2.10.0/
$dev/bin/gdk-pixbuf-query-loaders --update-cache $dev/bin/gdk-pixbuf-query-loaders --update-cache
''; '';

View File

@ -14,4 +14,4 @@ findGdkPixbufLoaders() {
} }
addEnvHooks "$hostOffset" findGdkPixbufLoaders addEnvHooks "$targetOffset" findGdkPixbufLoaders

View File

@ -18,13 +18,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "glib-networking"; pname = "glib-networking";
version = "2.64.0"; version = "2.64.1";
outputs = [ "out" "installedTests" ]; outputs = [ "out" "installedTests" ];
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1fm1462v7z556qivlwflvc3qpz36jwpzqxxvsihh45j7aka2gnjw"; sha256 = "0wmg5n2h0r1rcdmp4w48akqlsbpjrjrj6p59g5ylc5yqyzg4dhx4";
}; };
patches = [ patches = [

View File

@ -1,4 +1,3 @@
make_glib_find_gsettings_schemas() { make_glib_find_gsettings_schemas() {
# For packages that need gschemas of other packages (e.g. empathy) # For packages that need gschemas of other packages (e.g. empathy)
for maybe_dir in "$1"/share/gsettings-schemas/*; do for maybe_dir in "$1"/share/gsettings-schemas/*; do
@ -7,7 +6,7 @@ make_glib_find_gsettings_schemas() {
fi fi
done done
} }
addEnvHooks "$hostOffset" make_glib_find_gsettings_schemas addEnvHooks "$targetOffset" make_glib_find_gsettings_schemas
# Install gschemas, if any, in a package-specific directory # Install gschemas, if any, in a package-specific directory
glibPreInstallPhase() { glibPreInstallPhase() {

View File

@ -10,11 +10,11 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gobject-introspection"; pname = "gobject-introspection";
version = "1.64.0"; version = "1.64.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "10pwykfnk7pw8k9k8iz3p72phxvyrh5q4d7gr3ysv08w15immh7a"; sha256 = "19vz7vp10h0zj3f491yk72dp89bix6rgkzxg4qcm4d6151ksxgl0";
}; };
outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ];

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, fetchpatch, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan { stdenv, fetchurl, fetchpatch
, autoreconfHook, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan
, file, which, ncurses , file, which, ncurses
, texinfo , texinfo
, buildPackages , buildPackages
@ -33,7 +34,14 @@ stdenv.mkDerivation rec {
url = "http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=c4cf527ea227edb468a84bf9b8ce996807bd6992"; url = "http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=c4cf527ea227edb468a84bf9b8ce996807bd6992";
sha256 = "pKL1tvUw7PB2w4FHSt2up4SvpFiprBH6TLdgKxYFC3g="; sha256 = "pKL1tvUw7PB2w4FHSt2up4SvpFiprBH6TLdgKxYFC3g=";
}) })
]; # https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html
(fetchpatch {
name = "0001-Fix-python-tests-on-non-Linux.patch";
url = "https://lists.gnupg.org/pipermail/gnupg-devel/attachments/20200415/f7be62d1/attachment.obj";
sha256 = "00d4sxq63601lzdp2ha1i8fvybh7dzih4531jh8bx07fab3sw65g";
})
# Disable python tests on Darwin as they use gpg (see configureFlags below)
] ++ lib.optional stdenv.isDarwin ./disable-python-tests.patch;
outputs = [ "out" "dev" "info" ]; outputs = [ "out" "dev" "info" ];
outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool
@ -42,15 +50,11 @@ stdenv.mkDerivation rec {
[ libgpgerror glib libassuan pth ] [ libgpgerror glib libassuan pth ]
++ lib.optional (qtbase != null) qtbase; ++ lib.optional (qtbase != null) qtbase;
nativeBuildInputs = [ file pkgconfig gnupg texinfo ] nativeBuildInputs = [ pkgconfig gnupg texinfo autoreconfHook ]
++ lib.optionals pythonSupport [ python swig2 which ncurses ]; ++ lib.optionals pythonSupport [ python swig2 which ncurses ];
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];
postPatch =''
substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file
'';
configureFlags = [ configureFlags = [
"--enable-fixed-path=${gnupg}/bin" "--enable-fixed-path=${gnupg}/bin"
"--with-libgpg-error-prefix=${libgpgerror.dev}" "--with-libgpg-error-prefix=${libgpgerror.dev}"

View File

@ -0,0 +1,12 @@
diff -Naur --strip-trailing-cr gpgme-1.13.1.org/lang/python/Makefile.am gpgme-1.13.1/lang/python/Makefile.am
--- gpgme-1.13.1.org/lang/python/Makefile.am 2019-06-04 07:27:49.000000000 +0100
+++ gpgme-1.13.1/lang/python/Makefile.am 2020-04-15 14:27:34.810172944 +0100
@@ -23,7 +23,7 @@
gpgme.i \
helpers.c helpers.h private.h
-SUBDIRS = . tests examples doc src
+SUBDIRS = . examples doc src
.PHONY: prepare
prepare: copystamp

View File

@ -9,11 +9,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gsm"; pname = "gsm";
version = "1.0.18"; version = "1.0.19";
src = fetchurl { src = fetchurl {
url = "http://www.quut.com/gsm/${pname}-${version}.tar.gz"; url = "http://www.quut.com/gsm/${pname}-${version}.tar.gz";
sha256 = "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4"; sha256 = "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9";
}; };
patchPhase = '' patchPhase = ''

View File

@ -10,7 +10,7 @@
, gst-plugins-base , gst-plugins-base
, orc , orc
, gobject-introspection , gobject-introspection
, enableZbar ? true , enableZbar ? false
, faacSupport ? false , faacSupport ? false
, faac ? null , faac ? null
, faad2 , faad2

View File

@ -37,6 +37,13 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./fix_pkgconfig_includedir.patch ./fix_pkgconfig_includedir.patch
# Fix build with bash-completion 2.10
# https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/436
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gstreamer/commit/dd2ec3681e2d38e13e01477efa36e851650690fb.patch";
sha256 = "CMYQF2MTsC5A0btMpLVLemkwsMtEbzhDXVE3u49xHB4=";
})
]; ];
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -73,6 +73,21 @@ stdenv.mkDerivation rec {
# https://gitlab.gnome.org/GNOME/gtk/merge_requests/1002 # https://gitlab.gnome.org/GNOME/gtk/merge_requests/1002
./patches/01-build-Fix-path-handling-in-pkgconfig.patch ./patches/01-build-Fix-path-handling-in-pkgconfig.patch
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1634
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/79732da1ed8cb167440fb047c72cfc0d888a187b.patch";
sha256 = "1ynrx81dkwjfqhvg80q28qbb6jabg4x73fkbrnligzgkzimfjpx3";
})
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1633
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/12fc9a45efcbb546eb7de13c5c4d3183f2f5a3b8.patch";
sha256 = "00zrm77qk39p1hgn207az82cgvqiyp6is7dk0ssjxkc34403r78v";
})
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/5a52af20cba76474e631b2a7548963bcad22d66d.patch";
sha256 = "0sbzzwa0si1w83m5abyf312f4w445wwlms53m5hb7kdgkjbhaa3f";
})
] ++ optionals stdenv.isDarwin [ ] ++ 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

@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "0x5b6lcic4cd7q0bx00x93kvpyzl7n2abbgvqbrlzrfb8vknc6jg"; sha256 = "0x5b6lcic4cd7q0bx00x93kvpyzl7n2abbgvqbrlzrfb8vknc6jg";
}; };
configureFlags = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "http://0pointer.de/lennart/projects/libasyncns/"; homepage = "http://0pointer.de/lennart/projects/libasyncns/";
description = "A C library for Linux/Unix for executing name service queries asynchronously"; description = "A C library for Linux/Unix for executing name service queries asynchronously";

View File

@ -10,6 +10,11 @@ stdenv.mkDerivation rec {
buildInputs = stdenv.lib.optional stdenv.isDarwin libiconv; buildInputs = stdenv.lib.optional stdenv.isDarwin libiconv;
configureFlags = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
doCheck = false; # fails 3 of 5 tests with locale errors doCheck = false; # fails 3 of 5 tests with locale errors
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
patchShebangs . patchShebangs .
''; '';
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig help2man ];
buildInputs = [ libcddb ncurses help2man ] buildInputs = [ libcddb ncurses ]
++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Carbon IOKit ]; ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Carbon IOKit ];
doCheck = !stdenv.isDarwin; doCheck = !stdenv.isDarwin;

View File

@ -11,8 +11,8 @@ stdenv.mkDerivation {
sha256 = "02j09y06csaic4m0fyb4dr9l3hl15nxbbniwq0i1qlccpxjak0j3"; sha256 = "02j09y06csaic4m0fyb4dr9l3hl15nxbbniwq0i1qlccpxjak0j3";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ cmake udev libcec_platform ] ++ buildInputs = [ udev libcec_platform ] ++
stdenv.lib.optional (libraspberrypi != null) libraspberrypi; stdenv.lib.optional (libraspberrypi != null) libraspberrypi;
cmakeFlags = [ "-DBUILD_SHARED_LIBS=1" ]; cmakeFlags = [ "-DBUILD_SHARED_LIBS=1" ];

View File

@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
buildInputs = [ libuuid ]; buildInputs = [ libuuid ];
buildPhase = '' buildPhase = ''
g++ -c guid.cpp -o guid.o $CXXFLAGS -std=c++11 -DGUID_LIBUUID $CXX -c guid.cpp -o guid.o $CXXFLAGS -std=c++11 -DGUID_LIBUUID
ar rvs libcrossguid.a guid.o $AR rvs libcrossguid.a guid.o
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/{lib,include} mkdir -p $out/{lib,include}

View File

@ -3,45 +3,28 @@
, fetchpatch , fetchpatch
, cmake , cmake
, pkgconfig , pkgconfig
, hidapi
, libcbor , libcbor
, openssl , openssl
, udev , udev
, IOKit }: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libfido2"; pname = "libfido2";
version = "1.3.1"; version = "1.4.0";
src = fetchurl { src = fetchurl {
url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz"; url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
sha256 = "0hdgxbmjbnm9kjwc07nrl2zy87qclvb3rzvdwr5iw35n2qhf4dds"; sha256 = "0v1a3n0qljmrp8y9pmnmbsdsy79l3z84qmhyjx50xdsbgnz1z4md";
}; };
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ libcbor openssl ] buildInputs = [ hidapi libcbor openssl ]
++ stdenv.lib.optionals stdenv.isLinux [ udev ] ++ stdenv.lib.optionals stdenv.isLinux [ udev ];
++ stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
patches = [
# fix build on darwin
(fetchpatch {
url = "https://github.com/Yubico/libfido2/commit/916ebd18a89e4028de203d603726805339be7a5b.patch";
sha256 = "07f0xpxnq02cccmqcric87b6pms7k7ssvdw722zr970a6qs8p6i7";
})
# allow attestation using any supported algorithm
(fetchpatch {
url = "https://github.com/Yubico/libfido2/commit/f7a9471fa0588cb91cbefffb13c1e4d06c2179b7.patch";
sha256 = "02qbw9bqy3sixvwig6az7v3vimgznxnfikn9p1jczm3d7mn8asw2";
})
# fix EdDSA attestation signature verification bug
(fetchpatch {
url = "https://github.com/Yubico/libfido2/commit/95126eea52294419515e6540dfd7220f35664c48.patch";
sha256 = "076mwpl9xndjhy359jdv2drrwyq7wd3pampkn28mn1rlwxfgf0d0";
})
];
cmakeFlags = [ cmakeFlags = [
"-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d"
"-DUSE_HIDAPI=1"
"-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_LIBDIR=lib"
]; ];

View File

@ -1,11 +0,0 @@
--- a/CMakeLists.txt 2020-02-19 17:21:59.000000000 +0000
+++ b/CMakeLists.txt 2020-02-23 15:57:34.241115306 +0000
@@ -296,7 +296,7 @@
endif()
# export list
-if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
+if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
# clang + lld
string(CONCAT CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}
" -exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/src/export.llvm")

View File

@ -27,11 +27,11 @@ in
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libinput"; pname = "libinput";
version = "1.15.3"; version = "1.15.4";
src = fetchurl { src = fetchurl {
url = "https://www.freedesktop.org/software/libinput/${pname}-${version}.tar.xz"; url = "https://www.freedesktop.org/software/libinput/${pname}-${version}.tar.xz";
sha256 = "0kb9i1xav8hmrl6g0qdq7jii589i9sjjrbh43fsc5284smyl44jv"; sha256 = "1ha5qyak1ka5npy5i6hzqfpii8samkj389mkppj4wdsfv536i2ww";
}; };
outputs = [ "bin" "out" "dev" ]; outputs = [ "bin" "out" "dev" ];

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libjpeg-turbo"; pname = "libjpeg-turbo";
version = "2.0.3"; version = "2.0.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "1ds16bnj17v6hzd43w8pzijz3imd9am4hw75ir0fxm240m8dwij2"; sha256 = "01ill8bgjyk582wipx7sh7gj2nidylpbzvwhx0wkcm6mxx3qbp9k";
}; };
patches = patches =
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
homepage = "http://libjpeg-turbo.virtualgl.org/"; homepage = "http://libjpeg-turbo.virtualgl.org/";
description = "A faster (using SIMD) libjpeg implementation"; description = "A faster (using SIMD) libjpeg implementation";
license = licenses.ijg; # and some parts under other BSD-style licenses license = licenses.ijg; # and some parts under other BSD-style licenses
maintainers = [ maintainers.vcunat ]; maintainers = with maintainers; [ vcunat colemickens ];
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libnetfilter_conntrack"; pname = "libnetfilter_conntrack";
version = "1.0.7"; version = "1.0.8";
src = fetchurl { src = fetchurl {
url = "https://netfilter.org/projects/libnetfilter_conntrack/files/${pname}-${version}.tar.bz2"; url = "https://netfilter.org/projects/libnetfilter_conntrack/files/${pname}-${version}.tar.bz2";
sha256 = "1dl9z50yny04xi5pymlykwmy6hcfc9p4nd7m47697zwxw98m6s1k"; sha256 = "1ky1mqgnplw2h9jf0kn0a69d94jkydhbiipng9l2hdcj13h3pl8c";
}; };
buildInputs = [ libmnl ]; buildInputs = [ libmnl ];

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