Merge branch 'staging' into fix.icon-theme-inheritance
This commit is contained in:
commit
adcb685ec0
213 changed files with 3962 additions and 1524 deletions
4
.github/CONTRIBUTING.md
vendored
4
.github/CONTRIBUTING.md
vendored
|
@ -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):
|
||||
|
||||
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>`.
|
||||
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
|
||||
|
||||
|
|
|
@ -45,9 +45,9 @@ Nixpkgs and NixOS are built and tested by our continuous integration
|
|||
system, [Hydra](https://hydra.nixos.org/).
|
||||
|
||||
* [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 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
|
||||
https://cache.nixos.org/. When successful build and test criteria are
|
||||
|
|
|
@ -149,31 +149,4 @@ EOF
|
|||
]]></programlisting>
|
||||
</para>
|
||||
</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>
|
||||
|
|
|
@ -727,6 +727,16 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
|
|||
|
||||
<variablelist>
|
||||
<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>
|
||||
<term>
|
||||
<varname>patches</varname>
|
||||
|
|
|
@ -271,6 +271,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
|||
fullName = "European Union Public License 1.1";
|
||||
};
|
||||
|
||||
eupl12 = spdx {
|
||||
spdxId = "EUPL-1.2";
|
||||
fullName = "European Union Public License 1.2";
|
||||
};
|
||||
|
||||
fdl12 = spdx {
|
||||
spdxId = "GFDL-1.2-only";
|
||||
fullName = "GNU Free Documentation License v1.2 only";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<para>
|
||||
<emphasis>Stable channels</emphasis>, such as
|
||||
<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,
|
||||
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
|
||||
|
@ -38,7 +38,7 @@
|
|||
<para>
|
||||
<emphasis>Small channels</emphasis>, such as
|
||||
<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
|
||||
<literal
|
||||
xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
|
||||
|
@ -63,8 +63,8 @@
|
|||
<para>
|
||||
When you first install NixOS, you’re automatically subscribed to the NixOS
|
||||
channel that corresponds to your installation source. For instance, if you
|
||||
installed from a 19.09 ISO, you will be subscribed to the
|
||||
<literal>nixos-19.09</literal> channel. To see which NixOS channel you’re
|
||||
installed from a 20.03 ISO, you will be subscribed to the
|
||||
<literal>nixos-20.03</literal> channel. To see which NixOS channel you’re
|
||||
subscribed to, run the following as root:
|
||||
<screen>
|
||||
# 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
|
||||
</screen>
|
||||
(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>
|
||||
# nix-channel --add https://nixos.org/channels/nixos-19.09 nixos
|
||||
# nix-channel --add https://nixos.org/channels/nixos-20.03 nixos
|
||||
</screen>
|
||||
If you have a server, you may want to use the “small” channel instead:
|
||||
<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>
|
||||
And if you want to live on the bleeding edge:
|
||||
<screen>
|
||||
|
@ -132,7 +132,7 @@ nixos https://nixos.org/channels/nixos-unstable
|
|||
kernel, initrd or kernel modules.
|
||||
You can also specify a channel explicitly, e.g.
|
||||
<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>
|
||||
</para>
|
||||
</section>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
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"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
|
|
|
@ -45,6 +45,9 @@ let
|
|||
|
||||
# generate the font cache setting file for a fontconfig version
|
||||
# use latest when no version is passed
|
||||
# When cross-compiling, we can’t generate the cache, so we skip the
|
||||
# <cachedir> part. fontconfig still works but is a little slower in
|
||||
# looking things up.
|
||||
makeCacheConf = { version ? null }:
|
||||
let
|
||||
fcPackage = if version == null
|
||||
|
@ -60,11 +63,13 @@ let
|
|||
<fontconfig>
|
||||
<!-- Font directories -->
|
||||
${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
|
||||
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
|
||||
<!-- Pre-generated font caches -->
|
||||
<cachedir>${cache}</cachedir>
|
||||
${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
|
||||
<cachedir>${cache32}</cachedir>
|
||||
''}
|
||||
''}
|
||||
</fontconfig>
|
||||
'';
|
||||
|
||||
|
|
|
@ -197,7 +197,7 @@ in
|
|||
|
||||
} // optionalAttrs (pkgs.stdenv.hostPlatform.libc == "glibc") {
|
||||
# /etc/rpc: RPC program numbers.
|
||||
rpc.source = pkgs.glibc.out + "/etc/rpc";
|
||||
rpc.source = pkgs.stdenv.cc.libc.out + "/etc/rpc";
|
||||
};
|
||||
|
||||
networking.proxy.envVars =
|
||||
|
|
|
@ -10,14 +10,6 @@ let
|
|||
|
||||
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 {
|
||||
name = "opengl-drivers";
|
||||
paths = [ cfg.package ] ++ cfg.extraPackages;
|
||||
|
@ -34,6 +26,9 @@ in
|
|||
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ])
|
||||
(mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] ''
|
||||
S3TC support is now always enabled in Mesa.
|
||||
'')
|
||||
];
|
||||
|
||||
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 {
|
||||
type = types.package;
|
||||
internal = true;
|
||||
|
@ -166,8 +150,8 @@ in
|
|||
environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath
|
||||
([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib");
|
||||
|
||||
hardware.opengl.package = mkDefault (makePackage pkgs);
|
||||
hardware.opengl.package32 = mkDefault (makePackage pkgs.pkgsi686Linux);
|
||||
hardware.opengl.package = mkDefault pkgs.mesa.drivers;
|
||||
hardware.opengl.package32 = mkDefault pkgs.pkgsi686Linux.mesa.drivers;
|
||||
|
||||
boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions;
|
||||
};
|
||||
|
|
|
@ -180,7 +180,7 @@ sub pciCheck {
|
|||
) )
|
||||
{
|
||||
# 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
|
||||
|
@ -279,7 +279,7 @@ if ($virt eq "oracle") {
|
|||
|
||||
# Likewise for QEMU.
|
||||
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.
|
||||
|
@ -296,7 +296,7 @@ if ($virt eq "systemd-nspawn") {
|
|||
|
||||
# Provide firmware for devices that are not detected by this script,
|
||||
# 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";
|
||||
|
||||
|
||||
|
@ -549,7 +549,7 @@ my $hwConfig = <<EOF;
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =${\multiLineList(" ", @imports)};
|
||||
|
|
|
@ -7,6 +7,10 @@ let
|
|||
nssModulesPath = config.system.nssModules.path;
|
||||
cfg = config.services.nscd;
|
||||
|
||||
nscd = if pkgs.stdenv.hostPlatform.libc == "glibc"
|
||||
then pkgs.stdenv.cc.libc.bin
|
||||
else pkgs.glibc.bin;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
@ -59,16 +63,16 @@ in
|
|||
# files. So prefix the ExecStart command with "!" to prevent systemd
|
||||
# from dropping privileges early. See ExecStart in systemd.service(5).
|
||||
serviceConfig =
|
||||
{ ExecStart = "!@${pkgs.glibc.bin}/sbin/nscd nscd";
|
||||
{ ExecStart = "!@${nscd}/sbin/nscd nscd";
|
||||
Type = "forking";
|
||||
DynamicUser = true;
|
||||
RuntimeDirectory = "nscd";
|
||||
PIDFile = "/run/nscd/nscd.pid";
|
||||
Restart = "always";
|
||||
ExecReload =
|
||||
[ "${pkgs.glibc.bin}/sbin/nscd --invalidate passwd"
|
||||
"${pkgs.glibc.bin}/sbin/nscd --invalidate group"
|
||||
"${pkgs.glibc.bin}/sbin/nscd --invalidate hosts"
|
||||
[ "${nscd}/sbin/nscd --invalidate passwd"
|
||||
"${nscd}/sbin/nscd --invalidate group"
|
||||
"${nscd}/sbin/nscd --invalidate hosts"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -3,13 +3,14 @@
|
|||
let
|
||||
|
||||
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;
|
||||
|
||||
dokuwikiAclAuthConfig = pkgs.writeText "acl.auth.php" ''
|
||||
dokuwikiAclAuthConfig = cfg: pkgs.writeText "acl.auth.php" ''
|
||||
# acl.auth.php
|
||||
# <?php exit()?>
|
||||
#
|
||||
|
@ -18,24 +19,54 @@ let
|
|||
${toString cfg.acl}
|
||||
'';
|
||||
|
||||
dokuwikiLocalConfig = pkgs.writeText "local.php" ''
|
||||
dokuwikiLocalConfig = cfg: pkgs.writeText "local.php" ''
|
||||
<?php
|
||||
$conf['savedir'] = '${cfg.stateDir}';
|
||||
$conf['superuser'] = '${toString cfg.superUser}';
|
||||
$conf['useacl'] = '${toString cfg.aclUse}';
|
||||
$conf['disableactions'] = '${cfg.disableActions}';
|
||||
${toString cfg.extraConfig}
|
||||
'';
|
||||
|
||||
dokuwikiPluginsLocalConfig = pkgs.writeText "plugins.local.php" ''
|
||||
dokuwikiPluginsLocalConfig = cfg: pkgs.writeText "plugins.local.php" ''
|
||||
<?php
|
||||
${cfg.pluginsConfig}
|
||||
'';
|
||||
|
||||
in
|
||||
{
|
||||
options.services.dokuwiki = {
|
||||
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";
|
||||
|
@ -44,7 +75,7 @@ in
|
|||
|
||||
stateDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/dokuwiki/data";
|
||||
default = "/var/lib/dokuwiki/${name}/data";
|
||||
description = "Location of the dokuwiki state directory.";
|
||||
};
|
||||
|
||||
|
@ -56,18 +87,22 @@ in
|
|||
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 = types.nullOr types.path;
|
||||
default = null;
|
||||
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 {
|
||||
|
@ -104,14 +139,26 @@ in
|
|||
};
|
||||
|
||||
usersFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
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 {
|
||||
|
@ -128,6 +175,61 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
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 = {
|
||||
|
@ -166,34 +268,46 @@ in
|
|||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
# interface
|
||||
options = {
|
||||
services.dokuwiki = mkOption {
|
||||
type = types.attrsOf (types.submodule siteOpts);
|
||||
default = {};
|
||||
description = "Sepcification of one or more dokuwiki sites to service.";
|
||||
};
|
||||
};
|
||||
|
||||
# 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);
|
||||
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;
|
||||
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: (
|
||||
nameValuePair "dokuwiki-${hostName}" {
|
||||
inherit user;
|
||||
inherit group;
|
||||
phpEnv = {
|
||||
DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig}";
|
||||
DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig}";
|
||||
DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig cfg}";
|
||||
DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig cfg}";
|
||||
} // optionalAttrs (cfg.usersFile != null) {
|
||||
DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}";
|
||||
} //optionalAttrs (cfg.aclUse) {
|
||||
DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig}" else "${toString cfg.aclFile}";
|
||||
DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig cfg}" else "${toString cfg.aclFile}";
|
||||
};
|
||||
|
||||
settings = {
|
||||
|
@ -201,14 +315,12 @@ in
|
|||
"listen.owner" = user;
|
||||
"listen.group" = group;
|
||||
} // cfg.poolConfig;
|
||||
};
|
||||
})) eachSite;
|
||||
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
|
||||
virtualHosts = {
|
||||
${cfg.hostName} = mkMerge [ cfg.nginx {
|
||||
root = mkForce "${pkgs.dokuwiki}/share/dokuwiki/";
|
||||
virtualHosts = mapAttrs (hostName: cfg: mkMerge [ cfg.nginx {
|
||||
root = mkForce "${pkg hostName cfg}/share/dokuwiki";
|
||||
extraConfig = "fastcgi_param HTTPS on;";
|
||||
|
||||
locations."~ /(conf/|bin/|inc/|install.php)" = {
|
||||
|
@ -246,16 +358,14 @@ in
|
|||
include ${pkgs.nginx}/conf/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
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;
|
||||
'';
|
||||
};
|
||||
}];
|
||||
}]) eachSite;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [
|
||||
"d ${cfg.stateDir}/attic 0750 ${user} ${group} - -"
|
||||
"d ${cfg.stateDir}/cache 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}/pages 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ let
|
|||
continue
|
||||
fi
|
||||
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
|
||||
) > "$out"
|
||||
'';
|
||||
|
@ -37,7 +37,7 @@ in
|
|||
# If there is any package configured in modulePackages, we generate the
|
||||
# loaders.cache based on that and set the environment variable
|
||||
# GDK_PIXBUF_MODULE_FILE to point to it.
|
||||
config = mkIf (cfg.modulePackages != []) {
|
||||
config = mkIf (cfg.modulePackages != [] || pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform) {
|
||||
environment.variables = {
|
||||
GDK_PIXBUF_MODULE_FILE = "${loadersCache}";
|
||||
};
|
||||
|
|
|
@ -894,6 +894,13 @@ in
|
|||
"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";
|
||||
|
||||
"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/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.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/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-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
|
||||
});
|
||||
|
|
|
@ -463,10 +463,15 @@ in
|
|||
A specification of the desired configuration of this
|
||||
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";
|
||||
merge = loc: defs: (import ../../lib/eval-config.nix {
|
||||
merge = loc: defs: (import (confPkgs.path + "/nixos/lib/eval-config.nix") {
|
||||
inherit system;
|
||||
pkgs = confPkgs;
|
||||
baseModules = import (confPkgs.path + "/nixos/modules/module-list.nix");
|
||||
inherit (confPkgs) lib;
|
||||
modules =
|
||||
let
|
||||
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 {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
|
|
|
@ -53,6 +53,7 @@ in
|
|||
consul = handleTest ./consul.nix {};
|
||||
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
|
||||
containers-bridge = handleTest ./containers-bridge.nix {};
|
||||
containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
|
||||
containers-ephemeral = handleTest ./containers-ephemeral.nix {};
|
||||
containers-extra_veth = handleTest ./containers-extra_veth.nix {};
|
||||
containers-hosts = handleTest ./containers-hosts.nix {};
|
||||
|
|
42
nixos/tests/containers-custom-pkgs.nix
Normal file
42
nixos/tests/containers-custom-pkgs.nix
Normal 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"
|
||||
)
|
||||
'';
|
||||
})
|
|
@ -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";
|
||||
# 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/";
|
||||
};
|
||||
|
||||
{
|
||||
|
||||
# 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 maintainers; [ maintainers."1000101" ];
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ "1000101" ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{ services.dokuwiki = {
|
||||
enable = true;
|
||||
acl = " ";
|
||||
superUser = null;
|
||||
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 = ''
|
||||
machine.start()
|
||||
machine.wait_for_unit("phpfpm-dokuwiki.service")
|
||||
site_names = ["site1.local", "site2.local"]
|
||||
|
||||
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_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'")
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -12,12 +12,12 @@ stdenv.mkDerivation {
|
|||
|
||||
buildInputs = [ libpulseaudio ];
|
||||
|
||||
configureFlagsArray =
|
||||
configureFlags =
|
||||
[ "--without-test" "--without-contrib" "--disable-devdsp"
|
||||
"--enable-pulse" "--disable-alsa" "--disable-midi"
|
||||
"--disable-nas" "--disable-dsound" "--disable-i18n" ];
|
||||
|
||||
makeFlagsArray = [ "tests=" ];
|
||||
makeFlags = [ "tests=" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "gameboy sound player";
|
||||
|
|
34
pkgs/applications/audio/hydrogen/unstable.nix
Normal file
34
pkgs/applications/audio/hydrogen/unstable.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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
|
||||
, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
|
||||
, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
|
||||
|
@ -44,6 +44,11 @@ stdenv.mkDerivation rec {
|
|||
patches = [
|
||||
./clean-env.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 ''
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "8.2.0343";
|
||||
version = "8.2.0510";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
sha256 = "063i52h8v7f87zamrw2ph057f0x2nzwf1s0izrm2psy41cyf4wa3";
|
||||
sha256 = "16ggwf238pzzkn3ng6n09qz9cgdzha9vc0ghlcxhwilnjh12l7p9";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
@ -104,6 +104,12 @@ rustPlatform.buildRustPackage rec {
|
|||
'' else ''
|
||||
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
|
||||
|
||||
# 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
|
||||
''
|
||||
) + ''
|
||||
|
|
27
pkgs/applications/misc/ausweisapp2/default.nix
Normal file
27
pkgs/applications/misc/ausweisapp2/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -7,29 +7,24 @@
|
|||
, qtbase
|
||||
, qttools
|
||||
, qtx11extras
|
||||
, sqlite
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "birdtray";
|
||||
version = "1.7.0";
|
||||
version = "1.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gyunaev";
|
||||
repo = pname;
|
||||
rev = "RELEASE_${version}";
|
||||
sha256 = "0wj2lq5bz1p0cf6yj43v3ifxschcrh5amwx30wqw2m4bb8syzjw1";
|
||||
rev = version;
|
||||
sha256 = "15d0gz889vf9b2a046m93s5kdi6lw2sqjd5gaxgjkjrs20x5vr18";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
buildInputs = [
|
||||
qtbase qtx11extras sqlite
|
||||
qtbase qttools qtx11extras
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 birdtray $out/bin/birdtray
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Mail system tray notification icon for Thunderbird";
|
||||
homepage = "https://github.com/gyunaev/birdtray";
|
||||
|
|
|
@ -94,7 +94,7 @@ in buildFHSUserEnv {
|
|||
libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio
|
||||
libao libusb libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l
|
||||
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
|
||||
readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
|
||||
vulkan-loader xdg_utils sqlite gnutls libbsd
|
||||
|
|
|
@ -82,11 +82,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.5.123";
|
||||
version = "1.7.92";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "1yv6hfjqzcd60b0bjpfbj8d4s2yf10swanxhbmnslcqp6ajb2nqr";
|
||||
sha256 = "1f262xh88c83m6ixqxc69z8kvkl3qbjc6jnv2g8n0flw8s70hs7z";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{ stdenv, fetchFromGitHub, buildGoPackage }:
|
||||
{ lib, fetchFromGitHub, buildGoPackage }:
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "cni";
|
||||
version = "0.7.0";
|
||||
version = "0.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containernetworking";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8";
|
||||
sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/containernetworking/cni";
|
||||
meta = with stdenv.lib; {
|
||||
|
||||
meta = with lib; {
|
||||
description = "Container Network Interface - networking for Linux containers";
|
||||
license = licenses.asl20;
|
||||
homepage = "https://github.com/containernetworking/cni";
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
]
|
|
@ -1,24 +1,22 @@
|
|||
{ stdenv, lib, fetchFromGitHub, go, removeReferencesTo, buildGoPackage }:
|
||||
{ lib, fetchFromGitHub, buildGoPackage }:
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "cni-plugins";
|
||||
version = "0.8.4";
|
||||
version = "0.8.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containernetworking";
|
||||
repo = "plugins";
|
||||
rev = "v${version}";
|
||||
sha256 = "02kz6y3klhbriybsskn4hmldwli28cycnp2klsm2x0y9c73iczdp";
|
||||
sha256 = "17c8pvpn0dpda6ah7irr9hhd8sk7mnm32zv72nc5pxg1xvfpaipi";
|
||||
};
|
||||
|
||||
goDeps = ./plugins-deps.nix;
|
||||
goPackagePath = "github.com/containernetworking/plugins";
|
||||
|
||||
subPackages = [
|
||||
"plugins/meta/bandwidth"
|
||||
"plugins/meta/firewall"
|
||||
"plugins/meta/flannel"
|
||||
"plugins/meta/portmap"
|
||||
"plugins/meta/sbr"
|
||||
"plugins/meta/tuning"
|
||||
"plugins/ipam/dhcp"
|
||||
"plugins/ipam/host-local"
|
||||
"plugins/ipam/static"
|
||||
"plugins/main/bridge"
|
||||
"plugins/main/host-device"
|
||||
"plugins/main/ipvlan"
|
||||
|
@ -26,10 +24,14 @@ buildGoPackage rec {
|
|||
"plugins/main/macvlan"
|
||||
"plugins/main/ptp"
|
||||
"plugins/main/vlan"
|
||||
"plugins/ipam/dhcp"
|
||||
"plugins/ipam/host-local"
|
||||
"plugins/ipam/static"
|
||||
"plugins/meta/bandwidth"
|
||||
"plugins/meta/firewall"
|
||||
"plugins/meta/flannel"
|
||||
"plugins/meta/portmap"
|
||||
"plugins/meta/sbr"
|
||||
"plugins/meta/tuning"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Some standard networking plugins, maintained by the CNI team";
|
||||
homepage = "https://github.com/containernetworking/plugins";
|
||||
|
|
|
@ -5,11 +5,11 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "zeek";
|
||||
version = "3.1.1";
|
||||
version = "3.1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://old.zeek.org/downloads/zeek-${version}.tar.gz";
|
||||
sha256 = "0siybzdp8w62jqk5vdi5fxwvj6cn4r6c2d4z2axd4rj5vhv5zvx2";
|
||||
url = "https://download.zeek.org/zeek-${version}.tar.gz";
|
||||
sha256 = "18aa4pfwav8m6vq7cr4bhfg243da54ak933rqbriljnhsrgp4n0q";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake flex bison file ];
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ stdenv, fetchFromGitHub, python3Packages }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
name = "gmailieer-${version}";
|
||||
version = "1.0";
|
||||
pname = "lieer";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gauteh";
|
||||
repo = "gmailieer";
|
||||
repo = "lieer";
|
||||
rev = "v${version}";
|
||||
sha256 = "1zzylv8xbcrh34bz0s29dawzcyx39lai8y8wk0bl4x75v1jfynvf";
|
||||
sha256 = "19jx3sm925nrzl26km1bxbp6y5gk1mzwadd79vip2jl70b3xk9f8";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
@ -27,8 +27,8 @@ python3Packages.buildPythonApplication rec {
|
|||
tags in the notmuch database may be pushed back remotely to your
|
||||
GMail account.
|
||||
'';
|
||||
homepage = "https://github.com/gauteh/gmailieer";
|
||||
repositories.git = "https://github.com/gauteh/gmailieer.git";
|
||||
homepage = "https://lieer.gaute.vetsj.com/";
|
||||
repositories.git = "https://github.com/gauteh/lieer.git";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ kaiha ];
|
||||
};
|
|
@ -62,6 +62,11 @@ in (stdenv.mkDerivation rec {
|
|||
|
||||
patches = [
|
||||
./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";
|
||||
|
|
|
@ -728,11 +728,11 @@
|
|||
md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2";
|
||||
}
|
||||
{
|
||||
name = "Python-3.7.6.tar.xz";
|
||||
url = "http://dev-www.libreoffice.org/src/Python-3.7.6.tar.xz";
|
||||
sha256 = "55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f";
|
||||
name = "Python-3.7.7.tar.xz";
|
||||
url = "http://dev-www.libreoffice.org/src/Python-3.7.7.tar.xz";
|
||||
sha256 = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136";
|
||||
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";
|
||||
|
|
|
@ -8,8 +8,8 @@ rec {
|
|||
|
||||
major = "6";
|
||||
minor = "4";
|
||||
patch = "1";
|
||||
tweak = "1";
|
||||
patch = "3";
|
||||
tweak = "2";
|
||||
|
||||
subdir = "${major}.${minor}.${patch}";
|
||||
|
||||
|
@ -17,13 +17,13 @@ rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
|
||||
sha256 = "03fqpkilz4yi35l447hb9r8gjwj23l61bpdkwg21jm8blm8kkvyj";
|
||||
sha256 = "1cmbrhha7mlflnlbpla8fix07cxcgkdb7krnrgs1bylf31y5855w";
|
||||
};
|
||||
|
||||
# FIXME rename
|
||||
translations = fetchSrc {
|
||||
name = "translations";
|
||||
sha256 = "0a7arjlxxy7hjm1brxwd124bf1gkbl92bgygi3sbbhbsv07pjdcr";
|
||||
sha256 = "06z9hz4m3kdcljjc6y5s18001axjibj9xiyakdndkl9pmnnhn9h3";
|
||||
};
|
||||
|
||||
# the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
|
||||
|
@ -31,6 +31,6 @@ rec {
|
|||
|
||||
help = fetchSrc {
|
||||
name = "help";
|
||||
sha256 = "1hfllrdyxrg5mgqry3dcrhjbdrd0d27k5mvv4sfj7nwjlmjh8rqq";
|
||||
sha256 = "0mpgrwg8z1q38j03l6m1sdpcplyjd5nz1nqaa13vfkryj2lflw45";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "verilator";
|
||||
version = "4.030";
|
||||
version = "4.032";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
|
||||
sha256 = "07ldkf7xkr31n1dmx82bmzam8bvc1vsp32k76vd7yzn7r853qyky";
|
||||
sha256 = "1l3rhgw7pk59dz7dyhcl0iygn6c9rv9bv131rfzg66asxfwbfq1s";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
@ -1,34 +1,40 @@
|
|||
{ stdenv, fetchFromGitHub, ocamlPackages, omake }:
|
||||
{ lib, fetchFromGitHub, ocamlPackages, rsync }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "beluga-20180403";
|
||||
ocamlPackages.buildDunePackage {
|
||||
pname = "beluga";
|
||||
version = "unstable-2020-03-11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Beluga-lang";
|
||||
repo = "Beluga";
|
||||
rev = "046aa59f008be70a7c4700b723bed0214ea8b687";
|
||||
sha256 = "0m68y0r0wdw3mg2jks68bihaww7sg305zdfnic1rkndq2cxv0mld";
|
||||
rev = "6133b2f572219333f304bb4f77c177592324c55b";
|
||||
sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with ocamlPackages; [ findlib ocamlbuild omake ];
|
||||
buildInputs = with ocamlPackages; [ ocaml ulex ocaml_extlib ];
|
||||
useDune2 = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r bin $out/
|
||||
buildInputs = with ocamlPackages; [
|
||||
gen sedlex_2 ocaml_extlib dune-build-info linenoise
|
||||
];
|
||||
|
||||
mkdir -p $out/share/beluga
|
||||
cp -r tools/ examples/ $out/share/beluga
|
||||
postPatch = ''
|
||||
patchShebangs ./TEST ./run_harpoon_test.sh
|
||||
'';
|
||||
|
||||
checkPhase = "./TEST";
|
||||
checkInputs = [ rsync ];
|
||||
doCheck = true;
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $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";
|
||||
homepage = "http://complogic.cs.mcgill.ca/beluga/";
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
maintainers = [ stdenv.lib.maintainers.bcdarwin ];
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.bcdarwin ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -80,6 +80,8 @@ stdenv.mkDerivation {
|
|||
configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
"ac_cv_fread_reads_directories=yes"
|
||||
"ac_cv_snprintf_returns_bogus=no"
|
||||
"ac_cv_iconv_omits_bom=no"
|
||||
"ac_cv_prog_CURL_CONFIG=${curl.dev}/bin/curl-config"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
|
|
|
@ -4,22 +4,20 @@
|
|||
, boost, avahi, lame, autoreconfHook
|
||||
, gettext, pcre-cpp, yajl, fribidi, which
|
||||
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre
|
||||
, libX11, xorgproto, libxml2
|
||||
, libXt, libXmu, libXext
|
||||
, libXinerama, libXrandr
|
||||
, libXtst, libXfixes, systemd
|
||||
, libxml2, systemd
|
||||
, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
|
||||
, libjpeg, libpng, libtiff
|
||||
, libmpeg2, libsamplerate, libmad
|
||||
, libogg, libvorbis, flac, libxslt
|
||||
, lzo, libcdio, libmodplug, libass, libbluray
|
||||
, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
|
||||
, curl, bzip2, zip, unzip, glxinfo, xdpyinfo
|
||||
, curl, bzip2, zip, unzip, glxinfo
|
||||
, libcec, libcec_platform, dcadec, libuuid
|
||||
, 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
|
||||
, lirc
|
||||
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
|
||||
, dbusSupport ? true, dbus ? null
|
||||
, joystickSupport ? true, cwiid ? null
|
||||
, nfsSupport ? true, libnfs ? null
|
||||
|
@ -32,6 +30,7 @@
|
|||
, useWayland ? false, wayland ? null, wayland-protocols ? null
|
||||
, waylandpp ? null, libxkbcommon ? null
|
||||
, useGbm ? false, mesa ? null, libinput ? null
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
assert dbusSupport -> dbus != null;
|
||||
|
@ -94,10 +93,18 @@ let
|
|||
sha256 = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy";
|
||||
preConfigure = ''
|
||||
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;
|
||||
nativeBuildInputs = [ cmake nasm pkgconfig ];
|
||||
nativeBuildInputs = [ cmake nasm pkgconfig gnutls ];
|
||||
};
|
||||
|
||||
# We can build these externally but FindLibDvd.cmake forces us to build it
|
||||
|
@ -152,29 +159,31 @@ in stdenv.mkDerivation {
|
|||
|
||||
buildInputs = [
|
||||
gnutls libidn libtasn1 nasm p11-kit
|
||||
libxml2 yasm python2Packages.python
|
||||
libxml2 python2Packages.python
|
||||
boost libmicrohttpd
|
||||
gettext pcre-cpp yajl fribidi libva libdrm
|
||||
openssl gperf tinyxml2 taglib libssh swig jre
|
||||
libX11 xorgproto libXt libXmu libXext
|
||||
libXinerama libXrandr libXtst libXfixes
|
||||
alsaLib libGL libGLU glew fontconfig freetype ftgl
|
||||
openssl gperf tinyxml2 taglib libssh
|
||||
alsaLib libGL libGLU fontconfig freetype ftgl
|
||||
libjpeg libpng libtiff
|
||||
libmpeg2 libsamplerate libmad
|
||||
libogg libvorbis flac libxslt systemd
|
||||
lzo libcdio libmodplug libass libbluray
|
||||
sqlite libmysqlclient avahi lame
|
||||
curl bzip2 zip unzip glxinfo xdpyinfo
|
||||
curl bzip2 zip unzip glxinfo
|
||||
libcec libcec_platform dcadec libuuid
|
||||
libgcrypt libgpgerror libunistring
|
||||
libcrossguid cwiid libplist
|
||||
bluez giflib glib harfbuzz lcms2 libpthreadstubs libXdmcp
|
||||
libcrossguid libplist
|
||||
bluez giflib glib harfbuzz lcms2 libpthreadstubs
|
||||
ffmpeg flatbuffers fmt fstrcmp rapidjson
|
||||
lirc
|
||||
# libdvdcss libdvdnav libdvdread
|
||||
]
|
||||
++ lib.optional x11Support [
|
||||
libX11 xorgproto libXt libXmu libXext libXdmcp
|
||||
libXinerama libXrandr libXtst libXfixes
|
||||
]
|
||||
++ lib.optional dbusSupport dbus
|
||||
++ lib.optionals joystickSupport [ cwiid ]
|
||||
++ lib.optional joystickSupport cwiid
|
||||
++ lib.optional nfsSupport libnfs
|
||||
++ lib.optional pulseSupport libpulseaudio
|
||||
++ lib.optional rtmpSupport rtmpdump
|
||||
|
@ -183,7 +192,7 @@ in stdenv.mkDerivation {
|
|||
++ lib.optional usbSupport libusb
|
||||
++ lib.optional vdpauSupport libvdpau
|
||||
++ lib.optionals useWayland [
|
||||
wayland waylandpp
|
||||
wayland waylandpp wayland-protocols
|
||||
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
|
||||
libxkbcommon.dev
|
||||
]
|
||||
|
@ -200,8 +209,16 @@ in stdenv.mkDerivation {
|
|||
which
|
||||
pkgconfig gnumake
|
||||
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 ];
|
||||
|
||||
depsBuildBuild = [
|
||||
buildPackages.stdenv.cc
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-Dlibdvdcss_URL=${libdvdcss.src}"
|
||||
"-Dlibdvdnav_URL=${libdvdnav.src}"
|
||||
|
@ -210,9 +227,14 @@ in stdenv.mkDerivation {
|
|||
"-DENABLE_EVENTCLIENTS=ON"
|
||||
"-DENABLE_INTERNAL_CROSSGUID=OFF"
|
||||
"-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 [
|
||||
"-DCORE_PLATFORM_NAME=wayland"
|
||||
"-DWAYLAND_RENDER_SYSTEM=gl"
|
||||
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
|
||||
] ++ lib.optional useGbm [
|
||||
"-DCORE_PLATFORM_NAME=gbm"
|
||||
"-DGBM_RENDER_SYSTEM=gles"
|
||||
|
@ -224,6 +246,16 @@ in stdenv.mkDerivation {
|
|||
# I'm guessing there is a thing waiting to time out
|
||||
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 = ''
|
||||
substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \
|
||||
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
|
||||
|
@ -232,9 +264,11 @@ in stdenv.mkDerivation {
|
|||
postInstall = ''
|
||||
for p in $(ls $out/bin/) ; do
|
||||
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
|
||||
([ 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
|
||||
|
||||
substituteInPlace $out/share/xsessions/kodi.desktop \
|
||||
|
|
|
@ -5,45 +5,20 @@ let
|
|||
# During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`,
|
||||
# which then downloads a handful of web client-related files. To enable
|
||||
# sandboxed builds, we manually download them and save them so these files
|
||||
# are fetched ahead-of-time instead of during the CMake build. Whenever
|
||||
# plex-media-player is updated, the versions for these files are changed,
|
||||
# so the build IDs (and SHAs) below will need to be updated!
|
||||
depSrcs = rec {
|
||||
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";
|
||||
};
|
||||
};
|
||||
# are fetched ahead-of-time instead of during the CMake build. To update
|
||||
# plex-media-player use the update.sh script, so the versions and hashes
|
||||
# for these files are are also updated!
|
||||
depSrcs = import ./deps.nix { inherit fetchurl; };
|
||||
in mkDerivation rec {
|
||||
pname = "plex-media-player";
|
||||
version = "2.40.0.1007";
|
||||
vsnHash = "5482132c";
|
||||
version = "2.55.0.1069";
|
||||
vsnHash = "2369bed9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "plexinc";
|
||||
repo = "plex-media-player";
|
||||
rev = "v${version}-${vsnHash}";
|
||||
sha256 = "0ibdh5g8x32iy74q97jfsmxd08wnyrzs3gfiwjfgc10vaa1qdhli";
|
||||
sha256 = "1jq4592sgaia0xy2h7n3vh5i7c84sdh4l64fdc774r4i0bmg66qi";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig cmake python3 ];
|
||||
|
@ -61,6 +36,8 @@ in mkDerivation rec {
|
|||
|
||||
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ];
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Streaming media player for Plex";
|
||||
license = licenses.gpl2;
|
||||
|
|
28
pkgs/applications/video/plex-media-player/deps.nix
generated
Normal file
28
pkgs/applications/video/plex-media-player/deps.nix
generated
Normal 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";
|
||||
};
|
||||
}
|
71
pkgs/applications/video/plex-media-player/update.sh
Executable file
71
pkgs/applications/video/plex-media-player/update.sh
Executable 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
|
|
@ -18,10 +18,10 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ glib systemd ] ++
|
||||
stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
|
||||
buildInputs = [ glib systemd ]
|
||||
++ stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
|
||||
|
||||
installPhase = "install -Dm755 bin/${pname} $out/bin/${pname}";
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/containers/conmon";
|
||||
|
|
45
pkgs/applications/virtualization/qtemu/default.nix
Normal file
45
pkgs/applications/virtualization/qtemu/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -81,7 +81,7 @@ stdenv.mkDerivation {
|
|||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension}
|
||||
'' else if stdenv.hostPlatform.isDarwin then ''
|
||||
install_name_tool \
|
||||
-id libblas${canonicalExtension}
|
||||
-id libblas${canonicalExtension} \
|
||||
-add_rpath ${lib.getLib blasProvider}/lib \
|
||||
$out/lib/libblas${canonicalExtension}
|
||||
'' else "") + ''
|
||||
|
|
|
@ -10,6 +10,7 @@ var_templates_list=(
|
|||
NIX+CFLAGS_LINK
|
||||
NIX+CXXSTDLIB_COMPILE
|
||||
NIX+CXXSTDLIB_LINK
|
||||
NIX+GNATFLAGS_COMPILE
|
||||
)
|
||||
var_templates_bool=(
|
||||
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"
|
||||
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
|
||||
NIX_@infixSalt@_LDFLAGS+=" $(< @out@/nix-support/cc-ldflags)"
|
||||
fi
|
||||
|
|
|
@ -199,6 +199,12 @@ stdenv.mkDerivation {
|
|||
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 ''
|
||||
wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran
|
||||
ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77
|
||||
|
@ -283,6 +289,13 @@ stdenv.mkDerivation {
|
|||
ccLDFlags+=" -L${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 "$ccCFlags" > $out/nix-support/cc-cflags
|
||||
'' + optionalString (targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false)) ''
|
||||
|
@ -351,6 +364,8 @@ stdenv.mkDerivation {
|
|||
hardening_unsupported_flags+=" stackprotector fortify pie pic"
|
||||
'' + optionalString targetPlatform.isNetBSD ''
|
||||
hardening_unsupported_flags+=" stackprotector fortify"
|
||||
'' + optionalString cc.langAda or false ''
|
||||
hardening_unsupported_flags+=" stackprotector strictoverflow"
|
||||
''
|
||||
|
||||
+ optionalString targetPlatform.isWasm ''
|
||||
|
|
165
pkgs/build-support/cc-wrapper/gnat-wrapper.sh
Normal file
165
pkgs/build-support/cc-wrapper/gnat-wrapper.sh
Normal 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[@]}"}
|
|
@ -15,7 +15,7 @@ isExecutable() {
|
|||
# *or* there is an INTERP section. This also catches position-independent
|
||||
# executables, as they typically have an INTERP section but their ELF type
|
||||
# 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\>')"
|
||||
# not using grep -q, because it can cause Broken pipe
|
||||
[ -n "$isExeResult" ]
|
||||
|
@ -207,7 +207,7 @@ autoPatchelf() {
|
|||
# outside of this function.
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
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).
|
||||
# not using grep -q, because it can cause Broken pipe
|
||||
[ -n "$(echo "$segmentHeaders" | grep '^Program Headers:')" ] || continue
|
||||
|
|
|
@ -10,8 +10,7 @@ hicolorIconThemeHook() {
|
|||
}
|
||||
|
||||
# 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
|
||||
# icon themes installed by the package.
|
||||
|
|
|
@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
|
|||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ simonvandel romildo ];
|
||||
platforms = platforms.linux;
|
||||
broken = true; # since libsass 3.6.3
|
||||
};
|
||||
}
|
||||
|
|
|
@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
|
|||
license = with licenses; [ cc-by-sa-40 gpl3 ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.jD91mZM2 ];
|
||||
broken = true; # since libsass 3.6.3
|
||||
};
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
|
|||
python3
|
||||
wrapGAppsHook
|
||||
buildPackages.glib
|
||||
buildPackages.gtk3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -65,7 +65,10 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
# Install bash-completions to correct prefix.
|
||||
# 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
|
||||
# aware of the location to hardcode in the generated GIR 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
|
|
@ -1,5 +1,6 @@
|
|||
{ stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs
|
||||
, langC ? true, langCC ? true, langFortran ? false
|
||||
, langAda ? false
|
||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||
, langJava ? false
|
||||
|
@ -15,6 +16,7 @@
|
|||
, libelf # optional, for link-time optimizations (LTO)
|
||||
, isl ? null # optional, for the Graphite optimization framework.
|
||||
, zlib ? null, boehmgc ? null
|
||||
, gnatboot ? null
|
||||
, zip ? null, unzip ? null, pkgconfig ? null
|
||||
, gtk2 ? null, libart_lgpl ? 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++
|
||||
assert langGo -> langCC;
|
||||
|
||||
assert langAda -> gnatboot != null;
|
||||
|
||||
# threadsCross is just for MinGW
|
||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||
|
||||
|
@ -63,6 +67,7 @@ let majorVersion = "6";
|
|||
[ ../use-source-date-epoch.patch ]
|
||||
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
|
||||
++ optional noSysDirs ../no-sys-dirs.patch
|
||||
++ optional langAda ../gnat-cflags.patch
|
||||
++ optional langFortran ../gfortran-driving.patch
|
||||
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
|
||||
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
|
||||
|
@ -200,6 +205,7 @@ stdenv.mkDerivation ({
|
|||
# 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.
|
||||
++ (optional hostPlatform.isDarwin gnused)
|
||||
++ (optional langAda gnatboot)
|
||||
;
|
||||
|
||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||
|
@ -208,7 +214,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit (stdenv) lib;
|
||||
inherit version hostPlatform langJava langGo;
|
||||
inherit version hostPlatform gnatboot langJava langAda langGo;
|
||||
};
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
@ -234,6 +240,7 @@ stdenv.mkDerivation ({
|
|||
langCC
|
||||
langFortran
|
||||
langJava javaAwtGtk javaAntlr javaEcj
|
||||
langAda
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
|
@ -292,7 +299,7 @@ stdenv.mkDerivation ({
|
|||
;
|
||||
|
||||
passthru = {
|
||||
inherit langC langCC langObjC langObjCpp langFortran langGo version;
|
||||
inherit langC langCC langObjC langObjCpp langFortran langAda langGo version;
|
||||
isGNU = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
||||
, langC ? true, langCC ? true, langFortran ? false
|
||||
, langAda ? false
|
||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||
, langGo ? false
|
||||
|
@ -13,6 +14,7 @@
|
|||
, libelf # optional, for link-time optimizations (LTO)
|
||||
, isl ? null # optional, for the Graphite optimization framework.
|
||||
, zlib ? null
|
||||
, gnatboot ? null
|
||||
, enableMultilib ? false
|
||||
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
|
||||
, name ? "gcc"
|
||||
|
@ -35,6 +37,7 @@ assert stdenv.hostPlatform.isDarwin -> gnused != null;
|
|||
|
||||
# The go frontend is written in c++
|
||||
assert langGo -> langCC;
|
||||
assert langAda -> gnatboot != null;
|
||||
|
||||
# threadsCross is just for MinGW
|
||||
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";
|
||||
sha256 = ""; # TODO: uncomment and check hash when available.
|
||||
}) */
|
||||
++ optional langAda ../gnat-cflags.patch
|
||||
++ optional langFortran ../gfortran-driving.patch
|
||||
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
|
||||
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
|
||||
|
@ -160,6 +164,7 @@ stdenv.mkDerivation ({
|
|||
# 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.
|
||||
++ (optional hostPlatform.isDarwin gnused)
|
||||
++ (optional langAda gnatboot)
|
||||
;
|
||||
|
||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||
|
@ -168,7 +173,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit (stdenv) lib;
|
||||
inherit version hostPlatform langGo;
|
||||
inherit version hostPlatform gnatboot langAda langGo;
|
||||
};
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
@ -193,6 +198,7 @@ stdenv.mkDerivation ({
|
|||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langAda
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
|
@ -236,7 +242,7 @@ stdenv.mkDerivation ({
|
|||
;
|
||||
|
||||
passthru = {
|
||||
inherit langC langCC langObjC langObjCpp langFortran langGo version;
|
||||
inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
|
||||
isGNU = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -216,6 +216,7 @@ postInstall() {
|
|||
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "$lib"
|
||||
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la" "$lib"
|
||||
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "$lib"
|
||||
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dll.a" "$lib"
|
||||
moveToOutput "share/gcc-*/python" "$lib"
|
||||
|
||||
for i in "$lib/${targetConfig}"/lib/*.{la,py}; do
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
, langCC
|
||||
, langFortran
|
||||
, langJava ? false, javaAwtGtk ? false, javaAntlr ? null, javaEcj ? null
|
||||
, langAda ? false
|
||||
, langGo
|
||||
, langObjC
|
||||
, langObjCpp
|
||||
|
@ -115,6 +116,7 @@ let
|
|||
++ lib.optional langCC "c++"
|
||||
++ lib.optional langFortran "fortran"
|
||||
++ lib.optional langJava "java"
|
||||
++ lib.optional langAda "ada"
|
||||
++ lib.optional langGo "go"
|
||||
++ lib.optional langObjC "objc"
|
||||
++ lib.optional langObjCpp "obj-c++"
|
||||
|
@ -140,6 +142,9 @@ let
|
|||
"--enable-cloog-backend=isl"
|
||||
]
|
||||
|
||||
# Ada options
|
||||
++ lib.optional langAda "--enable-libada"
|
||||
|
||||
# Java options
|
||||
++ lib.optionals langJava [
|
||||
"--with-ecj-jar=${javaEcj}"
|
||||
|
|
|
@ -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 langAda -> gnatboot != null;
|
||||
|
||||
lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
|
||||
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"
|
||||
'' + lib.optionalString (lib.versionOlder version "7" && (langJava || langGo)) ''
|
||||
export lib=$out;
|
||||
'' + lib.optionalString langAda ''
|
||||
export PATH=${gnatboot}/bin:$PATH
|
||||
''
|
||||
|
|
35
pkgs/development/compilers/gcc/gnat-cflags.patch
Normal file
35
pkgs/development/compilers/gcc/gnat-cflags.patch
Normal 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@
|
||||
|
40
pkgs/development/compilers/ghdl/default.nix
Normal file
40
pkgs/development/compilers/ghdl/default.nix
Normal 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;
|
||||
};
|
||||
}
|
51
pkgs/development/compilers/gnatboot/default.nix
Normal file
51
pkgs/development/compilers/gnatboot/default.nix
Normal 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;
|
||||
};
|
||||
}
|
41
pkgs/development/compilers/ldc/binary.nix
Normal file
41
pkgs/development/compilers/ldc/binary.nix
Normal 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" ];
|
||||
};
|
||||
}
|
10
pkgs/development/compilers/ldc/bootstrap.nix
Normal file
10
pkgs/development/compilers/ldc/bootstrap.nix
Normal 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";
|
||||
};
|
||||
}
|
|
@ -1,173 +1,5 @@
|
|||
{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata
|
||||
, libconfig, lit, gdb, unzip, darwin, bash
|
||||
, callPackage, makeWrapper, runCommand, targetPackages
|
||||
, 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" ];
|
||||
};
|
||||
import ./generic.nix {
|
||||
version = "1.20.1";
|
||||
ldcSha256 = "1bqsgab22v02pc3c9gcyf15y7aimadv24d68icaw5lpgnvzxy89b";
|
||||
}
|
||||
|
||||
|
|
143
pkgs/development/compilers/ldc/generic.nix
Normal file
143
pkgs/development/compilers/ldc/generic.nix
Normal 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" ];
|
||||
};
|
||||
}
|
|
@ -2,13 +2,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "j";
|
||||
version = "807";
|
||||
jtype = "release";
|
||||
version = "901";
|
||||
jtype = "release-e";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jsoftware";
|
||||
repo = "jsource";
|
||||
rev = "j${version}-${jtype}";
|
||||
sha256 = "1qciw2yg9x996zglvj2461qby038x89xcmfb3qyrh3myn8m1nq2n";
|
||||
sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw";
|
||||
name = "jsource";
|
||||
};
|
||||
|
||||
buildInputs = [ readline libedit bc ];
|
||||
|
@ -26,57 +27,33 @@ stdenv.mkDerivation rec {
|
|||
export HOME=$TMPDIR
|
||||
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
|
||||
|
||||
cd make
|
||||
cd make2
|
||||
|
||||
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'@;"
|
||||
|
||||
# For future versions, watch
|
||||
# https://github.com/jsoftware/jsource/pull/4
|
||||
cp ./jvars.sh $HOME
|
||||
./build_all.sh
|
||||
|
||||
echo '
|
||||
#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}
|
||||
cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin"
|
||||
'';
|
||||
|
||||
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
|
||||
cd $SOURCE_DIR/test
|
||||
for f in *.ijs
|
||||
do
|
||||
echo $f
|
||||
$JBIN/jconsole < $f > /dev/null || echo FAIL && echo PASS
|
||||
$JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS
|
||||
done
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out"
|
||||
cp -r $JBIN "$out/bin"
|
||||
rm $out/bin/*.txt # Remove logs from the bin folder
|
||||
|
||||
mkdir -p "$out/share/j"
|
||||
cp -r $JLIB/{addons,system} "$out/share/j"
|
||||
|
|
|
@ -57,10 +57,10 @@ in {
|
|||
sourceVersion = {
|
||||
major = "2";
|
||||
minor = "7";
|
||||
patch = "17";
|
||||
patch = "18";
|
||||
suffix = "";
|
||||
};
|
||||
sha256 = "0hds28cg226m8j8sr394nm9yc4gxhvlv109w0avsf2mxrlrz0hsd";
|
||||
sha256 = "0hzgxl94hnflis0d6m4szjx0b52gah7wpmcg5g00q7am6xwhwb5n";
|
||||
inherit (darwin) configd;
|
||||
inherit passthruFun;
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
let
|
||||
pname = "atk";
|
||||
version = "2.35.1";
|
||||
version = "2.36.0";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "111qajn7kxwmh40drc8i6jc3hnril2rp63n207q92pl47zx614xy";
|
||||
sha256 = "1217cmmykjgkkim0zr1lv5j13733m4w5vipmy4ivw0ll6rz28xpv";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
|
|
@ -61,7 +61,7 @@ in stdenv.mkDerivation rec {
|
|||
++ optional glSupport libGL
|
||||
; # TODO: maybe liblzo but what would it be for here?
|
||||
|
||||
configureFlags = if stdenv.isDarwin then [
|
||||
configureFlags = (if stdenv.isDarwin then [
|
||||
"--disable-dependency-tracking"
|
||||
"--enable-quartz"
|
||||
"--enable-quartz-font"
|
||||
|
@ -71,7 +71,7 @@ in stdenv.mkDerivation rec {
|
|||
++ optional xcbSupport "--enable-xcb"
|
||||
++ optional glSupport "--enable-gl"
|
||||
++ optional pdfSupport "--enable-pdf"
|
||||
);
|
||||
)) ++ optional (!x11Support) "--disable-xlib";
|
||||
|
||||
preConfigure =
|
||||
# On FreeBSD, `-ldl' doesn't exist.
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "chromaprint";
|
||||
version = "1.4.3";
|
||||
version = "1.5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/acoustid/chromaprint/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "10kz8lncal4s2rp2rqpgc6xyjp0jzcrihgkx7chf127vfs5n067a";
|
||||
sha256 = "0sknmyl5254rc55bvkhfwpl4dfvz45xglk1rq8zq5crmwq058fjp";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -18,10 +18,11 @@ stdenv.mkDerivation rec {
|
|||
nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) buildPackages.cracklib;
|
||||
buildInputs = [ zlib gettext ];
|
||||
|
||||
postPatch = ''
|
||||
postPatch = stdenv.lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
|
||||
chmod +x util/cracklib-format
|
||||
patchShebangs util
|
||||
|
||||
'' + ''
|
||||
ln -vs ${toString wordlists} dicts/
|
||||
'';
|
||||
|
||||
|
|
|
@ -1,28 +1,61 @@
|
|||
{ stdenv, fetchurl, meson, ninja, python3, vala, libxslt, pkgconfig, glib, bash-completion, dbus, gnome3
|
||||
, libxml2, gtk-doc, docbook_xsl, docbook_xml_dtd_42 }:
|
||||
{ stdenv
|
||||
, 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 {
|
||||
name = "${pname}-${version}";
|
||||
pname = "dconf";
|
||||
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" ];
|
||||
|
||||
nativeBuildInputs = [ meson ninja vala pkgconfig python3 libxslt libxml2 glib gtk-doc docbook_xsl docbook_xml_dtd_42 ];
|
||||
buildInputs = [ glib bash-completion dbus ];
|
||||
src = fetchurl {
|
||||
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 = [
|
||||
"--sysconfdir=/etc"
|
||||
|
@ -31,6 +64,12 @@ stdenv.mkDerivation rec {
|
|||
|
||||
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 = {
|
||||
updateScript = gnome3.updateScript {
|
||||
packageName = pname;
|
||||
|
@ -40,7 +79,7 @@ stdenv.mkDerivation rec {
|
|||
meta = with stdenv.lib; {
|
||||
homepage = "https://wiki.gnome.org/Projects/dconf";
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
platforms = platforms.unix;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,7 +18,9 @@ stdenv.mkDerivation (rec {
|
|||
nativeBuildInputs = [ cmake ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
cmakeFlags = [ "-DFLATBUFFERS_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" ];
|
||||
|
||||
doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
|
||||
checkTarget = "test";
|
||||
|
||||
meta = {
|
||||
|
|
24
pkgs/development/libraries/fstrcmp/cross.patch
Normal file
24
pkgs/development/libraries/fstrcmp/cross.patch
Normal 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
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, fetchzip, libtool, ghostscript, groff }:
|
||||
{ stdenv, fetchzip, libtool, ghostscript, groff, autoreconfHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fstrcmp";
|
||||
|
@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0yg3y3k0wz50gmhgigfi2dx725w1gc8snb95ih7vpcnj6kabgz9a";
|
||||
};
|
||||
|
||||
patches = [ ./cross.patch ];
|
||||
|
||||
outputs = [ "out" "dev" "doc" "man" "devman" ];
|
||||
|
||||
nativeBuildInputs = [ libtool ghostscript groff ];
|
||||
nativeBuildInputs = [ libtool ghostscript groff autoreconfHook ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@ stdenv.mkDerivation {
|
|||
[ libGL libGLU ])
|
||||
;
|
||||
|
||||
configureFlags = [ "--with-ft-prefix=${stdenv.lib.getDev freetype}" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [
|
||||
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;
|
||||
|
||||
|
@ -68,7 +68,7 @@ in stdenv.mkDerivation rec {
|
|||
+ ''
|
||||
moveToOutput "bin" "$dev"
|
||||
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/
|
||||
$dev/bin/gdk-pixbuf-query-loaders --update-cache
|
||||
'';
|
||||
|
|
|
@ -14,4 +14,4 @@ findGdkPixbufLoaders() {
|
|||
|
||||
}
|
||||
|
||||
addEnvHooks "$hostOffset" findGdkPixbufLoaders
|
||||
addEnvHooks "$targetOffset" findGdkPixbufLoaders
|
||||
|
|
|
@ -18,13 +18,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "glib-networking";
|
||||
version = "2.64.0";
|
||||
version = "2.64.1";
|
||||
|
||||
outputs = [ "out" "installedTests" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1fm1462v7z556qivlwflvc3qpz36jwpzqxxvsihh45j7aka2gnjw";
|
||||
sha256 = "0wmg5n2h0r1rcdmp4w48akqlsbpjrjrj6p59g5ylc5yqyzg4dhx4";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
make_glib_find_gsettings_schemas() {
|
||||
# For packages that need gschemas of other packages (e.g. empathy)
|
||||
for maybe_dir in "$1"/share/gsettings-schemas/*; do
|
||||
|
@ -7,7 +6,7 @@ make_glib_find_gsettings_schemas() {
|
|||
fi
|
||||
done
|
||||
}
|
||||
addEnvHooks "$hostOffset" make_glib_find_gsettings_schemas
|
||||
addEnvHooks "$targetOffset" make_glib_find_gsettings_schemas
|
||||
|
||||
# Install gschemas, if any, in a package-specific directory
|
||||
glibPreInstallPhase() {
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gobject-introspection";
|
||||
version = "1.64.0";
|
||||
version = "1.64.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "10pwykfnk7pw8k9k8iz3p72phxvyrh5q4d7gr3ysv08w15immh7a";
|
||||
sha256 = "19vz7vp10h0zj3f491yk72dp89bix6rgkzxg4qcm4d6151ksxgl0";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
|
|
@ -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
|
||||
, texinfo
|
||||
, buildPackages
|
||||
|
@ -33,7 +34,14 @@ stdenv.mkDerivation rec {
|
|||
url = "http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=c4cf527ea227edb468a84bf9b8ce996807bd6992";
|
||||
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" ];
|
||||
outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool
|
||||
|
@ -42,15 +50,11 @@ stdenv.mkDerivation rec {
|
|||
[ libgpgerror glib libassuan pth ]
|
||||
++ lib.optional (qtbase != null) qtbase;
|
||||
|
||||
nativeBuildInputs = [ file pkgconfig gnupg texinfo ]
|
||||
nativeBuildInputs = [ pkgconfig gnupg texinfo autoreconfHook ]
|
||||
++ lib.optionals pythonSupport [ python swig2 which ncurses ];
|
||||
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
|
||||
postPatch =''
|
||||
substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-fixed-path=${gnupg}/bin"
|
||||
"--with-libgpg-error-prefix=${libgpgerror.dev}"
|
||||
|
|
12
pkgs/development/libraries/gpgme/disable-python-tests.patch
Normal file
12
pkgs/development/libraries/gpgme/disable-python-tests.patch
Normal 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
|
|
@ -9,11 +9,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gsm";
|
||||
version = "1.0.18";
|
||||
version = "1.0.19";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.quut.com/gsm/${pname}-${version}.tar.gz";
|
||||
sha256 = "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4";
|
||||
sha256 = "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
, gst-plugins-base
|
||||
, orc
|
||||
, gobject-introspection
|
||||
, enableZbar ? true
|
||||
, enableZbar ? false
|
||||
, faacSupport ? false
|
||||
, faac ? null
|
||||
, faad2
|
||||
|
|
|
@ -37,6 +37,13 @@ stdenv.mkDerivation rec {
|
|||
|
||||
patches = [
|
||||
./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 = [
|
||||
|
|
|
@ -73,6 +73,21 @@ stdenv.mkDerivation rec {
|
|||
|
||||
# https://gitlab.gnome.org/GNOME/gtk/merge_requests/1002
|
||||
./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 [
|
||||
# X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin
|
||||
# let’s drop that dependency in similar way to how other parts of the library do it
|
||||
|
|
|
@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
|
|||
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; {
|
||||
homepage = "http://0pointer.de/lennart/projects/libasyncns/";
|
||||
description = "A C library for Linux/Unix for executing name service queries asynchronously";
|
||||
|
|
|
@ -10,6 +10,11 @@ stdenv.mkDerivation rec {
|
|||
|
||||
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
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
|
|||
patchShebangs .
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ libcddb ncurses help2man ]
|
||||
nativeBuildInputs = [ pkgconfig help2man ];
|
||||
buildInputs = [ libcddb ncurses ]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Carbon IOKit ];
|
||||
|
||||
doCheck = !stdenv.isDarwin;
|
||||
|
|
|
@ -11,8 +11,8 @@ stdenv.mkDerivation {
|
|||
sha256 = "02j09y06csaic4m0fyb4dr9l3hl15nxbbniwq0i1qlccpxjak0j3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ cmake udev libcec_platform ] ++
|
||||
nativeBuildInputs = [ pkgconfig cmake ];
|
||||
buildInputs = [ udev libcec_platform ] ++
|
||||
stdenv.lib.optional (libraspberrypi != null) libraspberrypi;
|
||||
|
||||
cmakeFlags = [ "-DBUILD_SHARED_LIBS=1" ];
|
||||
|
|
|
@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [ libuuid ];
|
||||
|
||||
buildPhase = ''
|
||||
g++ -c guid.cpp -o guid.o $CXXFLAGS -std=c++11 -DGUID_LIBUUID
|
||||
ar rvs libcrossguid.a guid.o
|
||||
$CXX -c guid.cpp -o guid.o $CXXFLAGS -std=c++11 -DGUID_LIBUUID
|
||||
$AR rvs libcrossguid.a guid.o
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/{lib,include}
|
||||
|
|
|
@ -3,45 +3,28 @@
|
|||
, fetchpatch
|
||||
, cmake
|
||||
, pkgconfig
|
||||
, hidapi
|
||||
, libcbor
|
||||
, openssl
|
||||
, udev
|
||||
, IOKit }:
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libfido2";
|
||||
version = "1.3.1";
|
||||
version = "1.4.0";
|
||||
src = fetchurl {
|
||||
url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
|
||||
sha256 = "0hdgxbmjbnm9kjwc07nrl2zy87qclvb3rzvdwr5iw35n2qhf4dds";
|
||||
sha256 = "0v1a3n0qljmrp8y9pmnmbsdsy79l3z84qmhyjx50xdsbgnz1z4md";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
||||
buildInputs = [ libcbor openssl ]
|
||||
++ 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";
|
||||
})
|
||||
];
|
||||
buildInputs = [ hidapi libcbor openssl ]
|
||||
++ stdenv.lib.optionals stdenv.isLinux [ udev ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d"
|
||||
"-DUSE_HIDAPI=1"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
];
|
||||
|
||||
|
|
|
@ -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")
|
|
@ -27,11 +27,11 @@ in
|
|||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libinput";
|
||||
version = "1.15.3";
|
||||
version = "1.15.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.freedesktop.org/software/libinput/${pname}-${version}.tar.xz";
|
||||
sha256 = "0kb9i1xav8hmrl6g0qdq7jii589i9sjjrbh43fsc5284smyl44jv";
|
||||
sha256 = "1ha5qyak1ka5npy5i6hzqfpii8samkj389mkppj4wdsfv536i2ww";
|
||||
};
|
||||
|
||||
outputs = [ "bin" "out" "dev" ];
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
stdenv.mkDerivation rec {
|
||||
|
||||
pname = "libjpeg-turbo";
|
||||
version = "2.0.3";
|
||||
version = "2.0.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
|
||||
sha256 = "1ds16bnj17v6hzd43w8pzijz3imd9am4hw75ir0fxm240m8dwij2";
|
||||
sha256 = "01ill8bgjyk582wipx7sh7gj2nidylpbzvwhx0wkcm6mxx3qbp9k";
|
||||
};
|
||||
|
||||
patches =
|
||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = "http://libjpeg-turbo.virtualgl.org/";
|
||||
description = "A faster (using SIMD) libjpeg implementation";
|
||||
license = licenses.ijg; # and some parts under other BSD-style licenses
|
||||
maintainers = [ maintainers.vcunat ];
|
||||
maintainers = with maintainers; [ vcunat colemickens ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libnetfilter_conntrack";
|
||||
version = "1.0.7";
|
||||
version = "1.0.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://netfilter.org/projects/libnetfilter_conntrack/files/${pname}-${version}.tar.bz2";
|
||||
sha256 = "1dl9z50yny04xi5pymlykwmy6hcfc9p4nd7m47697zwxw98m6s1k";
|
||||
sha256 = "1ky1mqgnplw2h9jf0kn0a69d94jkydhbiipng9l2hdcj13h3pl8c";
|
||||
};
|
||||
|
||||
buildInputs = [ libmnl ];
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue