Merge branch 'staging-next' into staging

This commit is contained in:
Jan Tojnar 2020-04-16 10:10:38 +02:00
commit 4b706490da
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
224 changed files with 7017 additions and 4400 deletions

3
.gitignore vendored
View File

@ -16,3 +16,6 @@ result-*
/pkgs/development/libraries/qt-5/*/tmp/ /pkgs/development/libraries/qt-5/*/tmp/
/pkgs/desktops/kde-5/*/tmp/ /pkgs/desktops/kde-5/*/tmp/
/pkgs/development/mobile/androidenv/xml/* /pkgs/development/mobile/androidenv/xml/*
# generated by pkgs/common-updater/update-script.nix
update-git-commits.txt

View File

@ -1305,7 +1305,7 @@ installTargets = "install-bin install-doc";</programlisting>
</term> </term>
<listitem> <listitem>
<para> <para>
List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to <literal>lib bin sbin</literal>. List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to <literal>lib lib32 lib64 libexec bin sbin</literal>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -191,9 +191,23 @@ rec {
Example: Example:
(showOption ["foo" "bar" "baz"]) == "foo.bar.baz" (showOption ["foo" "bar" "baz"]) == "foo.bar.baz"
(showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux" (showOption ["foo" "bar.baz" "tux"]) == "foo.bar.baz.tux"
Placeholders will not be quoted as they are not actual values:
(showOption ["foo" "*" "bar"]) == "foo.*.bar"
(showOption ["foo" "<name>" "bar"]) == "foo.<name>.bar"
Unlike attributes, options can also start with numbers:
(showOption ["windowManager" "2bwm" "enable"]) == "windowManager.2bwm.enable"
*/ */
showOption = parts: concatMapStringsSep "." escapeNixIdentifier parts; showOption = parts: let
escapeOptionPart = part:
let
escaped = lib.strings.escapeNixString part;
in if escaped == "\"${part}\""
then part
else escaped;
in (concatStringsSep ".") (map escapeOptionPart parts);
showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files); showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files);
unknownModule = "<unknown-file>"; unknownModule = "<unknown-file>";

View File

@ -5302,6 +5302,12 @@
githubId = 133448; githubId = 133448;
name = "Mikołaj Siedlarek"; name = "Mikołaj Siedlarek";
}; };
msm = {
email = "msm@tailcall.net";
github = "msm-code";
githubId = 7026881;
name = "Jarosław Jedynak";
};
mstarzyk = { mstarzyk = {
email = "mstarzyk@gmail.com"; email = "mstarzyk@gmail.com";
github = "mstarzyk"; github = "mstarzyk";
@ -5714,6 +5720,16 @@
githubId = 108072; githubId = 108072;
name = "Slawomir Gonet"; name = "Slawomir Gonet";
}; };
oxalica = {
email = "oxalicc@pm.me";
github = "oxalica";
githubId = 14816024;
name = "oxalica";
keys = [{
longkeyid = "rsa4096/0xCED392DE0C483D00";
fingerprint = "5CB0 E9E5 D5D5 71F5 7F54 0FEA CED3 92DE 0C48 3D00";
}];
};
oxij = { oxij = {
email = "oxij@oxij.org"; email = "oxij@oxij.org";
github = "oxij"; github = "oxij";

View File

@ -3,7 +3,12 @@
, networkExpr , networkExpr
}: }:
let nodes = import networkExpr; in let
nodes = builtins.mapAttrs (vm: module: {
_file = "${networkExpr}@node-${vm}";
imports = [ module ];
}) (import networkExpr);
in
with import ../../../../lib/testing-python.nix { with import ../../../../lib/testing-python.nix {
inherit system; inherit system;

View File

@ -28,7 +28,7 @@ in
browser = mkOption { browser = mkOption {
type = types.str; type = types.str;
default = concatStringsSep " " [ ''${pkgs.chromium}/bin/chromium'' default = concatStringsSep " " [ ''${pkgs.chromium}/bin/chromium''
''--user-data-dir=$HOME/.chromium-captive'' ''--user-data-dir=''${XDG_DATA_HOME:-$HOME/.local/share}/chromium-captive''
''--proxy-server="socks5://$PROXY"'' ''--proxy-server="socks5://$PROXY"''
''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"'' ''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
''--no-first-run'' ''--no-first-run''

View File

@ -330,13 +330,14 @@ in
User = data.user; User = data.user;
Group = data.group; Group = data.group;
PrivateTmp = true; PrivateTmp = true;
StateDirectory = "acme/.lego/${cert} ${lpath}"; StateDirectory = "acme/.lego/${cert} acme/.lego/accounts ${lpath}";
StateDirectoryMode = if data.allowKeysForGroup then "750" else "700"; StateDirectoryMode = if data.allowKeysForGroup then "750" else "700";
WorkingDirectory = spath; WorkingDirectory = spath;
# Only try loading the credentialsFile if the dns challenge is enabled # Only try loading the credentialsFile if the dns challenge is enabled
EnvironmentFile = if data.dnsProvider != null then data.credentialsFile else null; EnvironmentFile = if data.dnsProvider != null then data.credentialsFile else null;
ExecStart = pkgs.writeScript "acme-start" '' ExecStart = pkgs.writeScript "acme-start" ''
#!${pkgs.runtimeShell} -e #!${pkgs.runtimeShell} -e
test -L ${spath}/accounts -o -d ${spath}/accounts || ln -s ../accounts ${spath}/accounts
${pkgs.lego}/bin/lego ${renewOpts} || ${pkgs.lego}/bin/lego ${runOpts} ${pkgs.lego}/bin/lego ${renewOpts} || ${pkgs.lego}/bin/lego ${runOpts}
''; '';
ExecStartPost = ExecStartPost =

View File

@ -99,14 +99,16 @@ in
environment.systemPackages = [cfg.package]; environment.systemPackages = [cfg.package];
users.users.boinc = { users.users.boinc = {
group = "boinc";
createHome = false; createHome = false;
description = "BOINC Client"; description = "BOINC Client";
home = cfg.dataDir; home = cfg.dataDir;
isSystemUser = true; isSystemUser = true;
}; };
users.groups.boinc = {};
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d '${cfg.dataDir}' - boinc - - -" "d '${cfg.dataDir}' - boinc boinc - -"
]; ];
systemd.services.boinc = { systemd.services.boinc = {
@ -114,7 +116,7 @@ in
after = ["network.target"]; after = ["network.target"];
wantedBy = ["multi-user.target"]; wantedBy = ["multi-user.target"];
script = '' script = ''
${fhsEnvExecutable} --dir ${cfg.dataDir} --redirectio ${allowRemoteGuiRpcFlag} ${fhsEnvExecutable} --dir ${cfg.dataDir} ${allowRemoteGuiRpcFlag}
''; '';
serviceConfig = { serviceConfig = {
User = "boinc"; User = "boinc";

View File

@ -138,6 +138,7 @@ in {
services.nginx = mkIf (cfg.virtualHost != null) { services.nginx = mkIf (cfg.virtualHost != null) {
enable = true; enable = true;
recommendedProxySettings = true;
virtualHosts.${cfg.virtualHost} = { virtualHosts.${cfg.virtualHost} = {
locations.${cfg.contextPath}.proxyPass = "http://${cfg.listenAddress}:${toString cfg.port}"; locations.${cfg.contextPath}.proxyPass = "http://${cfg.listenAddress}:${toString cfg.port}";
}; };

View File

@ -177,7 +177,7 @@ in
wrapper = {}; wrapper = {};
} }
// lib.optionalAttrs (config.services.httpd.enable) { apache-webapplication = { // lib.optionalAttrs (config.services.httpd.enable) { apache-webapplication = {
documentRoot = config.services.httpd.documentRoot; documentRoot = config.services.httpd.virtualHosts.localhost.documentRoot;
}; } }; }
// lib.optionalAttrs (config.services.tomcat.axis2.enable) { axis2-webservice = {}; } // lib.optionalAttrs (config.services.tomcat.axis2.enable) { axis2-webservice = {}; }
// lib.optionalAttrs (config.services.ejabberd.enable) { ejabberd-dump = { // lib.optionalAttrs (config.services.ejabberd.enable) { ejabberd-dump = {

View File

@ -21,6 +21,8 @@ let
"--config.file /tmp/alert-manager-substituted.yaml" "--config.file /tmp/alert-manager-substituted.yaml"
"--web.listen-address ${cfg.listenAddress}:${toString cfg.port}" "--web.listen-address ${cfg.listenAddress}:${toString cfg.port}"
"--log.level ${cfg.logLevel}" "--log.level ${cfg.logLevel}"
"--storage.path /var/lib/alertmanager"
(toString (map (peer: "--cluster.peer ${peer}:9094") cfg.clusterPeers))
] ++ (optional (cfg.webExternalUrl != null) ] ++ (optional (cfg.webExternalUrl != null)
"--web.external-url ${cfg.webExternalUrl}" "--web.external-url ${cfg.webExternalUrl}"
) ++ (optional (cfg.logFormat != null) ) ++ (optional (cfg.logFormat != null)
@ -120,6 +122,14 @@ in {
''; '';
}; };
clusterPeers = mkOption {
type = types.listOf types.str;
default = [];
description = ''
Initial peers for HA cluster.
'';
};
extraFlags = mkOption { extraFlags = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
@ -162,6 +172,7 @@ in {
''; '';
serviceConfig = { serviceConfig = {
Restart = "always"; Restart = "always";
StateDirectory = "alertmanager";
DynamicUser = true; # implies PrivateTmp DynamicUser = true; # implies PrivateTmp
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile; EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
WorkingDirectory = "/tmp"; WorkingDirectory = "/tmp";

View File

@ -14,7 +14,9 @@ let
user = ${cfg.user} user = ${cfg.user}
show-password-label = true show-password-label = true
password-label-text = Password: password-label-text = Password:
invalid-password-text = Invalid Password
show-input-cursor = true show-input-cursor = true
password-alignment = right
[greeter-hotkeys] [greeter-hotkeys]
mod-key = meta mod-key = meta
@ -26,6 +28,8 @@ let
[greeter-theme] [greeter-theme]
font = Sans font = Sans
font-size = 1em font-size = 1em
font-weight = bold
font-style = normal
text-color = "#080800" text-color = "#080800"
error-color = "#F8F8F0" error-color = "#F8F8F0"
background-image = "${ldmcfg.background}" background-image = "${ldmcfg.background}"
@ -36,6 +40,8 @@ let
layout-space = 15 layout-space = 15
password-color = "#F8F8F0" password-color = "#F8F8F0"
password-background-color = "#1B1D1E" password-background-color = "#1B1D1E"
password-border-color = "#080800"
password-border-width = 2px
${cfg.extraConfig} ${cfg.extraConfig}
''; '';

View File

@ -184,7 +184,11 @@ in {
'' ''
Option "DragLockButtons" "L1 B1 L2 B2" Option "DragLockButtons" "L1 B1 L2 B2"
''; '';
description = "Additional options for libinput touchpad driver."; description = ''
Additional options for libinput touchpad driver. See
<citerefentry><refentrytitle>libinput</refentrytitle><manvolnum>4</manvolnum></citerefentry>
for available options.";
'';
}; };
}; };

View File

@ -114,7 +114,9 @@ in rec {
(if isList value then value else [value])) (if isList value then value else [value]))
as)); as));
generateUnits = type: units: upstreamUnits: upstreamWants: generateUnits = generateUnits' true;
generateUnits' = allowCollisions: type: units: upstreamUnits: upstreamWants:
pkgs.runCommand "${type}-units" pkgs.runCommand "${type}-units"
{ preferLocalBuild = true; { preferLocalBuild = true;
allowSubstitutes = false; allowSubstitutes = false;
@ -182,8 +184,13 @@ in rec {
if [ "$(readlink -f $i/$fn)" = /dev/null ]; then if [ "$(readlink -f $i/$fn)" = /dev/null ]; then
ln -sfn /dev/null $out/$fn ln -sfn /dev/null $out/$fn
else else
${if allowCollisions then ''
mkdir -p $out/$fn.d mkdir -p $out/$fn.d
ln -s $i/$fn $out/$fn.d/overrides.conf ln -s $i/$fn $out/$fn.d/overrides.conf
'' else ''
echo "Found multiple derivations configuring $fn!"
exit 1
''}
fi fi
else else
ln -fs $i/$fn $out/ ln -fs $i/$fn $out/

View File

@ -116,7 +116,7 @@ in {
in in
mkMerge [ mkMerge [
(mkIf (cfg != {}) { (mkIf (cfg != {}) {
environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits "nspawn" units [] []); environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits' false "nspawn" units [] []);
}) })
{ {
systemd.targets.multi-user.wants = [ "machines.target" ]; systemd.targets.multi-user.wants = [ "machines.target" ];

View File

@ -237,6 +237,38 @@ let
''; '';
}; };
createNetworkLink = i:
let
deviceDependency = if (config.boot.isContainer || i.name == "lo")
then []
else [ (subsystemDevice i.name) ];
in
nameValuePair "network-link-${i.name}"
{ description = "Link configuration of ${i.name}";
wantedBy = [ "network-interfaces.target" ];
before = [ "network-interfaces.target" ];
bindsTo = deviceDependency;
after = [ "network-pre.target" ] ++ deviceDependency;
path = [ pkgs.iproute ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script =
''
echo "Configuring link..."
'' + optionalString (i.macAddress != null) ''
echo "setting MAC address to ${i.macAddress}..."
ip link set "${i.name}" address "${i.macAddress}"
'' + optionalString (i.mtu != null) ''
echo "setting MTU to ${toString i.mtu}..."
ip link set "${i.name}" mtu "${toString i.mtu}"
'' + ''
echo -n "bringing up interface... "
ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1)
'';
};
createTunDevice = i: nameValuePair "${i.name}-netdev" createTunDevice = i: nameValuePair "${i.name}-netdev"
{ description = "Virtual Network Interface ${i.name}"; { description = "Virtual Network Interface ${i.name}";
bindsTo = [ "dev-net-tun.device" ]; bindsTo = [ "dev-net-tun.device" ];
@ -508,6 +540,7 @@ let
}); });
in listToAttrs ( in listToAttrs (
map createNetworkLink interfaces ++
map configureAddrs interfaces ++ map configureAddrs interfaces ++
map createTunDevice (filter (i: i.virtual) interfaces)) map createTunDevice (filter (i: i.virtual) interfaces))
// mapAttrs' createBridgeDevice cfg.bridges // mapAttrs' createBridgeDevice cfg.bridges

View File

@ -94,7 +94,12 @@ in
address = forEach (interfaceIps i) address = forEach (interfaceIps i)
(ip: "${ip.address}/${toString ip.prefixLength}"); (ip: "${ip.address}/${toString ip.prefixLength}");
networkConfig.IPv6PrivacyExtensions = "kernel"; networkConfig.IPv6PrivacyExtensions = "kernel";
} ]; linkConfig = optionalAttrs (i.macAddress != null) {
MACAddress = i.macAddress;
} // optionalAttrs (i.mtu != null) {
MTUBytes = toString i.mtu;
};
}];
}))) })))
(mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: { (mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: {
netdevs."40-${name}" = { netdevs."40-${name}" = {

View File

@ -1031,6 +1031,11 @@ in
message = '' message = ''
Temporary addresses are only needed when IPv6 is enabled. Temporary addresses are only needed when IPv6 is enabled.
''; '';
})) ++ (forEach interfaces (i: {
assertion = (i.virtual && i.virtualType == "tun") -> i.macAddress == null;
message = ''
Setting a MAC Address for tun device ${i.name} isn't supported.
'';
})) ++ [ })) ++ [
{ {
assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId); assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId);
@ -1140,38 +1145,7 @@ in
${cfg.localCommands} ${cfg.localCommands}
''; '';
}; };
} // (listToAttrs (forEach interfaces (i:
let
deviceDependency = if (config.boot.isContainer || i.name == "lo")
then []
else [ (subsystemDevice i.name) ];
in
nameValuePair "network-link-${i.name}"
{ description = "Link configuration of ${i.name}";
wantedBy = [ "network-interfaces.target" ];
before = [ "network-interfaces.target" ];
bindsTo = deviceDependency;
after = [ "network-pre.target" ] ++ deviceDependency;
path = [ pkgs.iproute ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
}; };
script =
''
echo "Configuring link..."
'' + optionalString (i.macAddress != null) ''
echo "setting MAC address to ${i.macAddress}..."
ip link set "${i.name}" address "${i.macAddress}"
'' + optionalString (i.mtu != null) ''
echo "setting MTU to ${toString i.mtu}..."
ip link set "${i.name}" mtu "${toString i.mtu}"
'' + ''
echo -n "bringing up interface... "
ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1)
'';
})));
services.mstpd = mkIf needsMstpd { enable = true; }; services.mstpd = mkIf needsMstpd { enable = true; };
virtualisation.vswitch = mkIf (cfg.vswitches != { }) { enable = true; }; virtualisation.vswitch = mkIf (cfg.vswitches != { }) { enable = true; };

