Project import generated by Copybara.

GitOrigin-RevId: f6b5bfdb470d60a876992749d0d708ed7b6b56ca
This commit is contained in:
Default email 2021-02-24 18:30:23 +00:00
parent 7cd70420c6
commit 439a6efcab
268 changed files with 4726 additions and 1475 deletions

View file

@ -100,7 +100,7 @@
# Rust # Rust
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq /pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
/pkgs/build-support/rust @andir @zowoq /pkgs/build-support/rust @andir @danieldk @zowoq
# Darwin-related # Darwin-related
/pkgs/stdenv/darwin @NixOS/darwin-maintainers /pkgs/stdenv/darwin @NixOS/darwin-maintainers

View file

@ -80,6 +80,33 @@ The fetcher will verify that the `Cargo.lock` file is in sync with the `src`
attribute, and fail the build if not. It will also will compress the vendor attribute, and fail the build if not. It will also will compress the vendor
directory into a tar.gz archive. directory into a tar.gz archive.
The tarball with vendored dependencies contains a directory with the
package's `name`, which is normally composed of `pname` and
`version`. This means that the vendored dependencies hash
(`cargoSha256`/`cargoHash`) is dependent on the package name and
version. The `cargoDepsName` attribute can be used to use another name
for the directory of vendored dependencies. For example, the hash can
be made invariant to the version by setting `cargoDepsName` to
`pname`:
```nix
rustPlatform.buildRustPackage rec {
pname = "broot";
version = "1.2.0";
src = fetchCrate {
inherit pname version;
sha256 = "1mqaynrqaas82f5957lx31x80v74zwmwmjxxlbywajb61vh00d38";
};
cargoHash = "sha256-JmBZcDVYJaK1cK05cxx5BrnGWp4t8ca6FLUbvIot67s=";
cargoDepsName = pname;
# ...
}
```
### Cross compilation ### Cross compilation
By default, Rust packages are compiled for the host platform, just like any By default, Rust packages are compiled for the host platform, just like any

View file

@ -151,26 +151,26 @@
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
It is also possible to whitelist and blacklist licenses that are specifically acceptable or not acceptable, using <literal>whitelistedLicenses</literal> and <literal>blacklistedLicenses</literal>, respectively. It is also possible to allow and block licenses that are specifically acceptable or not acceptable, using <literal>allowlistedLicenses</literal> and <literal>blocklistedLicenses</literal>, respectively.
</para> </para>
<para> <para>
The following example configuration whitelists the licenses <literal>amd</literal> and <literal>wtfpl</literal>: The following example configuration allowlists the licenses <literal>amd</literal> and <literal>wtfpl</literal>:
<programlisting> <programlisting>
{ {
whitelistedLicenses = with lib.licenses; [ amd wtfpl ]; allowlistedLicenses = with lib.licenses; [ amd wtfpl ];
} }
</programlisting> </programlisting>
</para> </para>
<para> <para>
The following example configuration blacklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses: The following example configuration blocklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
<programlisting> <programlisting>
{ {
blacklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ]; blocklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ];
} }
</programlisting> </programlisting>
</para> </para>
<para> <para>
Note that <literal>whitelistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic whitelist for all types of licenses. <literal>blacklistedLicenses</literal> applies to all licenses. Note that <literal>allowlistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic allowlist for all types of licenses. <literal>blocklistedLicenses</literal> applies to all licenses.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>

View file

@ -100,6 +100,12 @@
<link linkend="sec-custom-ifnames">Assigning custom names</link> section <link linkend="sec-custom-ifnames">Assigning custom names</link> section
of the NixOS manual for an example using networkd links. of the NixOS manual for an example using networkd links.
</para> </para>
</listitem>
<listitem>
<para>
The <option>security.hideProcessInformation</option> module has been removed.
It was broken since the switch to cgroups-v2.
</para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>

View file

@ -144,11 +144,16 @@ in
''} ''}
''; '';
systemd.services.systemd-vconsole-setup = systemd.services.reload-systemd-vconsole-setup =
{ { description = "Reset console on configuration changes";
before = optional config.services.xserver.enable "display-manager.service"; wantedBy = [ "multi-user.target" ];
after = [ "systemd-udev-settle.service" ];
restartTriggers = [ vconsoleConf consoleEnv ]; restartTriggers = [ vconsoleConf consoleEnv ];
reloadIfChanged = true;
serviceConfig =
{ RemainAfterExit = true;
ExecStart = "${pkgs.coreutils}/bin/true";
ExecReload = "/run/current-system/systemd/bin/systemctl restart systemd-vconsole-setup";
};
}; };
} }

View file

@ -207,7 +207,6 @@
./security/dhparams.nix ./security/dhparams.nix
./security/duosec.nix ./security/duosec.nix
./security/google_oslogin.nix ./security/google_oslogin.nix
./security/hidepid.nix
./security/lock-kernel-modules.nix ./security/lock-kernel-modules.nix
./security/misc.nix ./security/misc.nix
./security/oath.nix ./security/oath.nix
@ -257,6 +256,7 @@
./services/backup/tsm.nix ./services/backup/tsm.nix
./services/backup/zfs-replication.nix ./services/backup/zfs-replication.nix
./services/backup/znapzend.nix ./services/backup/znapzend.nix
./services/blockchain/ethereum/geth.nix
./services/cluster/hadoop/default.nix ./services/cluster/hadoop/default.nix
./services/cluster/k3s/default.nix ./services/cluster/k3s/default.nix
./services/cluster/kubernetes/addons/dns.nix ./services/cluster/kubernetes/addons/dns.nix

View file

@ -22,8 +22,6 @@ with lib;
environment.memoryAllocator.provider = mkDefault "scudo"; environment.memoryAllocator.provider = mkDefault "scudo";
environment.variables.SCUDO_OPTIONS = mkDefault "ZeroContents=1"; environment.variables.SCUDO_OPTIONS = mkDefault "ZeroContents=1";
security.hideProcessInformation = mkDefault true;
security.lockKernelModules = mkDefault true; security.lockKernelModules = mkDefault true;
security.protectKernelImage = mkDefault true; security.protectKernelImage = mkDefault true;

View file

@ -4,6 +4,13 @@ with lib;
let let
cfg = config.programs.steam; cfg = config.programs.steam;
steam = pkgs.steam.override {
extraLibraries = pkgs: with config.hardware.opengl;
if pkgs.hostPlatform.is64bit
then [ package ] ++ extraPackages
else [ package32 ] ++ extraPackages32;
};
in { in {
options.programs.steam.enable = mkEnableOption "steam"; options.programs.steam.enable = mkEnableOption "steam";
@ -18,7 +25,7 @@ in {
hardware.steam-hardware.enable = true; hardware.steam-hardware.enable = true;
environment.systemPackages = [ pkgs.steam ]; environment.systemPackages = [ steam steam.run ];
}; };
meta.maintainers = with maintainers; [ mkg20001 ]; meta.maintainers = with maintainers; [ mkg20001 ];

View file

@ -73,6 +73,11 @@ with lib;
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.") (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.") (mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
(mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
The hidepid module was removed, since the underlying machinery
is broken when using cgroups-v2.
'')
# Do NOT add any option renames here, see top of the file # Do NOT add any option renames here, see top of the file
]; ];
} }

View file

@ -1,31 +0,0 @@
{ config, lib, ... }:
with lib;
{
meta = {
maintainers = [ maintainers.joachifm ];
doc = ./hidepid.xml;
};
options = {
security.hideProcessInformation = mkOption {
type = types.bool;
default = false;
description = ''
Restrict process information to the owning user.
'';
};
};
config = mkIf config.security.hideProcessInformation {
users.groups.proc.gid = config.ids.gids.proc;
users.groups.proc.members = [ "polkituser" ];
boot.specialFileSystems."/proc".options = [ "hidepid=2" "gid=${toString config.ids.gids.proc}" ];
systemd.services.systemd-logind.serviceConfig.SupplementaryGroups = [ "proc" ];
# Disable cgroupsv2, which doesn't work with hidepid.
# https://github.com/NixOS/nixpkgs/pull/104094#issuecomment-729996203
systemd.enableUnifiedCgroupHierarchy = false;
};
}

View file

@ -1,28 +0,0 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-hidepid">
<title>Hiding process information</title>
<para>
Setting
<programlisting>
<xref linkend="opt-security.hideProcessInformation"/> = true;
</programlisting>
ensures that access to process information is restricted to the owning user.
This implies, among other things, that command-line arguments remain private.
Unless your deployment relies on unprivileged users being able to inspect the
process information of other users, this option should be safe to enable.
</para>
<para>
Members of the <literal>proc</literal> group are exempt from process
information hiding.
</para>
<para>
To allow a service <replaceable>foo</replaceable> to run without process
information hiding, set
<programlisting>
<link linkend="opt-systemd.services._name_.serviceConfig">systemd.services.<replaceable>foo</replaceable>.serviceConfig</link>.SupplementaryGroups = [ "proc" ];
</programlisting>
</para>
</chapter>

View file

@ -0,0 +1,178 @@
{ config, lib, pkgs, ... }:
with lib;
let
eachGeth = config.services.geth;
gethOpts = { config, lib, name, ...}: {
options = {
enable = lib.mkEnableOption "Go Ethereum Node";
port = mkOption {
type = types.port;
default = 30303;
description = "Port number Go Ethereum will be listening on, both TCP and UDP.";
};
http = {
enable = lib.mkEnableOption "Go Ethereum HTTP API";
address = mkOption {
type = types.str;
default = "127.0.0.1";
description = "Listen address of Go Ethereum HTTP API.";
};
port = mkOption {
type = types.port;
default = 8545;
description = "Port number of Go Ethereum HTTP API.";
};
apis = mkOption {
type = types.nullOr (types.listOf types.str);
default = null;
description = "APIs to enable over WebSocket";
example = ["net" "eth"];
};
};
websocket = {
enable = lib.mkEnableOption "Go Ethereum WebSocket API";
address = mkOption {
type = types.str;
default = "127.0.0.1";
description = "Listen address of Go Ethereum WebSocket API.";
};
port = mkOption {
type = types.port;
default = 8546;
description = "Port number of Go Ethereum WebSocket API.";
};
apis = mkOption {
type = types.nullOr (types.listOf types.str);
default = null;
description = "APIs to enable over WebSocket";
example = ["net" "eth"];
};
};
metrics = {
enable = lib.mkEnableOption "Go Ethereum prometheus metrics";
address = mkOption {
type = types.str;
default = "127.0.0.1";
description = "Listen address of Go Ethereum metrics service.";
};
port = mkOption {
type = types.port;
default = 6060;
description = "Port number of Go Ethereum metrics service.";
};
};
network = mkOption {
type = types.nullOr (types.enum [ "goerli" "rinkeby" "yolov2" "ropsten" ]);
default = null;
description = "The network to connect to. Mainnet (null) is the default ethereum network.";
};
syncmode = mkOption {
type = types.enum [ "fast" "full" "light" ];
default = "fast";
description = "Blockchain sync mode.";
};
gcmode = mkOption {
type = types.enum [ "full" "archive" ];
default = "full";
description = "Blockchain garbage collection mode.";
};
maxpeers = mkOption {
type = types.int;
default = 50;
description = "Maximum peers to connect to.";
};
extraArgs = mkOption {
type = types.listOf types.str;
description = "Additional arguments passed to Go Ethereum.";
default = [];
};
package = mkOption {
default = pkgs.go-ethereum.geth;
type = types.package;
description = "Package to use as Go Ethereum node.";
};
};
};
in
{
###### interface
options = {
services.geth = mkOption {
type = types.attrsOf (types.submodule gethOpts);
default = {};
description = "Specification of one or more geth instances.";
};
};
###### implementation
config = mkIf (eachGeth != {}) {
environment.systemPackages = flatten (mapAttrsToList (gethName: cfg: [
cfg.package
]) eachGeth);
systemd.services = mapAttrs' (gethName: cfg: (
nameValuePair "geth-${gethName}" (mkIf cfg.enable {
description = "Go Ethereum node (${gethName})";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
DynamicUser = true;
Restart = "always";
StateDirectory = "goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network}";
# Hardening measures
PrivateTmp = "true";
ProtectSystem = "full";
NoNewPrivileges = "true";
PrivateDevices = "true";
MemoryDenyWriteExecute = "true";
};
script = ''
${cfg.package}/bin/geth \
--nousb \
--ipcdisable \
${optionalString (cfg.network != null) ''--${cfg.network}''} \
--syncmode ${cfg.syncmode} \
--gcmode ${cfg.gcmode} \
--port ${toString cfg.port} \
--maxpeers ${toString cfg.maxpeers} \
${if cfg.http.enable then ''--http --http.addr ${cfg.http.address} --http.port ${toString cfg.http.port}'' else ""} \
${optionalString (cfg.http.apis != null) ''--http.api ${lib.concatStringsSep "," cfg.http.apis}''} \
${if cfg.websocket.enable then ''--ws --ws.addr ${cfg.websocket.address} --ws.port ${toString cfg.websocket.port}'' else ""} \
${optionalString (cfg.websocket.apis != null) ''--ws.api ${lib.concatStringsSep "," cfg.websocket.apis}''} \
${optionalString cfg.metrics.enable ''--metrics --metrics.addr ${cfg.metrics.address} --metrics.port ${toString cfg.metrics.port}''} \
${lib.escapeShellArgs cfg.extraArgs} \
--datadir /var/lib/goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network}
'';
}))) eachGeth;
};
}

View file

@ -375,6 +375,18 @@ in
fi fi
''; '';
script = ''
# https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/#systemd-and-galera-recovery
if test -n "''${_WSREP_START_POSITION}"; then
if test -e "${cfg.package}/bin/galera_recovery"; then
VAR=$(cd ${cfg.package}/bin/..; ${cfg.package}/bin/galera_recovery); [[ $? -eq 0 ]] && export _WSREP_START_POSITION=$VAR || exit 1
fi
fi
# The last two environment variables are used for starting Galera clusters
exec ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
'';
postStart = let postStart = let
# The super user account to use on *first* run of MySQL server # The super user account to use on *first* run of MySQL server
superUser = if isMariaDB then cfg.user else "root"; superUser = if isMariaDB then cfg.user else "root";
@ -481,8 +493,7 @@ in
Type = if hasNotify then "notify" else "simple"; Type = if hasNotify then "notify" else "simple";
Restart = "on-abort"; Restart = "on-abort";
RestartSec = "5s"; RestartSec = "5s";
# The last two environment variables are used for starting Galera clusters
ExecStart = "${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
# User and group # User and group
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;