View File

@ -0,0 +1,69 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.hyperv;
in {
options = {
hyperv = {
baseImageSize = mkOption {
type = types.int;
default = 2048;
description = ''
The size of the hyper-v base image in MiB.
'';
};
vmDerivationName = mkOption {
type = types.str;
default = "nixos-hyperv-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
description = ''
The name of the derivation for the hyper-v appliance.
'';
};
vmFileName = mkOption {
type = types.str;
default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vhdx";
description = ''
The file name of the hyper-v appliance.
'';
};
};
};
config = {
system.build.hypervImage = import ../../lib/make-disk-image.nix {
name = cfg.vmDerivationName;
postVM = ''
${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=dynamic -O vhdx $diskImage $out/${cfg.vmFileName}
'';
format = "raw";
diskSize = cfg.baseImageSize;
partitionTableType = "efi";
inherit config lib pkgs;
};
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
autoResize = true;
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/ESP";
fsType = "vfat";
};
boot.growPartition = true;
boot.loader.grub = {
version = 2;
device = "nodev";
efiSupport = true;
efiInstallAsRemovable = true;
};
virtualisation.hypervGuest.enable = true;
};
}

View File

@ -1,20 +1,24 @@
import ./make-test.nix ({ pkgs, ...} : { import ./make-test-python.nix ({ lib, ...} : {
name = "flannel"; name = "flannel";
meta = with pkgs.stdenv.lib.maintainers; { meta = with lib.maintainers; {
maintainers = [ offline ]; maintainers = [ offline ];
}; };
nodes = let nodes = let
flannelConfig = { flannelConfig = { pkgs, ... } : {
services.flannel = { services.flannel = {
enable = true; enable = true;
backend = {
Type = "udp";
Port = 8285;
};
network = "10.1.0.0/16"; network = "10.1.0.0/16";
iface = "eth1"; iface = "eth1";
etcd.endpoints = ["http://etcd:2379"]; etcd.endpoints = ["http://etcd:2379"];
}; };
networking.firewall.allowedUDPPorts = [ 8472 ]; networking.firewall.allowedUDPPorts = [ 8285 ];
}; };
in { in {
etcd = { ... }: { etcd = { ... }: {
@ -32,25 +36,22 @@ import ./make-test.nix ({ pkgs, ...} : {
networking.firewall.allowedTCPPorts = [ 2379 ]; networking.firewall.allowedTCPPorts = [ 2379 ];
}; };
node1 = { ... }: { node1 = flannelConfig;
require = [flannelConfig]; node2 = flannelConfig;
};
node2 = { ... }: {
require = [flannelConfig];
};
}; };
testScript = '' testScript = ''
startAll; start_all()
$node1->waitForUnit("flannel.service"); node1.wait_for_unit("flannel.service")
$node2->waitForUnit("flannel.service"); node2.wait_for_unit("flannel.service")
my $ip1 = $node1->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'"); node1.wait_until_succeeds("ip l show dev flannel0")
my $ip2 = $node2->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'"); ip1 = node1.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'")
node2.wait_until_succeeds("ip l show dev flannel0")
ip2 = node2.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'")
$node1->waitUntilSucceeds("ping -c 1 $ip2"); node1.wait_until_succeeds(f"ping -c 1 {ip2}")
$node2->waitUntilSucceeds("ping -c 1 $ip1"); node2.wait_until_succeeds(f"ping -c 1 {ip1}")
''; '';
}) })

View File

@ -1,6 +1,7 @@
import ./make-test-python.nix ( import ./make-test-python.nix (
{ pkgs, ... }: let { pkgs, ... }: let
domain = "whatever.example.com"; domain = "whatever.example.com";
password = "false;foo;exit;withspecialcharacters";
in in
{ {
name = "iodine"; name = "iodine";
@ -21,7 +22,7 @@ import ./make-test-python.nix (
services.iodine.server = { services.iodine.server = {
enable = true; enable = true;
ip = "10.53.53.1/24"; ip = "10.53.53.1/24";
passwordFile = "${builtins.toFile "password" "foo"}"; passwordFile = "${builtins.toFile "password" password}";
inherit domain; inherit domain;
}; };
@ -41,7 +42,7 @@ import ./make-test-python.nix (
server = domain; server = domain;
}; };
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"f /root/pw 0666 root root - foo" "f /root/pw 0666 root root - ${password}"
]; ];
environment.systemPackages = [ environment.systemPackages = [
pkgs.nagiosPluginsOfficial pkgs.nagiosPluginsOfficial

View File

@ -200,6 +200,7 @@ let
useDHCP = false; useDHCP = false;
interfaces.eth1 = { interfaces.eth1 = {
ipv4.addresses = mkOverride 0 [ ]; ipv4.addresses = mkOverride 0 [ ];
mtu = 1343;
useDHCP = true; useDHCP = true;
}; };
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ]; interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
@ -216,6 +217,9 @@ let
with subtest("Wait until we have an ip address on each interface"): with subtest("Wait until we have an ip address on each interface"):
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'") client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
with subtest("ensure MTU is set"):
assert "mtu 1343" in client.succeed("ip link show dev eth1")
with subtest("Test vlan 1"): with subtest("Test vlan 1"):
client.wait_until_succeeds("ping -c 1 192.168.1.1") client.wait_until_succeeds("ping -c 1 192.168.1.1")
client.wait_until_succeeds("ping -c 1 192.168.1.2") client.wait_until_succeeds("ping -c 1 192.168.1.2")
@ -455,11 +459,14 @@ let
ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ]; ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ]; ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
virtual = true; virtual = true;
mtu = 1342;
macAddress = "02:de:ad:be:ef:01";
}; };
networking.interfaces.tun0 = { networking.interfaces.tun0 = {
ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ]; ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
ipv6.addresses = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ]; ipv6.addresses = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
virtual = true; virtual = true;
mtu = 1343;
}; };
}; };
@ -471,7 +478,7 @@ let
with subtest("Wait for networking to come up"): with subtest("Wait for networking to come up"):
machine.start() machine.start()
machine.wait_for_unit("network-online.target") machine.wait_for_unit("network.target")
with subtest("Test interfaces set up"): with subtest("Test interfaces set up"):
list = machine.succeed("ip tuntap list | sort").strip() list = machine.succeed("ip tuntap list | sort").strip()
@ -486,7 +493,12 @@ let
""".format( """.format(
list, targetList list, targetList
) )
with subtest("Test MTU and MAC Address are configured"):
assert "mtu 1342" in machine.succeed("ip link show dev tap0")
assert "mtu 1343" in machine.succeed("ip link show dev tun0")
assert "02:de:ad:be:ef:01" in machine.succeed("ip link show dev tap0")
'' # network-addresses-* only exist in scripted networking
+ optionalString (!networkd) ''
with subtest("Test interfaces clean up"): with subtest("Test interfaces clean up"):
machine.succeed("systemctl stop network-addresses-tap0") machine.succeed("systemctl stop network-addresses-tap0")
machine.sleep(10) machine.sleep(10)
@ -602,17 +614,17 @@ let
}; };
testScript = '' testScript = ''
targetIPv4Table = """ targetIPv4Table = [
10.0.0.0/16 proto static scope link mtu 1500 "10.0.0.0/16 proto static scope link mtu 1500",
192.168.1.0/24 proto kernel scope link src 192.168.1.2 "192.168.1.0/24 proto kernel scope link src 192.168.1.2",
192.168.2.0/24 via 192.168.1.1 proto static "192.168.2.0/24 via 192.168.1.1 proto static",
""".strip() ]
targetIPv6Table = """ targetIPv6Table = [
2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium "2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium",
2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium "2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium",
fdfd:b3f0::/48 proto static metric 1024 pref medium "fdfd:b3f0::/48 proto static metric 1024 pref medium",
""".strip() ]
machine.start() machine.start()
machine.wait_for_unit("network.target") machine.wait_for_unit("network.target")
@ -620,9 +632,9 @@ let
with subtest("test routing tables"): with subtest("test routing tables"):
ipv4Table = machine.succeed("ip -4 route list dev eth0 | head -n3").strip() ipv4Table = machine.succeed("ip -4 route list dev eth0 | head -n3").strip()
ipv6Table = machine.succeed("ip -6 route list dev eth0 | head -n3").strip() ipv6Table = machine.succeed("ip -6 route list dev eth0 | head -n3").strip()
assert ( assert [
ipv4Table == targetIPv4Table l.strip() for l in ipv4Table.splitlines()
), """ ] == targetIPv4Table, """
The IPv4 routing table does not match the expected one: The IPv4 routing table does not match the expected one:
Result: Result:
{} {}
@ -631,9 +643,9 @@ let
""".format( """.format(
ipv4Table, targetIPv4Table ipv4Table, targetIPv4Table
) )
assert ( assert [
ipv6Table == targetIPv6Table l.strip() for l in ipv6Table.splitlines()
), """ ] == targetIPv6Table, """
The IPv6 routing table does not match the expected one: The IPv6 routing table does not match the expected one:
Result: Result:
{} {}

View File

@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "carla"; pname = "carla";
version = "2.0.0"; version = "2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "falkTX"; owner = "falkTX";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0fqgncqlr86n38yy7pa118mswfacmfczj7w9xx6c6k0jav3wk29k"; sha256 = "074y40yrgl3qrdr3a5vn0scsw0qv77r5p5m6gc89zhf20ic8ajzc";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lightdm-mini-greeter"; pname = "lightdm-mini-greeter";
version = "0.3.4"; version = "0.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "prikhi"; owner = "prikhi";
repo = "lightdm-mini-greeter"; repo = "lightdm-mini-greeter";
rev = version; rev = version;
sha256 = "1qi0bsqi8z2zv3303ww0kd7bciz6qx8na5bkvgrqlwyvq31czai5"; sha256 = "10hga7pmfyjdvj4xwm3djwrhk50brcpycj3p3c57pa0vnx4ill3s";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ]; nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ mnacamura prikhi ]; maintainers = with maintainers; [ mnacamura prikhi ];
platforms = platforms.linux; platforms = platforms.linux;
changelog = "https://github.com/prikhi/lightdm-mini-greeter/blob/master/CHANGELOG.md";
}; };
} }