View file

@ -183,7 +183,6 @@ in
jenkins = handleTest ./jenkins.nix {}; jenkins = handleTest ./jenkins.nix {};
jirafeau = handleTest ./jirafeau.nix {}; jirafeau = handleTest ./jirafeau.nix {};
jitsi-meet = handleTest ./jitsi-meet.nix {}; jitsi-meet = handleTest ./jitsi-meet.nix {};
jq = handleTest ./jq.nix {};
k3s = handleTest ./k3s.nix {}; k3s = handleTest ./k3s.nix {};
kafka = handleTest ./kafka.nix {}; kafka = handleTest ./kafka.nix {};
keepalived = handleTest ./keepalived.nix {}; keepalived = handleTest ./keepalived.nix {};
@ -345,7 +344,6 @@ in
samba = handleTest ./samba.nix {}; samba = handleTest ./samba.nix {};
samba-wsdd = handleTest ./samba-wsdd.nix {}; samba-wsdd = handleTest ./samba-wsdd.nix {};
sanoid = handleTest ./sanoid.nix {}; sanoid = handleTest ./sanoid.nix {};
sbt = handleTest ./sbt.nix {};
sddm = handleTest ./sddm.nix {}; sddm = handleTest ./sddm.nix {};
searx = handleTest ./searx.nix {}; searx = handleTest ./searx.nix {};
service-runner = handleTest ./service-runner.nix {}; service-runner = handleTest ./service-runner.nix {};

View file

@ -0,0 +1,41 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "geth";
meta = with pkgs.lib; {
maintainers = with maintainers; [bachp ];
};
machine = { ... }: {
services.geth."mainnet" = {
enable = true;
http = {
enable = true;
};
};
services.geth."testnet" = {
enable = true;
port = 30304;
network = "goerli";
http = {
enable = true;
port = 18545;
};
};
};
testScript = ''
start_all()
machine.wait_for_unit("geth-mainnet.service")
machine.wait_for_unit("geth-testnet.service")
machine.wait_for_open_port(8545)
machine.wait_for_open_port(18545)
machine.succeed(
'geth attach --exec "eth.chainId()" http://localhost:8545 | grep \'"0x0"\' '
)
machine.succeed(
'geth attach --exec "eth.chainId()" http://localhost:18545 | grep \'"0x5"\' '
)
'';
})

View file

@ -65,17 +65,6 @@ import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
machine.succeed("grep -Fq wireguard /proc/modules") machine.succeed("grep -Fq wireguard /proc/modules")
# Test hidepid
with subtest("hidepid=2 option is applied and works"):
# Linux >= 5.8 shows "invisible"
machine.succeed(
"grep -Fq hidepid=2 /proc/mounts || grep -Fq hidepid=invisible /proc/mounts"
)
# cannot use pgrep -u here, it segfaults when access to process info is denied
machine.succeed("[ `su - sybil -c 'ps --no-headers --user root | wc -l'` = 0 ]")
machine.succeed("[ `su - alice -c 'ps --no-headers --user root | wc -l'` != 0 ]")
# Test kernel module hardening # Test kernel module hardening
with subtest("No more kernel modules can be loaded"): with subtest("No more kernel modules can be loaded"):
# note: this better a be module we normally wouldn't load ... # note: this better a be module we normally wouldn't load ...

View file

@ -1,10 +0,0 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "jq";
meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
nodes.jq = { pkgs, ... }: { environment.systemPackages = [ pkgs.jq ]; };
testScript = ''
assert "world" in jq.succeed('echo \'{"values":["hello","world"]}\'| jq \'.values[1]\''')
'';
})

View file

@ -1,18 +0,0 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "sbt";
meta = with pkgs.lib.maintainers; {
maintainers = [ nequissimus ];
};
machine = { pkgs, ... }:
{
environment.systemPackages = [ pkgs.sbt ];
};
testScript =
''
machine.succeed(
"(sbt --offline --version 2>&1 || true) | grep 'getting org.scala-sbt sbt ${pkgs.sbt.version} (this may take some time)'"
)
'';
})

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "BSlizr"; pname = "BSlizr";
version = "1.2.8"; version = "1.2.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sjaehn"; owner = "sjaehn";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1f7xrljvsy7a1p8c7wln2zhwarl3ara7gbjxkpyh47wfdpigpdb0"; sha256 = "sha256-tEGJrVg8dN9Torybx02qIpXsGOuCgn/Wb+jemfCjiK4=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchurl
, libX11, libXft, libclthreads, libclxclient, libjack2, libpng, libsndfile, zita-resampler
}:
stdenv.mkDerivation rec {
pname = "ebumeter";
version = "0.4.2";
src = fetchurl {
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "1wm9j1phmpicrp7jdsvdbc3mghdd92l61yl9qbps0brq2ljjyd5s";
};
buildInputs = [
libX11 libXft libclthreads libclxclient libjack2 libpng libsndfile zita-resampler
];
preConfigure = ''
cd source
'';
makeFlags = [ "PREFIX=$(out)" ];
enableParallelBuilding = true;
meta = with lib; {
description = "Level metering according to the EBU R-128 recommendation";
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
};
}

View file

@ -1,7 +1,6 @@
{ lib { lib
, rustPlatform , rustPlatform
, fetchFromGitLab , fetchFromGitLab
, fetchpatch
, meson , meson
, ninja , ninja
, gettext , gettext

View file

@ -18,13 +18,13 @@ assert pcreSupport -> pcre != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ncmpc"; pname = "ncmpc";
version = "0.44"; version = "0.45";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "MusicPlayerDaemon"; owner = "MusicPlayerDaemon";
repo = "ncmpc"; repo = "ncmpc";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Qu41TL8KSKC9L25D6Z8bEbJUJQ9QI08grTGZ+0qGdUQ="; sha256 = "sha256-KDSHbEZ2PJLEIlXqPvBQ2ZPWno+IoajTjkl9faAXIko=";
}; };
buildInputs = [ glib ncurses libmpdclient boost ] buildInputs = [ glib ncurses libmpdclient boost ]

View file

@ -40,11 +40,6 @@ in pythonPackages.buildPythonApplication rec {
dateutil dateutil
]; ];
prePatch = ''
# Pesky unicode punctuation.
substituteInPlace setup.cfg --replace "" "'"
'';
# In order to spare double wrapping, we use: # In order to spare double wrapping, we use:
preFixup = '' preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}") makeWrapperArgs+=("''${qtWrapperArgs[@]}")

View file

@ -14,7 +14,6 @@
, openssl , openssl
, pkg-config , pkg-config
, python3 , python3
, rust
, rustc , rustc
, rustPlatform , rustPlatform
, sqlite , sqlite

View file

@ -2,7 +2,6 @@
, fetchFromGitHub , fetchFromGitHub
, lib , lib
, python3Packages , python3Packages
, youtube-dl
}: }:
buildPythonApplication rec { buildPythonApplication rec {

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ergo"; pname = "ergo";
version = "3.3.6"; version = "4.0.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar"; url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
sha256 = "1zi559ixjxxsrpvvjbxa1d0g96px3h9amjvy149sfhp7b8w5hhk3"; sha256 = "sha256-M0kgd/txqc04WNLNZiq+imHMM9YGFd12jMWJyY2ExrY=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -1,6 +1,12 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit }: { lib, stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit }:
buildGoModule rec { let
# A list of binaries to put into separate outputs
bins = [
"geth"
];
in buildGoModule rec {
pname = "go-ethereum"; pname = "go-ethereum";
version = "1.9.25"; version = "1.9.25";
@ -16,6 +22,13 @@ buildGoModule rec {
doCheck = false; doCheck = false;
outputs = [ "out" ] ++ bins;
# Move binaries to separate outputs and symlink them back to $out
postInstall = lib.concatStringsSep "\n" (
builtins.map (bin: "mkdir -p \$${bin}/bin && mv $out/bin/${bin} \$${bin}/bin/ && ln -s \$${bin}/bin/${bin} $out/bin/") bins
);
subPackages = [ subPackages = [
"cmd/abidump" "cmd/abidump"
"cmd/abigen" "cmd/abigen"
@ -40,7 +53,7 @@ buildGoModule rec {
meta = with lib; { meta = with lib; {
homepage = "https://geth.ethereum.org/"; homepage = "https://geth.ethereum.org/";
description = "Official golang implementation of the Ethereum protocol"; description = "Official golang implementation of the Ethereum protocol";
license = with licenses; [ lgpl3 gpl3 ]; license = with licenses; [ lgpl3Plus gpl3Plus ];
maintainers = with maintainers; [ adisbladis lionello xrelkd RaghavSood ]; maintainers = with maintainers; [ adisbladis lionello xrelkd RaghavSood ];
}; };
} }

View file

@ -1,4 +1,4 @@
{ lib, external, pkgs }: self: with self; with lib.licenses; { { lib, pkgs }: self: with self; with lib.licenses; {
elisp-ffi = melpaBuild rec { elisp-ffi = melpaBuild rec {
pname = "elisp-ffi"; pname = "elisp-ffi";
@ -9,7 +9,7 @@
rev = version; rev = version;
sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22"; sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22";
}; };
buildInputs = [ external.libffi ]; buildInputs = [ pkgs.libffi ];
preBuild = "make"; preBuild = "make";
recipe = pkgs.writeText "recipe" '' recipe = pkgs.writeText "recipe" ''
(elisp-ffi (elisp-ffi
@ -29,15 +29,15 @@
}; };
}; };
agda2-mode = with external; trivialBuild { agda2-mode = trivialBuild {
pname = "agda-mode"; pname = "agda-mode";
version = Agda.version; version = pkgs.haskellPackages.Agda.version;
phases = [ "buildPhase" "installPhase" ]; phases = [ "buildPhase" "installPhase" ];
# already byte-compiled by Agda builder # already byte-compiled by Agda builder
buildPhase = '' buildPhase = ''
agda=`${Agda}/bin/agda-mode locate` agda=`${pkgs.haskellPackages.Agda}/bin/agda-mode locate`
cp `dirname $agda`/*.el* . cp `dirname $agda`/*.el* .
''; '';
@ -47,21 +47,21 @@
Wrapper packages that liberates init.el from `agda-mode locate` magic. Wrapper packages that liberates init.el from `agda-mode locate` magic.
Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el. Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
''; '';
homepage = Agda.meta.homepage; homepage = pkgs.haskellPackages.Agda.meta.homepage;
license = Agda.meta.license; license = pkgs.haskellPackages.Agda.meta.license;
}; };
}; };
agda-input = self.trivialBuild { agda-input = self.trivialBuild {
pname = "agda-input"; pname = "agda-input";
inherit (external.Agda) src version; inherit (pkgs.haskellPackages.Agda) src version;
postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot"; postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot";
meta = { meta = {
description = "Standalone package providing the agda-input method without building Agda."; description = "Standalone package providing the agda-input method without building Agda.";
inherit (external.Agda.meta) homepage license; inherit (pkgs.haskellPackages.Agda.meta) homepage license;
}; };
}; };
@ -74,10 +74,10 @@
ghc-mod = melpaBuild { ghc-mod = melpaBuild {
pname = "ghc"; pname = "ghc";
version = external.ghc-mod.version; version = pkgs.haskellPackages.ghc-mod.version;
src = external.ghc-mod.src; src = pkgs.haskellPackages.ghc-mod.src;
packageRequires = [ haskell-mode ]; packageRequires = [ haskell-mode ];
propagatedUserEnvPkgs = [ external.ghc-mod ]; propagatedUserEnvPkgs = [ pkgs.haskellPackages.ghc-mod ];
recipe = pkgs.writeText "recipe" '' recipe = pkgs.writeText "recipe" ''
(ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el")) (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
''; '';
@ -115,7 +115,7 @@
llvm-mode = trivialBuild { llvm-mode = trivialBuild {
pname = "llvm-mode"; pname = "llvm-mode";
inherit (external.llvmPackages.llvm) src version; inherit (pkgs.llvmPackages.llvm) src version;
dontConfigure = true; dontConfigure = true;
buildPhase = '' buildPhase = ''
@ -123,7 +123,7 @@
''; '';
meta = { meta = {
inherit (external.llvmPackages.llvm.meta) homepage license; inherit (pkgs.llvmPackages.llvm.meta) homepage license;
description = "Major mode for the LLVM assembler language."; description = "Major mode for the LLVM assembler language.";
}; };
}; };
@ -134,13 +134,13 @@
ott-mode = self.trivialBuild { ott-mode = self.trivialBuild {
pname = "ott-mod"; pname = "ott-mod";
inherit (external.ott) src version; inherit (pkgs.ott) src version;
postUnpack = "mv $sourceRoot/emacs/ott-mode.el $sourceRoot"; postUnpack = "mv $sourceRoot/emacs/ott-mode.el $sourceRoot";
meta = { meta = {
description = "Standalone package providing ott-mode without building ott and with compiled bytecode."; description = "Standalone package providing ott-mode without building ott and with compiled bytecode.";
inherit (external.Agda.meta) homepage license; inherit (pkgs.haskellPackages.Agda.meta) homepage license;
}; };
}; };

View file

@ -22,7 +22,7 @@ instantenous and formats commits for you.
*/ */
{ lib, external, pkgs }: variant: self: { lib, pkgs }: variant: self:
let let
dontConfigure = pkg: dontConfigure = pkg:
if pkg != null then pkg.override (args: { if pkg != null then pkg.override (args: {
@ -53,7 +53,7 @@ let
}); });
fix-rtags = pkg: fix-rtags = pkg:
if pkg != null then dontConfigure (externalSrc pkg external.rtags) if pkg != null then dontConfigure (externalSrc pkg pkgs.rtags)
else null; else null;
generateMelpa = lib.makeOverridable ({ archiveJson ? ./recipes-archive-melpa.json generateMelpa = lib.makeOverridable ({ archiveJson ? ./recipes-archive-melpa.json
@ -79,9 +79,9 @@ let
}; };
auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: { auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: {
buildInputs = old.buildInputs ++ [ external.llvmPackages.llvm ]; buildInputs = old.buildInputs ++ [ pkgs.llvmPackages.llvm ];
CFLAGS = "-I${external.llvmPackages.clang}/include"; CFLAGS = "-I${pkgs.llvmPackages.clang}/include";
LDFLAGS = "-L${external.llvmPackages.clang}/lib"; LDFLAGS = "-L${pkgs.llvmPackages.clang}/lib";
}); });
# part of a larger package # part of a larger package
@ -132,8 +132,8 @@ let
flycheck-rtags = fix-rtags super.flycheck-rtags; flycheck-rtags = fix-rtags super.flycheck-rtags;
pdf-tools = super.pdf-tools.overrideAttrs (old: { pdf-tools = super.pdf-tools.overrideAttrs (old: {
nativeBuildInputs = [ external.pkg-config ]; nativeBuildInputs = [ pkgs.pkg-config ];
buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ]; buildInputs = with pkgs; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
preBuild = "make server/epdfinfo"; preBuild = "make server/epdfinfo";
recipe = pkgs.writeText "recipe" '' recipe = pkgs.writeText "recipe" ''
(pdf-tools (pdf-tools
@ -143,7 +143,7 @@ let
}); });
# Build same version as Haskell package # Build same version as Haskell package
hindent = (externalSrc super.hindent external.hindent).overrideAttrs (attrs: { hindent = (externalSrc super.hindent pkgs.haskellPackages.hindent).overrideAttrs (attrs: {
packageRequires = [ self.haskell-mode ]; packageRequires = [ self.haskell-mode ];
}); });
@ -169,7 +169,7 @@ let
dontUseCmakeBuildDir = true; dontUseCmakeBuildDir = true;
doCheck = true; doCheck = true;
packageRequires = [ self.emacs ]; packageRequires = [ self.emacs ];
nativeBuildInputs = [ external.cmake external.llvmPackages.llvm external.llvmPackages.clang ]; nativeBuildInputs = [ pkgs.cmake pkgs.llvmPackages.llvm pkgs.llvmPackages.clang ];
}); });
# tries to write a log file to $HOME # tries to write a log file to $HOME
@ -286,18 +286,18 @@ let
# part of a larger package # part of a larger package
notmuch = dontConfigure super.notmuch; notmuch = dontConfigure super.notmuch;
rtags = dontConfigure (externalSrc super.rtags external.rtags); rtags = dontConfigure (externalSrc super.rtags pkgs.rtags);
rtags-xref = dontConfigure super.rtags; rtags-xref = dontConfigure super.rtags;
shm = super.shm.overrideAttrs (attrs: { shm = super.shm.overrideAttrs (attrs: {
propagatedUserEnvPkgs = [ external.structured-haskell-mode ]; propagatedUserEnvPkgs = [ pkgs.haskellPackages.structured-haskell-mode ];
}); });
# Telega has a server portion for it's network protocol # Telega has a server portion for it's network protocol
telega = super.telega.overrideAttrs (old: { telega = super.telega.overrideAttrs (old: {
buildInputs = old.buildInputs ++ [ pkgs.tdlib ]; buildInputs = old.buildInputs ++ [ pkgs.tdlib ];
nativeBuildInputs = [ external.pkg-config ]; nativeBuildInputs = [ pkgs.pkg-config ];
postBuild = '' postBuild = ''
cd source/server cd source/server
@ -314,12 +314,12 @@ let
treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: { treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
# searches for Git at build time # searches for Git at build time
nativeBuildInputs = nativeBuildInputs =
(attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
}); });
vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: { vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs = nativeBuildInputs =
(attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
}); });
zmq = super.zmq.overrideAttrs (old: { zmq = super.zmq.overrideAttrs (old: {
@ -328,11 +328,11 @@ let
make make
''; '';
nativeBuildInputs = [ nativeBuildInputs = [
external.autoconf pkgs.autoconf
external.automake pkgs.automake
external.pkg-config pkgs.pkg-config
external.libtool pkgs.libtool
(external.zeromq.override { enableDrafts = true; }) (pkgs.zeromq.override { enableDrafts = true; })
]; ];
postInstall = '' postInstall = ''
mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-* mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
@ -415,7 +415,7 @@ let
window-numbering = markBroken super.window-numbering; window-numbering = markBroken super.window-numbering;
editorconfig = super.editorconfig.overrideAttrs (attrs: { editorconfig = super.editorconfig.overrideAttrs (attrs: {
propagatedUserEnvPkgs = [ external.editorconfig-core-c ]; propagatedUserEnvPkgs = [ pkgs.editorconfig-core-c ];
}); });
# missing dependencies # missing dependencies
@ -433,7 +433,7 @@ let
racer = super.racer.overrideAttrs (attrs: { racer = super.racer.overrideAttrs (attrs: {
postPatch = attrs.postPatch or "" + '' postPatch = attrs.postPatch or "" + ''
substituteInPlace racer.el \ substituteInPlace racer.el \
--replace /usr/local/src/rust/src ${external.rustPlatform.rustcSrc} --replace /usr/local/src/rust/src ${pkgs.rustPlatform.rustcSrc}
''; '';
}); });
@ -462,7 +462,7 @@ let
w3m = super.w3m.override (args: { w3m = super.w3m.override (args: {
melpaBuild = drv: args.melpaBuild (drv // { melpaBuild = drv: args.melpaBuild (drv // {
prePatch = prePatch =
let w3m = "${lib.getBin external.w3m}/bin/w3m"; in let w3m = "${lib.getBin pkgs.w3m}/bin/w3m"; in
'' ''
substituteInPlace w3m.el \ substituteInPlace w3m.el \
--replace 'defcustom w3m-command nil' \ --replace 'defcustom w3m-command nil' \

View file

@ -35,7 +35,6 @@
, wrapGAppsHook , wrapGAppsHook
, dbus , dbus
, xvfb_run , xvfb_run
, glib
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {

View file

@ -3,13 +3,13 @@
mkDerivation rec { mkDerivation rec {
pname = "texstudio"; pname = "texstudio";
version = "3.1.0"; version = "3.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "${pname}-org"; owner = "${pname}-org";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-40VgWfSjyERHJapiIXSk89O3X1V8rb8JEWqfnAyf1Sc="; sha256 = "sha256-MFCQwhdF+WCTqDt4q5qw431y/zqEy9vHudcUYb4BYNQ=";
}; };
nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ]; nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];

View file

@ -0,0 +1,71 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, libxml2
, libpeas
, glib
, gtk3
, gtksourceview4
, gspell
, xapps
, pkg-config
, meson
, ninja
, wrapGAppsHook
, intltool
, itstool }:
stdenv.mkDerivation rec {
pname = "xed-editor";
version = "2.8.4";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "xed";
rev = version;
sha256 = "1hqr4157kp110p01jygqnnzj86zxlfiq4b53j345vqpx0f80c340";
};
nativeBuildInputs = [
meson
cmake
pkg-config
intltool
itstool
ninja
wrapGAppsHook
];
buildInputs = [
libxml2
glib
gtk3
gtksourceview4
libpeas
gspell
xapps
];
postInstall = ''
glib-compile-schemas $out/share/glib-2.0/schemas
'';
doInstallCheck = true;
installCheckPhase = ''
if [[ "$($out/bin/xed --version)" == "xed - Version ${version}" ]] ; then
echo "${pname} smoke test passed"
else
echo "${pname} smoke test failed"
return 1
fi
'';
meta = with lib; {
description = "Light weight text editor from Linux Mint";
homepage = "https://github.com/linuxmint/xed";
license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = with maintainers; [ tu-maurice ];
};
}

View file

@ -1,6 +1,5 @@
{ lib, stdenv { lib, stdenv
, fetchurl , fetchurl
, fetchpatch
, gnome3 , gnome3
, pkg-config , pkg-config
, meson , meson

View file

@ -8,11 +8,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "1password"; pname = "1password";
version = "0.9.13"; version = "0.9.14-4";
src = fetchurl { src = fetchurl {
url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage"; url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
hash = "sha256-VdbdmpLiQGVFH3q6baE2yuuKz11Tn0gMpkGDI9KI3HQ="; hash = "sha256-ZEpHeBeP2LpjABWD1eQxUORUKsRWvZ8WYa5IxSRLeXc=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -5,11 +5,11 @@ watchdog, wtforms, html2text, flask-compress }:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "archivy"; pname = "archivy";
version = "1.0.1"; version = "1.0.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "53a43e26e9081ac266412d8643c66c07c289c4639bbaec374fd5147441253a4f"; sha256 = "6f706b925175852d8101a4afe2304ab7ee7d56e9658538b9a8e49e925978b87e";
}; };
# Relax some dependencies # Relax some dependencies

View file

@ -0,0 +1,58 @@
{ lib
, fetchgit
, python3
, glib
, gobject-introspection
, meson
, ninja
, pkg-config
, wrapGAppsHook
, atk
, libhandy
, libnotify
, pango
}:
python3.pkgs.buildPythonApplication rec {
pname = "caerbannog";
version = "0.3";
format = "other";
src = fetchgit {
url = "https://git.sr.ht/~craftyguy/caerbannog";
rev = version;
sha256 = "0wqkb9zcllxm3fdsr5lphknkzy8r1cr80f84q200hbi99qql1dxh";
};
nativeBuildInputs = [
glib
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook
];
buildInputs = [
atk
gobject-introspection
libhandy
libnotify
pango
];
propagatedBuildInputs = with python3.pkgs; [
anytree
fuzzyfinder
gpgme
pygobject3
];
meta = with lib; {
description = "Mobile-friendly Gtk frontend for password-store";
homepage = "https://sr.ht/~craftyguy/caerbannog/";
changelog = "https://git.sr.ht/~craftyguy/caerbannog/refs/${version}";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -2,11 +2,11 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "gallery_dl"; pname = "gallery_dl";
version = "1.16.4"; version = "1.16.5";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "744deddf22fdbc51d1d89776c41b0f1127d2b4d212bd092718fad2c0dc7f160f"; sha256 = "fb8c927630b292abf5052f8f75c3eebccbdffa609566768d4dc4d9665df91e68";
}; };
propagatedBuildInputs = [ requests ]; propagatedBuildInputs = [ requests ];

View file

@ -0,0 +1,159 @@
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000..3528c6c
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,153 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "getrandom"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
+
+[[package]]
+name = "lscolors"
+version = "0.7.1"
+dependencies = [
+ "ansi_term",
+ "tempfile",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "rand"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

View file

@ -0,0 +1,26 @@
{ lib, rustPlatform, fetchFromGitHub }:
rustPlatform.buildRustPackage rec {
pname = "lscolors";
version = "0.7.1";
src = fetchFromGitHub {
owner = "sharkdp";
repo = pname;
rev = "v${version}";
sha256 = "0av3v31fvanvn59bdm9d0v9zh5lzrq0f4vqhg6xlvabkgsa8jk04";
};
cargoPatches = [
./cargo.lock.patch
];
cargoSha256 = "02k23idwy0sb4lnjrwnyah3qp22zj161ilbc13p75k0hdijfaxl5";
meta = with lib; {
description = "Rust library and tool to colorize paths using LS_COLORS";
homepage = "https://github.com/sharkdp/lscolors";
license = with licenses; [ asl20 mit ];
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -1,4 +1,4 @@
{ buildPythonApplication, lib, fetchFromGitHub, fetchpatch { buildPythonApplication, lib, fetchFromGitHub
# build inputs # build inputs
, atk , atk

View file

@ -30,12 +30,12 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "obsidian"; pname = "obsidian";
version = "0.10.13"; version = "0.11.0";
src = fetchurl { src = fetchurl {
url = url =
"https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz"; "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
sha256 = "J4kaNtB6DVivNDhrGwrRZJBvu4Bpzl0jY1ZtlAtQiZE="; sha256 = "AkPx7X00kEds7B1syXJPSV1+TJlqQ7NnR6w9wSG2BRw=";
}; };
nativeBuildInputs = [ makeWrapper graphicsmagick ]; nativeBuildInputs = [ makeWrapper graphicsmagick ];

View file

@ -6,7 +6,6 @@
, atspiSupport ? true , atspiSupport ? true
, bash , bash
, glib , glib
, glibcLocales
, dconf , dconf
, gobject-introspection , gobject-introspection
, gsettings-desktop-schemas , gsettings-desktop-schemas
@ -130,8 +129,7 @@ python3.pkgs.buildPythonApplication rec {
--replace "/etc" "$out/etc" --replace "/etc" "$out/etc"
substituteInPlace ./Onboard/LanguageSupport.py \ substituteInPlace ./Onboard/LanguageSupport.py \
--replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes" \ --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes"
--replace "/usr/bin/yelp" "${yelp}/bin/yelp"
substituteInPlace ./Onboard/Indicator.py \ substituteInPlace ./Onboard/Indicator.py \
--replace "/usr/bin/yelp" "${yelp}/bin/yelp" --replace "/usr/bin/yelp" "${yelp}/bin/yelp"

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, vala, gtk3, libgee, fetchpatch { lib, stdenv, fetchFromGitHub, cmake, pkg-config, vala, gtk3, libgee
, poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook , poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook
, webkitgtk, discount, json-glib }: , webkitgtk, discount, json-glib }:

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "ticker"; pname = "ticker";
version = "3.1.7"; version = "3.1.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "achannarasappa"; owner = "achannarasappa";
repo = "ticker"; repo = "ticker";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-OA01GYp6E0zsEwkUUtvpmvl0y/YTXChl0pwIKozB4Qg="; sha256 = "sha256-U2TYUB4RHUBPoXe/te+QpXglbVcrT6SItiDrA7ODX6w=";
}; };
vendorSha256 = "sha256-aUBj7ZGWBeWc71y1CWm/KCw+El5TwH29S+KxyZGH1Zo="; vendorSha256 = "sha256-aUBj7ZGWBeWc71y1CWm/KCw+El5TwH29S+KxyZGH1Zo=";

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "tickrs"; pname = "tickrs";
version = "0.13.0"; version = "0.13.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tarkah"; owner = "tarkah";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Gxrz0RNv7sEIfl0Ac5eLVXvbbxIWIL31mDOZrgY88ps="; sha256 = "sha256-PGJztoGVIjUwx4x42LdpxJQMZH60x6JWY+yTHQgjHWM=";
}; };
cargoSha256 = "sha256-9UlEmc9gbZDWelOPD3jZAIkVKNk9jMq5Ljzwur1UiGs="; cargoSha256 = "sha256-0NNdo28fLoqwKXBQ1fBTKPGE/zE7pnWnIjgCITsaGJc=";
nativeBuildInputs = [ perl ]; nativeBuildInputs = [ perl ];

View file

@ -1,4 +1,4 @@
{ version ? "release", stdenv, lib, substituteAll, fetchFromGitHub, go-ethereum }: { version ? "release", stdenv, lib, fetchFromGitHub, go-ethereum }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bee-clef"; pname = "bee-clef";

View file

@ -13,13 +13,13 @@ assert enablePython -> python != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elinks"; pname = "elinks";
version = "0.13.5"; version = "0.14.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rkd77"; owner = "rkd77";
repo = "felinks"; repo = "felinks";
rev = "v${version}"; rev = "v${version}";
sha256 = "067l9m47j40039q8mvvnxd1amwrac3x6vv0c0svimfpvj4ammgkg"; sha256 = "sha256-LxJJ0yBlw9hJ/agyL9dbVe4STKdXE8rtk1mMFqe1fFI=";
}; };
buildInputs = [ buildInputs = [

View file

@ -32,10 +32,10 @@ rec {
firefox-esr-78 = common rec { firefox-esr-78 = common rec {
pname = "firefox-esr"; pname = "firefox-esr";
ffversion = "78.7.1esr"; ffversion = "78.8.0esr";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "138dcfpdkp78yqgygac212vg5fm5ich2a82p7258ch8hk6bpvpdxbws4sdqwljs92x831dblcsshwkl06vh48899489gx87mdkqd0nm"; sha512 = "0160aa6c408c2af66d24b74cf98e1a07ab1604e7b93ffcde79201f9d68e41e896ef965f1904de52d5dd82ffedae33ac96e93b871727bf5dd5983c5af2f1f439f";
}; };
meta = { meta = {

View file

@ -14,13 +14,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lagrange"; pname = "lagrange";
version = "1.1.1"; version = "1.1.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "skyjake"; owner = "skyjake";
repo = "lagrange"; repo = "lagrange";
rev = "v${version}"; rev = "v${version}";
sha256 = "0c7w4a19cwx3bkmbhc9c1wx0zmqd3a1grrj4ffifdic95wdihv7x"; sha256 = "sha256-EN0fQ5Scwrd7Tv31upQVbuqoNCoYudtruwtPR1IKTzE=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -1,4 +1,4 @@
{ stdenv, lib, lispPackages, sbcl { stdenv, lib, lispPackages
, makeWrapper, wrapGAppsHook, gst_all_1 , makeWrapper, wrapGAppsHook, gst_all_1
, glib, gdk-pixbuf, cairo , glib, gdk-pixbuf, cairo
, mime-types, pango, gtk3 , mime-types, pango, gtk3

View file

@ -19,9 +19,7 @@
, dbus , dbus
, vala , vala
, wrapGAppsHook , wrapGAppsHook
, xorg
, xvfb_run , xvfb_run
, libxml2
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {

View file

@ -2,17 +2,17 @@
buildGoModule rec { buildGoModule rec {
pname = "argocd"; pname = "argocd";
version = "1.8.4"; version = "1.8.5";
commit = "28aea3dfdede00443b52cc584814d80e8f896200"; commit = "28aea3dfdede00443b52cc584814d80e8f896200";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo-cd"; repo = "argo-cd";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256:155396rnihha31jxy0zk1jykiirpv4dhc69w45y6nx3nx4k0gwhk"; sha256 = "sha256-JjxibnGSDTjd0E9L3X2wnl9G713IYBs+O449RdrT19w=";
}; };
vendorSha256 = "sha256-6DOay+aeXz7EQKe5SzQSmg/5KyUI0g6wzPgx/+F2RW4="; vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";
doCheck = false; doCheck = false;

View file

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
pname = "kube-router"; pname = "kube-router";
version = "1.1.0"; version = "1.1.1";
goPackagePath = "github.com/cloudnativelabs/kube-router"; goPackagePath = "github.com/cloudnativelabs/kube-router";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "cloudnativelabs"; owner = "cloudnativelabs";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0nsd371w667qhgiygxcg4kmynwldb0pbip6x03rc7j854hg8l7k0"; sha256 = "sha256-U7vjWtVXmyEPYFS1fAPOgV3WILGPhWsmoawV7B0pZaE=";
}; };
buildFlagsArray = '' buildFlagsArray = ''

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubeseal"; pname = "kubeseal";
version = "0.14.1"; version = "0.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bitnami-labs"; owner = "bitnami-labs";
repo = "sealed-secrets"; repo = "sealed-secrets";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-sUeXzmgSOkpqzqrX9+wNGj2X7gcf5QSpavXK4MJe8qE="; sha256 = "sha256-wzaNFM/4V2mWqhkqeT70ieQuhgNK79U2b7PhxKqn/X0=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -9,13 +9,13 @@
buildGoModule rec { buildGoModule rec {
pname = "nerdctl"; pname = "nerdctl";
version = "0.6.0"; version = "0.6.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "AkihiroSuda"; owner = "AkihiroSuda";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-QhAN30ge0dbC9dGT1yP4o0VgrcS9+g+r6YJ07ZjPJtg="; sha256 = "sha256-zexvTPEQw7iW1d3ahHmqTn+UaT/bJMlr1sVlWErc2ck=";
}; };
vendorSha256 = "sha256-bX1GfKbAbdEAnW3kPNsbF/cJWufxvuhm//G88qJ3u08="; vendorSha256 = "sha256-bX1GfKbAbdEAnW3kPNsbF/cJWufxvuhm//G88qJ3u08=";

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "terragrunt"; pname = "terragrunt";
version = "0.28.6"; version = "0.28.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gruntwork-io"; owner = "gruntwork-io";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-DzC/HNwFNNEJhic/8KpHchrBmsSbrn7xf1DjY0JTH08="; sha256 = "sha256-pM3R85gdP2eVoXx//2tKePNAi14eM8Ut+eXR+vB0Ukk=";
}; };
vendorSha256 = "sha256-lRJerUYafpkXAGf8MEM8SeG3aB86mlMo7iLpeHFAnd4="; vendorSha256 = "sha256-lRJerUYafpkXAGf8MEM8SeG3aB86mlMo7iLpeHFAnd4=";
@ -22,6 +22,14 @@ buildGoModule rec {
"-X main.VERSION=v${version}" "-X main.VERSION=v${version}"
]; ];
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/terragrunt --help
$out/bin/terragrunt --version | grep "v${version}"
runHook postInstallCheck
'';
meta = with lib; { meta = with lib; {
homepage = "https://terragrunt.gruntwork.io"; homepage = "https://terragrunt.gruntwork.io";
changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}"; changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";

View file

@ -21,11 +21,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "zeek"; pname = "zeek";
version = "3.2.3"; version = "3.2.4";
src = fetchurl { src = fetchurl {
url = "https://download.zeek.org/zeek-${version}.tar.gz"; url = "https://download.zeek.org/zeek-${version}.tar.gz";
sha256 = "1in25clpbb2vdhms3iypj6r5sp8d1dxjcfn85c272sh7shnmqagr"; sha256 = "11dy4w810jms75nrr3n3dy5anrl5ksb5pmnk31z37k60hg9q9afm";
}; };
nativeBuildInputs = [ cmake flex bison file ]; nativeBuildInputs = [ cmake flex bison file ];

View file

@ -1,13 +1,14 @@
{ lib, fetchurl, appimageTools }: { lib, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }:
let let
pname = "deltachat-electron"; pname = "deltachat-electron";
version = "1.14.1"; version = "1.15.1";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = url =
"https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage"; "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
sha256 = "0w00qr8wwrxwa2g71biyz42k8y5y766m6k876bnzq927vcjilq6b"; sha256 = "sha256-lItI1aIFHYQ3wGRVn4Yw0nA7qgfhyHT/43kKbY/1cgI=";
}; };
appimageContents = appimageTools.extract { inherit name src; }; appimageContents = appimageTools.extract { inherit name src; };
@ -16,6 +17,10 @@ in
appimageTools.wrapType2 { appimageTools.wrapType2 {
inherit name src; inherit name src;
profile = ''
export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
'';
extraInstallCommands = '' extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname} mv $out/bin/${name} $out/bin/${pname}
install -m 444 -D \ install -m 444 -D \

View file

@ -3,8 +3,6 @@
, fetchFromGitLab , fetchFromGitLab
, pkg-config , pkg-config
, cmake , cmake
, qtbase
, qttools
, qtquickcontrols2 , qtquickcontrols2
, qtmultimedia , qtmultimedia
, qtgraphicaleffects , qtgraphicaleffects
@ -26,14 +24,14 @@
mkDerivation rec { mkDerivation rec {
pname = "neochat"; pname = "neochat";
version = "1.0.1"; version = "1.1.1";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "invent.kde.org"; domain = "invent.kde.org";
owner = "network"; owner = "network";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-xGqGFJHyoZXHLv/n3UGr/KVbgs5Gc9kKKWIuKMr9DtQ="; sha256 = "sha256-HvLPsU+fxlyPDP7i9OSnZ/C1RjouOQCp+4WCl6FlFJo=";
}; };
nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ]; nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];

View file

@ -23,6 +23,9 @@
, olm , olm
, pkg-config , pkg-config
, nlohmann_json , nlohmann_json
, voipSupport ? true
, gst_all_1
, libnice
}: }:
mkDerivation rec { mkDerivation rec {
@ -59,12 +62,24 @@ mkDerivation rec {
qtquickcontrols2 qtquickcontrols2
qtgraphicaleffects qtgraphicaleffects
qtkeychain qtkeychain
] ++ lib.optional stdenv.isDarwin qtmacextras; ] ++ lib.optional stdenv.isDarwin qtmacextras
++ lib.optionals voipSupport (with gst_all_1; [
gstreamer
gst-plugins-base
(gst-plugins-good.override { qt5Support = true; })
gst-plugins-bad
libnice
]);
cmakeFlags = [ cmakeFlags = [
"-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389 "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389
]; ];
preFixup = lib.optionalString voipSupport ''
# add gstreamer plugins path to the wrapper
qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
'';
meta = with lib; { meta = with lib; {
description = "Desktop client for the Matrix protocol"; description = "Desktop client for the Matrix protocol";
homepage = "https://github.com/Nheko-Reborn/nheko"; homepage = "https://github.com/Nheko-Reborn/nheko";

View file

@ -25,7 +25,7 @@ let
else ""); else "");
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "signal-desktop"; pname = "signal-desktop";
version = "1.40.0"; # Please backport all updates to the stable channel. version = "1.40.1"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release. # All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is # When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with: # applied. The expiration date for the current release can be extracted with:
@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1xd38a9mi23c4r873k37rzip68hfk3a4bk9j4j24v2kb3yvixrpp"; sha256 = "0k57r1x64w38n0295qdrf3p19d3z8m530h46ps0j2x0krhah47w7";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -3,8 +3,9 @@
, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3 , dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
, tl-expected, hunspell , tl-expected, hunspell
# TODO: Shouldn't be required: # Transitive dependencies:
, pcre, xorg, util-linux, libselinux, libsepol, epoxy, at-spi2-core, libXtst , pcre, xorg, util-linux, libselinux, libsepol, epoxy
, at-spi2-core, libXtst, libthai, libdatrie
, xdg-utils , xdg-utils
}: }:
@ -22,12 +23,12 @@ let
in mkDerivation rec { in mkDerivation rec {
pname = "telegram-desktop"; pname = "telegram-desktop";
version = "2.5.9"; version = "2.6.0";
# Telegram-Desktop with submodules # Telegram-Desktop with submodules
src = fetchurl { src = fetchurl {
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz"; url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
sha256 = "1311dab9cil8hl1qlh01ynrczyjbldcsq1l6ibh818wb5lsgvvl2"; sha256 = "18ifmvll0nnmjf8ba6r23ri9i4fggy7k2dqs3qf4f52cklmlfj06";
}; };
postPatch = '' postPatch = ''
@ -48,8 +49,9 @@ in mkDerivation rec {
dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3 dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
tl-expected hunspell tl-expected hunspell
tg_owt tg_owt
# TODO: Shouldn't be required: # Transitive dependencies:
pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy at-spi2-core libXtst pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy
at-spi2-core libXtst libthai libdatrie
]; ];
cmakeFlags = [ cmakeFlags = [

View file

@ -1,22 +1,15 @@
{ lib, stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkg-config, qt5 { lib, stdenv, fetchFromGitHub, pkg-config, qt5
, avahi, boost, libopus, libsndfile, protobuf, speex, libcap , avahi, boost, libopus, libsndfile, protobuf, speex, libcap
, alsaLib, python3 , alsaLib, python3
, rnnoise , rnnoise
, jackSupport ? false, libjack2 ? null , jackSupport ? false, libjack2
, speechdSupport ? false, speechd ? null , speechdSupport ? false, speechd
, pulseSupport ? false, libpulseaudio ? null , pulseSupport ? false, libpulseaudio
, iceSupport ? false, zeroc-ice ? null , iceSupport ? false, zeroc-ice
, grpcSupport ? false, grpc ? null, c-ares ? null, abseil-cpp ? null, which ? null , grpcSupport ? false, grpc, c-ares, abseil-cpp, which
, nixosTests , nixosTests
}: }:
assert jackSupport -> libjack2 != null;
assert speechdSupport -> speechd != null;
assert pulseSupport -> libpulseaudio != null;
assert iceSupport -> zeroc-ice != null;
assert grpcSupport -> (grpc != null && c-ares != null && abseil-cpp != null && which != null);
with lib;
let let
generic = overrides: source: qt5.mkDerivation (source // overrides // { generic = overrides: source: qt5.mkDerivation (source // overrides // {
pname = overrides.type; pname = overrides.type;
@ -42,8 +35,8 @@ let
"CONFIG+=no-bundled-opus" "CONFIG+=no-bundled-opus"
"CONFIG+=no-bundled-speex" "CONFIG+=no-bundled-speex"
"DEFINES+=PLUGIN_PATH=${placeholder "out"}/lib/mumble" "DEFINES+=PLUGIN_PATH=${placeholder "out"}/lib/mumble"
] ++ optional (!speechdSupport) "CONFIG+=no-speechd" ] ++ lib.optional (!speechdSupport) "CONFIG+=no-speechd"
++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio" ++ lib.optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
++ (overrides.configureFlags or [ ]); ++ (overrides.configureFlags or [ ]);
preConfigure = '' preConfigure = ''
@ -64,11 +57,9 @@ let
runHook postInstall runHook postInstall
''; '';
enableParallelBuilding = true;
passthru.tests.connectivity = nixosTests.mumble; passthru.tests.connectivity = nixosTests.mumble;
meta = { meta = with lib; {
description = "Low-latency, high quality voice chat software"; description = "Low-latency, high quality voice chat software";
homepage = "https://mumble.info"; homepage = "https://mumble.info";
license = licenses.bsd3; license = licenses.bsd3;
@ -82,16 +73,16 @@ let
nativeBuildInputs = [ qt5.qttools ]; nativeBuildInputs = [ qt5.qttools ];
buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ] buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ]
++ optional stdenv.isLinux alsaLib ++ lib.optional stdenv.isLinux alsaLib
++ optional jackSupport libjack2 ++ lib.optional jackSupport libjack2
++ optional speechdSupport speechd ++ lib.optional speechdSupport speechd
++ optional pulseSupport libpulseaudio; ++ lib.optional pulseSupport libpulseaudio;
configureFlags = [ configureFlags = [
"CONFIG+=no-server" "CONFIG+=no-server"
]; ];
NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher"; NIX_CFLAGS_COMPILE = lib.optional speechdSupport "-I${speechd}/include/speech-dispatcher";
installPhase = '' installPhase = ''
# bin stuff # bin stuff
@ -113,18 +104,18 @@ let
server = source: generic { server = source: generic {
type = "murmur"; type = "murmur";
postPatch = optional iceSupport '' postPatch = lib.optional iceSupport ''
grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g' grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g'
''; '';
configureFlags = [ configureFlags = [
"CONFIG+=no-client" "CONFIG+=no-client"
] ++ optional (!iceSupport) "CONFIG+=no-ice" ] ++ lib.optional (!iceSupport) "CONFIG+=no-ice"
++ optional grpcSupport "CONFIG+=grpc"; ++ lib.optional grpcSupport "CONFIG+=grpc";
buildInputs = [ libcap ] buildInputs = [ libcap ]
++ optional iceSupport zeroc-ice ++ lib.optional iceSupport zeroc-ice
++ optionals grpcSupport [ grpc c-ares abseil-cpp which ]; ++ lib.optionals grpcSupport [ grpc c-ares abseil-cpp which ];
installPhase = '' installPhase = ''
# bin stuff # bin stuff

View file

@ -12,6 +12,7 @@
, qtkeychain , qtkeychain
, qttools , qttools
, qtwebengine , qtwebengine
, qtwebsockets
, qtquickcontrols2 , qtquickcontrols2
, qtgraphicaleffects , qtgraphicaleffects
, sqlite , sqlite
@ -19,16 +20,17 @@
mkDerivation rec { mkDerivation rec {
pname = "nextcloud-client"; pname = "nextcloud-client";
version = "3.0.3"; version = "3.1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nextcloud"; owner = "nextcloud";
repo = "desktop"; repo = "desktop";
rev = "v${version}"; rev = "v${version}";
sha256 = "0idh8i71jivdjjs2y62l22yl3qxwgcr0hf53dad587bzgkkkr223"; sha256 = "sha256-8Ql6tOvWOjAvMJA87WlT9TbpnbciBsjDxRuYlMVi/m8=";
}; };
patches = [ patches = [
# Explicitly move dbus configuration files to the store path rather than `/etc/dbus-1/services`.
./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch ./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
]; ];
@ -40,6 +42,7 @@ mkDerivation rec {
buildInputs = [ buildInputs = [
inotify-tools inotify-tools
libcloudproviders libcloudproviders
libsecret
openssl openssl
pcre pcre
qtbase qtbase
@ -48,13 +51,10 @@ mkDerivation rec {
qtwebengine qtwebengine
qtquickcontrols2 qtquickcontrols2
qtgraphicaleffects qtgraphicaleffects
qtwebsockets
sqlite sqlite
]; ];
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
];
cmakeFlags = [ cmakeFlags = [
"-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH "-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH
"-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
@ -63,7 +63,7 @@ mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "Nextcloud themed desktop client"; description = "Nextcloud themed desktop client";
homepage = "https://nextcloud.com"; homepage = "https://nextcloud.com";
license = licenses.gpl2; license = licenses.gpl2Plus;
maintainers = with maintainers; [ caugner ]; maintainers = with maintainers; [ caugner ];
platforms = platforms.linux; platforms = platforms.linux;
}; };

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "seaweedfs"; pname = "seaweedfs";
version = "2.26"; version = "2.27";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "chrislusf"; owner = "chrislusf";
repo = "seaweedfs"; repo = "seaweedfs";
rev = version; rev = version;
sha256 = "sha256-l3lgN5x7bBUP9WwDkuHRJEjhL7wr2tZmpxr6MqHoUYw="; sha256 = "sha256-0KT/5seJs8GkatL4BsZ+r71t6AJrpHB6Q92sCvplKcQ=";
}; };
vendorSha256 = "sha256-uT/Y/TfpqDyOUElc4M/w/v77bWF3tTJz+Yu0KRMcxk4="; vendorSha256 = "sha256-uT/Y/TfpqDyOUElc4M/w/v77bWF3tTJz+Yu0KRMcxk4=";

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "websocketd"; pname = "websocketd";
version = "0.3.1"; version = "0.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "joewalnes"; owner = "joewalnes";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1qc4yi4kwy7bfi3fb17w58ff0i95yi6m4syldh8j79930syr5y8q"; sha256 = "sha256-cp4iBSQ6Cd0+NPZ2i79Mulg1z17u//OCm3yoArbZEHs=";
}; };
vendorSha256 = "05k31z4h3b327mh940zh52im4xfk7kf5phb8b7xp4l9bgckhz4lb"; vendorSha256 = "sha256-i5IPJ3srUXL7WWjBW9w803VSoyjwA5JgPWKsAckPYxY=";
doCheck = false; doCheck = false;

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkg-config, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee { lib, stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkg-config, libxml2, meson, ninja, gtk3, glib, webkitgtk, libgee
, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook
, appstream, desktop-file-utils }: , appstream, desktop-file-utils }:

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchpatch, lib, pam, python3, libxslt, perl, ArchiveZip, box2d, gettext { stdenv, fetchurl, lib, pam, python3, libxslt, perl, ArchiveZip, box2d, gettext
, IOCompress, zlib, libjpeg, expat, freetype, libwpd , IOCompress, zlib, libjpeg, expat, freetype, libwpd
, libxml2, db, curl, fontconfig, libsndfile, neon , libxml2, db, curl, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which , bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which

View file

@ -1,5 +1,5 @@
{ lib, stdenv { lib
, fetchFromGitLab , stdenv
, cmake , cmake
, libGLU , libGLU
, libGL , libGL
@ -18,9 +18,7 @@
, pcre , pcre
, libpthreadstubs , libpthreadstubs
, libXdmcp , libXdmcp
, fetchpatch
, lndir , lndir
, callPackage
, stable , stable
, baseName , baseName

View file

@ -15,19 +15,15 @@
, stable ? true , stable ? true
, oceSupport ? false , oceSupport ? false
, withOCE ? false , withOCE ? false
, opencascade
, withOCCT ? false , withOCCT ? false
, withOCC ? true , withOCC ? true
, opencascade-occt
, ngspiceSupport ? false , ngspiceSupport ? false
, withNgspice ? true , withNgspice ? true
, libngspice , libngspice
, scriptingSupport ? false , scriptingSupport ? false
, withScripting ? true , withScripting ? true
, swig
, python3 , python3
, debug ? false , debug ? false
, valgrind
, with3d ? true , with3d ? true
, withI18n ? true , withI18n ? true
, srcs ? { } , srcs ? { }

View file

@ -14,11 +14,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ngspice"; pname = "ngspice";
version = "33"; version = "34";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/ngspice/ngspice-${version}.tar.gz"; url = "mirror://sourceforge/ngspice/ngspice-${version}.tar.gz";
sha256 = "1wa1hmpn13spmxqgbb1m7vgy32mwvjqwrxhymzll8z65q5nbd7dr"; sha256 = "sha256-ImP//GaUdUlyr3By7wHP5irHkIANrWUbwpC/yueb17U=";
}; };
nativeBuildInputs = [ flex bison ]; nativeBuildInputs = [ flex bison ];

View file

@ -1,20 +1,20 @@
{ lib, stdenv, fetchurl, dune, ocamlPackages }: { lib, stdenv, fetchurl, dune_2, ocamlPackages }:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "acgtk"; pname = "acgtk";
version = "1.5.1"; version = "1.5.2";
src = fetchurl { src = fetchurl {
url = "https://acg.loria.fr/software/acg-1.5.1-20191113.tar.gz"; url = "https://acg.loria.fr/software/acg-1.5.2-20201204.tar.gz";
sha256 = "17595qfwhzz5q091ak6i6bg5wlppbn8zfn58x3hmmmjvx2yfajn1"; sha256 = "09yax7dyw8kgwzlb69r9d20y7rrymzwi3bbq2dh0qdq01vjz2xwq";
}; };
buildInputs = [ dune ] ++ (with ocamlPackages; [ buildInputs = [ dune_2 ] ++ (with ocamlPackages; [
ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir mtime yojson ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir mtime yojson
]); ]);
buildPhase = "dune build"; buildPhase = "dune build --profile=release";
installPhase = '' installPhase = ''
dune install --prefix $out --libdir $OCAMLFIND_DESTDIR dune install --prefix $out --libdir $OCAMLFIND_DESTDIR

View file

@ -9,20 +9,22 @@ let
sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj"; sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj";
}; };
useDune2 = true;
nativeBuildInputs = [ which ]; nativeBuildInputs = [ which ];
in in
let alt-ergo-lib = ocamlPackages.buildDunePackage rec { let alt-ergo-lib = ocamlPackages.buildDunePackage rec {
pname = "alt-ergo-lib"; pname = "alt-ergo-lib";
inherit version src nativeBuildInputs; inherit version src useDune2 nativeBuildInputs;
configureFlags = pname; configureFlags = pname;
propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ]; propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ];
}; in }; in
let alt-ergo-parsers = ocamlPackages.buildDunePackage rec { let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
pname = "alt-ergo-parsers"; pname = "alt-ergo-parsers";
inherit version src nativeBuildInputs; inherit version src useDune2 nativeBuildInputs;
configureFlags = pname; configureFlags = pname;
buildInputs = with ocamlPackages; [ menhir ]; buildInputs = with ocamlPackages; [ menhir ];
propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]); propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]);
@ -30,7 +32,7 @@ let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
ocamlPackages.buildDunePackage { ocamlPackages.buildDunePackage {
inherit pname version src nativeBuildInputs; inherit pname version src useDune2 nativeBuildInputs;
configureFlags = pname; configureFlags = pname;

View file

@ -3,14 +3,14 @@
let let
pname = "hol4"; pname = "hol4";
vnum = "10"; vnum = "14";
in in
let let
version = "k.${vnum}"; version = "k.${vnum}";
longVersion = "kananaskis-${vnum}"; longVersion = "kananaskis-${vnum}";
holsubdir = "hol-${longVersion}"; holsubdir = "hol-${longVersion}";
kernelFlag = if experimentalKernel then "-expk" else "-stdknl"; kernelFlag = if experimentalKernel then "--expk" else "--stdknl";
in in
let let
@ -24,7 +24,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/hol/hol/${longVersion}/${holsubdir}.tar.gz"; url = "mirror://sourceforge/hol/hol/${longVersion}/${holsubdir}.tar.gz";
sha256 = "0x2wxksr305h1lrbklf6p42lp09rbhb4rsh74g0l70sgapyiac9b"; sha256 = "6Mc/qsEjzxGqzt6yP6x/1Tmqpwc1UDGlwV1Gl+4pMsY=";
}; };
buildInputs = [polymlEnableShared graphviz fontconfig liberation_ttf]; buildInputs = [polymlEnableShared graphviz fontconfig liberation_ttf];
@ -46,8 +46,8 @@ stdenv.mkDerivation {
cd ${holsubdir} cd ${holsubdir}
substituteInPlace tools/Holmake/Holmake_types.sml \ substituteInPlace tools/Holmake/Holmake_types.sml \
--replace "\"/bin/mv\"" "\"mv\"" \ --replace "\"/bin/" "\"" \
--replace "\"/bin/cp\"" "\"cp\""
for f in tools/buildutils.sml help/src-sml/DOT; for f in tools/buildutils.sml help/src-sml/DOT;
do do
@ -58,7 +58,7 @@ stdenv.mkDerivation {
poly < tools/smart-configure.sml poly < tools/smart-configure.sml
bin/build ${kernelFlag} -symlink bin/build ${kernelFlag}
mkdir -p "$out/bin" mkdir -p "$out/bin"
ln -st $out/bin $out/src/${holsubdir}/bin/* ln -st $out/bin $out/src/${holsubdir}/bin/*
@ -81,8 +81,7 @@ stdenv.mkDerivation {
''; '';
homepage = "http://hol.sourceforge.net/"; homepage = "http://hol.sourceforge.net/";
license = licenses.bsd3; license = licenses.bsd3;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ mudri ]; maintainers = with maintainers; [ mudri ];
platforms = with platforms; linux;
broken = true;
}; };
} }

View file

@ -9,7 +9,6 @@
, gtk3 , gtk3
, glib , glib
, pantheon , pantheon
, libsoup
, gtksourceview , gtksourceview
, libgee , libgee
, nix-update-script , nix-update-script

View file

@ -1,4 +1,4 @@
{ stdenv, buildPythonApplication, fetchFromGitHub, fetchpatch, isPyPy, lib { stdenv, buildPythonApplication, fetchFromGitHub, isPyPy, lib
, future, psutil, setuptools , future, psutil, setuptools
# Optional dependencies: # Optional dependencies:
, bottle, pysnmp , bottle, pysnmp

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "gh"; pname = "gh";
version = "1.6.1"; version = "1.6.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cli"; owner = "cli";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "03bsramq75i5sw08gdmjh94n1xh743mq6h4dzaix78i531x7y34i"; sha256 = "1wq8k626w3w2cnqp9gqdk7g4pjnqjjybkjgbfq5cvqsql3jdjg65";
}; };
vendorSha256 = "0nk5axyr3nd9cbk8wswfhqf25dks22mky3rdn6ba9s0fpxhhkr5g"; vendorSha256 = "0nk5axyr3nd9cbk8wswfhqf25dks22mky3rdn6ba9s0fpxhhkr5g";

View file

@ -2,18 +2,18 @@
buildGoModule rec { buildGoModule rec {
pname = "lab"; pname = "lab";
version = "0.19.0"; version = "0.20.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zaquestion"; owner = "zaquestion";
repo = "lab"; repo = "lab";
rev = "v${version}"; rev = "v${version}";
sha256 = "1l6xsikd1113qd4y0mvjsl64gbi4327m9v4d593f27fxink39j8s"; sha256 = "sha256-EQqbWM/4CInFNndfD+k7embPUFLXgxRT44e/+Ik2TDs=";
}; };
subPackages = [ "." ]; subPackages = [ "." ];
vendorSha256 = "07zl5xhzgrgr5skba6cds5nal58pllf10gak0ap62j1k9gk2ych2"; vendorSha256 = "sha256-T6kGhje3K2HnR8xRuio6AsYbSwIdbWvAk3ZSnbm1NsA=";
doCheck = false; doCheck = false;
@ -33,6 +33,6 @@ buildGoModule rec {
description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab"; description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab";
homepage = "https://zaquestion.github.io/lab"; homepage = "https://zaquestion.github.io/lab";
license = licenses.cc0; license = licenses.cc0;
maintainers = with maintainers; [ marsam dtzWill ]; maintainers = with maintainers; [ marsam dtzWill SuperSandro2000 ];
}; };
} }

View file

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz"; url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
sha256 = "sha256-R1FnHgSziJ7eGL8GrUmheVZxOnUgn9TK6gObSSKe9j0="; sha256 = "sha256-xgdCjo2RLp+EtUTfSiys7PURhnC00R9IOLPtz3427pA=";
}; };
unpackPhase = "tar xvf $src"; unpackPhase = "tar xvf $src";

View file

@ -1,11 +1,12 @@
{ stdenv, lib, fetchpatch, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders { stdenv, lib, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
, pkg-config, cmake, gnumake, yasm, python2Packages , pkg-config, cmake, gnumake, yasm, python3Packages
, libgcrypt, libgpgerror, libunistring , libgcrypt, libgpgerror, libunistring
, boost, avahi, lame, autoreconfHook , boost, avahi, lame
, gettext, pcre-cpp, yajl, fribidi, which , gettext, pcre-cpp, yajl, fribidi, which
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless , openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
, gtest, ncurses, spdlog
, libxml2, systemd , libxml2, systemd
, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl , alsaLib, libGLU, libGL, fontconfig, freetype, ftgl
, libjpeg, libpng, libtiff , libjpeg, libpng, libtiff
, libmpeg2, libsamplerate, libmad , libmpeg2, libsamplerate, libmad
, libogg, libvorbis, flac, libxslt , libogg, libvorbis, flac, libxslt
@ -42,17 +43,18 @@ assert udevSupport -> udev != null;
assert usbSupport -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable assert usbSupport -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
assert vdpauSupport -> libvdpau != null; assert vdpauSupport -> libvdpau != null;
assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null; assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
assert useGbm || useWayland || x11Support;
let let
kodiReleaseDate = "20200728"; kodiReleaseDate = "20210219";
kodiVersion = "18.9"; kodiVersion = "19.0";
rel = "Leia"; rel = "Matrix";
kodi_src = fetchFromGitHub { kodi_src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "xbmc"; repo = "xbmc";
rev = "${kodiVersion}-${rel}"; rev = "${kodiVersion}-${rel}";
sha256 = "0nnf7823pixj6n2fkjc8rbdjwayvhlbglij2by4rnjzzfgmqmw20"; sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
}; };
cmakeProto = fetchurl { cmakeProto = fetchurl {
@ -87,9 +89,9 @@ let
ffmpeg = kodiDependency rec { ffmpeg = kodiDependency rec {
name = "FFmpeg"; name = "FFmpeg";
version = "4.0.3"; version = "4.3.1";
rev = "${version}-${rel}-18.2"; rev = "${version}-${rel}-Beta1";
sha256 = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy"; sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
preConfigure = '' preConfigure = ''
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} . cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
@ -151,6 +153,12 @@ let
postPatch = cmakeProtoPatch; postPatch = cmakeProtoPatch;
}; };
kodi_platforms =
lib.optional useGbm "gbm" ++
lib.optional useWayland "wayland" ++
lib.optional x11Support "x11"
;
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}"; name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
@ -158,10 +166,11 @@ in stdenv.mkDerivation {
buildInputs = [ buildInputs = [
gnutls libidn libtasn1 nasm p11-kit gnutls libidn libtasn1 nasm p11-kit
libxml2 python2Packages.python libxml2 python3Packages.python
boost libmicrohttpd boost libmicrohttpd
gettext pcre-cpp yajl fribidi libva libdrm gettext pcre-cpp yajl fribidi libva libdrm
openssl gperf tinyxml2 taglib libssh openssl gperf tinyxml2 taglib libssh
gtest ncurses spdlog
alsaLib libGL libGLU fontconfig freetype ftgl alsaLib libGL libGLU fontconfig freetype ftgl
libjpeg libpng libtiff libjpeg libpng libtiff
libmpeg2 libsamplerate libmad libmpeg2 libsamplerate libmad
@ -210,7 +219,7 @@ in stdenv.mkDerivation {
which which
pkg-config gnumake pkg-config gnumake
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0 autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
jre_headless yasm gettext python2Packages.python flatbuffers jre_headless yasm gettext python3Packages.python flatbuffers
# for TexturePacker # for TexturePacker
giflib zlib libpng libjpeg lzo giflib zlib libpng libjpeg lzo
@ -221,6 +230,8 @@ in stdenv.mkDerivation {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DAPP_RENDER_SYSTEM=${if useGbm then "gles" else "gl"}"
"-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}"
"-Dlibdvdcss_URL=${libdvdcss.src}" "-Dlibdvdcss_URL=${libdvdcss.src}"
"-Dlibdvdnav_URL=${libdvdnav.src}" "-Dlibdvdnav_URL=${libdvdnav.src}"
"-Dlibdvdread_URL=${libdvdread.src}" "-Dlibdvdread_URL=${libdvdread.src}"
@ -231,14 +242,9 @@ in stdenv.mkDerivation {
"-DLIRC_DEVICE=/run/lirc/lircd" "-DLIRC_DEVICE=/run/lirc/lircd"
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig" "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc" "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
"-DPYTHON_EXECUTABLE=${buildPackages.python2Packages.python}/bin/python" "-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
] ++ lib.optional useWayland [ ] ++ lib.optional useWayland [
"-DCORE_PLATFORM_NAME=wayland"
"-DWAYLAND_RENDER_SYSTEM=gl"
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++" "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
] ++ lib.optional useGbm [
"-DCORE_PLATFORM_NAME=gbm"
"-DGBM_RENDER_SYSTEM=gles"
]; ];
# 14 tests fail but the biggest issue is that every test takes 30 seconds - # 14 tests fail but the biggest issue is that every test takes 30 seconds -
@ -256,14 +262,14 @@ in stdenv.mkDerivation {
''; '';
postPatch = '' postPatch = ''
substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \ substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo' --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
''; '';
postInstall = '' postInstall = ''
for p in $(ls $out/bin/) ; do for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \ wrapProgram $out/bin/$p \
--prefix PATH ":" "${lib.makeBinPath ([ python2Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \ --prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
([ curl systemd libmad libvdpau libcec libcec_platform libass ] ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
++ lib.optional nfsSupport libnfs ++ lib.optional nfsSupport libnfs
@ -279,7 +285,7 @@ in stdenv.mkDerivation {
installCheckPhase = "$out/bin/kodi --version"; installCheckPhase = "$out/bin/kodi --version";
passthru = { passthru = {
pythonPackages = python2Packages; pythonPackages = python3Packages;
}; };
meta = with lib; { meta = with lib; {

View file

@ -1,7 +1,7 @@
{ lib, stdenv, callPackage, fetchFromGitHub { lib, stdenv, callPackage, fetchFromGitHub
, cmake, kodiPlain, libcec_platform, tinyxml, rapidxml , cmake, kodiPlain, libcec_platform, tinyxml, pugixml
, steam, udev, libusb1, jsoncpp, libhdhomerun, zlib , steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
, python2Packages, expat, glib, nspr, nss, openssl , python3Packages, expat, glib, nspr, nss, openssl
, libssh, libarchive, lzma, bzip2, lz4, lzo }: , libssh, libarchive, lzma, bzip2, lz4, lzo }:
with lib; with lib;
@ -9,7 +9,7 @@ with lib;
let self = rec { let self = rec {
pluginDir = "/share/kodi/addons"; pluginDir = "/share/kodi/addons";
rel = "Leia"; rel = "Matrix";
kodi = kodiPlain; kodi = kodiPlain;
@ -122,6 +122,7 @@ let self = rec {
''; '';
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ edwtjo ]; maintainers = with maintainers; [ edwtjo ];
broken = true; # requires port to python3
}; };
}; };
@ -151,6 +152,7 @@ let self = rec {
''; '';
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ edwtjo ]; maintainers = with maintainers; [ edwtjo ];
broken = true; # requires port to python3
}; };
}; };
@ -204,6 +206,7 @@ let self = rec {
homepage = "https://forum.kodi.tv/showthread.php?tid=258159"; homepage = "https://forum.kodi.tv/showthread.php?tid=258159";
description = "A ROM launcher for Kodi that uses HyperSpin assets."; description = "A ROM launcher for Kodi that uses HyperSpin assets.";
maintainers = with maintainers; [ edwtjo ]; maintainers = with maintainers; [ edwtjo ];
broken = true; # requires port to python3
}; };
in { in {
service = mkKodiPlugin { service = mkKodiPlugin {
@ -221,14 +224,14 @@ let self = rec {
joystick = mkKodiABIPlugin rec { joystick = mkKodiABIPlugin rec {
namespace = "peripheral.joystick"; namespace = "peripheral.joystick";
version = "1.4.7"; version = "1.7.1";
plugin = namespace; plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = namespace; repo = namespace;
rev = "v${version}"; rev = "${version}-${rel}";
sha256 = "03gsp4kg41s3n4ib4wsv7m3krfipgwc2z07i4mnd5zvg0c4xrmap"; sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
}; };
meta = { meta = {
@ -237,7 +240,7 @@ let self = rec {
maintainers = with maintainers; [ edwtjo ]; maintainers = with maintainers; [ edwtjo ];
}; };
extraBuildInputs = [ udev ]; extraBuildInputs = [ tinyxml udev ];
}; };
simpleplugin = mkKodiPlugin rec { simpleplugin = mkKodiPlugin rec {
@ -256,6 +259,7 @@ let self = rec {
homepage = src.meta.homepage; homepage = src.meta.homepage;
description = "Simpleplugin API"; description = "Simpleplugin API";
license = licenses.gpl3; license = licenses.gpl3;
broken = true; # requires port to python3
}; };
}; };
@ -263,14 +267,14 @@ let self = rec {
plugin = "svtplay"; plugin = "svtplay";
namespace = "plugin.video.svtplay"; namespace = "plugin.video.svtplay";
version = "4.0.48"; version = "5.1.12";
src = fetchFromGitHub { src = fetchFromGitHub {
name = plugin + "-" + version + ".tar.gz"; name = plugin + "-" + version + ".tar.gz";
owner = "nilzen"; owner = "nilzen";
repo = "xbmc-" + plugin; repo = "xbmc-" + plugin;
rev = "dc18ad002cd69257611d0032fba91f57bb199165"; rev = "v${version}";
sha256 = "0klk1jpjc243ak306k94mag4b4s17w68v69yb8lzzydszqkaqa7x"; sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
}; };
meta = { meta = {
@ -290,14 +294,14 @@ let self = rec {
steam-controller = mkKodiABIPlugin rec { steam-controller = mkKodiABIPlugin rec {
namespace = "peripheral.steamcontroller"; namespace = "peripheral.steamcontroller";
version = "0.10.0"; version = "0.11.0";
plugin = namespace; plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-game"; owner = "kodi-game";
repo = namespace; repo = namespace;
rev = "ea345392ab5aa4485f3a48d2037fa8a8e8ab82de"; rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
sha256 = "1hbd8fdvn7xkr9csz1g9wah78nhnq1rkazl4zwa31y70830k3279"; sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
}; };
extraBuildInputs = [ libusb1 ]; extraBuildInputs = [ libusb1 ];
@ -314,13 +318,13 @@ let self = rec {
plugin = "steam-launcher"; plugin = "steam-launcher";
namespace = "script.steam.launcher"; namespace = "script.steam.launcher";
version = "3.1.4"; version = "3.5.1";
src = fetchFromGitHub rec { src = fetchFromGitHub rec {
owner = "teeedubb"; owner = "teeedubb";
repo = owner + "-xbmc-repo"; repo = owner + "-xbmc-repo";
rev = "db67704c3e16bdcdd3bdfe2926c609f1f6bdc4fb"; rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
sha256 = "001a7zs3a4jfzj8ylxv2klc33mipmqsd5aqax7q81fbgwdlndvbm"; sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
}; };
propagatedBuildInputs = [ steam ]; propagatedBuildInputs = [ steam ];
@ -356,6 +360,7 @@ let self = rec {
homepage = "https://forum.kodi.tv/showthread.php?tid=187421"; homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
description = "A comic book reader"; description = "A comic book reader";
maintainers = with maintainers; [ edwtjo ]; maintainers = with maintainers; [ edwtjo ];
broken = true; # requires port to python3
}; };
}; };
@ -363,13 +368,13 @@ let self = rec {
plugin = "pvr-hts"; plugin = "pvr-hts";
namespace = "pvr.hts"; namespace = "pvr.hts";
version = "4.4.14"; version = "8.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-pvr"; owner = "kodi-pvr";
repo = "pvr.hts"; repo = "pvr.hts";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "1bcwcwd2yjhw85yk6lyhf0iqiclrsz7r7vpbxgc650fwqbb146gr"; sha256 = "0jnn9gfjl556acqjf92wzzn371gxymhbbi665nqgg2gjcan0a49q";
}; };
meta = { meta = {
@ -385,13 +390,13 @@ let self = rec {
plugin = "pvr-hdhomerun"; plugin = "pvr-hdhomerun";
namespace = "pvr.hdhomerun"; namespace = "pvr.hdhomerun";
version = "3.5.0"; version = "7.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-pvr"; owner = "kodi-pvr";
repo = "pvr.hdhomerun"; repo = "pvr.hdhomerun";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "1zrkvfn0im2qmvqm93pa3cg8xkxv61sxlj8nsz4r5z9v9nhqadf6"; sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
}; };
meta = { meta = {
@ -409,13 +414,13 @@ let self = rec {
plugin = "pvr-iptvsimple"; plugin = "pvr-iptvsimple";
namespace = "pvr.iptvsimple"; namespace = "pvr.iptvsimple";
version = "3.5.7"; version = "7.4.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-pvr"; owner = "kodi-pvr";
repo = "pvr.iptvsimple"; repo = "pvr.iptvsimple";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "17znib7c491h2ii4gagxradh0jyvgga0d548gbk4yjj2nc9qqc6d"; sha256 = "062i922qi0izkvn7v47yhyy2cf3fa7xc3k95b1gm9abfdwkk8ywr";
}; };
meta = { meta = {
@ -426,7 +431,7 @@ let self = rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
}; };
extraBuildInputs = [ zlib rapidxml ]; extraBuildInputs = [ zlib pugixml ];
}; };
osmc-skin = mkKodiPlugin rec { osmc-skin = mkKodiPlugin rec {
@ -451,7 +456,7 @@ let self = rec {
}; };
}; };
yatp = python2Packages.toPythonModule (mkKodiPlugin rec { yatp = python3Packages.toPythonModule (mkKodiPlugin rec {
plugin = "yatp"; plugin = "yatp";
namespace = "plugin.video.yatp"; namespace = "plugin.video.yatp";
version = "3.3.2"; version = "3.3.2";
@ -467,14 +472,15 @@ let self = rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
simpleplugin simpleplugin
python2Packages.requests python3Packages.requests
python2Packages.libtorrent-rasterbar python3Packages.libtorrent-rasterbar
]; ];
meta = { meta = {
homepage = src.meta.homepage; homepage = src.meta.homepage;
description = "Yet Another Torrent Player: libtorrent-based torrent streaming for Kodi"; description = "Yet Another Torrent Player: libtorrent-based torrent streaming for Kodi";
license = licenses.gpl3; license = licenses.gpl3;
broken = true; # requires port to python3
}; };
}); });
@ -482,13 +488,13 @@ let self = rec {
plugin = "inputstream-adaptive"; plugin = "inputstream-adaptive";
namespace = "inputstream.adaptive"; namespace = "inputstream.adaptive";
version = "2.4.6"; version = "2.6.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "peak3d"; owner = "peak3d";
repo = "inputstream.adaptive"; repo = "inputstream.adaptive";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "09d9b35mpaf3g5m51viyan9hv7d2i8ndvb9wm0j7rs5gwsf0k71z"; sha256 = "1pwqmbr78wp12jn6rwv63npdfc456adwz0amlxf6gvgg43li6p7s";
}; };
extraBuildInputs = [ expat ]; extraBuildInputs = [ expat ];
@ -509,14 +515,14 @@ let self = rec {
vfs-sftp = mkKodiABIPlugin rec { vfs-sftp = mkKodiABIPlugin rec {
namespace = "vfs.sftp"; namespace = "vfs.sftp";
version = "1.0.6"; version = "2.0.0";
plugin = namespace; plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = namespace; repo = namespace;
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "044kkzcpzvbyih4vys33r4hqw38xa82snmvl4qj1r80wnszc8af1"; sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
}; };
meta = with lib; { meta = with lib; {
@ -531,14 +537,14 @@ let self = rec {
vfs-libarchive = mkKodiABIPlugin rec { vfs-libarchive = mkKodiABIPlugin rec {
namespace = "vfs.libarchive"; namespace = "vfs.libarchive";
version = "1.0.7"; version = "2.0.0";
plugin = namespace; plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = namespace; repo = namespace;
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "01qhv095h5j67ispm4iw18pd3kl7a0mnjkgm92al9qqiyif8lzgh"; sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
}; };
meta = with lib; { meta = with lib; {

View file

@ -1,5 +1,4 @@
{ lib { lib
, fetchFromGitHub
, fetchurl , fetchurl
, pkg-config , pkg-config
, gettext , gettext

View file

@ -0,0 +1,103 @@
{ stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, autoconf-archive
, clutter-gst
, clutter-gtk
, gettext
, glib
, gobject-introspection
, gst-plugins-bad
, gst-plugins-base
, gst-plugins-good
, gstreamer
, gtk-doc
, gtk3
, intltool
, itstool
, libpeas
, libxml2
, libxplayer-plparser
, pkg-config
, python3
, wrapGAppsHook
, xapps
, yelp-tools }:
let
pythonenv = python3.withPackages (ps: [
ps.pygobject3
ps.dbus-python # For one plugin
]);
in
stdenv.mkDerivation rec {
pname = "xplayer";
version = "2.4.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "1xcv6nr2gc0vji5afwy283v7bgx46kzgrq79hl8q9pz995qq2kbp";
};
# configure wants to find gst-inspect-1.0 via pkgconfig but
# the gstreamer toolsdir points to the wrong derivation output
postPatch = ''
substituteInPlace configure.ac \
--replace '$gst10_toolsdir/gst-inspect-1.0' '${gstreamer.dev}/bin/gst-inspect-1.0' \
'';
preBuild = ''
makeFlagsArray+=(
"INCLUDES=-I${glib.dev}/include/gio-unix-2.0"
"CFLAGS=-Wno-error" # Otherwise a lot of deprecated warnings are treated as error
)
'';
nativeBuildInputs = [
autoreconfHook
wrapGAppsHook
autoconf-archive
gettext
gtk-doc
intltool
itstool
pkg-config
yelp-tools
];
buildInputs = [
clutter-gst
clutter-gtk
glib
gobject-introspection
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gstreamer
gtk3
libpeas
libxml2
libxplayer-plparser
pythonenv
xapps
# to satisfy configure script
pythonenv.pkgs.pygobject3
];
postInstall = ''
wrapProgram $out/bin/xplayer \
--prefix PATH : ${lib.makeBinPath [ pythonenv ]}
'';
meta = with lib; {
description = "A generic media player from Linux Mint";
license = with licenses; [ gpl2Plus lgpl21Plus ];
homepage = "https://github.com/linuxmint/xplayer";
maintainers = with maintainers; [ tu-maurice ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,42 @@
{ stdenv
, lib
, fetchFromGitHub
, intltool
, gobject-introspection
, gmime
, libxml2
, libsoup
, pkg-config
}:
stdenv.mkDerivation rec {
pname = "xplayer-plparser";
version = "1.0.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "1i7sld8am6b1wwbpfb18v7qp17vk2a5p8xcfds50yznr30lddsb2";
};
nativeBuildInputs = [
intltool
pkg-config
gobject-introspection
];
buildInputs = [
gmime
libxml2
libsoup
];
meta = with lib; {
description = "Playlist parsing library for xplayer";
homepage = "https://github.com/linuxmint/xplayer-plparser";
maintainers = with maintainers; [ tu-maurice ];
license = licenses.lgpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -8,12 +8,12 @@
}: }:
buildPythonApplication rec { buildPythonApplication rec {
version = "1.28.2"; version = "1.28.3";
pname = "docker-compose"; pname = "docker-compose";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "2f148b590414915d029dad7551f4cdf0b03a774dc9baa674480217236d260cc1"; sha256 = "78a48ef8ff4fed092261ecb1a60d9b28b7776e72ed6df591a900008039308b0f";
}; };
# lots of networking and other fails # lots of networking and other fails

View file

@ -1,4 +1,6 @@
{ lib, callPackage, runCommandLocal, writeShellScriptBin, coreutils, bubblewrap }: { lib, callPackage, runCommandLocal, writeShellScriptBin, glibc, pkgsi686Linux, coreutils, bubblewrap }:
let buildFHSEnv = callPackage ./env.nix { }; in
args @ { args @ {
name name
@ -60,29 +62,53 @@ let
in concatStringsSep "\n " in concatStringsSep "\n "
(map (file: "--ro-bind-try /etc/${file} /etc/${file}") files); (map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
# Create this on the fly instead of linking from /nix
# The container might have to modify it and re-run ldconfig if there are
# issues running some binary with LD_LIBRARY_PATH
createLdConfCache = ''
cat > /etc/ld.so.conf <<EOF
/lib
/lib/x86_64-linux-gnu
/lib64
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib64
/lib/i386-linux-gnu
/lib32
/usr/lib/i386-linux-gnu
/usr/lib32
EOF
ldconfig &> /dev/null
'';
init = run: writeShellScriptBin "${name}-init" '' init = run: writeShellScriptBin "${name}-init" ''
source /etc/profile source /etc/profile
${createLdConfCache}
exec ${run} "$@" exec ${run} "$@"
''; '';
bwrapCmd = { initArgs ? "" }: '' bwrapCmd = { initArgs ? "" }: ''
blacklist=(/nix /dev /proc /etc) blacklist=(/nix /dev /proc /etc)
ro_mounts=() ro_mounts=()
symlinks=()
for i in ${env}/*; do for i in ${env}/*; do
path="/''${i##*/}" path="/''${i##*/}"
if [[ $path == '/etc' ]]; then if [[ $path == '/etc' ]]; then
continue :
elif [[ -L $i ]]; then
symlinks+=(--symlink "$(readlink "$i")" "$path")
blacklist+=("$path")
else
ro_mounts+=(--ro-bind "$i" "$path")
blacklist+=("$path")
fi fi
ro_mounts+=(--ro-bind "$i" "$path")
blacklist+=("$path")
done done
if [[ -d ${env}/etc ]]; then if [[ -d ${env}/etc ]]; then
for i in ${env}/etc/*; do for i in ${env}/etc/*; do
path="/''${i##*/}" path="/''${i##*/}"
# NOTE: we're binding /etc/fonts from the host so we don't want to # NOTE: we're binding /etc/fonts and /etc/ssl/certs from the host so we
# override it with a path from the FHS environment. # don't want to override it with a path from the FHS environment.
if [[ $path == '/fonts' ]]; then if [[ $path == '/fonts' || $path == '/ssl' ]]; then
continue continue
fi fi
ro_mounts+=(--ro-bind "$i" "/etc$path") ro_mounts+=(--ro-bind "$i" "/etc$path")
@ -112,8 +138,26 @@ let
${lib.optionalString unshareCgroup "--unshare-cgroup"} ${lib.optionalString unshareCgroup "--unshare-cgroup"}
--die-with-parent --die-with-parent
--ro-bind /nix /nix --ro-bind /nix /nix
# Our glibc will look for the cache in its own path in `/nix/store`.
# As such, we need a cache to exist there, because pressure-vessel
# depends on the existence of an ld cache. However, adding one
# globally proved to be a bad idea (see #100655), the solution we
# settled on being mounting one via bwrap.
# Also, the cache needs to go to both 32 and 64 bit glibcs, for games
# of both architectures to work.
--tmpfs ${glibc}/etc \
--symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \
--symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
--ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
--remount-ro ${glibc}/etc \
--tmpfs ${pkgsi686Linux.glibc}/etc \
--symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
--symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \
--ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \
--remount-ro ${pkgsi686Linux.glibc}/etc \
${etcBindFlags} ${etcBindFlags}
"''${ro_mounts[@]}" "''${ro_mounts[@]}"
"''${symlinks[@]}"
"''${auto_mounts[@]}" "''${auto_mounts[@]}"
${init runScript}/bin/${name}-init ${initArgs} ${init runScript}/bin/${name}-init ${initArgs}
) )

View file

@ -1,4 +1,4 @@
{ stdenv, buildEnv, writeText, pkgs, pkgsi686Linux }: { stdenv, lib, buildEnv, writeText, writeShellScriptBin, pkgs, pkgsi686Linux }:
{ name, profile ? "" { name, profile ? ""
, targetPkgs ? pkgs: [], multiPkgs ? pkgs: [] , targetPkgs ? pkgs: [], multiPkgs ? pkgs: []
@ -49,6 +49,9 @@ let
[ (toString gcc.cc.lib) [ (toString gcc.cc.lib)
]; ];
ldconfig = writeShellScriptBin "ldconfig" ''
exec ${pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
'';
etcProfile = writeText "profile" '' etcProfile = writeText "profile" ''
export PS1='${name}-chrootenv:\u@\h:\w\$ ' export PS1='${name}-chrootenv:\u@\h:\w\$ '
export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive' export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
@ -86,7 +89,8 @@ let
# Composes a /usr-like directory structure # Composes a /usr-like directory structure
staticUsrProfileTarget = buildEnv { staticUsrProfileTarget = buildEnv {
name = "${name}-usr-target"; name = "${name}-usr-target";
paths = [ etcPkg ] ++ basePkgs ++ targetPaths; # ldconfig wrapper must come first so it overrides the original ldconfig
paths = [ etcPkg ldconfig ] ++ basePkgs ++ targetPaths;
extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall; extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall;
ignoreCollisions = true; ignoreCollisions = true;
}; };
@ -132,7 +136,20 @@ let
mkdir -m0755 usr mkdir -m0755 usr
cd usr cd usr
${setupLibDirs} ${setupLibDirs}
for i in bin sbin share include; do ${lib.optionalString isMultiBuild ''
if [ -d "${staticUsrProfileMulti}/share" ]; then
cp -rLf ${staticUsrProfileMulti}/share share
fi
''}
if [ -d "${staticUsrProfileTarget}/share" ]; then
if [ -d share ]; then
chmod -R 755 share
cp -rLTf ${staticUsrProfileTarget}/share share
else
cp -rLf ${staticUsrProfileTarget}/share share
fi
fi
for i in bin sbin include; do
if [ -d "${staticUsrProfileTarget}/$i" ]; then if [ -d "${staticUsrProfileTarget}/$i" ]; then
cp -rsHf "${staticUsrProfileTarget}/$i" "$i" cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
fi fi

View file

@ -23,6 +23,9 @@
# Legacy hash # Legacy hash
, cargoSha256 ? "" , cargoSha256 ? ""
# Name for the vendored dependencies tarball
, cargoDepsName ? name
, src ? null , src ? null
, srcs ? null , srcs ? null
, unpackPhase ? null , unpackPhase ? null
@ -60,7 +63,8 @@ let
cargoDeps = if cargoVendorDir == null cargoDeps = if cargoVendorDir == null
then fetchCargoTarball ({ then fetchCargoTarball ({
inherit name src srcs sourceRoot unpackPhase cargoUpdateHook; inherit src srcs sourceRoot unpackPhase cargoUpdateHook;
name = cargoDepsName;
hash = cargoHash; hash = cargoHash;
patches = cargoPatches; patches = cargoPatches;
sha256 = cargoSha256; sha256 = cargoSha256;

View file

@ -10,7 +10,7 @@ let
(builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ])); (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "${name}-bin"; pname = "${name}-bin";
version = "5.0.2"; version = "5.0.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip"; url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";

View file

@ -1,26 +1,26 @@
# This file was autogenerated. DO NOT EDIT! # This file was autogenerated. DO NOT EDIT!
{ {
iosevka = "069qy5mnrp61da7b5yy79s9d0s3cwn5mqkqkysv8lccr91qnjgdc"; iosevka = "1w1y543iypvhwx27qswkvhhiwzd3ik2jklapz2g497f3ppj834g4";
iosevka-aile = "1b9zh017wdxlk9dlick6qwx8f2vqsrsaq5yjr79iinirc417ri67"; iosevka-aile = "12dybqmcpq83xiw4k9m9fmkhj204sxb9hnqndb212vvgj3vbl0fm";
iosevka-curly = "155faw2nlczp3ic2y9ck2vm21rfa1zaiswc0mfgmd3b2r6wimjrj"; iosevka-curly = "09rl8l9jkqhq811h35x15s4gssig0xrzvas154gg5igrdqha5kk8";
iosevka-curly-slab = "1axzan1p9slfskg8nshz4hrmw24vmbcsxf7kpz70xjs98w7wh6lh"; iosevka-curly-slab = "19l13inmnaysz2mp7x4rh4zffa5n8qd3n727j54dd2581g9f0n9c";
iosevka-etoile = "00w4r660qaydygqvfv03i77h1q6wk8xbvrvh4wsnifl7li4xax4w"; iosevka-etoile = "0flsdjdq0jsfblnazdw82kflzwvjvqaxzsyifgbn4flgjwy46mhm";
iosevka-slab = "0a7ndr3c0sldn902d9c50l63xrvranclsvwnj4py2m6w32s8i9nx"; iosevka-slab = "04wg7aklybwrbali53c22fs5xfgacyfkxw20bhnxqbfcsykriz11";
iosevka-ss01 = "0q5bh511z6qdvagk831sb1nrp9gawsjv904106clkqwak3k55v54"; iosevka-ss01 = "07a6ghjzk8kf266bgqv8khx54cxl2hfkqnjq6n5s3bbahbs3fh4x";
iosevka-ss02 = "1qk250yydi3ff5z3s1099xrdzpwg62lr39wxl9539a2rl0awdw3w"; iosevka-ss02 = "06prf0jigh1xi00lg46qw4kp416psv1xkijdpbvjkmxgmcbnqx2s";
iosevka-ss03 = "02rblgk9j0bz7pyag3a8p4by76zj0z4gg8iignfff7j3yfszgfhp"; iosevka-ss03 = "03ga07y7nmcky3dschlk4cjg3lcxjqra6wvsb8q9vc39qz01cnxr";
iosevka-ss04 = "0z9aj5ll5mdgfm8brgwhwabbq31ws8qqzdyyf9s8mq30l0js2wd6"; iosevka-ss04 = "0d17p18kbh78f4w0pvslh3r0a52d207dyp4njrqxnpzjn2w8w1kg";
iosevka-ss05 = "00sclgj25vp3frk1wvlwb83z33xy45171m76jr5x9jspq5nr02fa"; iosevka-ss05 = "1qh1z1kffid718h2mc0f6wygkwkpc1rlj29h2ljigv8kdp4kcik6";
iosevka-ss06 = "1r9da69k47kiag7ba47panyj5sxgz6icpynbrnz7d7kvqwal842k"; iosevka-ss06 = "0b6gn7j5qa23qpay08ri6z9jrqkcsb8m67d84bqs419rw0wdhmfr";
iosevka-ss07 = "0lvdzfha27158bs5p3njyw6gnrm53mpdacaln1bh37mwd967b689"; iosevka-ss07 = "0f5bj8vn9frmmhg5b971gav7379xwlg439sm2vi79vjqlp5ls5gy";
iosevka-ss08 = "1l60yz475m780k6ds5h4n36p82av8ag28l1yr8z8gl7yznf2sf7b"; iosevka-ss08 = "0vqhywgly5w2j0nwmspa2ba7rk1n4jsb3lidngnpkpvpkr2w1n7z";
iosevka-ss09 = "058ln47yv5015c4xnhmyglvdqndbdp0v8n5w73cd73nzfb4y035j"; iosevka-ss09 = "1ysb28qwqjkxissqsiz67l3fj5kflf94baxwjjvqqi67f72kq8m4";
iosevka-ss10 = "0966wrbamjkyrjkirv2jzw86yr9l3d5vnb0azi93y0amcrkksmrw"; iosevka-ss10 = "11sdzyplb1bf8blzmj40brdnvy6z6yghvh91k27bf73rgdby7svk";
iosevka-ss11 = "0y3nhjn38jvcf4ngwgir5hg4vx9fsrfxzlshmynlf7bb6krvfnaq"; iosevka-ss11 = "0jrn998c8jrkjw7sa429kkgpfp897gdbikr0j9sc5b0fyjci0qdx";
iosevka-ss12 = "09hccisb2lrakjh7fnk43znixly7qbqclmsvhp9mlbpjvlzzq03j"; iosevka-ss12 = "1qrnp3s3abxryi2nf8x4m5l7z83iklksr8mgwcxi07cfi8ix87jr";
iosevka-ss13 = "117712kys0fihadpzrwqm3z25z390qjnhligr5k0wx8h0la9nwq3"; iosevka-ss13 = "0hs3m1vc3l54xj4flgyr8m4mklgqlzf3ffcvwlp8i4a5b9cdxczh";
iosevka-ss14 = "0iy4m64jnsi2b74hcmwxk0qabzgza08v9s56blg4i9mfmp8xvzlp"; iosevka-ss14 = "112l7skaplmrn16h8lw5288ivcw1wm7mvilqrmdgswmvyxkpqdzg";
iosevka-ss15 = "0mdqfal48sfq5n3a88cgsaddcc07qwqynr662zqqpjqy98kvaz62"; iosevka-ss15 = "13bbgjmw20d1dr6h8ckc2zaq0bilx494g5p94a2ighdm5d4sbk4y";
iosevka-ss16 = "0dkv3mzhl9vl7x9x0g6hc7j1mp9mnnyx7iamkvm8wcqjhwnvy0r6"; iosevka-ss16 = "180qfpp9ixjznk7srijbj1l2dzshb9wayqgvfmgqhl94fif23bja";
iosevka-ss17 = "1adb1z468wfa1b707kr0ycv5d5nxpmcx44q0dizik5zyx26aq10p"; iosevka-ss17 = "0f1r0zad32mdqgd0ik08q07ni46w6dm93npz633azn3l9ch6hd41";
} }

View file

@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
preInstall = '' preInstall = ''
mv zic.o zic.o.orig mv zic.o zic.o.orig
mv zic zic.orig mv zic zic.orig
make $makeFlags cc=${stdenv.cc.targetPrefix}cc AR=${stdenv.cc.targetPrefix}ar zic make $makeFlags cc=${stdenv.cc.nativePrefix}cc AR=${stdenv.cc.nativePrefix}ar zic
mv zic zic-native mv zic zic-native
mv zic.o.orig zic.o mv zic.o.orig zic.o
mv zic.orig zic mv zic.orig zic

View file

@ -8,18 +8,11 @@
, intltool , intltool
, gtk3 , gtk3
, libnotify , libnotify
, gnome-menus
, libxml2 , libxml2
, systemd
, upower
, gnome-online-accounts , gnome-online-accounts
, cinnamon-settings-daemon , cinnamon-settings-daemon
, colord , colord
, polkit , polkit
, ibus
, libpulseaudio
, isocodes
, kerberos
, libxkbfile , libxkbfile
, cinnamon-menus , cinnamon-menus
, dbus-glib , dbus-glib
@ -27,7 +20,6 @@
, libxklavier , libxklavier
, networkmanager , networkmanager
, libwacom , libwacom
, gnome3
, libtool , libtool
, wrapGAppsHook , wrapGAppsHook
, tzdata , tzdata

View file

@ -1,6 +1,5 @@
{ lib, stdenv { lib, stdenv
, fetchurl , fetchurl
, fetchpatch
, vala , vala
, meson , meson
, ninja , ninja

View file

@ -1,6 +1,5 @@
{ lib, stdenv { lib, stdenv
, fetchurl , fetchurl
, fetchpatch
, pkg-config , pkg-config
, gtk3 , gtk3
, vala , vala

View file

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "adoptopenjdk-icedtea-web"; pname = "adoptopenjdk-icedtea-web";
version = "1.8.4"; version = "1.8.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "AdoptOpenJDK"; owner = "AdoptOpenJDK";
repo = "IcedTea-Web"; repo = "IcedTea-Web";
rev = "icedtea-web-${version}"; rev = "icedtea-web-${version}";
sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n"; sha256 = "sha256-AC6D6n8jLdATXIXrDTHhs2QFnIZNaaZvJyFEqfxCxYQ=";
}; };
nativeBuildInputs = [ autoreconfHook pkg-config bc ]; nativeBuildInputs = [ autoreconfHook pkg-config bc ];

View file

@ -27,13 +27,13 @@ let
ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ])); ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "bluespec"; pname = "bluespec";
version = "unstable-2020.11.04"; version = "unstable-2021.02.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "B-Lang-org"; owner = "B-Lang-org";
repo = "bsc"; repo = "bsc";
rev = "103357f32cf63f2ca2b16ebc8e2c675ec5562464"; rev = "c085ecd807d85f31d102d8bec71f5c28dc96b31d";
sha256 = "0iikzx0fxky0fmc31lyxfldy1wixr2mayzcn24b8d76wd4ix1vk3"; sha256 = "0c86gwhrarw78cr9c9slb9vij6kcwx3x281kbqji96qqzs0dfb32";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -7,11 +7,11 @@ let
}; };
jdk = stdenv.mkDerivation rec { jdk = stdenv.mkDerivation rec {
name = "zulu11.2.3-jdk11.0.1"; name = "zulu11.43.21-ca-jdk11.0.9";
src = fetchurl { src = fetchurl {
url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz"; url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
sha256 = "1jxnxmy79inwf3146ygry1mzv3dj6yrzqll16j7dpr91x1p3dpqy"; sha256 = "1j19fb5mwdkfn6y8wfsnvxsz6wfpcab4xv439fqssxy520n6q4zs";
curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/"; curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/";
}; };

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils, nixosTests { stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils
, writeScript, common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }: , writeScript, common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }:
with lib; with lib;
@ -26,8 +26,8 @@ let
}; };
"2.13" = { "2.13" = {
version = "2.13.4"; version = "2.13.5";
sha256 = "1alcnzmxga00nsvgy8yky91zw5b4q0xg2697vrrdgjlglpxiqwdw"; sha256 = "1ah5rw6xqksiayi5i95r3pcff961q71ilishzn2kmg673z0j2b7d";
pname = "scala_2_13"; pname = "scala_2_13";
}; };
}; };
@ -49,20 +49,22 @@ stdenv.mkDerivation rec {
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];
installPhase = '' installPhase = ''
mkdir -p $out runHook preInstall
rm bin/*.bat mkdir -p $out
mv * $out rm bin/*.bat
# put docs in correct subdirectory mv * $out
mkdir -p $out/share/doc # put docs in correct subdirectory
mv $out/doc $out/share/doc/${name} mkdir -p $out/share/doc
mv $out/man $out/share/man mv $out/doc $out/share/doc/${name}
mv $out/man $out/share/man
for p in $(ls $out/bin/) ; do for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \ wrapProgram $out/bin/$p \
--prefix PATH ":" ${coreutils}/bin \ --prefix PATH ":" ${coreutils}/bin \
--prefix PATH ":" ${gnugrep}/bin \ --prefix PATH ":" ${gnugrep}/bin \
--prefix PATH ":" ${jre}/bin \ --prefix PATH ":" ${jre}/bin \
--set JAVA_HOME ${jre} --set JAVA_HOME ${jre}
done done
runHook postInstall
''; '';
doInstallCheck = true; doInstallCheck = true;

View file

@ -37,7 +37,10 @@ stdenv.mkDerivation rec {
libtool libtool
]; ];
patches = [ ./cpp-4.5.patch ]; patches = [
./cpp-4.5.patch
./CVE-2016-8605.patch
];
preBuild = '' preBuild = ''
sed -e '/lt_dlinit/a lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c sed -e '/lt_dlinit/a lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c

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