View File

@ -1,18 +1,16 @@
{ stdenv, fetchurl { stdenv, fetchurl, ncurses, gpm }:
, ncurses, gpm
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "jupp"; pname = "jupp";
version = "3.1"; version = "39";
srcName = "joe-3.1jupp31"; srcName = "joe-3.1${pname}${version}";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz" "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
"https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ]; "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
sha256 = "1fnf9jsd6p4jyybkhjjs328qx38ywy8w029ngc7j7kqp0ixn0l0s"; sha256 = "14gys92dy3kq9ikigry7q2x4w5v2z76d97vp212bddrxiqy5np8d";
}; };
preConfigure = "chmod +x ./configure"; preConfigure = "chmod +x ./configure";
@ -37,7 +35,7 @@ stdenv.mkDerivation rec {
and has a lot of bugs fixed. It is based upon an older version of joe and has a lot of bugs fixed. It is based upon an older version of joe
because these behave better overall. because these behave better overall.
''; '';
homepage = "http://mirbsd.de/jupp"; homepage = "http://www.mirbsd.org/jupp.htm";
license = licenses.gpl1; license = licenses.gpl1;
maintainers = with maintainers; [ AndersonTorres ]; maintainers = with maintainers; [ AndersonTorres ];
}; };

View File

@ -1,54 +1,62 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, perlPackages, libXft { stdenv
, libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm2 , boehmgc
, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper , boost
, gsl, gtkspell2, cairo, python2, poppler, imagemagick, libwpg, librevenge , cairo
, libvisio, libcdr, libexif, potrace, cmake , cmake
, librsvg, wrapGAppsHook , fetchpatch
, fetchurl
, gettext
, glib
, glibmm
, gsl
, gtkmm2
, gtkspell2
, imagemagick
, lcms
, libcdr
, libexif
, libpng
, librevenge
, librsvg
, libsigcxx
, libvisio
, libwpg
, libXft
, libxml2
, libxslt
, makeWrapper
, perlPackages
, pkg-config
, poppler
, popt
, potrace
, python3
, wrapGAppsHook
, zlib
}: }:
let let
python2Env = python2.withPackages(ps: with ps; python3Env = python3.withPackages
[ numpy lxml scour ]); (ps: with ps; [
numpy
lxml
scour
]);
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "inkscape-0.92.4"; pname = "inkscape";
version = "0.92.5";
src = fetchurl { src = fetchurl {
url = "https://media.inkscape.org/dl/resources/file/${name}.tar.bz2"; url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.bz2";
sha256 = "0pjinhjibfsz1aywdpgpj3k23xrsszpj4a1ya5562dkv2yl2vv2p"; sha256 = "ge5/aeK9ZKlzQ9g5Wkp6eQWyG4YVZu1eXZF5F41Rmgs=";
}; };
patches = [
(fetchpatch {
name = "inkscape-poppler_0_76_compat.patch";
url = "https://gitlab.com/inkscape/inkscape/commit/e831b034746f8dc3c3c1b88372751f6dcb974831.diff";
sha256 = "096rdyi6ppjq1h9jwwsm9hb99nggfrfinik8rm23jkn4h2zl01zf";
})
(fetchpatch {
name = "inkscape-poppler_0_82_compat.patch";
url = "https://gitlab.com/inkscape/inkscape/commit/835b6bb62be565efab986d5a3f30a672ad56c7eb.patch";
sha256 = "02c6sxi2w52b885vr3pgani6kvxp9gdqqk2jgiykkdzv70hhrnm7";
})
(fetchpatch {
name = "inkscape-poppler_0_83_compat.patch";
url = "https://gitlab.com/inkscape/inkscape/commit/b5360a807b12d4e8318475ffd0464b84882788b5.patch";
sha256 = "1p44rr2q2i3zkd1y1j7xgdcbgx8yvlq6hq92im8s0bkjby6p5cpz";
})
];
# Inkscape hits the ARGMAX when linking on macOS. It appears to be # Inkscape hits the ARGMAX when linking on macOS. It appears to be
# CMakes ARGMAX check doesnt offer enough padding for NIX_LDFLAGS. # CMakes ARGMAX check doesnt offer enough padding for NIX_LDFLAGS.
# Setting strictDeps it avoids duplicating some dependencies so it # Setting strictDeps it avoids duplicating some dependencies so it
# will leave us under ARGMAX. # will leave us under ARGMAX.
strictDeps = true; strictDeps = true;
unpackPhase = ''
cp $src ${name}.tar.bz2
tar xvjf ${name}.tar.bz2 > /dev/null
cd ${name}
'';
postPatch = '' postPatch = ''
patchShebangs share/extensions patchShebangs share/extensions
patchShebangs fix-roff-punct patchShebangs fix-roff-punct
@ -56,24 +64,52 @@ stdenv.mkDerivation rec {
# Python is used at run-time to execute scripts, e.g., those from # Python is used at run-time to execute scripts, e.g., those from
# the "Effects" menu. # the "Effects" menu.
substituteInPlace src/extension/implementation/script.cpp \ substituteInPlace src/extension/implementation/script.cpp \
--replace '"python-interpreter", "python"' '"python-interpreter", "${python2Env}/bin/python"' --replace '"python-interpreter", "python"' '"python-interpreter", "${python3Env}/bin/python"'
''; '';
nativeBuildInputs = [ pkgconfig cmake makeWrapper python2Env wrapGAppsHook ] nativeBuildInputs = [
++ (with perlPackages; [ perl XMLParser ]); pkg-config
cmake
makeWrapper
python3Env
wrapGAppsHook
] ++ (with perlPackages; [
perl
XMLParser
]);
buildInputs = [ buildInputs = [
libXft libpng zlib popt boehmgc boehmgc
libxml2 libxslt glib gtkmm2 glibmm libsigcxx lcms boost gettext boost
gsl poppler imagemagick libwpg librevenge gettext
libvisio libcdr libexif potrace glib
glibmm
gsl
gtkmm2
imagemagick
lcms
libcdr
libexif
libpng
librevenge
librsvg # for loading icons librsvg # for loading icons
libsigcxx
python2Env perlPackages.perl libvisio
] ++ stdenv.lib.optional (!stdenv.isDarwin) gtkspell2 libwpg
++ stdenv.lib.optional stdenv.isDarwin cairo; libXft
libxml2
enableParallelBuilding = true; libxslt
perlPackages.perl
poppler
popt
potrace
python3Env
zlib
] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
gtkspell2
] ++ stdenv.lib.optionals stdenv.isDarwin [
cairo
];
# Make sure PyXML modules can be found at run-time. # Make sure PyXML modules can be found at run-time.
postInstall = stdenv.lib.optionalString stdenv.isDarwin '' postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
@ -82,9 +118,10 @@ stdenv.mkDerivation rec {
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
license = "GPL";
homepage = "https://www.inkscape.org";
description = "Vector graphics editor"; description = "Vector graphics editor";
homepage = "https://www.inkscape.org";
license = licenses.gpl3Plus;
maintainers = [ maintainers.jtojnar ];
platforms = platforms.all; platforms = platforms.all;
longDescription = '' longDescription = ''
Inkscape is a feature-rich vector graphics editor that edits Inkscape is a feature-rich vector graphics editor that edits

View File

@ -1,9 +1,10 @@
{ stdenv, cmake, fetchFromGitHub, pkgconfig, boost, exiv2, fftwFloat, gsl { stdenv, mkDerivation, cmake, fetchFromGitHub, pkgconfig
, boost, exiv2, fftwFloat, gsl
, ilmbase, lcms2, libraw, libtiff, openexr , ilmbase, lcms2, libraw, libtiff, openexr
, qtbase, qtdeclarative, qttools, qtwebengine, eigen , qtbase, qtdeclarative, qttools, qtwebengine, eigen
}: }:
stdenv.mkDerivation rec { mkDerivation rec {
pname = "luminance-hdr"; pname = "luminance-hdr";
version = "2.6.0"; version = "2.6.0";

View File

@ -90,6 +90,7 @@ let
kalarm = callPackage ./kalarm.nix {}; kalarm = callPackage ./kalarm.nix {};
kalarmcal = callPackage ./kalarmcal.nix {}; kalarmcal = callPackage ./kalarmcal.nix {};
kate = callPackage ./kate.nix {}; kate = callPackage ./kate.nix {};
kbreakout = callPackage ./kbreakout.nix {};
kcachegrind = callPackage ./kcachegrind.nix {}; kcachegrind = callPackage ./kcachegrind.nix {};
kcalc = callPackage ./kcalc.nix {}; kcalc = callPackage ./kcalc.nix {};
kcalutils = callPackage ./kcalutils.nix {}; kcalutils = callPackage ./kcalutils.nix {};
@ -146,6 +147,7 @@ let
krdc = callPackage ./krdc.nix {}; krdc = callPackage ./krdc.nix {};
krfb = callPackage ./krfb.nix {}; krfb = callPackage ./krfb.nix {};
kruler = callPackage ./kruler.nix {}; kruler = callPackage ./kruler.nix {};
kspaceduel = callPackage ./kspaceduel.nix {};
ksudoku = callPackage ./ksudoku.nix {}; ksudoku = callPackage ./ksudoku.nix {};
ksystemlog = callPackage ./ksystemlog.nix {}; ksystemlog = callPackage ./ksystemlog.nix {};
ktnef = callPackage ./ktnef.nix {}; ktnef = callPackage ./ktnef.nix {};

View File

@ -0,0 +1,22 @@
{ mkDerivation, lib
, extra-cmake-modules
, cmake
, kdbusaddons
, ki18n
, kconfigwidgets
, kcrash
, kxmlgui
, libkdegames
}:
mkDerivation {
name = "kbreakout";
meta.license = with lib.licenses; [ lgpl21 gpl3 ];
outputs = [ "out" "dev" ];
nativeBuildInputs = [
cmake extra-cmake-modules
];
propagatedBuildInputs = [
kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames
];
}

View File

@ -0,0 +1,22 @@
{ mkDerivation, lib
, extra-cmake-modules
, cmake
, kdbusaddons
, ki18n
, kconfigwidgets
, kcrash
, kxmlgui
, libkdegames
}:
mkDerivation {
name = "kspaceduel";
meta.license = with lib.licenses; [ lgpl21 gpl3 ];
outputs = [ "out" "dev" ];
nativeBuildInputs = [
cmake extra-cmake-modules
];
propagatedBuildInputs = [
kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames
];
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "blugon"; pname = "blugon";
version = "1.12.0"; version = "1.12.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jumper149"; owner = "jumper149";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0vdhq8v011awhpkccbcmigj9c46widyzh0m5knafapanai3kv7ii"; sha256 = "1i67v8jxvavgax3dwvns200iwwdcvgki04liq0x64q52lg0vrh7m";
}; };
buildInputs = [ python3 libX11 libXrandr ]; buildInputs = [ python3 libX11 libXrandr ];

View File

@ -122,7 +122,16 @@ mkDerivation rec {
export PODOFO_INC_DIR=${podofo.dev}/include/podofo export PODOFO_INC_DIR=${podofo.dev}/include/podofo
export PODOFO_LIB_DIR=${podofo.lib}/lib export PODOFO_LIB_DIR=${podofo.lib}/lib
export SIP_BIN=${pypkgs.sip}/bin/sip export SIP_BIN=${pypkgs.sip}/bin/sip
${pypkgs.python.interpreter} setup.py install --prefix=$out export XDG_DATA_HOME=$out/share
export XDG_UTILS_INSTALL_MODE="user"
${pypkgs.python.interpreter} setup.py install --root=$out \
--prefix=$out \
--libdir=$out/lib \
--staging-root=$out \
--staging-libdir=$out/lib \
--staging-sharedir=$out/share
PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
$out/lib/calibre/calibre/ebooks/metadata/*.py $out/lib/calibre/calibre/ebooks/metadata/*.py
@ -131,13 +140,6 @@ mkDerivation rec {
sed -i "s/env python[0-9.]*/python/" $PYFILES sed -i "s/env python[0-9.]*/python/" $PYFILES
sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre
# Replace @out@ by the output path.
mkdir -p $out/share/applications/
cp {$calibreDesktopItem,$ebookEditDesktopItem,$ebookViewerDesktopItem}/share/applications/* $out/share/applications/
for entry in $out/share/applications/*.desktop; do
substituteAllInPlace $entry
done
mkdir -p $out/share mkdir -p $out/share
cp -a man-pages $out/share/man cp -a man-pages $out/share/man
@ -165,79 +167,6 @@ mkDerivation rec {
disallowedReferences = [ podofo.dev ]; disallowedReferences = [ podofo.dev ];
calibreDesktopItem = makeDesktopItem {
fileValidation = false; # fails before substitution
name = "calibre-gui";
desktopName = "calibre";
exec = "@out@/bin/calibre --detach %F";
genericName = "E-book library management";
icon = "@out@/share/calibre/images/library.png";
comment = "Manage, convert, edit, and read e-books";
mimeType = lib.concatStringsSep ";" [
"application/x-mobipocket-subscription"
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
"text/html"
"application/x-cbc"
"application/ereader"
"application/oebps-package+xml"
"image/vnd.djvu"
"application/x-sony-bbeb"
"application/vnd.ms-word.document.macroenabled.12"
"text/rtf"
"text/x-markdown"
"application/pdf"
"application/x-cbz"
"application/x-mobipocket-ebook"
"application/x-cbr"
"application/x-mobi8-ebook"
"text/fb2+xml"
"application/vnd.oasis.opendocument.text"
"application/epub+zip"
"text/plain"
"application/xhtml+xml"
];
categories = "Office";
extraEntries = ''
Actions=Edit;Viewer;
[Desktop Action Edit]
Name=Edit E-book
Icon=@out@/share/calibre/images/tweak.png
Exec=@out@/bin/ebook-edit --detach %F
[Desktop Action Viewer]
Name=E-book Viewer
Icon=@out@/share/calibre/images/viewer.png
Exec=@out@/bin/ebook-viewer --detach %F
'';
};
ebookEditDesktopItem = makeDesktopItem {
fileValidation = false; # fails before substitution
name = "calibre-edit-book";
desktopName = "Edit E-book";
genericName = "E-book Editor";
comment = "Edit e-books";
icon = "@out@/share/calibre/images/tweak.png";
exec = "@out@/bin/ebook-edit --detach %F";
categories = "Office;Publishing";
mimeType = "application/epub+zip";
extraEntries = "NoDisplay=true";
};
ebookViewerDesktopItem = makeDesktopItem {
fileValidation = false; # fails before substitution
name = "calibre-ebook-viewer";
desktopName = "E-book Viewer";
genericName = "E-book Viewer";
comment = "Read e-books in all the major formats";
icon = "@out@/share/calibre/images/viewer.png";
exec = "@out@/bin/ebook-viewer --detach %F";
categories = "Office;Viewer";
mimeType = "application/epub+zip";
extraEntries = "NoDisplay=true";
};
meta = with lib; { meta = with lib; {
description = "Comprehensive e-book software"; description = "Comprehensive e-book software";
homepage = "https://calibre-ebook.com"; homepage = "https://calibre-ebook.com";

View File

@ -1,12 +1,15 @@
{ lib, fetchurl, pythonPackages, gettext }: { lib, fetchFromGitHub, pythonPackages, gettext }:
pythonPackages.buildPythonApplication rec { pythonPackages.buildPythonApplication rec {
pname = "cherrytree"; pname = "cherrytree";
version = "0.39.1"; version = "0.39.2";
src = fetchFromGitHub {
owner = "giuspen";
repo = "cherrytree";
rev = version;
sha256 = "1l6wh24bhp4yhmsfmc0r4n2n10nlilkv4cmv5sfl80i250fiw7xa";
src = fetchurl {
url = "https://www.giuspen.com/software/${pname}-${version}.tar.xz";
sha256 = "0qhycblnixvbybzr8psgmgcpfs6jc9m0p2h9lmd5zmiaggqlcsv7";
}; };
nativeBuildInputs = [ gettext ]; nativeBuildInputs = [ gettext ];
@ -20,17 +23,16 @@ pythonPackages.buildPythonApplication rec {
meta = with lib; { meta = with lib; {
description = "An hierarchical note taking application"; description = "An hierarchical note taking application";
longDescription = '' longDescription = ''
Cherrytree is an hierarchical note taking application, Cherrytree is an hierarchical note taking application, featuring rich
featuring rich text, syntax highlighting and powerful search text, syntax highlighting and powerful search capabilities. It organizes
capabilities. It organizes all information in units called all information in units called "nodes", as in a tree, and can be very
"nodes", as in a tree, and can be very useful to store any piece useful to store any piece of information, from tables and links to
of information, from tables and links to pictures and even entire pictures and even entire documents. All those little bits of information
documents. All those little bits of information you have scattered you have scattered around your hard drive can be conveniently placed into
around your hard drive can be conveniently placed into a a Cherrytree document where you can easily find it.
Cherrytree document where you can easily find it.
''; '';
homepage = "http://www.giuspen.com/cherrytree"; homepage = "http://www.giuspen.com/cherrytree";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ AndersonTorres ]; maintainers = with maintainers; [ ];
}; };
} }

View File

@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/far2l --argv0 $out/bin/far2l wrapProgram $out/bin/far2l --argv0 $out/bin/far2l
''; '';
stripDebugList = "bin share"; stripDebugList = [ "bin" "share" ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "notejot"; pname = "notejot";
version = "1.6.0"; version = "1.6.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lainsce"; owner = "lainsce";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1b65m9gvq8ziqqgnw3vgjpjb1qw7bww40ngd3gardsjg9lcwpxaf"; sha256 = "170dzgd6cnf2k3hfifjysmdggpskx6v1pjmblqgbwaj2d3snf3h8";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -11,13 +11,13 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "sequeler"; pname = "sequeler";
version = "0.7.4"; version = "0.7.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Alecaddd"; owner = "Alecaddd";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0ki8dganj6hmvg5qwdlc3y0a4pdmx7454np790yf5wnqb6ixb6gv"; sha256 = "117gcc41rd24y5hpm3drqxfcfz52smpcr8w76xnykx8wb1ac50jf";
}; };
nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ]; nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];

View File

@ -0,0 +1,41 @@
From dfa4bcafec4425659a409550085417af3c5c787b Mon Sep 17 00:00:00 2001
From: Florian Klink <flokli@flokli.de>
Date: Sat, 11 Apr 2020 12:38:38 +0200
Subject: [PATCH] core: fix libgit ifdef to handle libgit2 v1.0 and onwards
Conditional code for older libgit versions was removed in
https://github.com/Subsurface-divelog/subsurface/pull/2737,
but it's a non-trivial backport, and master currently isn't really ready
for a release.
So instead ship a patch fixing the one broken libgit2 conditional until
a 4.10 release has been made.
Note the inverted logic - the if branch now handles the old libgit
condition, and the else branch the newer versions, consistent with how
it's done in the rest of the subsurface codebase.
---
core/git-access.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/git-access.c b/core/git-access.c
index 3688cb90c..9997fc8fd 100644
--- a/core/git-access.c
+++ b/core/git-access.c
@@ -359,10 +359,10 @@ static int try_to_git_merge(git_repository *repo, git_reference **local_p, git_r
}
git_merge_init_options(&merge_options, GIT_MERGE_OPTIONS_VERSION);
-#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR > 23
- merge_options.flags = GIT_MERGE_FIND_RENAMES;
-#else
+#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR <= 22
merge_options.tree_flags = GIT_MERGE_TREE_FIND_RENAMES;
+#else
+ merge_options.flags = GIT_MERGE_FIND_RENAMES;
#endif
merge_options.file_favor = GIT_MERGE_FILE_FAVOR_UNION;
merge_options.rename_threshold = 100;
--
2.25.1

View File

@ -4,16 +4,22 @@
}: }:
let let
version = "4.8.2"; version = "4.9.3";
subsurfaceSrc = (fetchFromGitHub {
owner = "Subsurface-divelog";
repo = "subsurface";
rev = "v${version}";
sha256 = "1i07f7appifx9j205x5a7ng01wsipxr6n9a3692pm60jli2nsir5";
fetchSubmodules = true;
});
libdc = stdenv.mkDerivation { libdc = stdenv.mkDerivation {
pname = "libdivecomputer-ssrf"; pname = "libdivecomputer-ssrf";
inherit version; inherit version;
src = fetchurl { src = subsurfaceSrc;
url = "https://subsurface-divelog.org/downloads/libdivecomputer-subsurface-branch-${version}.tgz"; sourceRoot = "source/libdivecomputer";
sha256 = "167qan59raibmilkc574gdqxfjg2f5ww2frn86xzk2kn4qg8190w";
};
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
@ -70,10 +76,10 @@ in stdenv.mkDerivation {
pname = "subsurface"; pname = "subsurface";
inherit version; inherit version;
src = fetchurl { src = subsurfaceSrc;
url = "https://subsurface-divelog.org/downloads/Subsurface-${version}.tgz";
sha256 = "1fzrq6rqb6pzs36wxar2453cl509dqpcy9w7nq4gw7b1v2331wfy"; # remove with the 4.10 release
}; patches = [ ./0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch ];
buildInputs = [ buildInputs = [
libdc googlemaps libdc googlemaps

View File

@ -2,7 +2,7 @@
let let
pname = "Sylk"; pname = "Sylk";
version = "2.5.0"; version = "2.6.1";
in in
appimageTools.wrapType2 rec { appimageTools.wrapType2 rec {
@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
src = fetchurl { src = fetchurl {
url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage"; url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
sha256 = "1jhs25zzdac3r2wz886vlpb0bz77p52mdlrbsbv28h6is79pbd69"; hash = "sha256:0417qk925k7p3fiq1zha9al86jrz6mqspda7mi3h9blpbyvlcy7w";
}; };
profile = '' profile = ''

View File

@ -19,13 +19,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ephemeral"; pname = "ephemeral";
version = "6.3.1"; version = "6.3.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cassidyjames"; owner = "cassidyjames";
repo = "ephemeral"; repo = "ephemeral";
rev = version; rev = version;
sha256 = "13rl26lv5xgagiv21yp5pz69bkwh4nnz1lx9wryhsplki45xm1sq"; sha256 = "093bqc40p4s8jc1s5rg49363x24vnwwjayvgzmi4xag28f1x6kn8";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -15,13 +15,13 @@ with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "kubernetes"; pname = "kubernetes";
version = "1.17.3"; version = "1.18.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubernetes"; owner = "kubernetes";
repo = "kubernetes"; repo = "kubernetes";
rev = "v${version}"; rev = "v${version}";
sha256 = "0caqczz8hrwqb8j94158hz6919i7c9v1v0zknh9m2zbbng4b1awi"; sha256 = "1jp54aahwpx9w73byfyadgffrig9fy6x8xzw27xv0anj2v9bm1fw";
}; };
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];

View File

@ -3,13 +3,13 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bitlbee-discord"; pname = "bitlbee-discord";
version = "0.4.2"; version = "0.4.3";
src = fetchFromGitHub { src = fetchFromGitHub {
rev = version; rev = version;
owner = "sm00th"; owner = "sm00th";
repo = "bitlbee-discord"; repo = "bitlbee-discord";
sha256 = "02pigk2vbz0jdz11f96sygdvp1j762yjn62h124fkcsc070g7a2f"; sha256 = "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];

View File

@ -0,0 +1,57 @@
{ stdenv
, fetchurl
, appimageTools
, makeWrapper
, electron_8
}:
stdenv.mkDerivation rec {
pname = "jitsi-meet-electron";
version = "2.0.0";
src = fetchurl {
url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
sha256 = "11ci9dqhy8hkb4fwykjvcvai20ahqhjil825n1y1xf663ch8by93";
name="${pname}-${version}.AppImage";
};
appimageContents = appimageTools.extractType2 {
name = "${pname}-${version}";
inherit src;
};
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/${pname} $out/share/applications
cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
cp -a ${appimageContents}/jitsi-meet.desktop $out/share/applications/${pname}.desktop
cp -a ${appimageContents}/usr/share/icons $out/share
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
runHook postInstall
'';
postFixup = ''
makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}"
'';
meta = with stdenv.lib; {
description = "Jitsi Meet desktop application powered by Electron";
homepage = "https://github.com/jitsi/jitsi-meet-electron";
license = licenses.asl20;
maintainers = with maintainers; [ prusnak ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
let let
inherit (stdenv.lib) concatStringsSep makeBinPath optional; inherit (stdenv.lib) concatStringsSep makeBinPath optional;
version = "3.5.383291.0407"; version = "3.5.385850.0413";
srcs = { srcs = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
sha256 = "1l560gv1wpfiggxylz3f62mcjjchpq3p0i1j4b2b68ckgc5sj80k"; sha256 = "049kxgkyaxknxpk0hf1a7bxn0c08dk250z3q2ba9pc1xkrn5kdnw";
}; };
}; };

View File

@ -12,7 +12,9 @@
, json-glib , json-glib
, libsoup , libsoup
, libgee , libgee
, wrapGAppsHook }: , wrapGAppsHook
, vala_0_40
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ping"; pname = "ping";
@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
vala vala_0_40
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -1,20 +1,21 @@
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig { stdenv, lib, fetchFromGitHub, cmake, pkgconfig, alsaLib, ffmpeg, glib, openssl
, alsaLib, ffmpeg, glib, openssl, pcre, zlib , pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama
, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama, libXrandr, libXrender, libXv, libXtst , libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland
, libxkbcommon, libxkbfile , gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt
, wayland , libusb1, libpulseaudio ? null, cups ? null, pcsclite ? null, systemd ? null
, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc , buildServer ? true, nocaps ? false }:
, libxslt
, libusb1
, libpulseaudio ? null
, cups ? null
, pcsclite ? null
, systemd ? null
, buildServer ? true
, nocaps ? false
}:
stdenv.mkDerivation rec { let
cmFlag = flag: if flag then "ON" else "OFF";
disabledTests = [
# this one is probably due to our sandbox
{
dir = "libfreerdp/crypto/test";
file = "Test_x509_cert_info.c";
}
];
in stdenv.mkDerivation rec {
pname = "freerdp"; pname = "freerdp";
version = "2.0.0"; version = "2.0.0";
@ -25,10 +26,16 @@ stdenv.mkDerivation rec {
sha256 = "0d2559v0z1jnq6jlrvsgdf8p6gd27m8kwdnxckl1x0ygaxs50bqc"; sha256 = "0d2559v0z1jnq6jlrvsgdf8p6gd27m8kwdnxckl1x0ygaxs50bqc";
}; };
# outputs = [ "bin" "out" "dev" ]; postPatch = ''
prePatch = ''
export HOME=$TMP export HOME=$TMP
# failing test(s)
${lib.concatMapStringsSep "\n" (e: ''
substituteInPlace ${e.dir}/CMakeLists.txt \
--replace ${e.file} ""
rm ${e.dir}/${e.file}
'') disabledTests}
substituteInPlace "libfreerdp/freerdp.pc.in" \ substituteInPlace "libfreerdp/freerdp.pc.in" \
--replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@"
'' + lib.optionalString (pcsclite != null) '' '' + lib.optionalString (pcsclite != null) ''
@ -39,32 +46,54 @@ stdenv.mkDerivation rec {
--replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL" --replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL"
''; '';
buildInputs = with lib; [ buildInputs = with lib;
alsaLib cups ffmpeg glib openssl pcre pcsclite libpulseaudio zlib [
gstreamer gst-plugins-base gst-plugins-good libunwind orc alsaLib
libX11 libXcursor libXdamage libXext libXi libXinerama libXrandr libXrender libXv libXtst cups
libxkbcommon libxkbfile ffmpeg
wayland libusb1 glib
gst-plugins-base
gst-plugins-good
gstreamer
libX11
libXcursor
libXdamage
libXext
libXi
libXinerama
libXrandr
libXrender
libXtst
libXv
libpulseaudio
libunwind
libusb1
libxkbcommon
libxkbfile
libxslt libxslt
openssl
orc
pcre
pcsclite
wayland
zlib
] ++ optional stdenv.isLinux systemd; ] ++ optional stdenv.isLinux systemd;
nativeBuildInputs = [ nativeBuildInputs = [ cmake pkgconfig ];
cmake pkgconfig
];
enableParallelBuilding = true; doCheck = true;
doCheck = false; cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ]
++ lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") {
cmakeFlags = with lib; [ BUILD_TESTING = doCheck;
"-DCMAKE_INSTALL_LIBDIR=lib" WITH_CUNIT = doCheck;
"-DWITH_CUNIT=OFF" WITH_CUPS = (cups != null);
"-DWITH_OSS=OFF" WITH_OSS = false;
] ++ optional (libpulseaudio != null) "-DWITH_PULSE=ON" WITH_PCSC = (pcsclite != null);
++ optional (cups != null) "-DWITH_CUPS=ON" WITH_PULSE = (libpulseaudio != null);
++ optional (pcsclite != null) "-DWITH_PCSC=ON" WITH_SERVER = buildServer;
++ optional buildServer "-DWITH_SERVER=ON" WITH_SSE2 = stdenv.isx86_64;
++ optional (stdenv.isx86_64) "-DWITH_SSE2=ON"; };
meta = with lib; { meta = with lib; {
description = "A Remote Desktop Protocol Client"; description = "A Remote Desktop Protocol Client";
@ -72,7 +101,7 @@ stdenv.mkDerivation rec {
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
following the Microsoft Open Specifications. following the Microsoft Open Specifications.
''; '';
homepage = "http://www.freerdp.com/"; homepage = "https://www.freerdp.com/";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ peterhoeg lheckemann ]; maintainers = with maintainers; [ peterhoeg lheckemann ];
platforms = platforms.unix; platforms = platforms.unix;

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "testssl.sh"; pname = "testssl.sh";
version = "3.0rc6"; version = "3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "drwetter"; owner = "drwetter";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1ks7pqgrg382ry0a0jf1dwgcwv81snhkrhkjdbcpym6w5flmpjsv"; sha256 = "08i1l835zlzb3qmsnsd5vhsrr82li6fnp5jqxiybbqr5wjz67ssd";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -1,7 +1,9 @@
{ stdenv { stdenv
, fetchFromGitHub , fetchFromGitHub
, pantheon , pantheon
, cmake , meson
, ninja
, python3
, pkg-config , pkg-config
, vala , vala
, gettext , gettext
@ -13,20 +15,23 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "agenda"; pname = "agenda";
version = "1.0.12"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dahenson"; owner = "dahenson";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "128c9p2jkc90imlq25xg5alqlam8q4i3gd5p1kcggf7s4amv8l8w"; sha256 = "0yfapapsanqacaa83iagar88i335yy2jvay8y6z7gkri7avbs4am";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
cmake
gettext gettext
vala glib # for glib-compile-schemas
meson
ninja
pkg-config pkg-config
python3
vala
wrapGAppsHook wrapGAppsHook
]; ];
@ -37,6 +42,13 @@ stdenv.mkDerivation rec {
pantheon.granite pantheon.granite
]; ];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
doCheck = true;
passthru = { passthru = {
updateScript = pantheon.updateScript { updateScript = pantheon.updateScript {
attrPath = pname; attrPath = pname;

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "atlassian-cli"; pname = "atlassian-cli";
version = "9.1.1"; version = "9.2.0";
src = fetchzip { src = fetchzip {
url = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip"; url = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
sha256 = "0mdf4ybp0a6c816210g76lx901qwxw727ipyiph5kbdzl4jlrpgm"; sha256 = "0rdnbx3zfz3lpgka7bb8jzapkr81l2yvgsbmn8hrhva5k61xwx3d";
extraPostFetch = "chmod go-w $out"; extraPostFetch = "chmod go-w $out";
}; };

View File

@ -1,67 +1,112 @@
{ stdenv, fetchurl { stdenv
, libX11, glib, xorg, fontconfig, freetype , mkDerivation
, zlib, libpng12, libICE, libXrender, cups , fetchurl
, alsaLib, atk, cairo, dbus, expat , autoPatchelfHook
, gdk-pixbuf, gtk2-x11, lzma, pango, zotero , dpkg
, sqlite, libuuid, qt5, dpkg }: , wrapGAppsHook
, wrapQtAppsHook
, alsaLib
, atk
, bzip2
, cairo
, cups
, dbus
, expat
, ffmpeg_3
, fontconfig
, freetype
, gdk-pixbuf
, glib
, gperftools
, gtk2-x11
, libpng12
, libtool
, libuuid
, libxml2
, lzma
, nspr
, nss
, openssl
, pango
, qt4
, qtbase
, sqlite
, unixODBC
, xorg
, zlib
}:
stdenv.mkDerivation rec{ stdenv.mkDerivation rec{
pname = "wpsoffice"; pname = "wpsoffice";
version = "11.1.0.9080"; version = "11.1.0.9505";
src = fetchurl { src = fetchurl {
url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/9080/wps-office_11.1.0.9080.XA_amd64.deb"; url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/9505/wps-office_11.1.0.9505.XA_amd64.deb";
sha256 = "1731e9aea22ef4e558ad66b1373d863452b4f570aecf09d448ae28a821333454"; sha256 = "1bvaxwd3npw3kswk7k1p6mcbfg37x0ym4sp6xis6ykz870qivqk5";
}; };
unpackCmd = "dpkg -x $src ."; unpackCmd = "dpkg -x $src .";
sourceRoot = "."; sourceRoot = ".";
nativeBuildInputs = [ qt5.wrapQtAppsHook dpkg ]; postUnpack = stdenv.lib.optionalString (version == "11.1.0.9505") ''
# distribution is missing libjsapiservice.so, so we should not let
# autoPatchelfHook fail on the following dead libraries
rm opt/kingsoft/wps-office/office6/{libjsetapi.so,libjswppapi.so,libjswpsapi.so}
'';
nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ];
meta = { meta = {
description = "Office program originally named Kingsoft Office"; description = "Office program originally named Kingsoft Office";
homepage = "http://wps-community.org/"; homepage = "http://wps-community.org/";
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
hydraPlatforms = []; hydraPlatforms = [];
license = stdenv.lib.licenses.unfreeRedistributable; license = stdenv.lib.licenses.unfreeRedistributable;
maintainers = [ stdenv.lib.maintainers.mlatus ]; maintainers = [ stdenv.lib.maintainers.mlatus ];
}; };
libPath = with xorg; stdenv.lib.makeLibraryPath [ buildInputs = with xorg; [
libX11
libpng12
glib
libSM
libXext
fontconfig
zlib
freetype
libICE
cups
libXrender
libxcb
alsaLib alsaLib
atk atk
bzip2
cairo cairo
dbus.daemon.lib dbus.lib
expat expat
fontconfig.lib ffmpeg_3
fontconfig
freetype
gdk-pixbuf gdk-pixbuf
glib
gperftools
gtk2-x11 gtk2-x11
lzma libICE
pango libSM
zotero libX11
sqlite libX11
libuuid libXScrnSaver
libXcomposite libXcomposite
libXcursor libXcursor
libXdamage libXdamage
libXext
libXfixes libXfixes
libXi libXi
libXrandr libXrandr
libXScrnSaver libXrender
libXtst libXtst
libpng12
libtool
libuuid
libxcb
libxml2
lzma
nspr
nss
openssl
pango
qt4
qtbase
sqlite
unixODBC
zlib
]; ];
dontPatchELF = true; dontPatchELF = true;
@ -70,25 +115,59 @@ stdenv.mkDerivation rec{
# references to nix own build directory # references to nix own build directory
noAuditTmpdir = true; noAuditTmpdir = true;
unvendoredLibraries = [
# Have to use parts of the vendored qt4
#"Qt"
"SDL2"
"bz2"
"avcodec"
"avdevice"
"avformat"
"avutil"
"swresample"
"swscale"
"jpeg"
"png"
# File saving breaks unless we are using vendored llvmPackages_8.libcxx
#"c++"
"ssl" "crypto"
"nspr"
"nss"
"odbc"
"tcmalloc" # gperftools
];
installPhase = '' installPhase = ''
prefix=$out/opt/kingsoft/wps-office prefix=$out/opt/kingsoft/wps-office
mkdir -p $out mkdir -p $out
cp -r opt $out cp -r opt $out
cp -r usr/* $out cp -r usr/* $out
# Avoid forbidden reference error due use of patchelf for lib in $unvendoredLibraries; do
rm -r * rm -v "$prefix/office6/lib$lib"*.so{,.*}
done
for i in wps wpp et wpspdf; do for i in wps wpp et wpspdf; do
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--force-rpath --set-rpath "$(patchelf --print-rpath $prefix/office6/$i):${stdenv.cc.cc.lib}/lib64:${libPath}" \
$prefix/office6/$i
substituteInPlace $out/bin/$i \ substituteInPlace $out/bin/$i \
--replace /opt/kingsoft/wps-office $prefix --replace /opt/kingsoft/wps-office $prefix
done done
for i in $out/share/applications/*;do for i in $out/share/applications/*;do
substituteInPlace $i \ substituteInPlace $i \
--replace /usr/bin $out/bin \ --replace /usr/bin $out/bin
--replace /opt/kingsoft/wps-office $prefix done
'';
runtimeLibPath = stdenv.lib.makeLibraryPath [
cups.lib
];
dontWrapQtApps = true;
dontWrapGApps = true;
postFixup = ''
for f in "$out"/bin/*; do
echo "Wrapping $f"
wrapProgram "$f" \
"''${gappsWrapperArgs[@]}" \
"''${qtWrapperArgs[@]}" \
--suffix LD_LIBRARY_PATH : "$runtimeLibPath"
done done
''; '';
} }

View File

@ -4,11 +4,11 @@
}: }:
python2.pkgs.buildPythonApplication rec { python2.pkgs.buildPythonApplication rec {
pname = "chirp-daily"; pname = "chirp-daily";
version = "20200213"; version = "20200409";
src = fetchurl { src = fetchurl {
url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz"; url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
sha256 = "189kg3425wggib1cggcj49bk01pq3j4b8mks7najpp1rjsl5f2i1"; sha256 = "16zhwg2xmp5kpqx5isavwwkfq1212zgfj8gbp453ngjcrvp3m4lq";
}; };
propagatedBuildInputs = with python2.pkgs; [ propagatedBuildInputs = with python2.pkgs; [

View File

@ -1,5 +1,6 @@
{ stdenv { stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, pkgconfig , pkgconfig
, vala , vala
, gtk3 , gtk3
@ -25,6 +26,14 @@ stdenv.mkDerivation rec {
sha256 = "036v3dx8yasp19j88lflibqnpfi5d0nk7qkcnr80zn1lvawf4wgn"; sha256 = "036v3dx8yasp19j88lflibqnpfi5d0nk7qkcnr80zn1lvawf4wgn";
}; };
patches = [
# fix build with gcc9
(fetchpatch {
url = "https://github.com/parnold-x/nasc/commit/46b9b80e228b6b86001bded45d85e073a9411549.patch";
sha256 = "1sm2aw0xhw2chk036r231nmp2f2ypxcmzggwljkn7wfzgg3h1mx3";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
vala vala

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gp2c"; pname = "gp2c";
version = "0.0.11pl2"; version = "0.0.11pl3";
src = fetchurl { src = fetchurl {
url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${pname}-${version}.tar.gz"; url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${pname}-${version}.tar.gz";
sha256 = "0wqsf05wgkqvmmsx7jinvzdqav6rl56sr8haibgs31nzz4x9xz9g"; sha256 = "0yymbrgyjw500hqgmkj5m4nmscd7c9rs9w2c96lxgrcyab8krhrm";
}; };
buildInputs = [ pari perl ]; buildInputs = [ pari perl ];
@ -25,4 +25,3 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ AndersonTorres ]; maintainers = with maintainers; [ AndersonTorres ];
}; };
} }
# TODO: add it as "source file" for default package

View File

@ -18,13 +18,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "monitor"; pname = "monitor";
version = "0.6.2"; version = "0.7.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stsdc"; owner = "stsdc";
repo = "monitor"; repo = "monitor";
rev = version; rev = version;
sha256 = "0cqzxlzdbij26qgbbngqx6njcpcymkgvm29b7ipldgkssxp1mkkg"; sha256 ="194s9rjh3yd2c3rf3zwxsxr2lwqfswjazj39yiyccy0wcxmxpv34";
fetchSubmodules = true;
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -61,6 +62,11 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Manage processes and monitor system resources"; description = "Manage processes and monitor system resources";
longDescription = ''
Manage processes and monitor system resources.
To use the wingpanel indicator in this application, see the Pantheon
section in the NixOS manual.
'';
homepage = "https://github.com/stsdc/monitor"; homepage = "https://github.com/stsdc/monitor";
maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers; maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -2,23 +2,23 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "git-trim"; pname = "git-trim";
version = "0.2.4"; version = "0.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "foriequal0"; owner = "foriequal0";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0gfmv9bwhh6bv0s9kfbxq9wsvrk3zz3ibavbpp9l8cpqc3145pqy"; sha256 = "06wni47s8yq274bh5f7bcy0sah23938kjiw5pdxnma5kwwnrccrr";
}; };
cargoSha256 = "0xklczk4vbh2mqf76r3rsfyclyza9imf6yss7vbkm9w4ir3ar9f3"; cargoSha256 = "06ndja8212xy4rybh1117wijsyj70w4z8h6km538a7598s49vzdk";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ]; buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
postInstall = '' postInstall = ''
install -Dm644 docs/git-trim.md.1 $out/share/man/man1/git-trim.1 install -Dm644 -t $out/share/man/man1/ docs/git-trim.1
''; '';
# fails with sandbox # fails with sandbox

View File

@ -5,14 +5,15 @@ set -eu -o pipefail
oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')" oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')"
latestTag="$(git ls-remote --tags --sort="v:refname" git://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')" latestTag="$(git ls-remote --tags --sort="v:refname" git://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')"
targetVersion="${1:-latestTag}"
if [ ! "${oldVersion}" = "${latestTag}" ]; then if [ ! "${oldVersion}" = "${targetVersion}" ]; then
update-source-version git "${latestTag}" update-source-version git "${targetVersion}"
nixpkgs="$(git rev-parse --show-toplevel)" nixpkgs="$(git rev-parse --show-toplevel)"
default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix" default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix"
nix-build -A git nix-build -A git
git add "${default_nix}" git add "${default_nix}"
git commit -m "git: ${oldVersion} -> ${latestTag}" git commit -m "git: ${oldVersion} -> ${targetVersion}"
else else
echo "git is already up-to-date" echo "git is already up-to-date"
fi fi

View File

@ -31,10 +31,13 @@ stdenv.mkDerivation rec {
make install make install
make install-doc make install-doc
substituteInPlace contrib/tig-completion.zsh \ # fixes tig-completion __git-complete dependency
--replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/etc/bash_completion.d/tig-completion.bash" sed -i '1s;^;source ${git}/share/bash-completion/completions/git\n;' contrib/tig-completion.bash
install -D contrib/tig-completion.bash $out/etc/bash_completion.d/tig-completion.bash substituteInPlace contrib/tig-completion.zsh \
--replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/share/bash-completion/completions/tig"
install -D contrib/tig-completion.bash $out/share/bash-completion/completions/tig
install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
cp contrib/vim.tigrc $out/etc/ cp contrib/vim.tigrc $out/etc/

View File

@ -52,7 +52,7 @@
, xvSupport ? stdenv.isLinux, libXv ? null , xvSupport ? stdenv.isLinux, libXv ? null
, youtubeSupport ? true, youtube-dl ? null , youtubeSupport ? true, youtube-dl ? null
, zimgSupport ? true, zimg ? null , zimgSupport ? true, zimg ? null
, archiveSupport ? false, libarchive ? null , archiveSupport ? true, libarchive ? null
, jackaudioSupport ? false, libjack2 ? null , jackaudioSupport ? false, libjack2 ? null
, openalSupport ? true, openalSoft ? null , openalSupport ? true, openalSoft ? null
, vapoursynthSupport ? false, vapoursynth ? null , vapoursynthSupport ? false, vapoursynth ? null

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wf-recorder"; pname = "wf-recorder";
version = "0.2"; version = "0.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ammen99"; owner = "ammen99";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1772hrd7j8b32y65x5c392kdijlcn13iqg9hrlagfar92102vsbf"; sha256 = "1cw6kpcbl33wh95pvy32xrsrm6kkk1awccr3phyh885xjs3b3iim";
}; };
nativeBuildInputs = [ meson ninja pkg-config wayland scdoc ]; nativeBuildInputs = [ meson ninja pkg-config wayland scdoc ];

View File

@ -20,7 +20,7 @@ let
buildTags = "apparmor seccomp selinux containers_image_ostree_stub"; buildTags = "apparmor seccomp selinux containers_image_ostree_stub";
in buildGoPackage rec { in buildGoPackage rec {
project = "cri-o"; project = "cri-o";
version = "1.17.1"; version = "1.17.3";
name = "${project}-${version}${flavor}"; name = "${project}-${version}${flavor}";
goPackagePath = "github.com/${project}/${project}"; goPackagePath = "github.com/${project}/${project}";
@ -29,7 +29,7 @@ in buildGoPackage rec {
owner = "cri-o"; owner = "cri-o";
repo = "cri-o"; repo = "cri-o";
rev = "v${version}"; rev = "v${version}";
sha256 = "0zipigjcnhcnn0w69dkd8312qb6z98l65ir175wp3jfvj4cx3g28"; sha256 = "1cy2lqasfn5n20vlm3ckb6myci8ya6qv08dw8fq7z4ycnm39r1a6";
}; };
outputs = [ "bin" "out" ]; outputs = [ "bin" "out" ];

View File

@ -1,24 +1,32 @@
{ stdenv, fetchFromGitHub, pkgconfig, installShellFiles { stdenv
, buildGoPackage, gpgme, lvm2, btrfs-progs, libseccomp, systemd , fetchFromGitHub
, pkg-config
, installShellFiles
, buildGoPackage
, gpgme
, lvm2
, btrfs-progs
, libseccomp
, systemd
, go-md2man , go-md2man
}: }:
buildGoPackage rec { buildGoPackage rec {
pname = "podman"; pname = "podman";
version = "1.8.2"; version = "1.9.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containers"; owner = "containers";
repo = "libpod"; repo = "libpod";
rev = "v${version}"; rev = "v${version}";
sha256 = "1nxlkqz1ffa3l2yf4rmsxj788dx6xdp8pbi55m9jc9k1vqwc9hxs"; sha256 = "19y48lpf7pvw5f5pzpknn92rq9xwbrpvi8mj7mc4dby6skqadrk4";
}; };
goPackagePath = "github.com/containers/libpod"; goPackagePath = "github.com/containers/libpod";
outputs = [ "bin" "out" "man" ]; outputs = [ "bin" "out" "man" ];
nativeBuildInputs = [ pkgconfig go-md2man installShellFiles ]; nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs libseccomp gpgme lvm2 systemd ]; buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs libseccomp gpgme lvm2 systemd ];

View File

@ -6,6 +6,7 @@
, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes , libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
, libsndfile, fribidi }: , libsndfile, fribidi }:
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "icewm"; pname = "icewm";
version = "1.6.5"; version = "1.6.5";
@ -34,13 +35,13 @@ stdenv.mkDerivation rec {
cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/ cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/
''; '';
meta = with stdenv.lib; { meta = {
description = "A simple, lightweight X window manager"; description = "A simple, lightweight X window manager";
longDescription = '' longDescription = ''
IceWM is a window manager for the X Window System. The goal of IceWM is a window manager for the X Window System. The goal of
IceWM is speed, simplicity, and not getting in the user's way. IceWM is speed, simplicity, and not getting in the user's way.
''; '';
homepage = "http://www.icewm.org/"; homepage = "https://www.ice-wm.org/";
license = licenses.lgpl2; license = licenses.lgpl2;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -1,4 +1,4 @@
{ stdenv, makeWrapper, coreutils, gnused, gnugrep, diffutils, nix }: { stdenv, makeWrapper, coreutils, gnused, gnugrep, diffutils, nix, git }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "common-updater-scripts"; name = "common-updater-scripts";
@ -12,7 +12,7 @@ stdenv.mkDerivation {
cp ${./scripts}/* $out/bin cp ${./scripts}/* $out/bin
for f in $out/bin/*; do for f in $out/bin/*; do
wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gnused gnugrep nix diffutils ]} wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gnused gnugrep nix diffutils git ]}
done done
''; '';
} }

View File

@ -0,0 +1,35 @@
#! /bin/sh
# lists all available versions listed for a package in a site (http)
scriptName=list-archive-two-level-versions # do not use the .wrapped name
usage() {
echo "Usage: $scriptName <archive url> [<package name> [<debug file path>]]"
}
archive="$1" # archive url
pname="$2" # package name
file="$3" # file for writing debugging information
if [ -z "$archive" ]; then
echo "$scriptName: Missing archive url"
usage
exit 1
fi
# print a debugging message
if [ -n "$file" ]; then
echo "# Listing versions for $pname at $archive" >> $file
fi
# list all major-minor versions from archive
tags1=$(curl -sS "$archive/")
tags1=$(echo "$tags1" | sed -rne 's,^<a href="([0-9]+\.[0-9]+)/">.*,\1,p')
# print available versions
for tag in $tags1; do
tags2=$(curl -sS "$archive/$tag/")
tags2=$(echo "$tags2" | sed -rne "s,^<a href=\"$pname-([0-9.]+)\\.[^0-9].*\">.*,\\1,p")
echo "$tags2"
done

View File

@ -0,0 +1,32 @@
#! /bin/sh -x
# lists all available tags from a git repository
scriptName=list-git-tags # do not use the .wrapped name
usage() {
echo "Usage: $scriptName <repository url> [<package name> [<debug file path>]]"
}
repo="$1" # git repository url
pname="$2" # package name
file="$3" # file for writing debugging information
if [ -z "$repo" ]; then
echo "$scriptName: Missing git repository url"
usage
exit 1
fi
# print a debugging message
if [ -n "$file" ]; then
echo "# Listing tags for $pname at $repo" >> $file
fi
# list all tags from the remote repository
tags=$(git ls-remote --tags --refs "$repo")
# keep only the version part of the tag
tags=$(echo "$tags" | cut --delimiter=/ --field=3)
echo "$tags"

View File

@ -0,0 +1,98 @@
{ stdenv, writeScript, coreutils, gnugrep, gnused, common-updater-scripts, nix }:
{ pname
, version
, attrPath ? pname
, versionLister
, rev-prefix ? ""
, odd-unstable ? true
, patchlevel-unstable ? true
}:
let
# where to print git commands and debugging messages
fileForGitCommands = "update-git-commits.txt";
# shell script to update package
updateScript = writeScript "update-script.sh" ''
#! ${stdenv.shell}
set -o errexit
set -x
pname="$1"
version="$2"
attr_path="$3"
version_lister="$4"
rev_prefix="$5"
odd_unstable="$6"
patchlevel_unstable="$7"
# print header
echo "# $pname-$version" >> ${fileForGitCommands}
function version_is_unstable() {
local tag="$1"
local enforce="$2"
if [ -n "$odd_unstable" -o -n "$enforce" ]; then
local minor=$(echo "$tag" | ${gnused}/bin/sed -rne 's,^[0-9]+\.([0-9]+).*,\1,p')
if [ $((minor % 2)) -eq 1 ]; then
return 0
fi
fi
if [ -n "$patchlevel_unstable" -o -n "$enforce" ]; then
local patchlevel=$(echo "$tag" | ${gnused}/bin/sed -rne 's,^[0-9]+\.[0-9]+\.([0-9]+).*$,\1,p')
if ((patchlevel >= 90)); then
return 0
fi
fi
return 1
}
tags=$($version_lister $pname ${fileForGitCommands}) || exit 1
# print available tags
for tag in $tags; do
echo "# found $pname version: $tag" >> ${fileForGitCommands}
done
# cut any revision prefix not used in the NixOS package version
if [ -n "$rev_prefix" ]; then
tags=$(echo "$tags" | ${gnugrep}/bin/grep "^$rev_prefix")
tags=$(echo "$tags" | ${gnused}/bin/sed -e "s,^$rev_prefix,,")
fi
tags=$(echo "$tags" | ${gnugrep}/bin/grep "^[0-9]")
# sort the tags in decreasing order
tags=$(echo "$tags" | ${coreutils}/bin/sort --reverse --version-sort)
# find the newest tag
# do not consider development versions
for latest_tag in $tags; do
if version_is_unstable "$latest_tag"; then
echo "# skip development version: $pname-$latest_tag" >> ${fileForGitCommands}
latest_tag=
else
if version_is_unstable "$latest_tag" "enforce"; then
echo "# use potential development version: $pname-$latest_tag" >> ${fileForGitCommands}
fi
break
fi
done
if [ -n "$latest_tag" ]; then
# print commands to commit the changes
if [ "$version" != "$latest_tag" ]; then
pfile=$(EDITOR=echo ${nix}/bin/nix edit -f. "$attr_path")
echo " git add $pfile " >> ${fileForGitCommands}
echo " git commit -m '$attr_path: $version -> $latest_tag'" >> ${fileForGitCommands}
fi
# update the nix expression
${common-updater-scripts}/bin/update-source-version "$attr_path" "$latest_tag"
fi
echo "" >> ${fileForGitCommands}
'';
in
[ updateScript pname version attrPath versionLister rev-prefix odd-unstable patchlevel-unstable ]

View File

@ -1,7 +1,7 @@
{ stdenv, fetchzip }: { stdenv, fetchzip }:
let let
version = "3"; version = "3.1";
in fetchzip { in fetchzip {
name = "fira-code-${version}"; name = "fira-code-${version}";
@ -13,7 +13,7 @@ in fetchzip {
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
''; '';
sha256 = "19kcqqd6c61v137q88zsvf2ra154n009sbqh6zs7l8f7r5bbipj2"; sha256 = "1rk5hiix282b1gsxq9kqma2q9fnydj0xl9vbrd88rf7ywvn75817";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://github.com/tonsky/FiraCode"; homepage = "https://github.com/tonsky/FiraCode";

View File

@ -0,0 +1,36 @@
{ lib, stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
pname = "line-awesome";
version = "1.3.0";
src = fetchurl {
url =
"https://maxst.icons8.com/vue-static/landings/line-awesome/line-awesome/${version}/line-awesome-${version}.zip";
hash = "sha256:07qkz8s1wjh5xwqlq1b4lpihr1zah3kh6bnqvfwvncld8l9wjqfk";
};
nativeBuildInputs = [ unzip ];
sourceRoot = "${version}/fonts";
installPhase = ''
mkdir -p $out/share/fonts/truetype
mkdir -p $out/share/fonts/woff
mkdir -p $out/share/fonts/woff2
cp *.ttf $out/share/fonts/truetype
cp *.woff $out/share/fonts/woff
cp *.woff2 $out/share/fonts/woff2
'';
meta = with lib; {
description = "Replace Font Awesome with modern line icons";
longDescription = ''
This package includes only the TTF, WOFF and WOFF2 fonts. For full CSS etc. see the project website.
'';
homepage = "https://icons8.com/line-awesome";
license = licenses.mit;
maintainers = with maintainers; [ puzzlewolf ];
platforms = platforms.all;
};
}

View File

@ -0,0 +1,44 @@
{ stdenv, fetchurl, gtk3, gnome3, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "humanity-icon-theme";
version = "0.6.15";
src = fetchurl {
url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.tar.xz";
sha256 = "19ja47468s3jfabvakq9wknyfclfr31a9vd11p3mhapfq8jv9g4x";
};
nativeBuildInputs = [
gtk3
];
propagatedBuildInputs = [
gnome3.adwaita-icon-theme
hicolor-icon-theme
];
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
cp -a Humanity* $out/share/icons
rm $out/share/icons/*/{AUTHORS,CONTRIBUTORS,COPYING}
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
runHook postInstall
'';
meta = with stdenv.lib; {
description = "Humanity icons from Ubuntu";
homepage = "https://launchpad.net/humanity/";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "zafiro-icons"; pname = "zafiro-icons";
version = "1.0"; version = "1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zayronxio"; owner = "zayronxio";
repo = pname; repo = pname;
rev = "${version}"; rev = "${version}";
sha256 = "0gy3c0jkj1icnwcs23b6km9cj9cccv8y5z1w11nfdv91cq3mdhmb"; sha256 = "05h8qm9izjbp8pnl9jpbw3y9sddhp0zmg94fm1k4d4hhdqnakqhv";
}; };
nativeBuildInputs = [ gtk3 ]; nativeBuildInputs = [ gtk3 ];

View File

@ -19,7 +19,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-videos"; pname = "elementary-videos";
version = "2.7.0"; version = "2.7.1";
repoName = "videos"; repoName = "videos";
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
owner = "elementary"; owner = "elementary";
repo = repoName; repo = repoName;
rev = version; rev = version;
sha256 = "1b6dqqmxa83fwlh9r0v918ikxd3mnwk0j5xssw1wk5l7q72s43w7"; sha256 = "00arim4i9bv9mbms1irkp44grkgrfnmqzraswyn1xiz9nvl1bsb9";
}; };
passthru = { passthru = {

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pantheon-agent-geoclue2"; pname = "pantheon-agent-geoclue2";
version = "1.0.3"; version = "1.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "elementary"; owner = "elementary";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1fhgdcykn0ykn8fp7inn2akygpglhdwfpdkpnih86kqmqj8siahv"; sha256 = "1lky7pw47d5mdza3bhq0ahdhgdv159ixngdsc1ys6j1kszsfxc1f";
}; };
passthru = { passthru = {

View File

@ -4,6 +4,7 @@ mkXfceDerivation {
category = "apps"; category = "apps";
pname = "gigolo"; pname = "gigolo";
version = "0.5.0"; version = "0.5.0";
odd-unstable = false;
sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6"; sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6";

View File

@ -8,7 +8,7 @@ let
in in
mkXfceDerivation { mkXfceDerivation {
category = "apps"; category = "archive";
pname = "orage"; pname = "orage";
version = "4.12.1"; version = "4.12.1";

View File

@ -4,6 +4,7 @@ mkXfceDerivation {
category = "apps"; category = "apps";
pname = "xfce4-screenshooter"; pname = "xfce4-screenshooter";
version = "1.9.5"; version = "1.9.5";
odd-unstable = false;
sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06"; sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06";

View File

@ -1,9 +1,11 @@
{ stdenv, fetchurl, pkgconfig, makeWrapper { stdenv, fetchurl, pkgconfig, makeWrapper
, gstreamer, gtk2, gst-plugins-base, libnotify , gstreamer, gtk2, gst-plugins-base, libnotify
, keybinder, xfconf , keybinder, xfconf, xfce
}: }:
let let
category = "apps";
# The usual Gstreamer plugins package has a zillion dependencies # The usual Gstreamer plugins package has a zillion dependencies
# that we don't need for a simple mixer, so build a minimal package. # that we don't need for a simple mixer, so build a minimal package.
gst_plugins_minimal = gst-plugins-base.override { gst_plugins_minimal = gst-plugins-base.override {
@ -13,15 +15,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-volumed"; pname = "xfce4-volumed";
ver_maj = "0.1"; version = "0.1.13";
ver_min = "13";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c"; sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
buildInputs = buildInputs =
[ gstreamer gst_plugins_minimal gtk2 [ gstreamer gst_plugins_minimal gtk2
@ -36,6 +36,12 @@ stdenv.mkDerivation rec {
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
''; '';
passthru.updateScript = xfce.updateScript {
inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://www.xfce.org/projects/xfce4-volumed"; # referenced but inactive homepage = "https://www.xfce.org/projects/xfce4-volumed"; # referenced but inactive
description = "A volume keys control daemon for the Xfce desktop environment"; description = "A volume keys control daemon for the Xfce desktop environment";

View File

@ -18,7 +18,8 @@ mkXfceDerivation {
category = "apps"; category = "apps";
pname = "xfdashboard"; pname = "xfdashboard";
version = "0.7.5"; version = "0.7.5";
rev = "0.7.5"; rev-prefix = "";
odd-unstable = false;
sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i"; sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i";

View File

@ -1,23 +1,31 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk2 }: { stdenv, fetchurl, pkgconfig, intltool, gtk2, xfce }:
let
category = "art";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-icon-theme"; pname = "xfce4-icon-theme";
ver_maj = "4.4"; version = "4.4.3";
ver_min = "3";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool gtk2 ]; buildInputs = [ intltool gtk2 ];
meta = { passthru.updateScript = xfce.updateScript {
inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://www.xfce.org/"; homepage = "https://www.xfce.org/";
description = "Icons for Xfce"; description = "Icons for Xfce";
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
maintainers = [ stdenv.lib.maintainers.eelco ]; maintainers = [ maintainers.eelco ];
}; };
} }

View File

@ -1,15 +1,23 @@
{ stdenv, fetchurl }: { stdenv, fetchurl, xfce }:
let
category = "art";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfwm4-themes"; pname = "xfwm4-themes";
ver_maj = "4.10"; version = "4.10.0";
ver_min = "0";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j"; sha256 = "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
passthru.updateScript = xfce.updateScript {
inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://www.xfce.org/"; homepage = "https://www.xfce.org/";

View File

@ -9,6 +9,8 @@ mkXfceDerivation {
sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0"; sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
odd-unstable = false;
meta = { meta = {
description = "Thunar extension for automatic management of removable drives and media"; description = "Thunar extension for automatic management of removable drives and media";
}; };

View File

@ -3,6 +3,14 @@
lib.makeScope pkgs.newScope (self: with self; { lib.makeScope pkgs.newScope (self: with self; {
#### NixOS support #### NixOS support
updateScript = callPackage ../../common-updater/update-script.nix { };
gitLister = url:
"${pkgs.common-updater-scripts}/bin/list-git-tags ${url}";
archiveLister = category: name:
"${pkgs.common-updater-scripts}/bin/list-archive-two-level-versions https://archive.xfce.org/src/${category}/${name}";
mkXfceDerivation = callPackage ./mkXfceDerivation.nix { }; mkXfceDerivation = callPackage ./mkXfceDerivation.nix { };
automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh; automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh;

View File

@ -1,6 +1,16 @@
{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, wrapGAppsHook }: { stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, xfce, wrapGAppsHook }:
{ category, pname, version, rev ? "${pname}-${version}", sha256, ... } @ args: { category
, pname
, version
, attrPath ? "xfce.${pname}"
, rev-prefix ? "${pname}-"
, rev ? "${rev-prefix}${version}"
, sha256
, odd-unstable ? true
, patchlevel-unstable ? true
, ...
} @ args:
let let
inherit (builtins) filter getAttr head isList; inherit (builtins) filter getAttr head isList;
@ -12,7 +22,7 @@ let
concatAttrLists = attrsets: concatAttrLists = attrsets:
zipAttrsWithNames (filterAttrNames isList (head attrsets)) (_: concatLists) attrsets; zipAttrsWithNames (filterAttrNames isList (head attrsets)) (_: concatLists) attrsets;
template = { template = rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
nativeBuildInputs = [ pkgconfig xfce4-dev-tools wrapGAppsHook ]; nativeBuildInputs = [ pkgconfig xfce4-dev-tools wrapGAppsHook ];
@ -27,6 +37,13 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
pos = builtins.unsafeGetAttrPos "pname" args;
passthru.updateScript = xfce.updateScript {
inherit pname version attrPath rev-prefix odd-unstable patchlevel-unstable;
versionLister = xfce.gitLister src.url;
};
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://git.xfce.org/${category}/${pname}/about"; homepage = "https://git.xfce.org/${category}/${pname}/about";
license = licenses.gpl2; # some libraries are under LGPLv2+ license = licenses.gpl2; # some libraries are under LGPLv2+

View File

@ -1,10 +1,11 @@
{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }: { mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
mkXfceDerivation rec { mkXfceDerivation {
category = "panel-plugins"; category = "panel-plugins";
pname = "xfce4-battery-plugin"; pname = "xfce4-battery-plugin";
version = "1.1.2"; version = "1.1.2";
rev = version; rev-prefix = "";
odd-unstable = false;
sha256 = "0329miiclc8da6j0sz495p99hyrf9fjhvpmdl0556fphybz5agc0"; sha256 = "0329miiclc8da6j0sz495p99hyrf9fjhvpmdl0556fphybz5agc0";
buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];

View File

@ -1,10 +1,9 @@
{ mkXfceDerivation, gtk3, libXtst, libxfce4ui, libxfce4util, xfce4-panel, xfconf, exo }: { mkXfceDerivation, gtk3, libXtst, libxfce4ui, libxfce4util, xfce4-panel, xfconf, exo }:
mkXfceDerivation rec { mkXfceDerivation {
category = "panel-plugins"; category = "panel-plugins";
pname = "xfce4-clipman-plugin"; pname = "xfce4-clipman-plugin";
version = "1.4.3"; version = "1.4.3";
rev = version;
sha256 = "1xk79xh1zk0x4r1z9m1dakp79pip0zh3naviybvl1dnpwwfc03gq"; sha256 = "1xk79xh1zk0x4r1z9m1dakp79pip0zh3naviybvl1dnpwwfc03gq";
buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ]; buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ];

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, hicolor-icon-theme }: { stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, hicolor-icon-theme, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-cpugraph-plugin"; pname = "xfce4-cpugraph-plugin";
ver_maj = "1.0"; version = "1.0.5";
ver_min = "5";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1izl53q95m5xm2fiq7385vb1i9nwgjizxkmgpgh33zdckb40xnl5"; sha256 = "1izl53q95m5xm2fiq7385vb1i9nwgjizxkmgpgh33zdckb40xnl5";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk2 hicolor-icon-theme ]; buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk2 hicolor-icon-theme ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "CPU graph show for Xfce panel"; description = "CPU graph show for Xfce panel";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];

View File

@ -7,13 +7,12 @@
, gettext , gettext
}: }:
mkXfceDerivation rec { mkXfceDerivation {
category = "panel-plugins"; category = "panel-plugins";
pname = "xfce4-datetime-plugin"; pname = "xfce4-datetime-plugin";
version = "0.8.0"; version = "0.8.0";
rev = "datetime-${version}"; rev-prefix = "datetime-";
sha256 = "12drh7y70d70r93lpv43fkj5cbyl0vciz4a41nxrknrfbhxrvyah"; sha256 = "12drh7y70d70r93lpv43fkj5cbyl0vciz4a41nxrknrfbhxrvyah";
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}: { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-dict-plugin"; pname = "xfce4-dict-plugin";
ver_maj = "0.3"; version = "0.3.0";
ver_min = "0";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.gz"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1x0imfnsdfq7fbhka8bc0yjjspkcljc1jafhrwzb08qi9bk2wbar"; sha256 = "1x0imfnsdfq7fbhka8bc0yjjspkcljc1jafhrwzb08qi9bk2wbar";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta =with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Dictionary plugin for Xfce panel"; description = "Dictionary plugin for Xfce panel";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];

View File

@ -2,9 +2,10 @@
, dockbarx, gtk2, xfce, pythonPackages, wafHook }: , dockbarx, gtk2, xfce, pythonPackages, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "xfce4-dockbarx-plugin";
version = "${ver}-${rev}";
ver = "0.5"; ver = "0.5";
rev = "a2dcb66"; rev = "a2dcb66";
name = "xfce4-dockbarx-plugin-${ver}-${rev}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "TiZ-EX1"; owner = "TiZ-EX1";

View File

@ -1,22 +1,30 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2 }: { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-embed-plugin"; pname = "xfce4-embed-plugin";
ver_maj = "1.6"; version = "1.6.0";
ver_min = "0";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7"; sha256 = "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
passthru.updateScript = xfce.updateScript {
inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = { meta = {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Embed arbitrary app windows on Xfce panel"; description = "Embed arbitrary app windows on Xfce panel";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}: { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-eyes-plugin"; pname = "xfce4-eyes-plugin";
ver_maj = "4.4"; version = "4.4.4";
ver_min = "4";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1jh02hylvsvfpxrx0bq6fzgy6vnxf9qakgpbfvr63lfkd1dyh314"; sha256 = "1jh02hylvsvfpxrx0bq6fzgy6vnxf9qakgpbfvr63lfkd1dyh314";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Eyes following you!"; description = "Eyes following you!";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}: { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-fsguard-plugin"; pname = "xfce4-fsguard-plugin";
ver_maj = "1.0"; version = "1.0.2";
ver_min = "2";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1bj021h4q68bc03f32pkyqy4gfd1sz6s21nxdg7j6gdfhs9xbj52"; sha256 = "1bj021h4q68bc03f32pkyqy4gfd1sz6s21nxdg7j6gdfhs9xbj52";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Filesystem monitor"; description = "Filesystem monitor";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}: { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-genmon-plugin"; pname = "xfce4-genmon-plugin";
ver_maj = "3.4"; version = "3.4.0";
ver_min = "0";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "11q3g6lmgz3d5lyh6614mxkd9cblfdyf9jgki7f26mn895xk79dh"; sha256 = "11q3g6lmgz3d5lyh6614mxkd9cblfdyf9jgki7f26mn895xk79dh";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Cyclically spawns a command and captures its output"; description = "Cyclically spawns a command and captures its output";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, intltool, autoreconfHook, gnome2, gtkmm2, { stdenv, fetchurl, pkgconfig, intltool, autoreconfHook, gnome2, gtkmm2,
libgtop, libxfce4ui, libxfce4util, xfce4-panel, lm_sensors libgtop, libxfce4ui, libxfce4util, xfce4-panel, lm_sensors, xfce
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -30,11 +30,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
meta = { meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Hardware monitor plugin for the XFCE4 panel"; description = "Hardware monitor plugin for the XFCE4 panel";
license = stdenv.lib.licenses.gpl3; license = licenses.gpl3;
platforms = stdenv.lib.platforms.unix; platforms = platforms.unix;
maintainers = [ stdenv.lib.maintainers.romildo ]; maintainers = [ maintainers.romildo ];
}; };
} }

View File

@ -1,24 +1,31 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui,
xfconf, gtk2, exo, gnutls, libgcrypt }: xfconf, gtk2, exo, gnutls, libgcrypt, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-mailwatch-plugin"; pname = "xfce4-mailwatch-plugin";
ver_maj = "1.2"; version = "1.2.0";
ver_min = "0";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2"; sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel
xfconf gtk2 exo gnutls libgcrypt ]; xfconf gtk2 exo gnutls libgcrypt ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Mailwatch plugin for Xfce panel"; description = "Mailwatch plugin for Xfce panel";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ ]; maintainers = [ ];

View File

@ -1,15 +1,16 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui,
xfconf, gtk2, exo }: xfconf, gtk2, exo, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-mpc-plugin"; pname = "xfce4-mpc-plugin";
ver_maj = "0.4"; version = "0.4.5";
ver_min = "5";
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1kvgq1pq7cykqdc3227dq0izad093ppfw3nfsrcp9i8mi6i5f7z7"; sha256 = "1kvgq1pq7cykqdc3227dq0izad093ppfw3nfsrcp9i8mi6i5f7z7";
}; };
@ -17,8 +18,14 @@ stdenv.mkDerivation rec {
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel
xfconf gtk2 exo ]; xfconf gtk2 exo ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "MPD plugin for Xfce panel"; description = "MPD plugin for Xfce panel";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ ]; maintainers = [ ];

View File

@ -1,10 +1,10 @@
{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }: { mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
mkXfceDerivation rec { mkXfceDerivation {
category = "panel-plugins"; category = "panel-plugins";
pname = "xfce4-netload-plugin"; pname = "xfce4-netload-plugin";
version = "1.3.1"; version = "1.3.1";
rev = "version-${version}"; rev-prefix = "version-";
sha256 = "0nm8advafw4jpc9p1qszyfqa56194sz51z216rdh4c6ilcrrpy1h"; sha256 = "0nm8advafw4jpc9p1qszyfqa56194sz51z216rdh4c6ilcrrpy1h";
buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique }: { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique, xfce }:
let
category = "panel-plugins";
in
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-notes-plugin"; pname = "xfce4-notes-plugin";
ver_maj = "1.7"; version = "1.7.7";
ver_min = "7";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "05sjbwgch1j93m3r23ksbjnpfk11sf7xjmbb9pm5vl3snc2s3fm7"; sha256 = "05sjbwgch1j93m3r23ksbjnpfk11sf7xjmbb9pm5vl3snc2s3fm7";
}; };
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 libunique ]; buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 libunique ];
meta = { passthru.updateScript = xfce.updateScript {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}"; inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Sticky notes plugin for Xfce panel"; description = "Sticky notes plugin for Xfce panel";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];

View File

@ -1,15 +1,17 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk2, libxfce4ui, { stdenv, fetchurl, pkgconfig, intltool, gtk2, libxfce4ui,
libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu, xfce
}: }:
let
category = "panel-plugins";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${ver_maj}.${ver_min}";
pname = "xfce4-sensors-plugin"; pname = "xfce4-sensors-plugin";
ver_maj = "1.2"; version = "1.2.6";
ver_min = "6";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${pname}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "1h0vpqxcziml3gwrbvd8xvy1mwh9mf2a68dvxsy03rs5pm1ghpi3"; sha256 = "1h0vpqxcziml3gwrbvd8xvy1mwh9mf2a68dvxsy03rs5pm1ghpi3";
}; };
@ -36,11 +38,17 @@ stdenv.mkDerivation rec {
"--with-pathnetcat=${netcat-gnu}/bin/netcat" "--with-pathnetcat=${netcat-gnu}/bin/netcat"
]; ];
meta = { passthru.updateScript = xfce.updateScript {
inherit pname version;
attrPath = "xfce.${pname}";
versionLister = xfce.archiveLister category pname;
};
meta = with stdenv.lib; {
homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp"; description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
license = stdenv.lib.licenses.gpl2; license = licenses.gpl2;
platforms = stdenv.lib.platforms.unix; platforms = platforms.unix;
maintainers = [ stdenv.lib.maintainers.romildo ]; maintainers = [ maintainers.romildo ];
}; };
} }

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