diff --git a/.editorconfig b/.editorconfig
index 66a23a20577..bc45523451b 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -47,9 +47,10 @@ indent_style = space
insert_final_newline = unset
trim_trailing_whitespace = unset
-[*.{key,ovpn}]
+[*.{asc,key,ovpn}]
insert_final_newline = unset
end_of_line = unset
+trim_trailing_whitespace = unset
[*.lock]
indent_size = unset
@@ -62,12 +63,7 @@ insert_final_newline = unset
[eggs.nix]
trim_trailing_whitespace = unset
-[gemset.nix]
-insert_final_newline = unset
-
-[node-{composition,packages}.nix]
-insert_final_newline = unset
-[node-packages-generated.nix]
+[gemset*.nix]
insert_final_newline = unset
[nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
@@ -76,37 +72,28 @@ trim_trailing_whitespace = unset
[nixos/tests/systemd-networkd-vrf.nix]
trim_trailing_whitespace = unset
-[pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json]
-indent_size = unset
-
[pkgs/build-support/dotnetenv/Wrapper/**]
end_of_line = unset
+indent_style = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
[pkgs/build-support/upstream-updater/**]
+indent_style = unset
trim_trailing_whitespace = unset
[pkgs/development/compilers/elm/registry.dat]
end_of_line = unset
insert_final_newline = unset
-[pkgs/development/lisp-modules/quicklisp-to-nix.nix]
-indent_size = unset
-
[pkgs/development/haskell-modules/hackage-packages.nix]
indent_style = unset
-indent_size = unset
trim_trailing_whitespace = unset
-[pkgs/development/mobile/androidenv/generated/{addons,packages}.nix]
-trim_trailing_whitespace = unset
-
-[pkgs/development/node-packages/composition.nix]
-insert_final_newline = unset
+[pkgs/development/{perl-modules,ocaml-modules,tools/ocaml}/**]
+indent_style = unset
[pkgs/servers/dict/wordnet_structures.py]
-indent_size = unset
trim_trailing_whitespace = unset
[pkgs/tools/misc/timidity/timidity.cfg]
@@ -118,6 +105,3 @@ trim_trailing_whitespace = unset
[pkgs/top-level/emscripten-packages.nix]
trim_trailing_whitespace = unset
-
-[pkgs/top-level/perl-packages.nix]
-indent_size = unset
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 17777b05872..8491532ee38 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -12,6 +12,7 @@
# GitHub actions
/.github/workflows @Mic92 @zowoq
+/.github/workflows/merge-staging @FRidh
# EditorConfig
/.editorconfig @Mic92 @zowoq
@@ -25,17 +26,18 @@
/lib/asserts.nix @edolstra @nbp @Profpatsch
# Nixpkgs Internals
-/default.nix @nbp
-/pkgs/top-level/default.nix @nbp @Ericson2314
-/pkgs/top-level/impure.nix @nbp @Ericson2314
-/pkgs/top-level/stage.nix @nbp @Ericson2314 @matthewbauer
-/pkgs/top-level/splice.nix @Ericson2314 @matthewbauer
-/pkgs/top-level/release-cross.nix @Ericson2314 @matthewbauer
-/pkgs/stdenv/generic @Ericson2314 @matthewbauer
-/pkgs/stdenv/cross @Ericson2314 @matthewbauer
-/pkgs/build-support/cc-wrapper @Ericson2314 @orivej
-/pkgs/build-support/bintools-wrapper @Ericson2314 @orivej
-/pkgs/build-support/setup-hooks @Ericson2314
+/default.nix @nbp
+/pkgs/top-level/default.nix @nbp @Ericson2314
+/pkgs/top-level/impure.nix @nbp @Ericson2314
+/pkgs/top-level/stage.nix @nbp @Ericson2314 @matthewbauer
+/pkgs/top-level/splice.nix @Ericson2314 @matthewbauer
+/pkgs/top-level/release-cross.nix @Ericson2314 @matthewbauer
+/pkgs/stdenv/generic @Ericson2314 @matthewbauer
+/pkgs/stdenv/cross @Ericson2314 @matthewbauer
+/pkgs/build-support/cc-wrapper @Ericson2314 @orivej
+/pkgs/build-support/bintools-wrapper @Ericson2314 @orivej
+/pkgs/build-support/setup-hooks @Ericson2314
+/pkgs/build-support/setup-hooks/auto-patchelf.sh @aszlig
# Nixpkgs build-support
/pkgs/build-support/writers @lassulus @Profpatsch
@@ -96,8 +98,8 @@
/pkgs/development/ruby-modules @alyssais
# Rust
-/pkgs/development/compilers/rust @Mic92 @LnL7
-/pkgs/build-support/rust @andir
+/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
+/pkgs/build-support/rust @andir @zowoq
# Darwin-related
/pkgs/stdenv/darwin @NixOS/darwin-maintainers
@@ -156,8 +158,8 @@
/nixos/modules/services/networking/ntp @thoughtpolice
# Dhall
-/pkgs/development/dhall-modules @Gabriel439 @Profpatsch
-/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch
+/pkgs/development/dhall-modules @Gabriel439 @Profpatsch @ehmry
+/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch @ehmry
# Idris
/pkgs/development/idris-modules @Infinisil
@@ -176,6 +178,10 @@
/pkgs/applications/editors/emacs @adisbladis
/pkgs/top-level/emacs-packages.nix @adisbladis
+# Neovim
+/pkgs/applications/editors/neovim @jonringer
+/pkgs/applications/editors/neovim @teto
+
# VimPlugins
/pkgs/misc/vim-plugins @jonringer @softinio
@@ -202,10 +208,19 @@
/nixos/tests/cri-o.nix @NixOS/podman @zowoq
/nixos/tests/podman.nix @NixOS/podman @zowoq
+# Docker tools
+/pkgs/build-support/docker @roberth @utdemir
+/nixos/tests/docker-tools-overlay.nix @roberth
+/nixos/tests/docker-tools.nix @roberth
+/doc/builders/images/dockertools.xml @roberth
+
# Blockchains
-/pkgs/applications/blockchains @mmahut
+/pkgs/applications/blockchains @mmahut @RaghavSood
# Go
/pkgs/development/compilers/go @kalbasit @Mic92 @zowoq
/pkgs/development/go-modules @kalbasit @Mic92 @zowoq
/pkgs/development/go-packages @kalbasit @Mic92 @zowoq
+
+# Cinnamon
+/pkgs/desktops/cinnamon @mkg20001
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index fd2a6073df6..31060040c1a 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -53,10 +53,11 @@ For package version upgrades and such a one-line commit message is usually suffi
Follow these steps to backport a change into a release branch in compliance with the [commit policy](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches).
1. Take note of the commits in which the change was introduced into `master` branch.
-2. Check out the target _release branch_, e.g. `release-20.03`. Do not use a _channel branch_ like `nixos-20.03` or `nixpkgs-20.03`.
+2. Check out the target _release branch_, e.g. `release-20.09`. Do not use a _channel branch_ like `nixos-20.09` or `nixpkgs-20.09`.
3. Create a branch for your change, e.g. `git checkout -b backport`.
4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe
backporting), use
dontDropIconThemeCache
to true
so that the cache file is not removed by the dontDropIconThemeCache = true;
.
- strictDeps = false;
.
- dontWrapGApps = true;
and pass the arguments it intended to pass to Dependency's host platform | -Dependency's target platform | -
---|---|
build | -build | -
build | -host | -
build | -target | -
host | -host | -
host | -target | -
target | -target | -
.authz
file describing access permission, and
+ "svn"
is just a symbolic name identifying the
+ virtual host. The "/svn"
in
+ locations."/svn".extraConfig
is the path underneath
+ which the repositories will be served.
+ c
flag:
+ http://HOSTNAME/svn/REPO_NAME
.gnuradio
and gnuradio3_7
+ now point to an externally wrapped by default derivations, that allow you to
+ also add `extraPythonPackages` to the Python interpreter used by GNURadio.
+ Missing environmental variables needed for operational GUI were also added
+ (#7547).
+ path
,
+ options
, fstype
, and server
.
+ See
+ for more information.
+ '';
+ };
+
shell = mkOption {
- type = types.either types.shellPackage types.path;
+ type = types.nullOr (types.either types.shellPackage types.path);
default = pkgs.shadow;
defaultText = "pkgs.shadow";
example = literalExample "pkgs.bashInteractive";
@@ -185,10 +198,8 @@ let
type = types.bool;
default = false;
description = ''
- If true, the home directory will be created automatically. If this
- option is true and the home directory already exists but is not
- owned by the user, directory owner and group will be changed to
- match the user.
+ Whether to create the home directory and ensure ownership as well as
+ permissions to match the user.
'';
};
diff --git a/nixos/modules/config/zram.nix b/nixos/modules/config/zram.nix
index 5e9870bf6b1..1f513b7e4da 100644
--- a/nixos/modules/config/zram.nix
+++ b/nixos/modules/config/zram.nix
@@ -80,6 +80,15 @@ in
'';
};
+ memoryMax = mkOption {
+ default = null;
+ type = with types; nullOr int;
+ description = ''
+ Maximum total amount of memory (in bytes) that can be used by the zram
+ swap devices.
+ '';
+ };
+
priority = mkOption {
default = 5;
type = types.int;
@@ -146,11 +155,16 @@ in
# Calculate memory to use for zram
mem=$(${pkgs.gawk}/bin/awk '/MemTotal: / {
- print int($2*${toString cfg.memoryPercent}/100.0/${toString devicesCount}*1024)
+ value=int($2*${toString cfg.memoryPercent}/100.0/${toString devicesCount}*1024);
+ ${lib.optionalString (cfg.memoryMax != null) ''
+ memory_max=int(${toString cfg.memoryMax}/${toString devicesCount});
+ if (value > memory_max) { value = memory_max }
+ ''}
+ print value
}' /proc/meminfo)
- ${pkgs.utillinux}/sbin/zramctl --size $mem --algorithm ${cfg.algorithm} /dev/${dev}
- ${pkgs.utillinux}/sbin/mkswap /dev/${dev}
+ ${pkgs.util-linux}/sbin/zramctl --size $mem --algorithm ${cfg.algorithm} /dev/${dev}
+ ${pkgs.util-linux}/sbin/mkswap /dev/${dev}
'';
restartIfChanged = false;
};
diff --git a/nixos/modules/hardware/acpilight.nix b/nixos/modules/hardware/acpilight.nix
index 34e8a222096..2de448a265c 100644
--- a/nixos/modules/hardware/acpilight.nix
+++ b/nixos/modules/hardware/acpilight.nix
@@ -19,6 +19,7 @@ in
};
config = mkIf cfg.enable {
+ environment.systemPackages = with pkgs; [ acpilight ];
services.udev.packages = with pkgs; [ acpilight ];
};
}
diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix
index b07edb0f6ac..8cf3e5633dc 100644
--- a/nixos/modules/hardware/all-firmware.nix
+++ b/nixos/modules/hardware/all-firmware.nix
@@ -48,6 +48,7 @@ in {
rtl8192su-firmware
rt5677-firmware
rtl8723bs-firmware
+ rtl8761b-firmware
rtlwifi_new-firmware
zd1211fw
alsa-firmware
diff --git a/nixos/modules/hardware/keyboard/zsa.nix b/nixos/modules/hardware/keyboard/zsa.nix
new file mode 100644
index 00000000000..5cb09e5af49
--- /dev/null
+++ b/nixos/modules/hardware/keyboard/zsa.nix
@@ -0,0 +1,27 @@
+{ config, lib, pkgs, ... }:
+
+let
+ inherit (lib) mkOption mkIf types;
+ cfg = config.hardware.keyboard.zsa;
+in
+{
+ # TODO: make group configurable like in https://github.com/NixOS/nixpkgs/blob/0b2b4b8c4e729535a61db56468809c5c2d3d175c/pkgs/tools/security/nitrokey-app/udev-rules.nix ?
+ options.hardware.keyboard.zsa = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Enables udev rules for keyboards from ZSA like the ErgoDox EZ, Planck EZ and Moonlander Mark I.
+ You need it when you want to flash a new configuration on the keyboard
+ or use their live training in the browser.
+ Access to the keyboard is granted to users in the "plugdev" group.
+ You may want to install the wally-cli package.
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ services.udev.packages = [ pkgs.zsa-udev-rules ];
+ users.groups.plugdev = {};
+ };
+}
diff --git a/nixos/modules/hardware/nitrokey.nix b/nixos/modules/hardware/nitrokey.nix
index 02e4c3f46f8..baa07203118 100644
--- a/nixos/modules/hardware/nitrokey.nix
+++ b/nixos/modules/hardware/nitrokey.nix
@@ -19,23 +19,9 @@ in
nitrokey-app package, depending on your device and needs.
'';
};
-
- group = mkOption {
- type = types.str;
- default = "nitrokey";
- example = "wheel";
- description = ''
- Grant access to Nitrokey devices to users in this group.
- '';
- };
};
config = mkIf cfg.enable {
- services.udev.packages = [
- (pkgs.nitrokey-udev-rules.override (attrs:
- { inherit (cfg) group; }
- ))
- ];
- users.groups.${cfg.group} = {};
+ services.udev.packages = [ pkgs.nitrokey-udev-rules ];
};
}
diff --git a/nixos/modules/hardware/opentabletdriver.nix b/nixos/modules/hardware/opentabletdriver.nix
new file mode 100644
index 00000000000..295e23e6164
--- /dev/null
+++ b/nixos/modules/hardware/opentabletdriver.nix
@@ -0,0 +1,69 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.hardware.opentabletdriver;
+in
+{
+ meta.maintainers = with lib.maintainers; [ thiagokokada ];
+
+ options = {
+ hardware.opentabletdriver = {
+ enable = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Enable OpenTabletDriver udev rules, user service and blacklist kernel
+ modules known to conflict with OpenTabletDriver.
+ '';
+ };
+
+ blacklistedKernelModules = mkOption {
+ type = types.listOf types.str;
+ default = [ "hid-uclogic" "wacom" ];
+ description = ''
+ Blacklist of kernel modules known to conflict with OpenTabletDriver.
+ '';
+ };
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.opentabletdriver;
+ defaultText = "pkgs.opentabletdriver";
+ description = ''
+ OpenTabletDriver derivation to use.
+ '';
+ };
+
+ daemon = {
+ enable = mkOption {
+ default = true;
+ type = types.bool;
+ description = ''
+ Whether to start OpenTabletDriver daemon as a systemd user service.
+ '';
+ };
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = [ cfg.package ];
+
+ services.udev.packages = [ cfg.package ];
+
+ boot.blacklistedKernelModules = cfg.blacklistedKernelModules;
+
+ systemd.user.services.opentabletdriver = with pkgs; mkIf cfg.daemon.enable {
+ description = "Open source, cross-platform, user-mode tablet driver";
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
+
+ serviceConfig = {
+ Type = "simple";
+ ExecStart = "${cfg.package}/bin/otd-daemon -c ${cfg.package}/lib/OpenTabletDriver/Configurations";
+ Restart = "on-failure";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/hardware/rtl-sdr.nix b/nixos/modules/hardware/rtl-sdr.nix
new file mode 100644
index 00000000000..77c8cb59a3d
--- /dev/null
+++ b/nixos/modules/hardware/rtl-sdr.nix
@@ -0,0 +1,20 @@
+{ config, lib, pkgs, ... }:
+
+let
+ cfg = config.hardware.rtl-sdr;
+
+in {
+ options.hardware.rtl-sdr = {
+ enable = lib.mkEnableOption ''
+ Enables rtl-sdr udev rules and ensures 'plugdev' group exists.
+ This is a prerequisite to using devices supported by rtl-sdr without
+ being root, since rtl-sdr USB descriptors will be owned by plugdev
+ through udev.
+ '';
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.udev.packages = [ pkgs.rtl-sdr ];
+ users.groups.plugdev = {};
+ };
+}
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 2acb891f1a9..d1cf7d05c1b 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -235,7 +235,7 @@ in
hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_libs32;
environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings ]
- ++ filter (p: p != null) [ nvidia_x11.persistenced ];
+ ++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ];
systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out;
diff --git a/nixos/modules/i18n/input-method/default.nix b/nixos/modules/i18n/input-method/default.nix
index 0d6dd3399bf..2e7cfaab7b7 100644
--- a/nixos/modules/i18n/input-method/default.nix
+++ b/nixos/modules/i18n/input-method/default.nix
@@ -29,7 +29,7 @@ in
options.i18n = {
inputMethod = {
enabled = mkOption {
- type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" "hime" ]);
+ type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" ]);
default = null;
example = "fcitx";
description = ''
diff --git a/nixos/modules/i18n/input-method/default.xml b/nixos/modules/i18n/input-method/default.xml
index e15f6669081..73911059f8a 100644
--- a/nixos/modules/i18n/input-method/default.xml
+++ b/nixos/modules/i18n/input-method/default.xml
@@ -252,8 +252,8 @@ i18n.inputMethod = {
true
, successful executions will not be logged
+ to
+ dataDir
. Second, all dataDir
will be erased
- when starting the LDAP server. Third, modifications to the database
- are not prevented, they are just dropped on the next reboot of the
- server. Finally, performance-wise the database and indexes are rebuilt
- on each server startup, so this will slow down server startup,
+ All data will be erased when starting the LDAP server. Modifications
+ to the database are not prevented, they are just dropped on the next
+ reboot of the server. Performance-wise the database and indexes are
+ rebuilt on each server startup, so this will slow down server startup,
especially with large databases.
'';
- example = ''
- dn: dc=example,dc=org
- objectClass: domain
- dc: example
+ example = lib.literalExample ''
+ {
+ "dc=example,dc=org" = '''
+ dn= dn: dc=example,dc=org
+ objectClass: domain
+ dc: example
- dn: ou=users,dc=example,dc=org
- objectClass = organizationalUnit
- ou: users
+ dn: ou=users,dc=example,dc=org
+ objectClass = organizationalUnit
+ ou: users
- # ...
+ # ...
+ ''';
+ }
'';
};
-
- extraDatabaseConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- slapd.conf configuration after the database option.
- This setting will be ignored if configDir is set.
- '';
- example = ''
- # Indices to maintain for this directory
- # unique id so equality match only
- index uid eq
- # allows general searching on commonname, givenname and email
- index cn,gn,mail eq,sub
- # allows multiple variants on surname searching
- index sn eq,sub
- # sub above includes subintial,subany,subfinal
- # optimise department searches
- index ou eq
- # if searches will include objectClass uncomment following
- # index objectClass eq
- # shows use of default index parameter
- index default eq,sub
- # indices missing - uses default eq,sub
- index telephonenumber
-
- # other database parameters
- # read more in slapd.conf reference section
- cachesize 10000
- checkpoint 128 15
- '';
- };
-
};
-
};
- meta = {
- maintainers = [ lib.maintainers.mic92 ];
- };
-
-
- ###### implementation
+ meta.maintainers = with lib.maintainers; [ mic92 kwohlfahrt ];
config = mkIf cfg.enable {
- assertions = [
- {
- assertion = cfg.configDir != null || cfg.rootpwFile != null || cfg.rootpw != null;
- message = "services.openldap: Unless configDir is set, either rootpw or rootpwFile must be set";
- }
- ];
-
+ assertions = map (opt: {
+ assertion = ((getAttr opt cfg) != "_mkMergedOptionModule") -> (cfg.database != "_mkMergedOptionModule");
+ message = "Legacy OpenLDAP option `services.openldap.${opt}` requires `services.openldap.database` (use value \"mdb\" if unsure)";
+ }) legacyOptions;
environment.systemPackages = [ openldap ];
+ # Literal attributes must always be set
+ services.openldap.settings = {
+ attrs = {
+ objectClass = "olcGlobal";
+ cn = "config";
+ olcPidFile = "/run/slapd/slapd.pid";
+ };
+ children."cn=schema".attrs = {
+ cn = "schema";
+ objectClass = "olcSchemaConfig";
+ };
+ };
+
systemd.services.openldap = {
description = "LDAP server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
- preStart = ''
+ preStart = let
+ settingsFile = pkgs.writeText "config.ldif" (lib.concatStringsSep "\n" (attrsToLdif "cn=config" cfg.settings));
+
+ dbSettings = lib.filterAttrs (name: value: lib.hasPrefix "olcDatabase=" name) cfg.settings.children;
+ dataDirs = lib.mapAttrs' (name: value: lib.nameValuePair value.attrs.olcSuffix value.attrs.olcDbDirectory)
+ (lib.filterAttrs (_: value: value.attrs ? olcDbDirectory) dbSettings);
+ dataFiles = lib.mapAttrs (dn: contents: pkgs.writeText "${dn}.ldif" contents) cfg.declarativeContents;
+ mkLoadScript = dn: let
+ dataDir = lib.escapeShellArg (getAttr dn dataDirs);
+ in ''
+ rm -rf ${dataDir}/*
+ ${openldap}/bin/slapadd -F ${lib.escapeShellArg configDir} -b ${dn} -l ${getAttr dn dataFiles}
+ chown -R "${cfg.user}:${cfg.group}" ${dataDir}
+ '';
+ in ''
mkdir -p /run/slapd
chown -R "${cfg.user}:${cfg.group}" /run/slapd
- ${optionalString (cfg.declarativeContents != null) ''
- rm -Rf "${cfg.dataDir}"
- ''}
- mkdir -p "${cfg.dataDir}"
- ${optionalString (cfg.declarativeContents != null) ''
- ${openldap.out}/bin/slapadd ${configOpts} -l ${dataFile}
- ''}
- chown -R "${cfg.user}:${cfg.group}" "${cfg.dataDir}"
- ${openldap}/bin/slaptest ${configOpts}
+ mkdir -p ${lib.escapeShellArg configDir} ${lib.escapeShellArgs (lib.attrValues dataDirs)}
+ chown "${cfg.user}:${cfg.group}" ${lib.escapeShellArg configDir} ${lib.escapeShellArgs (lib.attrValues dataDirs)}
+
+ ${lib.optionalString (cfg.configDir == null) (''
+ rm -Rf ${configDir}/*
+ ${openldap}/bin/slapadd -F ${configDir} -bcn=config -l ${settingsFile}
+ '')}
+ chown -R "${cfg.user}:${cfg.group}" ${lib.escapeShellArg configDir}
+
+ ${lib.concatStrings (map mkLoadScript (lib.attrNames cfg.declarativeContents))}
+ ${openldap}/bin/slaptest -u -F ${lib.escapeShellArg configDir}
'';
- serviceConfig.ExecStart =
- "${openldap.out}/libexec/slapd -d '${cfg.logLevel}' " +
- "-u '${cfg.user}' -g '${cfg.group}' " +
- "-h '${concatStringsSep " " cfg.urlList}' " +
- "${configOpts}";
+ serviceConfig = {
+ ExecStart = lib.escapeShellArgs ([
+ "${openldap}/libexec/slapd" "-u" cfg.user "-g" cfg.group "-F" configDir
+ "-h" (lib.concatStringsSep " " cfg.urlList)
+ ]);
+ Type = "forking";
+ PIDFile = cfg.settings.attrs.olcPidFile;
+ };
};
- users.users.openldap =
- { name = cfg.user;
+ users.users = lib.optionalAttrs (cfg.user == "openldap") {
+ openldap = {
group = cfg.group;
- uid = config.ids.uids.openldap;
- };
-
- users.groups.openldap =
- { name = cfg.group;
- gid = config.ids.gids.openldap;
+ isSystemUser = true;
};
+ };
+ users.groups = lib.optionalAttrs (cfg.group == "openldap") {
+ openldap = {};
+ };
};
}
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index 5056d50153f..f582b059277 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -69,11 +69,16 @@ in
type = types.lines;
default = "";
description = ''
- Defines how users authenticate themselves to the server. By
- default, "trust" access to local users will always be granted
- along with any other custom options. If you do not want this,
- set this option using "lib.mkForce" to override this
- behaviour.
+ Defines how users authenticate themselves to the server. See the
+
+ PostgreSQL documentation for pg_hba.conf
+ for details on the expected format of this option. By default,
+ peer based authentication will be used for users connecting
+ via the Unix socket, and md5 password authentication will be
+ used for users connecting via TCP. Any added rules will be
+ inserted above the default rules. If you'd like to replace the
+ default rules entirely, you can use C. S. Lewis wrote books
\n", "alphalist off by default"); +@@ -22,30 +22,13 @@ foreach my $multimarkdown (qw(1 0)) { + "C. S. Lewis wrote books
\n", + "alphalist off by default for multimarkdown = $multimarkdown"); + +- like(IkiWiki::htmlize("foo", "foo", "mdwn", +- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"), +- qr{This works.*fnref:1.*}, +- "footnotes on by default for multimarkdown = $multimarkdown"); +- + $config{mdwn_footnotes} = 0; + unlike(IkiWiki::htmlize("foo", "foo", "mdwn", + "An unusual link label: [^1]\n\n[^1]: http://example.com/\n"), + qr{
An unusual link label: .*fnref:1.*}, + "footnotes can be disabled for multimarkdown = $multimarkdown"); +- +- $config{mdwn_footnotes} = 1; +- like(IkiWiki::htmlize("foo", "foo", "mdwn", +- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"), +- qr{
This works.*fnref:1.*}, +- "footnotes can be enabled for multimarkdown = $multimarkdown"); + } -$config{mdwn_alpha_lists} = 1; -like(IkiWiki::htmlize("foo", "foo", "mdwn", @@ -15,23 +33,3 @@ index ca3180139..d64750403 100755 $config{mdwn_alpha_lists} = 0; like(IkiWiki::htmlize("foo", "foo", "mdwn", "A. One\n". - "B. Two\n"), - qr{
A. One\sB. Two
\n}, "alphalist can be disabled"); - --like(IkiWiki::htmlize("foo", "foo", "mdwn", -- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"), -- qr{This works\^1}, "footnotes can be disabled");
-
--$config{mdwn_footnotes} = 1;
--like(IkiWiki::htmlize("foo", "foo", "mdwn",
-- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"),
-- qr{ This works 1.0, >= 1.0.2)
- i18n (>= 0.7, < 2)
- minitest (~> 5.1)
- tzinfo (~> 1.1)
- zeitwerk (~> 2.2, >= 2.2.2)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ tzinfo (~> 2.0)
+ zeitwerk (~> 2.3)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.7)
- em-websocket (0.5.1)
+ em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
@@ -24,21 +24,21 @@ GEM
http_parser.rb (0.6.0)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
- jekyll (4.1.1)
+ jekyll (4.2.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
- kramdown (~> 2.1)
+ kramdown (~> 2.3)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.4.0)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
- terminal-table (~> 1.8)
+ terminal-table (~> 2.0)
jekyll-avatar (0.7.0)
jekyll (>= 3.0, < 5.0)
jekyll-mentions (1.6.0)
@@ -46,8 +46,8 @@ GEM
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
- jekyll-seo-tag (2.6.1)
- jekyll (>= 3.3, < 5.0)
+ jekyll-seo-tag (2.7.1)
+ jekyll (>= 3.8, < 5.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
@@ -61,32 +61,31 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
- listen (3.2.1)
+ listen (3.3.3)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
mini_portile2 (2.4.0)
- minitest (5.14.1)
+ minitest (5.14.2)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (4.0.5)
+ public_suffix (4.0.6)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
- rouge (3.22.0)
+ rouge (3.26.0)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
- terminal-table (1.8.0)
+ terminal-table (2.0.0)
unicode-display_width (~> 1.1, >= 1.1.1)
- thread_safe (0.3.6)
- tzinfo (1.2.7)
- thread_safe (~> 0.1)
+ tzinfo (2.0.3)
+ concurrent-ruby (~> 1.0)
unicode-display_width (1.7.0)
- zeitwerk (2.4.0)
+ zeitwerk (2.4.2)
PLATFORMS
ruby
diff --git a/pkgs/applications/misc/jekyll/basic/gemset.nix b/pkgs/applications/misc/jekyll/basic/gemset.nix
index b14b27f3756..cc7be93510c 100644
--- a/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -5,10 +5,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
+ sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
type = "gem";
};
- version = "6.0.3.2";
+ version = "6.1.0";
};
addressable = {
dependencies = ["public_suffix"];
@@ -47,10 +47,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
+ sha256 = "1mg1mx735a0k1l8y14ps2mxdwhi5r01ikydf34b0sp60v66nvbkb";
type = "gem";
};
- version = "0.5.1";
+ version = "0.5.2";
};
eventmachine = {
groups = ["default"];
@@ -130,10 +130,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
+ sha256 = "0cqkh78jw8scrajyx5nla0vwm9fvp2qql3kdcvvplcq9mazy8snq";
type = "gem";
};
- version = "4.1.1";
+ version = "4.2.0";
};
jekyll-avatar = {
dependencies = ["jekyll"];
@@ -174,10 +174,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1p9fl2r4ni10lbx143zp41caldjs4hg27az5wg42sbwzb7s6z66m";
+ sha256 = "0fsi75hymk2wswy216fs224p5ycrzjw1kshw1bsl5czhv42wr2w3";
type = "gem";
};
- version = "2.6.1";
+ version = "2.7.1";
};
jekyll-sitemap = {
dependencies = ["jekyll"];
@@ -250,10 +250,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
+ sha256 = "1zpcgha7g33wvy2xbbc663cbjyvg9l1325lg3gzgcn3baydr9rha";
type = "gem";
};
- version = "3.2.1";
+ version = "3.3.3";
};
mercenary = {
groups = ["default"];
@@ -280,10 +280,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+ sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
type = "gem";
};
- version = "5.14.1";
+ version = "5.14.2";
};
nokogiri = {
dependencies = ["mini_portile2"];
@@ -312,10 +312,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+ sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
type = "gem";
};
- version = "4.0.5";
+ version = "4.0.6";
};
rb-fsevent = {
groups = ["default"];
@@ -353,10 +353,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
+ sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
type = "gem";
};
- version = "3.22.0";
+ version = "3.26.0";
};
safe_yaml = {
groups = ["default"];
@@ -385,31 +385,21 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ sha256 = "18rbrh464ysqbdv53iwj0r8frshn65566kyj044cp3x9c2754jwh";
type = "gem";
};
- version = "1.8.0";
- };
- thread_safe = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
- type = "gem";
- };
- version = "0.3.6";
+ version = "2.0.0";
};
tzinfo = {
- dependencies = ["thread_safe"];
+ dependencies = ["concurrent-ruby"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ sha256 = "1av5jzdij6vriwmf8crfvwaz2kik721ymg8svpxj3kx47kfha5vg";
type = "gem";
};
- version = "1.2.7";
+ version = "2.0.3";
};
unicode-display_width = {
groups = ["default"];
@@ -426,9 +416,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+ sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
type = "gem";
};
- version = "2.4.0";
+ version = "2.4.2";
};
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/jekyll/full/Gemfile b/pkgs/applications/misc/jekyll/full/Gemfile
index 8e7499bad61..2e72350f7e5 100644
--- a/pkgs/applications/misc/jekyll/full/Gemfile
+++ b/pkgs/applications/misc/jekyll/full/Gemfile
@@ -14,6 +14,7 @@ gem "jekyll-coffeescript"
gem "jekyll-feed", "~> 0.9"
gem "jekyll-gist"
gem "jekyll-paginate"
+gem "jekyll-polyglot"
gem "jekyll-redirect-from"
gem "kramdown-syntax-coderay"
gem "mime-types", "~> 3.0"
diff --git a/pkgs/applications/misc/jekyll/full/Gemfile.lock b/pkgs/applications/misc/jekyll/full/Gemfile.lock
index d7955072065..969909ca6d0 100644
--- a/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -1,12 +1,12 @@
GEM
remote: https://rubygems.org/
specs:
- activesupport (6.0.3.2)
+ activesupport (6.1.0)
concurrent-ruby (~> 1.0, >= 1.0.2)
- i18n (>= 0.7, < 2)
- minitest (~> 5.1)
- tzinfo (~> 1.1)
- zeitwerk (~> 2.2, >= 2.2.2)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ tzinfo (~> 2.0)
+ zeitwerk (~> 2.3)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
classifier-reborn (2.2.0)
@@ -18,13 +18,14 @@ GEM
coffee-script-source (1.12.2)
colorator (1.1.0)
concurrent-ruby (1.1.7)
- em-websocket (0.5.1)
+ em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
execjs (2.7.0)
- faraday (1.0.1)
+ faraday (1.1.0)
multipart-post (>= 1.2, < 3)
+ ruby2_keywords
fast-stemmer (1.0.2)
ffi (1.13.1)
forwardable-extended (2.6.0)
@@ -35,27 +36,27 @@ GEM
http_parser.rb (0.6.0)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
- jekyll (4.1.1)
+ jekyll (4.2.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
- kramdown (~> 2.1)
+ kramdown (~> 2.3)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.4.0)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
- terminal-table (~> 1.8)
+ terminal-table (~> 2.0)
jekyll-avatar (0.7.0)
jekyll (>= 3.0, < 5.0)
jekyll-coffeescript (2.0.0)
coffee-script (~> 2.2)
coffee-script-source (~> 1.12)
- jekyll-feed (0.15.0)
+ jekyll-feed (0.15.1)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
@@ -63,12 +64,14 @@ GEM
html-pipeline (~> 2.3)
jekyll (>= 3.7, < 5.0)
jekyll-paginate (1.1.0)
+ jekyll-polyglot (1.3.3)
+ jekyll (>= 3.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
- jekyll-seo-tag (2.6.1)
- jekyll (>= 3.3, < 5.0)
+ jekyll-seo-tag (2.7.1)
+ jekyll (>= 3.8, < 5.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
@@ -87,45 +90,45 @@ GEM
liquid (4.0.3)
liquid-c (4.0.0)
liquid (>= 3.0.0)
- listen (3.2.1)
+ listen (3.3.3)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
mime-types (3.3.1)
mime-types-data (~> 3.2015)
- mime-types-data (3.2020.0512)
+ mime-types-data (3.2020.1104)
mini_portile2 (2.4.0)
- minitest (5.14.1)
+ minitest (5.14.2)
multipart-post (2.1.1)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
- octokit (4.18.0)
+ octokit (4.19.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (4.0.5)
+ public_suffix (4.0.6)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rdoc (6.2.1)
rexml (3.2.4)
- rouge (3.22.0)
+ rouge (3.26.0)
+ ruby2_keywords (0.0.2)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
- terminal-table (1.8.0)
+ terminal-table (2.0.0)
unicode-display_width (~> 1.1, >= 1.1.1)
- thread_safe (0.3.6)
tomlrb (1.3.0)
- tzinfo (1.2.7)
- thread_safe (~> 0.1)
+ tzinfo (2.0.3)
+ concurrent-ruby (~> 1.0)
unicode-display_width (1.7.0)
yajl-ruby (1.4.1)
- zeitwerk (2.4.0)
+ zeitwerk (2.4.2)
PLATFORMS
ruby
@@ -139,6 +142,7 @@ DEPENDENCIES
jekyll-gist
jekyll-mentions
jekyll-paginate
+ jekyll-polyglot
jekyll-redirect-from
jekyll-seo-tag
jekyll-sitemap
diff --git a/pkgs/applications/misc/jekyll/full/gemset.nix b/pkgs/applications/misc/jekyll/full/gemset.nix
index aa0bc9bcdcc..bfbe428c861 100644
--- a/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -5,10 +5,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
+ sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
type = "gem";
};
- version = "6.0.3.2";
+ version = "6.1.0";
};
addressable = {
dependencies = ["public_suffix"];
@@ -101,10 +101,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
+ sha256 = "1mg1mx735a0k1l8y14ps2mxdwhi5r01ikydf34b0sp60v66nvbkb";
type = "gem";
};
- version = "0.5.1";
+ version = "0.5.2";
};
eventmachine = {
groups = ["default"];
@@ -127,15 +127,15 @@
version = "2.7.0";
};
faraday = {
- dependencies = ["multipart-post"];
+ dependencies = ["multipart-post" "ruby2_keywords"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+ sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
type = "gem";
};
- version = "1.0.1";
+ version = "1.1.0";
};
fast-stemmer = {
groups = ["default"];
@@ -227,10 +227,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
+ sha256 = "0cqkh78jw8scrajyx5nla0vwm9fvp2qql3kdcvvplcq9mazy8snq";
type = "gem";
};
- version = "4.1.1";
+ version = "4.2.0";
};
jekyll-avatar = {
dependencies = ["jekyll"];
@@ -260,10 +260,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1mgc1ik2cq2g8g7z9ql2i6ydzy771m2i4qrd1q77x8cf2sprlb0z";
+ sha256 = "1zxqkrnix0xiw98531h5ga6h69jhzlx2jh9qhvcl67p8nq3sgza9";
type = "gem";
};
- version = "0.15.0";
+ version = "0.15.1";
};
jekyll-gist = {
dependencies = ["octokit"];
@@ -297,6 +297,17 @@
};
version = "1.1.0";
};
+ jekyll-polyglot = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "4ad9140733250b65bc1ffab84650c588d036d23129e82f0349d31e56f1fe10a8";
+ type = "gem";
+ };
+ version = "1.3.3";
+ };
jekyll-redirect-from = {
dependencies = ["jekyll"];
groups = ["default"];
@@ -325,10 +336,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1p9fl2r4ni10lbx143zp41caldjs4hg27az5wg42sbwzb7s6z66m";
+ sha256 = "0fsi75hymk2wswy216fs224p5ycrzjw1kshw1bsl5czhv42wr2w3";
type = "gem";
};
- version = "2.6.1";
+ version = "2.7.1";
};
jekyll-sitemap = {
dependencies = ["jekyll"];
@@ -447,10 +458,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
+ sha256 = "1zpcgha7g33wvy2xbbc663cbjyvg9l1325lg3gzgcn3baydr9rha";
type = "gem";
};
- version = "3.2.1";
+ version = "3.3.3";
};
mercenary = {
groups = ["default"];
@@ -478,10 +489,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
+ sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
type = "gem";
};
- version = "3.2020.0512";
+ version = "3.2020.1104";
};
mini_portile2 = {
groups = ["default"];
@@ -498,10 +509,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+ sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
type = "gem";
};
- version = "5.14.1";
+ version = "5.14.2";
};
multipart-post = {
groups = ["default"];
@@ -530,10 +541,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0zvfr9njmj5svi39fcsi2b0g7pcxb0vamw9dlyas8bg814jlzhi6";
+ sha256 = "1dz8na8fk445yqrwpkl31fimnap7p4xf9m9qm9i7cpvaxxgk2n24";
type = "gem";
};
- version = "4.18.0";
+ version = "4.19.0";
};
pathutil = {
dependencies = ["forwardable-extended"];
@@ -551,10 +562,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+ sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
type = "gem";
};
- version = "4.0.5";
+ version = "4.0.6";
};
rb-fsevent = {
groups = ["default"];
@@ -602,10 +613,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
+ sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
type = "gem";
};
- version = "3.22.0";
+ version = "3.26.0";
+ };
+ ruby2_keywords = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+ type = "gem";
+ };
+ version = "0.0.2";
};
safe_yaml = {
groups = ["default"];
@@ -645,20 +666,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ sha256 = "18rbrh464ysqbdv53iwj0r8frshn65566kyj044cp3x9c2754jwh";
type = "gem";
};
- version = "1.8.0";
- };
- thread_safe = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
- type = "gem";
- };
- version = "0.3.6";
+ version = "2.0.0";
};
tomlrb = {
groups = ["default"];
@@ -671,15 +682,15 @@
version = "1.3.0";
};
tzinfo = {
- dependencies = ["thread_safe"];
+ dependencies = ["concurrent-ruby"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ sha256 = "1av5jzdij6vriwmf8crfvwaz2kik721ymg8svpxj3kx47kfha5vg";
type = "gem";
};
- version = "1.2.7";
+ version = "2.0.3";
};
unicode-display_width = {
groups = ["default"];
@@ -718,9 +729,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+ sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
type = "gem";
};
- version = "2.4.0";
+ version = "2.4.2";
};
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
index e6a140ec7f9..d0b9eff35f4 100644
--- a/pkgs/applications/misc/jgmenu/default.nix
+++ b/pkgs/applications/misc/jgmenu/default.nix
@@ -1,6 +1,6 @@
-{ stdenv
+{ lib, stdenv
, fetchFromGitHub
-, pkgconfig
+, pkg-config
, python3Packages
, pango
, librsvg
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
- pkgconfig
+ pkg-config
makeWrapper
python3Packages.wrapPython
];
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
xorg.libXinerama
xorg.libXrandr
python3Packages.python
- ] ++ stdenv.lib.optionals enableXfcePanelApplet [
+ ] ++ lib.optionals enableXfcePanelApplet [
gtk3
xfce.libxfce4util
xfce.xfce4-panel
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
configureFlags = [
]
- ++ stdenv.lib.optionals enableXfcePanelApplet [
+ ++ lib.optionals enableXfcePanelApplet [
"--with-xfce4-panel-applet"
];
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
done
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = "https://github.com/johanmalm/jgmenu";
description = "Small X11 menu intended to be used with openbox and tint2";
license = licenses.gpl2;
diff --git a/pkgs/applications/misc/jigdo/default.nix b/pkgs/applications/misc/jigdo/default.nix
index 134354de40b..b4573a81635 100644
--- a/pkgs/applications/misc/jigdo/default.nix
+++ b/pkgs/applications/misc/jigdo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, db, gtk2, bzip2 }:
+{ lib, stdenv, fetchurl, db, gtk2, bzip2 }:
stdenv.mkDerivation {
name = "jigdo-0.7.3";
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
meta = {
description = "Download utility that can fetch files from several sources simultaneously";
homepage = "http://atterer.net/jigdo/";
- license = stdenv.lib.licenses.gpl2;
- platforms = stdenv.lib.platforms.unix;
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.unix;
};
}
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index be103f3543a..8433cc9c87f 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }:
+{ lib, stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }:
let
pname = "joplin-desktop";
- version = "1.2.6";
+ version = "1.6.7";
name = "${pname}-${version}";
inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
sha256 = {
- x86_64-linux = "14svzfhszb0pnsajbydsic0rdc64zp6csqjp6k2p2i20jf0c0im6";
- x86_64-darwin = "1wdv8idnvn5567xdmsaa3f7skv48i9q6jqd4pgv8pz1zkhiqj0wi";
+ x86_64-linux = "0g1fac8l0w0b11bs4c9mi2k426hcqa7q4ks48fzxq0yl9ricjlrb";
+ x86_64-darwin = "1h5crdjzvjg30hdmh3fkygxi5gy714wpz4gwy5dn8s3xr12mmgka";
}.${system} or throwSystem;
};
@@ -25,7 +25,7 @@ let
inherit name src;
};
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "An open source note taking and to-do application with synchronisation capabilities";
longDescription = ''
Joplin is a free, open source note taking and to-do application, which can
@@ -52,9 +52,9 @@ let
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
extraInstallCommands = ''
mv $out/bin/{${name},${pname}}
- install -Dm444 ${appimageContents}/joplin.desktop -t $out/share/applications
- install -Dm444 ${appimageContents}/joplin.png -t $out/share/pixmaps
- substituteInPlace $out/share/applications/joplin.desktop \
+ install -Dm444 ${appimageContents}/@joplinapp-desktop.desktop -t $out/share/applications
+ install -Dm444 ${appimageContents}/@joplinapp-desktop.png -t $out/share/pixmaps
+ substituteInPlace $out/share/applications/@joplinapp-desktop.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
};
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index ea7672abf6e..28c7de12c8c 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
+{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
let
pname = "josm";
- version = "17084";
+ version = "17428";
srcs = {
jar = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
- sha256 = "0avzpzmvv371jpbph9xpq0ia2nikha2aib9v10hr2f9q7vka9zx4";
+ sha256 = "0fhnq0836jp72br808hhw1ki70zc9wqcwfhnizb8pzjvs4wgx36w";
};
macosx = fetchurl {
url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
- sha256 = "1vd2r4sshjpd6ic460cdil75skrm6f6q48lm6n3g1ywkn4mx63p1";
+ sha256 = "126yy6y7mkpqzkrkqkzzn3mwnl1yjkmd5k895k7mmk2inmcsvqgm";
};
pkg = fetchsvn {
url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
rev = version;
- sha256 = "0ybjca6dhnbwl3xqwrc91c444fzs1zrlnz7qr3l79s1vll9r4qd1";
+ sha256 = "198kq490y5wzxz0a5prb9anykq6dzg0imxfkchsas233inbzggql";
};
};
in
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
dontUnpack = true;
- buildInputs = stdenv.lib.optionals (!stdenv.isDarwin) [ jre makeWrapper ];
+ buildInputs = lib.optionals (!stdenv.isDarwin) [ jre makeWrapper ];
installPhase =
if stdenv.isDarwin then ''
@@ -40,9 +40,10 @@ stdenv.mkDerivation {
--prefix LD_LIBRARY_PATH ":" '${libXxf86vm}/lib'
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "An extensible editor for OpenStreetMap";
homepage = "https://josm.openstreetmap.de/";
+ changelog = "https://josm.openstreetmap.de/wiki/Changelog";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ rycee sikmir ];
platforms = platforms.all;
diff --git a/pkgs/applications/misc/jotta-cli/default.nix b/pkgs/applications/misc/jotta-cli/default.nix
index 70ca28b4678..ad7ca25324d 100644
--- a/pkgs/applications/misc/jotta-cli/default.nix
+++ b/pkgs/applications/misc/jotta-cli/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchzip }:
+{ lib, stdenv, fetchzip }:
let
arch = "amd64";
in
stdenv.mkDerivation rec {
pname = "jotta-cli";
- version = "0.6.24251";
+ version = "0.7.35160";
src = fetchzip {
url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz";
- sha256 = "0f26fg5fqpz0f6jxp72cj5f2kf76jah5iaqlqsl87250y0hm330g";
+ sha256 = "00fzycy199l9y738cj71s88qz96ppczb5sqsk3x9w4jj4m6ks239";
stripRoot = false;
};
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
$out/bin/jotta-cli completion > $out/share/bash-completion/completions/jotta-cli.bash
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Jottacloud CLI";
homepage = "https://www.jottacloud.com/";
downloadPage = "https://repo.jotta.us/archives/linux/";
diff --git a/pkgs/applications/misc/jp2a/default.nix b/pkgs/applications/misc/jp2a/default.nix
index d30e5d96df4..a48716a3dd2 100644
--- a/pkgs/applications/misc/jp2a/default.nix
+++ b/pkgs/applications/misc/jp2a/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libjpeg, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, libjpeg, autoreconfHook }:
stdenv.mkDerivation rec {
version = "1.0.7";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ libjpeg ];
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = "https://csl.name/jp2a/";
description = "A small utility that converts JPG images to ASCII";
license = licenses.gpl2;
diff --git a/pkgs/applications/misc/jrnl/default.nix b/pkgs/applications/misc/jrnl/default.nix
index 992b981c003..7fc8ef88330 100644
--- a/pkgs/applications/misc/jrnl/default.nix
+++ b/pkgs/applications/misc/jrnl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
, python3
}:
@@ -21,7 +21,7 @@ buildPythonApplication rec {
# No tests in archive
doCheck = false;
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = "http://maebert.github.io/jrnl/";
description = "A simple command line journal application that stores your journal in a plain text file";
license = licenses.mit;
diff --git a/pkgs/applications/misc/k2pdfopt/default.nix b/pkgs/applications/misc/k2pdfopt/default.nix
index 75e467d4cdf..6b594f196c9 100644
--- a/pkgs/applications/misc/k2pdfopt/default.nix
+++ b/pkgs/applications/misc/k2pdfopt/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, runCommand, fetchzip, fetchurl, fetchpatch, fetchFromGitHub
-, cmake, pkgconfig, zlib, libpng, makeWrapper
+{ lib, stdenv, runCommand, fetchzip, fetchurl, fetchpatch, fetchFromGitHub
+, cmake, pkg-config, zlib, libpng, makeWrapper
, enableGSL ? true, gsl
, enableGhostScript ? true, ghostscript
-, enableMuPDF ? true, mupdf
+, enableMuPDF ? true, mupdf_1_17
, enableDJVU ? true, djvulibre
, enableGOCR ? false, gocr # Disabled by default due to crashes
, enableTesseract ? true, leptonica, tesseract4
}:
-with stdenv.lib;
+with lib;
# k2pdfopt is a pain to package. It requires modified versions of mupdf,
# leptonica, and tesseract. Instead of shipping patches for these upstream
@@ -70,7 +70,7 @@ in stdenv.mkDerivation rec {
--replace " Version: Build )([0-9]+)')
- for platform in ${stdenv.lib.concatStringsSep " " meta.platforms}; do
+ for platform in ${lib.concatStringsSep " " meta.platforms}; do
# The script will not perform an update when the version attribute is up to date from previous platform run
# We need to clear it before each run
update-source-version ${packageAttribute}.${primaryBinary} 0 0000000000000000000000000000000000000000000000000000000000000000 --file=${versionFile} --version-key=buildVersion --system=$platform
@@ -117,7 +117,7 @@ in stdenv.mkDerivation (rec {
done
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Git client from the makers of Sublime Text";
homepage = "https://www.sublimemerge.com";
maintainers = with maintainers; [ zookatron ];
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index d5713ea2345..7b01ab21f49 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
common = opts: callPackage (import ./common.nix opts);
in {
sublime-merge = common {
- buildVersion = "2032";
- sha256 = "b782c768383893ba7803c2cffd428b09bec46be8a65e61a5f17964bdcc2aaf7c";
+ buildVersion = "2039";
+ sha256 = "0l82408jli7g6nc267bnnnz0zz015lvpwva5fxj53mval32ii4i8";
} {};
sublime-merge-dev = common {
- buildVersion = "2033";
- sha256 = "ab937a393eb6ae776a81b30ec5a589ae37763885ba8a91680d5c43e19a01a8fa";
+ buildVersion = "2037";
+ sha256 = "1s0g18l2msmnn6w7f126andh2dygm9l94fxxhsi64v74mkawqg82";
dev = true;
} {};
}
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index dffe3fadd74..5540e53c84e 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -5,7 +5,7 @@
, perlBindings ? false
, javahlBindings ? false
, saslSupport ? false
-, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc
+, lib, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc
, apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null
, sasl ? null, serf ? null
}:
@@ -31,10 +31,10 @@ let
buildInputs = [ zlib apr aprutil sqlite openssl ]
++ extraBuildInputs
- ++ stdenv.lib.optional httpSupport serf
- ++ stdenv.lib.optional pythonBindings python
- ++ stdenv.lib.optional perlBindings perl
- ++ stdenv.lib.optional saslSupport sasl;
+ ++ lib.optional httpSupport serf
+ ++ lib.optional pythonBindings python
+ ++ lib.optional perlBindings perl
+ ++ lib.optional saslSupport sasl;
patches = [ ./apr-1.patch ];
@@ -44,15 +44,15 @@ let
CPPFLAGS = [ "-P" ];
configureFlags = [
- (stdenv.lib.withFeature bdbSupport "berkeley-db")
- (stdenv.lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs")
- (stdenv.lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig)
- (stdenv.lib.withFeatureAs saslSupport "sasl" sasl)
- (stdenv.lib.withFeatureAs httpSupport "serf" serf)
+ (lib.withFeature bdbSupport "berkeley-db")
+ (lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs")
+ (lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig)
+ (lib.withFeatureAs saslSupport "sasl" sasl)
+ (lib.withFeatureAs httpSupport "serf" serf)
"--disable-keychain"
"--with-zlib=${zlib.dev}"
"--with-sqlite=${sqlite.dev}"
- ] ++ stdenv.lib.optionals javahlBindings [
+ ] ++ lib.optionals javahlBindings [
"--enable-javahl"
"--with-jdk=${jdk}"
];
@@ -95,7 +95,7 @@ let
checkInputs = [ python ];
doCheck = false; # fails 10 out of ~2300 tests
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "A version control system intended to be a compelling replacement for CVS in the open source community";
license = licenses.asl20;
homepage = "http://subversion.apache.org/";
@@ -103,7 +103,7 @@ let
platforms = platforms.linux ++ platforms.darwin;
};
- } // stdenv.lib.optionalAttrs stdenv.isDarwin {
+ } // lib.optionalAttrs stdenv.isDarwin {
CXX = "clang++";
CC = "clang";
CPP = "clang -E";
diff --git a/pkgs/applications/version-management/tkcvs/default.nix b/pkgs/applications/version-management/tkcvs/default.nix
index d2a7299bcd9..6a9e910f801 100644
--- a/pkgs/applications/version-management/tkcvs/default.nix
+++ b/pkgs/applications/version-management/tkcvs/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, tcl, tk}:
+{lib, stdenv, fetchurl, tcl, tk}:
stdenv.mkDerivation
{
@@ -22,7 +22,7 @@ stdenv.mkDerivation
meta = {
homepage = "https://tkcvs.sourceforge.io";
description = "TCL/TK GUI for cvs and subversion";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.unix;
+ license = lib.licenses.gpl2Plus;
+ platforms = lib.platforms.unix;
};
}
diff --git a/pkgs/applications/version-management/tortoisehg/default.nix b/pkgs/applications/version-management/tortoisehg/default.nix
index 2743d4f827f..6c97d153661 100644
--- a/pkgs/applications/version-management/tortoisehg/default.nix
+++ b/pkgs/applications/version-management/tortoisehg/default.nix
@@ -4,16 +4,16 @@
let
tortoisehgSrc = fetchurl rec {
meta.name = "tortoisehg-${meta.version}";
- meta.version = "5.2.1";
- url = "https://bitbucket.org/tortoisehg/thg/get/14221e991a5b623e0072d3bd340b759dbe9072ca.tar.gz";
- sha256 = "01rpzf5z99izcdda1ps9bhqvhw6qghagd8c1y7x19rv223zi05dv";
+ meta.version = "5.6";
+ url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${meta.version}.tar.gz";
+ sha256 = "031bafj88wggpvw0lgvl0djhlbhs9nls9vzwvni8yn0m0bgzc9gr";
};
tortoiseMercurial = mercurial.overridePythonAttrs (old: rec {
inherit (tortoisehgSrc.meta) version;
src = fetchurl {
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
- sha256 = "1pxkd37b0a1mi2zakk1hi122lgz1ffy2fxdnbs8acwlqpw55bc8q";
+ sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
};
});
diff --git a/pkgs/applications/version-management/vcprompt/default.nix b/pkgs/applications/version-management/vcprompt/default.nix
index 85fe83996da..d98f9447725 100644
--- a/pkgs/applications/version-management/vcprompt/default.nix
+++ b/pkgs/applications/version-management/vcprompt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchhg, autoconf, sqlite }:
+{ lib, stdenv, fetchhg, autoconf, sqlite }:
stdenv.mkDerivation rec {
pname = "vcprompt";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
makeFlags="$makeFlags PREFIX=$out"
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = ''
A little C program that prints a short string with barebones information
about the current working directory for various version control systems
diff --git a/pkgs/applications/version-management/vcsh/default.nix b/pkgs/applications/version-management/vcsh/default.nix
index c4af492dece..e272342fe95 100644
--- a/pkgs/applications/version-management/vcsh/default.nix
+++ b/pkgs/applications/version-management/vcsh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, which, git, ronn, perlPackages }:
+{ lib, stdenv, fetchFromGitHub, which, git, ronn, perlPackages }:
stdenv.mkDerivation {
version = "1.20170915"; # date of commit we're pulling
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
installPhase = "make install PREFIX=$out";
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Version Control System for $HOME";
homepage = "https://github.com/RichiH/vcsh";
license = licenses.gpl2Plus;
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index 37fd8055662..b75af94af56 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, git, gnupg }:
+{ lib, stdenv, fetchFromGitHub, git, gnupg }:
let version = "2.5.0"; in
stdenv.mkDerivation {
@@ -19,10 +19,10 @@ stdenv.mkDerivation {
installPhase = ''
runHook preInstall
- install -Dt $out/bin $src/yadm
- install -Dt $out/share/man/man1 $src/yadm.1
- install -D $src/completion/yadm.zsh_completion $out/share/zsh/site-functions/_yadm
- install -D $src/completion/yadm.bash_completion $out/share/bash-completion/completions/yadm.bash
+ install -Dt $out/bin yadm
+ install -Dt $out/share/man/man1 yadm.1
+ install -D completion/yadm.zsh_completion $out/share/zsh/site-functions/_yadm
+ install -D completion/yadm.bash_completion $out/share/bash-completion/completions/yadm.bash
runHook postInstall
'';
@@ -35,7 +35,8 @@ stdenv.mkDerivation {
* Provides a way to use alternate files on a specific OS or host.
* Supplies a method of encrypting confidential data so it can safely be stored in your repository.
'';
- license = stdenv.lib.licenses.gpl3;
- platforms = stdenv.lib.platforms.unix;
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ abathur ];
+ platforms = lib.platforms.unix;
};
}
diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix
index 54dac5c2aa1..d39b5e179a6 100644
--- a/pkgs/applications/video/aegisub/default.nix
+++ b/pkgs/applications/video/aegisub/default.nix
@@ -1,4 +1,5 @@
-{ config
+{ lib
+, config
, stdenv
, fetchurl
, fetchpatch
@@ -45,7 +46,7 @@ assert alsaSupport -> (alsaLib != null);
assert pulseaudioSupport -> (libpulseaudio != null);
assert portaudioSupport -> (portaudio != null);
-with stdenv.lib;
+with lib;
stdenv.mkDerivation
rec {
pname = "aegisub";
@@ -81,7 +82,7 @@ stdenv.mkDerivation
intltool
];
- buildInputs = with stdenv.lib; [
+ buildInputs = with lib; [
libX11
wxGTK
fontconfig
diff --git a/pkgs/applications/video/avidemux/default.nix b/pkgs/applications/video/avidemux/default.nix
index 2dd6b12c14f..da3c25def3f 100644
--- a/pkgs/applications/video/avidemux/default.nix
+++ b/pkgs/applications/video/avidemux/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, cmake, pkgconfig
+{ stdenv, lib, fetchurl, cmake, pkg-config
, zlib, gettext, libvdpau, libva, libXv, sqlite
, yasm, freetype, fontconfig, fribidi
, makeWrapper, libXext, libGLU, qttools, qtbase, wrapQtAppsHook
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs =
- [ yasm cmake pkgconfig ]
+ [ yasm cmake pkg-config ]
++ lib.optional withQT wrapQtAppsHook;
buildInputs = [
zlib gettext libvdpau libva libXv sqlite fribidi fontconfig
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
++ lib.optional withVPX libvpx;
buildCommand = let
- qtVersion = "5.${stdenv.lib.versions.minor qtbase.version}";
+ qtVersion = "5.${lib.versions.minor qtbase.version}";
wrapWith = makeWrapper: filename:
"${makeWrapper} ${filename} --set ADM_ROOT_DIR $out --prefix LD_LIBRARY_PATH : ${libXext}/lib";
wrapQtApp = wrapWith "wrapQtApp";
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
${wrapProgram "$out/bin/avidemux3_cli"}
- ${stdenv.lib.optionalString withQT ''
+ ${lib.optionalString withQT ''
${wrapQtApp "$out/bin/avidemux3_qt5"}
${wrapQtApp "$out/bin/avidemux3_jobs_qt5"}
''}
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
fixupPhase
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = "http://fixounet.free.fr/avidemux/";
description = "Free video editor designed for simple video editing tasks";
maintainers = with maintainers; [ abbradar ma27 ];
diff --git a/pkgs/applications/video/avxsynth/default.nix b/pkgs/applications/video/avxsynth/default.nix
index e818ef585c1..3fd25bdf73d 100644
--- a/pkgs/applications/video/avxsynth/default.nix
+++ b/pkgs/applications/video/avxsynth/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
, cairo, ffmpeg_3, ffms, libjpeg, log4cpp, pango
, avxeditSupport ? false, qt4 ? null
}:
let
- inherit (stdenv.lib) enableFeature optional;
+ inherit (lib) enableFeature optional;
in
stdenv.mkDerivation {
@@ -27,12 +27,12 @@ stdenv.mkDerivation {
"--with-jpeg=${libjpeg.out}/lib"
];
- nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ cairo ffmpeg_3 ffms libjpeg log4cpp pango ]
++ optional avxeditSupport qt4;
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "A script system that allows advanced non-linear editing";
homepage = "https://github.com/avxsynth/avxsynth";
license = licenses.gpl2Plus;
diff --git a/pkgs/applications/video/bino3d/default.nix b/pkgs/applications/video/bino3d/default.nix
index 4554bea6157..2a732ffa184 100644
--- a/pkgs/applications/video/bino3d/default.nix
+++ b/pkgs/applications/video/bino3d/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl, pkgconfig, ffmpeg, glew, libass, openal, qtbase }:
+{ mkDerivation, lib, fetchurl, pkg-config, ffmpeg, glew, libass, openal, qtbase }:
mkDerivation rec {
pname = "bino";
@@ -9,7 +9,7 @@ mkDerivation rec {
sha256 = "04yl7ibnhajlli4a5x77az8jxbzw6b2wjay8aa6px551nmiszn9k";
};
- nativeBuildInputs = [ pkgconfig ];
+ nativeBuildInputs = [ pkg-config ];
buildInputs = [ ffmpeg glew libass openal qtbase ];
diff --git a/pkgs/applications/video/bombono/default.nix b/pkgs/applications/video/bombono/default.nix
index 2ae3722fff2..8d6df2c4904 100644
--- a/pkgs/applications/video/bombono/default.nix
+++ b/pkgs/applications/video/bombono/default.nix
@@ -1,54 +1,80 @@
-{ stdenv, fetchFromGitHub, wrapGAppsHook, gtk2, boost, gtkmm2, scons,
-mjpegtools, libdvdread, dvdauthor, gettext, dvdplusrwtools, libxmlxx, ffmpeg_3,
-enca, pkgconfig, fetchpatch }:
+{ lib, stdenv
+, fetchFromGitHub
+, pkg-config
+, fetchpatch
+, scons
+, boost
+, dvdauthor
+, dvdplusrwtools
+, enca
+, ffmpeg_3
+, gettext
+, gtk2
+, gtkmm2
+, libdvdread
+, libxmlxx
+, mjpegtools
+, wrapGAppsHook
+}:
-let fetchPatchFromAur = {name, sha256}:
-fetchpatch {
- inherit name sha256;
- url = "https://aur.archlinux.org/cgit/aur.git/plain/${name}?h=e6cc6bc80c672aaa1a2260abfe8823da299a192c";
-}; in
+let
+ fetchPatchFromAur = {name, sha256}:
+ fetchpatch {
+ inherit name sha256;
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/${name}?h=e6cc6bc80c672aaa1a2260abfe8823da299a192c";
+ };
+in
stdenv.mkDerivation rec {
pname = "bombono";
version = "1.2.4";
+
src = fetchFromGitHub {
- owner = "muravjov";
+ owner = "bombono-dvd";
repo = "bombono-dvd";
rev = version;
- sha256 = "1lz1vik6abn1i1pvxhm55c9g47nxxv755wb2ijszwswwrwgvq5b9";
+ sha256 = "sha256-aRW8H8+ca/61jGLxUs7u3R7yEiulwr5viMEuZWbc4dM=";
};
patches = [
(fetchpatch {
name = "bombono-dvd-1.2.4-scons3.patch";
url = "https://svnweb.mageia.org/packages/cauldron/bombono-dvd/current/SOURCES/bombono-dvd-1.2.4-scons-python3.patch?revision=1447925&view=co&pathrev=1484457";
- sha256 = "081116d0if6s2r1rgqfr1n5gl3kpvzk01pf4v2k7gg2rnid83qp4";
+ sha256 = "sha256-5OKBWrRZvHem2MTdAObfdw76ig3Z4ZdDFtq4CJoJISA=";
})
] ++ (map fetchPatchFromAur [
- {name="fix_ffmpeg_codecid.patch"; sha256="1asfc0lqzk4gjssrvjmsi1xr53ygnsx2sh7c8yzp5r3j2bagxhp7";}
- {name="fix_ptr2bool_cast.patch"; sha256="0iqzrmbg38ikh4x9cmx0v0rnm7a9lcq0kd8sh1z9yfmnz71qqahg";}
- {name="fix_c++11_literal_warnings.patch"; sha256="1zbf12i77p0j0090pz5lzg4a7kyahahzqssybv7vi0xikwvw57w9";}
- {name="autoptr2uniqueptr.patch"; sha256="0a3wvwfplmqvi8fnj929y85z3h1iq7baaz2d4v08h1q2wbmakqdm";}
- {name="fix_deprecated_boost_api.patch"; sha256="184gdz3w95ihhsd8xscpwvq77xd4il47kvmv6wslax77xyw50gm8";}
- {name="fix_throw_specifications.patch"; sha256="1f5gi3qwm843hsxvijq7sjy0s62xm7rnr1vdp7f242fi0ldq6c1n";}
- {name="fix_operator_ambiguity.patch"; sha256="0r4scsbsqfg6wgzsbfxxpckamvgyrida0n1ypg1klx24pk5dc7n7";}
- {name="fix_ffmpeg30.patch"; sha256="1irva7a9bpbzs60ga8ypa3la9y84i5rz20jnd721qmfqp2yip8dw";}
+ {name="fix_ffmpeg_codecid.patch"; sha256="sha256-58L+1BJy5HK/R+xALbq2z4+Se4i6yp21lo/MjylgTqs=";}
+ {name="fix_ptr2bool_cast.patch"; sha256="sha256-DyqMw/m2Op9+gBq1CTCjSZ1qM9igV5Y6gTOi8VbNH0c=";}
+ {name="fix_c++11_literal_warnings.patch"; sha256="sha256-iZ/CN5+xg7jPXl5r/KGCys+jyPu0/AsSABLcc6IIbv0=";}
+ {name="autoptr2uniqueptr.patch"; sha256="sha256-teGp6uICB4jAJk18pdbBMcDxC/JJJGkdihtXeh3ffCg=";}
+ {name="fix_deprecated_boost_api.patch"; sha256="sha256-qD5QuO/ndEU1N7vueQiNpPVz8OaX6Y6ahjCWxMdvj6A=";}
+ {name="fix_throw_specifications.patch"; sha256="sha256-NjCDGwXRCSLcuW2HbPOpXRgNvNQHy7i7hoOgyvGIr7g=";}
+ {name="fix_operator_ambiguity.patch"; sha256="sha256-xx7WyrxEdDrDuz5YoFrM/u2qJru9u6X/4+Y5rJdmmmQ=";}
+ {name="fix_ffmpeg30.patch"; sha256="sha256-vKEbvbjYVRzEaVYC8XOJBPmk6FDXI/WA0X/dldRRO8c=";}
]);
- nativeBuildInputs = [ wrapGAppsHook scons pkgconfig gettext ];
+ nativeBuildInputs = [ wrapGAppsHook scons pkg-config gettext ];
buildInputs = [
- gtk2 gtkmm2 mjpegtools libdvdread dvdauthor boost dvdplusrwtools
- libxmlxx ffmpeg_3 enca
- ];
+ boost
+ dvdauthor
+ dvdplusrwtools
+ enca
+ ffmpeg_3
+ gtk2
+ gtkmm2
+ libdvdread
+ libxmlxx
+ mjpegtools
+ ];
prefixKey = "PREFIX=";
enableParallelBuilding = true;
- meta = {
+ meta = with lib; {
description = "a DVD authoring program for personal computers";
- homepage = "http://www.bombono.org/";
- license = stdenv.lib.licenses.gpl2;
- maintainers = with stdenv.lib.maintainers; [ symphorien ];
+ homepage = "https://www.bombono.org/";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ symphorien ];
};
}
diff --git a/pkgs/applications/video/bomi/default.nix b/pkgs/applications/video/bomi/default.nix
deleted file mode 100644
index d812ac48874..00000000000
--- a/pkgs/applications/video/bomi/default.nix
+++ /dev/null
@@ -1,118 +0,0 @@
-{ mkDerivation, config, stdenv, fetchFromGitHub
-, fetchpatch, pkgconfig, perl, python, which
-, libX11, libxcb, libGLU, libGL
-, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmake
-, libchardet
-, ffmpeg
-
-, mpg123
-, libass
-, libdvdread
-, libdvdnav
-, icu
-, libquvi
-, alsaLib
-, libvdpau, libva
-, libbluray
-, jackSupport ? false, jack ? null
-, portaudioSupport ? false, portaudio ? null
-, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
-, cddaSupport ? false, libcdda ? null
-, youtubeSupport ? true, youtube-dl ? null
-}:
-
-with stdenv.lib;
-
-assert jackSupport -> jack != null;
-assert portaudioSupport -> portaudio != null;
-assert pulseSupport -> libpulseaudio != null;
-assert cddaSupport -> libcdda != null;
-assert youtubeSupport -> youtube-dl != null;
-
-mkDerivation rec {
- pname = "bomi";
- version = "0.9.11";
-
- src = fetchFromGitHub {
- owner = "xylosper";
- repo = "bomi";
- rev = "v${version}";
- sha256 = "0a7n46gn3n5098lxxvl3s29s8jlkzss6by9074jx94ncn9cayf2h";
- };
-
- patches = [
- (fetchpatch rec {
- name = "bomi-compilation-fix.patch";
- url = "https://svnweb.mageia.org/packages/cauldron/bomi/current/SOURCES/${name}?revision=995725&view=co&pathrev=995725";
- sha256 = "1dwryya5ljx35dbx6ag9d3rjjazni2mfn3vwirjdijdy6yz22jm6";
- })
- (fetchpatch rec {
- name = "bomi-fix-expected-unqualified-id-before-numeric-constant-unix.patch";
- url = "https://svnweb.mageia.org/packages/cauldron/bomi/current/SOURCES/${name}?revision=995725&view=co&pathrev=995725";
- sha256 = "0n3xsrdrggimzw30gxlnrr088ndbdjqlqr46dzmfv8zan79lv5ri";
- })
- ];
-
- buildInputs = with stdenv.lib;
- [ libX11
- libxcb
- libGLU libGL
- qtbase
- qtx11extras
- qtdeclarative
- qtquickcontrols
- ffmpeg
- libchardet
-
- mpg123
- libass
- libdvdread
- libdvdnav
- icu
- libquvi
- alsaLib
- libvdpau
- libva
- libbluray
- ]
- ++ optional jackSupport jack
- ++ optional portaudioSupport portaudio
- ++ optional pulseSupport libpulseaudio
- ++ optional cddaSupport libcdda
- ;
-
- preConfigure = ''
- patchShebangs configure
- '';
-
- preBuild = ''
- patchShebangs src/mpv/waf
- patchShebangs build-mpv
- '';
-
- dontWrapQtApps = true;
- postInstall = ''
- wrapQtApp $out/bin/bomi \
- ${optionalString youtubeSupport "--prefix PATH ':' '${youtube-dl}/bin'"}
- '';
-
- dontUseQmakeConfigure = true;
-
- configureFlags = with stdenv.lib;
- [ "--qmake=qmake" ]
- ++ optional jackSupport "--enable-jack"
- ++ optional portaudioSupport "--enable-portaudio"
- ++ optional pulseSupport "--enable-pulseaudio"
- ++ optional cddaSupport "--enable-cdda"
- ;
-
- nativeBuildInputs = [ pkgconfig perl python which qttools qmake ];
-
- meta = with stdenv.lib; {
- description = "Powerful and easy-to-use multimedia player";
- homepage = "https://bomi-player.github.io/";
- license = licenses.gpl2Plus;
- maintainers = [ maintainers.abbradar ];
- platforms = platforms.linux;
- };
-}
diff --git a/pkgs/applications/video/byzanz/default.nix b/pkgs/applications/video/byzanz/default.nix
index f5d40a5c34c..69d27c3a2c8 100644
--- a/pkgs/applications/video/byzanz/default.nix
+++ b/pkgs/applications/video/byzanz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, wrapGAppsHook, which, gnome3, glib, intltool, pkgconfig, libtool, cairo, gtk3, gst_all_1, xorg }:
+{ lib, stdenv, fetchgit, wrapGAppsHook, which, gnome3, glib, intltool, pkg-config, libtool, cairo, gtk3, gst_all_1, xorg }:
stdenv.mkDerivation {
version = "0.2.3.alpha";
@@ -18,11 +18,11 @@ stdenv.mkDerivation {
NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
- nativeBuildInputs = [ pkgconfig ];
+ nativeBuildInputs = [ pkg-config ];
buildInputs = [ which gnome3.gnome-common glib intltool libtool cairo gtk3 xorg.xwininfo ]
++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-bad gst-plugins-good gst-plugins-ugly gst-libav wrapGAppsHook ]);
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Tool to record a running X desktop to an animation suitable for presentation in a web browser";
homepage = "https://github.com/GNOME/byzanz";
license = licenses.gpl3;
diff --git a/pkgs/applications/video/ccextractor/default.nix b/pkgs/applications/video/ccextractor/default.nix
index 91c47516521..881e6b687ef 100644
--- a/pkgs/applications/video/ccextractor/default.nix
+++ b/pkgs/applications/video/ccextractor/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake
, glew, glfw3, leptonica, libiconv, tesseract3, zlib }:
-with stdenv.lib;
+with lib;
stdenv.mkDerivation rec {
pname = "ccextractor";
version = "0.88";
@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
sourceRoot = "source/src";
- nativeBuildInputs = [ pkgconfig cmake ];
+ nativeBuildInputs = [ pkg-config cmake ];
- buildInputs = [ glew glfw3 leptonica tesseract3 zlib ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
+ buildInputs = [ glew glfw3 leptonica tesseract3 zlib ] ++ lib.optional (!stdenv.isLinux) libiconv;
meta = {
homepage = "https://www.ccextractor.org";
diff --git a/pkgs/applications/video/celluloid/default.nix b/pkgs/applications/video/celluloid/default.nix
index ca9ecb48188..57eaf91f2ae 100644
--- a/pkgs/applications/video/celluloid/default.nix
+++ b/pkgs/applications/video/celluloid/default.nix
@@ -1,11 +1,11 @@
-{ stdenv
+{ lib, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, python3
, gettext
-, pkgconfig
+, pkg-config
, desktop-file-utils
, wrapGAppsHook
, appstream-glib
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
python3
appstream-glib
gettext
- pkgconfig
+ pkg-config
desktop-file-utils
wrapGAppsHook
];
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
};
};
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Simple GTK frontend for the mpv video player";
longDescription = ''
GNOME MPV interacts with mpv via the client API exported by libmpv,
diff --git a/pkgs/applications/video/cinelerra/default.nix b/pkgs/applications/video/cinelerra/default.nix
index 22533b182a0..bfc577e51a2 100644
--- a/pkgs/applications/video/cinelerra/default.nix
+++ b/pkgs/applications/video/cinelerra/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, libtool
-, pkgconfig, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool
+, pkg-config, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
, libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
, libtiff, freetype, mjpegtools, x264, gettext, openexr
, libXext, libXxf86vm, libXv, libXi, libX11, libXft, xorgproto, libtheora, libpng
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
buildInputs =
[ automake
- autoconf libtool pkgconfig file
+ autoconf libtool pkg-config file
faad2 faac
a52dec alsaLib fftw lame libavc1394 libiec61883
libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
meta = {
description = "Video Editor";
homepage = "http://www.cinelerra.org";
- maintainers = [ stdenv.lib.maintainers.marcweber ];
- license = stdenv.lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.marcweber ];
+ license = lib.licenses.gpl2;
};
}
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index f8b74a17547..c1701dd5174 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, makeDesktopItem, ffmpeg_3
+{ lib, stdenv, fetchurl, makeDesktopItem, ffmpeg_3
, qmake, qttools, mkDerivation
, qtbase, qtdeclarative, qtlocation, qtquickcontrols2, qtwebchannel, qtwebengine
}:
mkDerivation rec {
pname = "clipgrab";
- version = "3.8.14";
+ version = "3.9.5";
src = fetchurl {
- sha256 = "19337qjxwlkpdnnh6q0y4b8askk17a8zb88gifznllrk06a6pgyf";
+ sha256 = "1p8pqa5s70basdm2zpmahc54shsxrr0fr7chvv425n5a9sqba4dh";
# The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
};
@@ -16,7 +16,7 @@ mkDerivation rec {
buildInputs = [ ffmpeg_3 qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
nativeBuildInputs = [ qmake qttools ];
- postPatch = stdenv.lib.optionalString (ffmpeg_3 != null) ''
+ postPatch = lib.optionalString (ffmpeg_3 != null) ''
substituteInPlace converter_ffmpeg.cpp \
--replace '"ffmpeg"' '"${ffmpeg_3.bin}/bin/ffmpeg"' \
--replace '"ffmpeg ' '"${ffmpeg_3.bin}/bin/ffmpeg '
@@ -42,7 +42,7 @@ mkDerivation rec {
cp -r ${desktopItem}/share/applications $out/share
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Video downloader for YouTube and other sites";
longDescription = ''
ClipGrab is a free downloader and converter for YouTube, Vimeo, Metacafe,
diff --git a/pkgs/applications/video/coriander/default.nix b/pkgs/applications/video/coriander/default.nix
index a094bfd904a..09289840030 100644
--- a/pkgs/applications/video/coriander/default.nix
+++ b/pkgs/applications/video/coriander/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, glib, gtk2, libgnomeui, libXv, libraw1394, libdc1394
+{ lib, stdenv, fetchurl, pkg-config, glib, gtk2, libgnomeui, libXv, libraw1394, libdc1394
, SDL, automake, GConf }:
stdenv.mkDerivation {
@@ -13,14 +13,14 @@ stdenv.mkDerivation {
cp ${automake}/share/automake-*/mkinstalldirs .
'';
- nativeBuildInputs = [ pkgconfig ];
+ nativeBuildInputs = [ pkg-config ];
buildInputs = [ glib gtk2 libgnomeui libXv libraw1394 libdc1394 SDL GConf ];
-
+
meta = {
homepage = "https://damien.douxchamps.net/ieee1394/coriander/";
description = "GUI for controlling a Digital Camera through the IEEE1394 bus";
- license = stdenv.lib.licenses.gpl3Plus;
- maintainers = with stdenv.lib.maintainers; [viric];
- platforms = with stdenv.lib.platforms; linux;
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [viric];
+ platforms = with lib.platforms; linux;
};
}
diff --git a/pkgs/applications/video/devede/default.nix b/pkgs/applications/video/devede/default.nix
index 9bb5518e80f..4b1b7ae0b60 100644
--- a/pkgs/applications/video/devede/default.nix
+++ b/pkgs/applications/video/devede/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, python3Packages, ffmpeg_3, mplayer, vcdimager, cdrkit, dvdauthor
+{ lib, stdenv, fetchFromGitLab, python3Packages, ffmpeg_3, mplayer, vcdimager, cdrkit, dvdauthor
, gtk3, gettext, wrapGAppsHook, gdk-pixbuf, gobject-introspection }:
let
inherit (python3Packages) dbus-python buildPythonApplication pygobject3 urllib3 setuptools;
-
-in buildPythonApplication {
- name = "devede-4.8.8";
+in buildPythonApplication rec {
+ pname = "devede";
+ version = "4.16.0";
namePrefix = "";
- src = fetchFromGitHub {
+ src = fetchFromGitLab {
owner = "rastersoft";
repo = "devedeng";
- rev = "c518683fbcd793aa92249e4fecafc3c3fea7da68";
- sha256 = "0ncb8nykchrjlllbzfjpvirmfvfaps9qhilc56kvcw3nzqrnkx8q";
+ rev = version;
+ sha256 = "1xb7acjphvn4ya8fgjsvag5gzi9a6c2famfl0ffr8nhb9y8ig9mg";
};
# Temporary fix
@@ -44,7 +44,7 @@ in buildPythonApplication {
--replace "/usr/local/share" "$out/share"
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "DVD Creator for Linux";
homepage = "http://www.rastersoft.com/programas/devede.html";
license = licenses.gpl3;
diff --git a/pkgs/applications/video/droidcam/default.nix b/pkgs/applications/video/droidcam/default.nix
new file mode 100644
index 00000000000..3e6a06db1a8
--- /dev/null
+++ b/pkgs/applications/video/droidcam/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchFromGitHub
+, ffmpeg, libjpeg_turbo, gtk3, alsaLib, speex, libusbmuxd, libappindicator-gtk3
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+ pname = "droidcam";
+ version = "1.7.1";
+
+ src = fetchFromGitHub {
+ owner = "aramg";
+ repo = "droidcam";
+ rev = "v${version}";
+ sha256 = "sha256-f7wLi4ReExkqb+SfOK0juzKbwdcqUVkklIUOIMtmnxM=";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ ];
+
+ buildInputs = [
+ ffmpeg
+ libjpeg_turbo
+ gtk3
+ alsaLib
+ speex
+ libusbmuxd
+ libappindicator-gtk3
+ ];
+
+ postPatch = ''
+ substituteInPlace src/droidcam.c \
+ --replace "/opt/droidcam-icon.png" "$out/share/icons/hicolor/droidcam.png"
+ '';
+
+ preBuild = ''
+ makeFlagsArray+=("JPEG=$(pkg-config --libs --cflags libturbojpeg)")
+ makeFlagsArray+=("USBMUXD=$(pkg-config --libs --cflags libusbmuxd-2.0)")
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dt $out/bin droidcam droidcam-cli
+ install -D icon2.png $out/share/icons/hicolor/droidcam.png
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Linux client for DroidCam app";
+ homepage = "https://github.com/aramg/droidcam";
+ license = licenses.gpl2Only;
+ maintainers = [ maintainers.suhr ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/video/dvb-apps/default.nix b/pkgs/applications/video/dvb-apps/default.nix
deleted file mode 100644
index 8fa88e32449..00000000000
--- a/pkgs/applications/video/dvb-apps/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, perl }:
-
-stdenv.mkDerivation {
- name = "dvb-apps-7f68f9c8d311";
-
- src = fetchurl {
- url = "https://linuxtv.org/hg/dvb-apps/archive/7f68f9c8d311.tar.gz";
- sha256 = "0a6c5jjq6ad98bj0r954l3n7zjb2syw9m19jksg06z4zg1z8yg82";
- };
-
- buildInputs = [ perl ];
-
- dontConfigure = true; # skip configure
-
- installPhase = "make prefix=$out install";
-
- meta = {
- description = "Linux DVB API applications and utilities";
- homepage = "https://linuxtv.org/";
- platforms = stdenv.lib.platforms.linux;
- license = stdenv.lib.licenses.gpl2;
- broken = true; # 2018-04-10
- };
-}
diff --git a/pkgs/applications/video/dvd-slideshow/default.nix b/pkgs/applications/video/dvd-slideshow/default.nix
index e35d95d54d6..95f3169718d 100644
--- a/pkgs/applications/video/dvd-slideshow/default.nix
+++ b/pkgs/applications/video/dvd-slideshow/default.nix
@@ -65,8 +65,8 @@ in stdenv.mkDerivation rec {
meta = {
description = "Suite of command line programs that creates a slideshow-style video from groups of pictures";
homepage = "http://dvd-slideshow.sourceforge.net/wiki/Main_Page";
- license = stdenv.lib.licenses.gpl2;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.robbinch ];
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.linux;
+ maintainers = [ lib.maintainers.robbinch ];
};
}
diff --git a/pkgs/applications/video/dvdauthor/default.nix b/pkgs/applications/video/dvdauthor/default.nix
index af1fe24cbbf..502c4c69c3f 100644
--- a/pkgs/applications/video/dvdauthor/default.nix
+++ b/pkgs/applications/video/dvdauthor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, imagemagick, libdvdread, libxml2, freetype, fribidi, libpng, zlib, pkgconfig
+{ lib, stdenv, fetchurl, imagemagick, libdvdread, libxml2, freetype, fribidi, libpng, zlib, pkg-config
, flex, bison }:
stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
};
buildInputs = [ libpng freetype libdvdread libxml2 zlib fribidi imagemagick flex bison];
- nativeBuildInputs = [ pkgconfig ];
+ nativeBuildInputs = [ pkg-config ];
patches = [
./dvdauthor-0.7.1-automake-1.13.patch
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
./dvdauthor-imagemagick-0.7.0.patch
];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Tools for generating DVD files to be played on standalone DVD players";
homepage = "http://dvdauthor.sourceforge.net/";
license = licenses.gpl2;
diff --git a/pkgs/applications/video/dvdbackup/default.nix b/pkgs/applications/video/dvdbackup/default.nix
index 633eea3d282..89995ab8cba 100644
--- a/pkgs/applications/video/dvdbackup/default.nix
+++ b/pkgs/applications/video/dvdbackup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, libdvdread, libdvdcss, dvdauthor }:
+{ lib, stdenv, fetchurl, fetchpatch, libdvdread, libdvdcss, dvdauthor }:
stdenv.mkDerivation rec {
version = "0.4.2";
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
meta = {
description = "A tool to rip video DVDs from the command line";
homepage = "http://dvdbackup.sourceforge.net/";
- license = stdenv.lib.licenses.gpl3Plus;
- maintainers = [ stdenv.lib.maintainers.bradediger ];
- platforms = stdenv.lib.platforms.linux;
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.bradediger ];
+ platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/video/dvdstyler/default.nix b/pkgs/applications/video/dvdstyler/default.nix
index b78f9ed816b..6366a222722 100644
--- a/pkgs/applications/video/dvdstyler/default.nix
+++ b/pkgs/applications/video/dvdstyler/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig
+{ lib, stdenv, fetchurl, pkg-config
, flex, bison, gettext
, xineUI, wxSVG
, fontconfig
@@ -10,7 +10,7 @@
, dbusSupport ? true, dbus ? null
, makeWrapper }:
-with stdenv.lib;
+with lib;
stdenv.mkDerivation rec {
pname = "dvdstyler";
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs =
- [ pkgconfig ];
+ [ pkg-config ];
packagesToBinPath =
[ cdrtools dvdauthor dvdplusrwtools ];
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
--prefix PATH ":" "${binPath}"
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "A DVD authoring software";
longDescription = ''
DVDStyler is a cross-platform free DVD authoring application for the
diff --git a/pkgs/applications/video/electronplayer/electronplayer.nix b/pkgs/applications/video/electronplayer/electronplayer.nix
index 577c85c6b27..a4ebbf159b8 100644
--- a/pkgs/applications/video/electronplayer/electronplayer.nix
+++ b/pkgs/applications/video/electronplayer/electronplayer.nix
@@ -1,4 +1,4 @@
-{ appimageTools, stdenv, fetchurl }:
+{ appimageTools, lib, stdenv, fetchurl }:
let
pname = "electronplayer";
version = "2.0.8";
@@ -23,7 +23,7 @@ in appimageTools.wrapType2 {
cp -r ${appimageContents}/usr/share/icons $out/share
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "An electron based web video services player";
homepage = "https://github.com/oscartbeaumont/ElectronPlayer";
license = licenses.mit;
diff --git a/pkgs/applications/video/epgstation/default.nix b/pkgs/applications/video/epgstation/default.nix
index e57f46c8c6a..53a3535fde4 100644
--- a/pkgs/applications/video/epgstation/default.nix
+++ b/pkgs/applications/video/epgstation/default.nix
@@ -1,6 +1,28 @@
-{ stdenv, fetchFromGitHub, makeWrapper, bash, nodejs, nodePackages, gzip }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, common-updater-scripts
+, genericUpdater
+, writers
+, makeWrapper
+, bash
+, nodejs
+, nodePackages
+, gzip
+, jq
+}:
let
+ # NOTE: use updateScript to bump the package version
+ pname = "EPGStation";
+ version = "1.7.5";
+ src = fetchFromGitHub {
+ owner = "l3tnun";
+ repo = "EPGStation";
+ rev = "v${version}";
+ sha256 = "06yaf5yb5rp3q0kdhw33df7px7vyfby885ckb6bdzw3wnams5d8m";
+ };
+
workaround-opencollective-buildfailures = stdenv.mkDerivation {
# FIXME: This should be removed when a complete fix is available
# https://github.com/svanderburg/node2nix/issues/145
@@ -12,67 +34,73 @@ let
chmod +x $out/bin/opencollective-postinstall
'';
};
-in
-nodePackages.epgstation.override (drv: {
- src = fetchFromGitHub {
- owner = "l3tnun";
- repo = "EPGStation";
- rev = "v${drv.version}"; # version specified in ./generate.sh
- sha256 = "15z1kdbamj97frp3dfnbm0h8krihmv2xdab4id0rxin29ibrw1k2";
- };
- buildInputs = [ bash ];
- nativeBuildInputs = [
- workaround-opencollective-buildfailures
- makeWrapper
- nodePackages.node-pre-gyp
- ];
+ pkg = nodePackages.epgstation.override (drv: {
+ inherit src;
- preRebuild = ''
- # Fix for not being able to connect to mysql using domain sockets.
- patch -p1 ${./use-mysql-over-domain-socket.patch}
- '';
+ buildInputs = [ bash ];
+ nativeBuildInputs = [
+ workaround-opencollective-buildfailures
+ makeWrapper
+ nodePackages.node-pre-gyp
+ ];
- postInstall = let
- runtimeDeps = [ nodejs bash ];
- in
- ''
- mkdir -p $out/{bin,libexec,share/doc/epgstation,share/man/man1}
+ preRebuild = ''
+ # Fix for not being able to connect to mysql using domain sockets.
+ patch -p1 ${./use-mysql-over-domain-socket.patch}
+ '';
- pushd $out/lib/node_modules/EPGStation
+ postInstall = let
+ runtimeDeps = [ nodejs bash ];
+ in
+ ''
+ mkdir -p $out/{bin,libexec,share/doc/epgstation,share/man/man1}
- npm run build
- npm prune --production
+ pushd $out/lib/node_modules/EPGStation
- mv config/{enc.sh,enc.js} $out/libexec
- mv LICENSE Readme.md $out/share/doc/epgstation
- mv doc/* $out/share/doc/epgstation
- sed 's/@DESCRIPTION@/${drv.meta.description}/g' ${./epgstation.1} \
- | ${gzip}/bin/gzip > $out/share/man/man1/epgstation.1.gz
- rm -rf doc
+ npm run build
+ npm prune --production
- # just log to stdout and let journald do its job
- rm -rf logs
+ mv config/{enc.sh,enc.js} $out/libexec
+ mv LICENSE Readme.md $out/share/doc/epgstation
+ mv doc/* $out/share/doc/epgstation
+ sed 's/@DESCRIPTION@/${drv.meta.description}/g' ${./epgstation.1} \
+ | ${gzip}/bin/gzip > $out/share/man/man1/epgstation.1.gz
+ rm -rf doc
- # Replace the existing configuration and runtime state directories with
- # symlinks. Without this, they would all be non-writable because they reside
- # in the Nix store. Note that the source path won't be accessible at build
- # time.
- rm -r config data recorded thumbnail
- ln -sfT /etc/epgstation config
- ln -sfT /var/lib/epgstation data
- ln -sfT /var/lib/epgstation/recorded recorded
- ln -sfT /var/lib/epgstation/thumbnail thumbnail
+ # just log to stdout and let journald do its job
+ rm -rf logs
- makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
- --run "cd $out/lib/node_modules/EPGStation" \
- --prefix PATH : ${stdenv.lib.makeBinPath runtimeDeps}
+ # Replace the existing configuration and runtime state directories with
+ # symlinks. Without this, they would all be non-writable because they
+ # reside in the Nix store. Note that the source path won't be accessible
+ # at build time.
+ rm -r config data recorded thumbnail
+ ln -sfT /etc/epgstation config
+ ln -sfT /var/lib/epgstation data
+ ln -sfT /var/lib/epgstation/recorded recorded
+ ln -sfT /var/lib/epgstation/thumbnail thumbnail
- popd
- '';
+ makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
+ --run "cd $out/lib/node_modules/EPGStation" \
+ --prefix PATH : ${lib.makeBinPath runtimeDeps}
- meta = with stdenv.lib; drv.meta // {
- maintainers = with maintainers; [ midchildan ];
+ popd
+ '';
+
+ # NOTE: this may take a while since it has to update all packages in
+ # nixpkgs.nodePackages
+ passthru.updateScript = import ./update.nix {
+ inherit (stdenv) lib;
+ inherit (src.meta) homepage;
+ inherit
+ pname
+ version
+ common-updater-scripts
+ genericUpdater
+ writers
+ jq;
+ };
# nodePackages.epgstation is a stub package to fetch npm dependencies and
# is marked as broken to prevent users from installing it directly. This
@@ -80,6 +108,16 @@ nodePackages.epgstation.override (drv: {
# nixpkgs while still allowing us to heavily customize the build. It also
# allows us to provide devDependencies for the epgstation build process
# without doing the same for all the other node packages.
- broken = false;
+ meta = drv.meta // { broken = false; };
+ });
+in
+pkg // {
+ name = "${pname}-${version}";
+
+ meta = with lib; pkg.meta // {
+ maintainers = with maintainers; [ midchildan ];
+
+ # NOTE: updateScript relies on this being correct
+ position = toString ./default.nix + ":1";
};
-})
+}
diff --git a/pkgs/applications/video/epgstation/generate.sh b/pkgs/applications/video/epgstation/generate.sh
deleted file mode 100755
index d193a015064..00000000000
--- a/pkgs/applications/video/epgstation/generate.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-
-# Script to generate the Nix package definition for EPGStation. Run this script
-# when bumping the package version.
-
-VERSION="1.7.4"
-URL="https://raw.githubusercontent.com/l3tnun/EPGStation/v$VERSION/package.json"
-JQ_BIN="$(nix-build ../../../.. --no-out-link -A jq)/bin/jq"
-
-set -eu -o pipefail
-cd "$(dirname "${BASH_SOURCE[0]}")"
-
-main() {
- # update package.json
- curl -sSfL "$URL" \
- | jq '. + {"dependencies": (.devDependencies + .dependencies)} | del(.devDependencies)' \
- > package.json
-
- # regenerate node packages to update the actual Nix package
- pushd ../../../development/node-packages \
- && ./generate.sh
- popd
-
- # generate default streaming settings for EPGStation
- pushd ../../../../nixos/modules/services/video/epgstation \
- && cat "$(./generate)" > streaming.json
- popd
-}
-
-jq() {
- "$JQ_BIN" "$@"
-}
-
-main "@"
diff --git a/pkgs/applications/video/epgstation/package.json b/pkgs/applications/video/epgstation/package.json
index 96525ec809e..53b1ebca2da 100644
--- a/pkgs/applications/video/epgstation/package.json
+++ b/pkgs/applications/video/epgstation/package.json
@@ -1,23 +1,7 @@
{
"name": "EPGStation",
- "version": "1.7.4",
+ "version": "1.7.5",
"description": "DTV Software in Japan.",
- "main": "dist/server/index.js",
- "scripts": {
- "start": "node dist/server/index.js",
- "dev-start": "node dist/server/index.js --env development",
- "clean": "gulp clean",
- "build": "gulp build --max_old_space_size=768 --env production",
- "dev-build": "gulp build --max_old_space_size=512 --env development",
- "test": "echo \"Error: no test specified\" && exit 1",
- "task": "gulp --max_old_space_size=512",
- "install-win-service": "winser -i -a",
- "uninstall-win-service": "winser -r -x",
- "backup": "node dist/server/DBTools.js -m backup -o",
- "restore": "node dist/server/DBTools.js -m restore -o",
- "move-log": "node dist/server/LogFileMoveTools.js",
- "convert-str": "node dist/server/ConvertDBStrTools.js"
- },
"repository": {
"type": "git",
"url": "https://github.com/l3tnun/EPGStation.git"
@@ -32,23 +16,53 @@
"node": "^10.x.x < 11 || ^12.14.0 < 13 || ^14.5.0 < 15"
},
"dependencies": {
+ "aribts": "^2.1.12",
+ "b24.js": "1.0.3",
+ "basic-auth": "2.0.1",
+ "body-parser": "1.19.0",
+ "chart.js": "2.9.3",
+ "css-ripple-effect": "1.0.5",
+ "diskusage": "1.1.3",
+ "express": "4.17.1",
+ "express-openapi": "7.0.1",
+ "fs-extra": "9.0.1",
+ "hls-b24.js": "0.12.3",
+ "js-yaml": "3.14.0",
+ "lodash": "4.17.20",
+ "log4js": "6.3.0",
+ "material-design-icons": "3.0.1",
+ "material-design-lite": "1.3.0",
+ "minimist": "1.2.5",
+ "mirakurun": "3.3.1",
+ "mithril": "2.0.4",
+ "mkdirp": "1.0.4",
+ "multer": "1.4.2",
+ "mysql": "2.18.1",
+ "openapi-types": "7.0.1",
+ "pg": "8.3.3",
+ "request": "2.88.2",
+ "socket.io": "2.3.0",
+ "socket.io-client": "2.3.0",
+ "sqlite3": "5.0.0",
+ "swagger-ui-dist": "3.34.0",
+ "url-join": "4.0.1",
"@types/basic-auth": "1.1.3",
"@types/body-parser": "1.19.0",
- "@types/chart.js": "2.9.23",
- "@types/express": "4.17.7",
- "@types/hls.js": "0.13.0",
+ "@types/chart.js": "2.9.24",
+ "@types/express": "4.17.8",
+ "@types/hls.js": "0.13.1",
"@types/js-yaml": "3.12.5",
- "@types/lodash": "4.14.158",
+ "@types/lodash": "4.14.161",
"@types/material-design-lite": "1.1.16",
"@types/minimist": "1.2.0",
"@types/mithril": "2.0.3",
"@types/mkdirp": "1.0.1",
- "@types/multer": "1.4.3",
+ "@types/multer": "1.4.4",
"@types/mysql": "2.15.15",
- "@types/node": "14.0.26",
- "@types/pg": "7.14.4",
+ "@types/node": "14.11.1",
+ "@types/pg": "7.14.5",
"@types/request": "2.48.5",
- "@types/socket.io": "2.1.10",
+ "@types/socket.io": "2.1.11",
"@types/socket.io-client": "1.4.33",
"@types/sqlite3": "3.1.6",
"@types/url-join": "4.0.0",
@@ -61,41 +75,11 @@
"gulp-sourcemaps": "2.6.5",
"gulp-tslint": "8.1.4",
"gulp-typescript": "5.0.1",
- "terser-webpack-plugin": "3.0.7",
- "ts-loader": "8.0.1",
- "tslint": "6.1.2",
- "typescript": "3.9.7",
- "webpack": "4.44.0",
- "webpack-stream": "5.2.1",
- "aribts": "^2.1.12",
- "b24.js": "1.0.3",
- "basic-auth": "2.0.1",
- "body-parser": "1.19.0",
- "chart.js": "2.9.3",
- "css-ripple-effect": "1.0.5",
- "diskusage": "1.1.3",
- "express": "4.17.1",
- "express-openapi": "7.0.0",
- "fs-extra": "9.0.1",
- "hls-b24.js": "0.12.3",
- "js-yaml": "3.14.0",
- "lodash": "4.17.19",
- "log4js": "6.3.0",
- "material-design-icons": "3.0.1",
- "material-design-lite": "1.3.0",
- "minimist": "1.2.5",
- "mirakurun": "3.2.0",
- "mithril": "2.0.4",
- "mkdirp": "1.0.4",
- "multer": "1.4.2",
- "mysql": "2.18.1",
- "openapi-types": "7.0.0",
- "pg": "8.3.0",
- "request": "2.88.2",
- "socket.io": "2.3.0",
- "socket.io-client": "2.3.0",
- "sqlite3": "5.0.0",
- "swagger-ui-dist": "3.30.2",
- "url-join": "4.0.1"
+ "terser-webpack-plugin": "4.2.2",
+ "ts-loader": "8.0.4",
+ "tslint": "6.1.3",
+ "typescript": "4.0.3",
+ "webpack": "4.44.2",
+ "webpack-stream": "6.1.0"
}
}
diff --git a/pkgs/applications/video/epgstation/update.nix b/pkgs/applications/video/epgstation/update.nix
new file mode 100644
index 00000000000..9faa83c64f9
--- /dev/null
+++ b/pkgs/applications/video/epgstation/update.nix
@@ -0,0 +1,66 @@
+{ pname
+, version
+, homepage
+, lib
+, common-updater-scripts
+, genericUpdater
+, writers
+, jq
+}:
+
+let
+ updater = genericUpdater {
+ inherit pname version;
+ attrPath = lib.toLower pname;
+ rev-prefix = "v";
+ versionLister = "${common-updater-scripts}/bin/list-git-tags ${homepage}";
+ };
+ updateScript = builtins.elemAt updater 0;
+ updateArgs = map (lib.escapeShellArg) (builtins.tail updater);
+in writers.writeBash "update-epgstation" ''
+ set -euxo pipefail
+
+ # bump the version
+ ${updateScript} ${lib.concatStringsSep " " updateArgs}
+
+ cd "${toString ./.}"
+
+ # Get the path to the latest source. Note that we can't just pass the value
+ # of epgstation.src directly because it'd be evaluated before we can run
+ # updateScript.
+ SRC="$(nix-build ../../../.. --no-out-link -A epgstation.src)"
+ if [[ "${version}" == "$(${jq}/bin/jq -r .version "$SRC/package.json")" ]]; then
+ echo "[INFO] Already using the latest version of ${pname}" >&2
+ exit
+ fi
+
+ # Regenerate package.json from the latest source.
+ ${jq}/bin/jq '. + {
+ dependencies: (.dependencies + .devDependencies),
+ } | del(.devDependencies, .main, .scripts)' \
+ "$SRC/package.json" \
+ > package.json
+
+ # Regenerate node packages to update the pre-overriden epgstation derivation.
+ # This must come *after* package.json has been regenerated.
+ pushd ../../../development/node-packages
+ ./generate.sh
+ popd
+
+ # Generate default streaming settings for the nixos module.
+ pushd ../../../../nixos/modules/services/video/epgstation
+ ${jq}/bin/jq '
+ { liveHLS
+ , liveMP4
+ , liveWebM
+ , mpegTsStreaming
+ , mpegTsViewer
+ , recordedDownloader
+ , recordedStreaming
+ , recordedHLS
+ , recordedViewer
+ }' \
+ "$SRC/config/config.sample.json" \
+ > streaming.json
+ popd
+''
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index cdd70b4c894..0e7cce4fee7 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openjdk11, makeWrapper, autoPatchelfHook
+{ lib, stdenv, fetchurl, openjdk11, makeWrapper, autoPatchelfHook
, zlib, libzen, libmediainfo, curl, libmms, glib
}:
@@ -10,11 +10,11 @@ in
stdenv.mkDerivation rec {
pname = "filebot";
- version = "4.9.1";
+ version = "4.9.2";
src = fetchurl {
url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
- sha256 = "0l496cz703mjymjhgmyrkqbfld1bz53pdsbkx00h9a267j22fkms";
+ sha256 = "0hcyam8l0fzc9fnp1dpawk0s3rwhfph78w99y7zlcv5l4l4h04lz";
};
unpackPhase = "tar xvf $src";
@@ -30,15 +30,15 @@ stdenv.mkDerivation rec {
cp -r filebot.sh lib/ jar/ $out/opt/
# Filebot writes to $APP_DATA, which fails due to read-only filesystem. Using current user .local directory instead.
substituteInPlace $out/opt/filebot.sh \
- --replace 'APP_DATA="$FILEBOT_HOME/data/$USER"' 'APP_DATA=''${XDG_DATA_HOME:-$HOME/.local/share}/filebot/data' \
+ --replace 'APP_DATA="$FILEBOT_HOME/data/$(id -u)"' 'APP_DATA=''${XDG_DATA_HOME:-$HOME/.local/share}/filebot/data' \
--replace '$FILEBOT_HOME/data/.license' '$APP_DATA/.license'
wrapProgram $out/opt/filebot.sh \
- --prefix PATH : ${stdenv.lib.makeBinPath [ openjdk11 ]}
+ --prefix PATH : ${lib.makeBinPath [ openjdk11 ]}
# Expose the binary in bin to make runnable.
ln -s $out/opt/filebot.sh $out/bin/filebot
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "The ultimate TV and Movie Renamer";
longDescription = ''
FileBot is the ultimate tool for organizing and renaming your Movies, TV
diff --git a/pkgs/applications/video/gnome-mplayer/default.nix b/pkgs/applications/video/gnome-mplayer/default.nix
index 3bd7785f201..de56865410e 100644
--- a/pkgs/applications/video/gnome-mplayer/default.nix
+++ b/pkgs/applications/video/gnome-mplayer/default.nix
@@ -1,4 +1,4 @@
-{stdenv, substituteAll, fetchFromGitHub, pkgconfig, gettext, glib, gtk3, gmtk, dbus, dbus-glib
+{lib, stdenv, substituteAll, fetchFromGitHub, pkg-config, gettext, glib, gtk3, gmtk, dbus, dbus-glib
, libnotify, libpulseaudio, mplayer, wrapGAppsHook }:
stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "0qvy9fllvg1mad6y1j79iaqa6khs0q2cb0z62yfg4srbr07fi8xr";
};
- nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
+ nativeBuildInputs = [ pkg-config gettext wrapGAppsHook ];
buildInputs = [ glib gtk3 gmtk dbus dbus-glib libnotify libpulseaudio ];
patches = [
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
})
];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Gnome MPlayer, a simple GUI for MPlayer";
homepage = "https://sites.google.com/site/kdekorte2/gnomemplayer";
license = licenses.gpl2;
diff --git a/pkgs/applications/video/gnomecast/default.nix b/pkgs/applications/video/gnomecast/default.nix
index 3a3ca044bb8..bc045deb9ec 100644
--- a/pkgs/applications/video/gnomecast/default.nix
+++ b/pkgs/applications/video/gnomecast/default.nix
@@ -1,13 +1,13 @@
-{ lib, python3Packages, gtk3, gobject-introspection, ffmpeg_3, wrapGAppsHook }:
+{ stdenv, lib, python3Packages, gtk3, gobject-introspection, ffmpeg_3, wrapGAppsHook }:
with python3Packages;
buildPythonApplication rec {
pname = "gnomecast";
- version = "1.4.1";
+ version = "1.9.11";
src = fetchPypi {
inherit pname version;
- sha256 = "0mn03gqbwmhch0055bzgdwkzsl304qdyqwrgyiq0k5c5d2gyala5";
+ sha256 = "4d8cd7a71f352137252c5a9ee13475bd67fb99594560ecff1efb0f718d8bbaac";
};
nativeBuildInputs = [ wrapGAppsHook ];
@@ -20,9 +20,13 @@ buildPythonApplication rec {
gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg_3 ]})
'';
+ # no tests
+ doCheck = false;
+
meta = with lib; {
description = "A native Linux GUI for Chromecasting local files";
homepage = "https://github.com/keredson/gnomecast";
license = with licenses; [ gpl3 ];
+ broken = stdenv.isDarwin;
};
}
diff --git a/pkgs/applications/video/go-chromecast/default.nix b/pkgs/applications/video/go-chromecast/default.nix
new file mode 100644
index 00000000000..782f0016106
--- /dev/null
+++ b/pkgs/applications/video/go-chromecast/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go-chromecast";
+ version = "0.2.7";
+
+ src = fetchFromGitHub {
+ owner = "vishen";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-OCykgy49RZL2aAE0OeHxj8zkFnr32sIYjtoFMwESqLg=";
+ };
+
+ vendorSha256 = "sha256-idxElk4Sy7SE9G1OMRw8YH4o8orBa80qhBXPA+ar620=";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=unknown" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/vishen/go-chromecast";
+ description = "CLI for Google Chromecast, Home devices and Cast Groups";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ marsam ];
+ };
+}
diff --git a/pkgs/applications/video/gpac/default.nix b/pkgs/applications/video/gpac/default.nix
index 4fcff75f095..6597b5fbffe 100644
--- a/pkgs/applications/video/gpac/default.nix
+++ b/pkgs/applications/video/gpac/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, pkgconfig, zlib }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, zlib }:
stdenv.mkDerivation rec {
- version = "1.0.0";
+ version = "1.0.1";
pname = "gpac";
src = fetchFromGitHub {
owner = "gpac";
repo = "gpac";
rev = "v${version}";
- sha256 = "11jrklaahhdfqhci7f3lzv8wchh9bc91rg6w8ibh6varrk692vsb";
+ sha256 = "0gj46jpprfqv3wyagblv3a52chbplyzhvpra66v63czjibqsslm5";
};
postPatch = ''
@@ -17,13 +17,13 @@ stdenv.mkDerivation rec {
# this is the bare minimum configuration, as I'm only interested in MP4Box
# For most other functionality, this should probably be extended
- nativeBuildInputs = [ pkgconfig ];
+ nativeBuildInputs = [ pkg-config ];
buildInputs = [ zlib ];
enableParallelBuilding = true;
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Open Source multimedia framework for research and academic purposes";
longDescription = ''
GPAC is an Open Source multimedia framework for research and academic purposes.
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index 1e4b83da814..6317d7b1ab3 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -9,7 +9,7 @@
{ stdenv, lib, fetchFromGitHub,
# Main build tools
- pkgconfig, autoconf, automake, libtool, m4, lzma, python3,
+ pkg-config, autoconf, automake, libtool, m4, lzma, python3,
numactl,
# Processing, video codecs, containers
ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, dav1d,
@@ -93,7 +93,7 @@ _EOF
'');
nativeBuildInputs = [
- pkgconfig autoconf automake libtool m4 python3
+ pkg-config autoconf automake libtool m4 python3
] ++ lib.optionals useGtk [ intltool wrapGAppsHook ];
buildInputs = [
@@ -131,7 +131,7 @@ _EOF
cd build
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = "http://handbrake.fr/";
description = "A tool for converting video files and ripping DVDs";
longDescription = ''
diff --git a/pkgs/applications/video/hdhomerun-config-gui/default.nix b/pkgs/applications/video/hdhomerun-config-gui/default.nix
index 91feb178ca0..b44da238d1e 100644
--- a/pkgs/applications/video/hdhomerun-config-gui/default.nix
+++ b/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, libhdhomerun, gcc, gnumake, pkg-config, gtk2 }:
+{ lib, stdenv, fetchurl, libhdhomerun, gcc, gnumake, pkg-config, gtk2 }:
stdenv.mkDerivation rec {
pname = "hdhomerun-config-gui";
- version = "20200521";
+ version = "20200907";
src = fetchurl {
url = "https://download.silicondust.com/hdhomerun/hdhomerun_config_gui_${version}.tgz";
- sha256 = "1r1rwfgi714nwblyg8nqjzkpm4n2lg7kqqqas47hvbn5waimz1ja";
+ sha256 = "17zf0hzw68b0xdkh1maqhl96jb7171mbhd29y64as29nps9x4fmz";
};
nativeBuildInputs = [ pkg-config ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
install -vDm 755 src/hdhomerun_config_gui $out/usr/bin/hdhomerun_config_gui
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "GUI for configuring Silicondust HDHomeRun TV tuners";
homepage = "https://www.silicondust.com/support/linux";
license = licenses.gpl3Only;
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index 825aac4dad2..fe06e9431f9 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonApplication, fetchFromGitHub, callPackage
+{ lib, stdenv, buildPythonApplication, fetchFromGitHub, callPackage
, mpv, python-mpv-jsonipc, jellyfin-apiclient-python
, pillow, tkinter, pystray, jinja2, pywebview }:
@@ -53,7 +53,11 @@ buildPythonApplication rec {
pywebview
];
- meta = with stdenv.lib; {
+ # no tests
+ doCheck = false;
+ pythonImportsCheck = [ "jellyfin_mpv_shim" ];
+
+ meta = with lib; {
homepage = "https://github.com/iwalton3/jellyfin-mpv-shim";
description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
license = licenses.gpl3;
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix b/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
index fd33e8c90b5..89a601af4ad 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "jellyfin-mpv-shim-shader-pack";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
cp -a . $out
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = "https://github.com/iwalton3/default-shader-pack";
description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients";
license = with licenses; [ mit lgpl3Plus unlicense ];
diff --git a/pkgs/applications/video/jftui/default.nix b/pkgs/applications/video/jftui/default.nix
index 04ed4c16e2b..b050e2636cc 100644
--- a/pkgs/applications/video/jftui/default.nix
+++ b/pkgs/applications/video/jftui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
, fetchFromGitHub
, pkg-config
, curl
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
install -Dm555 build/jftui $out/bin/jftui
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Jellyfin Terminal User Interface ";
homepage = "https://github.com/Aanok/jftui";
license = licenses.unlicense;
diff --git a/pkgs/applications/video/k9copy/default.nix b/pkgs/applications/video/k9copy/default.nix
deleted file mode 100644
index 317505185d0..00000000000
--- a/pkgs/applications/video/k9copy/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv, fetchurl
-, cmake
-, dvdauthor, xineLib, libmpeg2, libav, libdvdread, libdvdnav, dvdplusrwtools
-, phonon, qtx11extras
-, extra-cmake-modules, kio, kiconthemes, ki18n, kdesu, kdoctools, solid
-}:
-
-stdenv.mkDerivation rec {
- version = "3.0.3";
- pname = "k9copy";
-
- src = fetchurl {
- url = "mirror://sourceforge/k9copy-reloaded/${pname}-${version}.tar.gz";
- sha256 = "0dp06rwihks50c57bbv04d6bj2qc88isl91971r4lii2xp0qn7sg";
- };
-
- patches = [
- ./gcc6.patch
- ];
-
- cmakeFlags = [
- "-DQT5_BUILD=ON"
- "-DCMAKE_MINIMUM_REQUIRED_VERSION=3.0"
- ];
-
- # Hack to disable documentation
- preConfigure = ''
- substituteInPlace ./CMakeLists.txt \
- --replace "add_subdirectory(doc)" ""
- '';
-
- buildInputs = [
- cmake
- dvdauthor
- xineLib
- libmpeg2
- libav
- libdvdread
- libdvdnav
- dvdplusrwtools
- #automoc4
- phonon
- extra-cmake-modules
- kio
- solid
- qtx11extras
- kiconthemes
- ki18n
- kdesu
- ];
- nativeBuildInputs = [ kdoctools ];
-
- meta = {
- description = "DVD backup and DVD authoring program";
- homepage = "http://k9copy-reloaded.sourceforge.net/";
- license = stdenv.lib.licenses.gpl2;
- maintainers = with stdenv.lib.maintainers; [ flosse ];
- platforms = stdenv.lib.platforms.unix;
- # TODO: The software is deprecated and the build is broken, see:
- # https://github.com/NixOS/nixpkgs/pull/63260#issuecomment-503506487
- broken = true;
- };
-}
diff --git a/pkgs/applications/video/k9copy/gcc6.patch b/pkgs/applications/video/k9copy/gcc6.patch
deleted file mode 100644
index d0c9c2a8035..00000000000
--- a/pkgs/applications/video/k9copy/gcc6.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git c/src/backup/k9dvdbackup.cpp i/src/backup/k9dvdbackup.cpp
-index f5e4859..82fa392 100755
---- c/src/backup/k9dvdbackup.cpp
-+++ i/src/backup/k9dvdbackup.cpp
-@@ -907,7 +907,7 @@ k9Vobu * k9DVDBackup::remapOffset(uint32_t _sector,uint32_t *_offset,int _dir) {
-
-
- if ((vobu1 !=NULL) && (vobu2!=NULL)) {
-- *_offset = abs(vobu1->newSector - vobu2->newSector) | maskOffset1 ;
-+ *_offset = (vobu1->newSector - vobu2->newSector) | maskOffset1 ;
- *_offset |= maskOffset2;
- return vobu2;
- }
-diff --git c/src/backup/k9execcopy.cpp i/src/backup/k9execcopy.cpp
-index d59222c..35de923 100644
---- c/src/backup/k9execcopy.cpp
-+++ i/src/backup/k9execcopy.cpp
-@@ -306,7 +306,7 @@ void k9ExecCopy::createMkv(k9DVDTitle *_title,const QString &_filename,QMultiMap
-
- #if QT_VERSION >= 0x050000
- m_progressDialog=new QProgressDialog(k9Dialogs::getMainWidget() );
-- m_progressDialog->setCancelButton(false);
-+ m_progressDialog->setCancelButton(0);
-
- #else
- m_progressDialog=new KProgressDialog(k9Dialogs::getMainWidget() );
diff --git a/pkgs/applications/video/kazam/default.nix b/pkgs/applications/video/kazam/default.nix
index 0cdd3db8525..e6e971ad438 100644
--- a/pkgs/applications/video/kazam/default.nix
+++ b/pkgs/applications/video/kazam/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, substituteAll, python3, gst_all_1, wrapGAppsHook, gobject-introspection
+{ lib, stdenv, fetchurl, substituteAll, python3, gst_all_1, wrapGAppsHook, gobject-introspection
, gtk3, libwnck3, keybinder3, intltool, libcanberra-gtk3, libappindicator-gtk3, libpulseaudio
, fetchpatch }:
@@ -19,7 +19,7 @@ python3.pkgs.buildPythonApplication rec {
];
propagatedBuildInputs = with python3.pkgs; [ pygobject3 pyxdg pycairo dbus-python ];
-
+
# workaround https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
@@ -40,7 +40,7 @@ python3.pkgs.buildPythonApplication rec {
# no tests
doCheck = false;
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "A screencasting program created with design in mind";
homepage = "https://code.launchpad.net/kazam";
license = licenses.lgpl3;
diff --git a/pkgs/applications/video/kino/default.nix b/pkgs/applications/video/kino/default.nix
index 3f41e73dfa7..5f12dd6494b 100644
--- a/pkgs/applications/video/kino/default.nix
+++ b/pkgs/applications/video/kino/default.nix
@@ -50,8 +50,8 @@
#AMR-WB float support no
#AMR-WB IF2 support no
-{ stdenv, fetchurl, gtk2, libglade, libxml2, libraw1394, libsamplerate, libdv
-, pkgconfig, perlPackages, libavc1394, libiec61883, libXv, gettext
+{ lib, stdenv, fetchurl, gtk2, libglade, libxml2, libraw1394, libsamplerate, libdv
+, pkg-config, perlPackages, libavc1394, libiec61883, libXv, gettext
, libX11, glib, cairo, intltool, ffmpeg, libv4l
}:
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
};
buildInputs = [ gtk2 libglade libxml2 libraw1394 libsamplerate libdv
- pkgconfig libavc1394 libiec61883 intltool libXv gettext libX11 glib cairo ffmpeg libv4l ] # TODOoptional packages
+ pkg-config libavc1394 libiec61883 intltool libXv gettext libX11 glib cairo ffmpeg libv4l ] # TODOoptional packages
++ (with perlPackages; [ perl XMLParser ]);
configureFlags = [ "--enable-local-ffmpeg=no" ];
@@ -89,7 +89,7 @@ stdenv.mkDerivation {
meta = {
description = "Non-linear DV editor for GNU/Linux";
homepage = "http://www.kinodv.org/";
- license = stdenv.lib.licenses.gpl2;
- platforms = stdenv.lib.platforms.linux;
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 56788ae4f10..3aaa465a3cc 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -1,9 +1,9 @@
{ stdenv, lib, fetchpatch, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
-, pkgconfig, cmake, gnumake, yasm, python2Packages
+, pkg-config, cmake, gnumake, yasm, python2Packages
, libgcrypt, libgpgerror, libunistring
, boost, avahi, lame, autoreconfHook
, gettext, pcre-cpp, yajl, fribidi, which
-, openssl, gperf, tinyxml2, taglib, libssh, swig, jre
+, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
, libxml2, systemd
, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
, libjpeg, libpng, libtiff
@@ -45,14 +45,14 @@ assert useWayland -> wayland != null && wayland-protocols != null && waylandpp !
let
kodiReleaseDate = "20200728";
- kodiVersion = "18.8";
+ kodiVersion = "18.9";
rel = "Leia";
kodi_src = fetchFromGitHub {
owner = "xbmc";
repo = "xbmc";
rev = "${kodiVersion}-${rel}";
- sha256 = "0qpkpz43s207msvv3qkiy6vzqwcgmydxv3py7vc29mv6h30chrva";
+ sha256 = "0nnf7823pixj6n2fkjc8rbdjwayvhlbglij2by4rnjzzfgmqmw20";
};
cmakeProto = fetchurl {
@@ -83,7 +83,6 @@ let
repo = name;
inherit rev sha256;
};
- enableParallelBuilding = true;
} // attrs');
ffmpeg = kodiDependency rec {
@@ -100,11 +99,11 @@ let
"-DCROSSCOMPILING=ON"
"-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
"-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
- "-DPKG_CONFIG_EXECUTABLE=pkgconfig"
+ "-DPKG_CONFIG_EXECUTABLE=pkg-config"
];
buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
++ lib.optional vdpauSupport libvdpau;
- nativeBuildInputs = [ cmake nasm pkgconfig gnutls ];
+ nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
};
# We can build these externally but FindLibDvd.cmake forces us to build it
@@ -115,7 +114,7 @@ let
rev = "${version}-${rel}-Beta-5";
sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
buildInputs = [ linuxHeaders ];
- nativeBuildInputs = [ cmake pkgconfig ];
+ nativeBuildInputs = [ cmake pkg-config ];
postPatch = ''
rm -rf msvc
@@ -134,7 +133,7 @@ let
rev = "${version}-${rel}-Alpha-3";
sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
buildInputs = [ libdvdcss libdvdread ];
- nativeBuildInputs = [ cmake pkgconfig ];
+ nativeBuildInputs = [ cmake pkg-config ];
postPatch = cmakeProtoPatch;
postInstall = ''
mv $out/lib/liblibdvdnav.so $out/lib/libdvdnav.so
@@ -147,7 +146,7 @@ let
rev = "${version}-${rel}-Alpha-3";
sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
buildInputs = [ libdvdcss ];
- nativeBuildInputs = [ cmake pkgconfig ];
+ nativeBuildInputs = [ cmake pkg-config ];
configureFlags = [ "--with-libdvdcss" ];
postPatch = cmakeProtoPatch;
};
@@ -209,9 +208,9 @@ in stdenv.mkDerivation {
doxygen
makeWrapper
which
- pkgconfig gnumake
+ pkg-config gnumake
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
- jre yasm gettext python2Packages.python flatbuffers
+ jre_headless yasm gettext python2Packages.python flatbuffers
# for TexturePacker
giflib zlib libpng libjpeg lzo
@@ -242,8 +241,6 @@ in stdenv.mkDerivation {
"-DGBM_RENDER_SYSTEM=gles"
];
- enableParallelBuilding = true;
-
# 14 tests fail but the biggest issue is that every test takes 30 seconds -
# I'm guessing there is a thing waiting to time out
doCheck = false;
@@ -285,7 +282,7 @@ in stdenv.mkDerivation {
pythonPackages = python2Packages;
};
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Media center";
homepage = "https://kodi.tv/";
license = licenses.gpl2;
diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/plugins.nix
index 0e23eac9a86..7d9fdcc3d00 100644
--- a/pkgs/applications/video/kodi/plugins.nix
+++ b/pkgs/applications/video/kodi/plugins.nix
@@ -1,10 +1,10 @@
-{ stdenv, callPackage, fetchFromGitHub
+{ lib, stdenv, callPackage, fetchFromGitHub
, cmake, kodiPlain, libcec_platform, tinyxml, rapidxml
, steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
, python2Packages, expat, glib, nspr, nss, openssl
, libssh, libarchive, lzma, bzip2, lz4, lzo }:
-with stdenv.lib;
+with lib;
let self = rec {
@@ -47,7 +47,8 @@ let self = rec {
sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
};
- buildInputs = [ cmake kodiPlain libcec_platform tinyxml ];
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ kodiPlain libcec_platform tinyxml ];
};
mkKodiPlugin = { plugin, namespace, version, sourceDir ? null, ... }@args:
@@ -75,8 +76,8 @@ let self = rec {
dontStrip = true;
- buildInputs = [ cmake kodiPlain kodi-platform libcec_platform ]
- ++ extraBuildInputs;
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ kodiPlain kodi-platform libcec_platform ] ++ extraBuildInputs;
inherit extraRuntimeDependencies;
@@ -467,7 +468,7 @@ let self = rec {
propagatedBuildInputs = [
simpleplugin
python2Packages.requests
- python2Packages.libtorrentRasterbar
+ python2Packages.libtorrent-rasterbar
];
meta = {
@@ -481,12 +482,12 @@ let self = rec {
plugin = "inputstream-adaptive";
namespace = "inputstream.adaptive";
- version = "2.3.12";
+ version = "2.4.6";
src = fetchFromGitHub {
owner = "peak3d";
repo = "inputstream.adaptive";
- rev = version;
+ rev = "${version}-${rel}";
sha256 = "09d9b35mpaf3g5m51viyan9hv7d2i8ndvb9wm0j7rs5gwsf0k71z";
};
@@ -518,7 +519,7 @@ let self = rec {
sha256 = "044kkzcpzvbyih4vys33r4hqw38xa82snmvl4qj1r80wnszc8af1";
};
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "SFTP Virtual Filesystem add-on for Kodi";
license = licenses.gpl2Plus;
platforms = platforms.all;
@@ -540,7 +541,7 @@ let self = rec {
sha256 = "01qhv095h5j67ispm4iw18pd3kl7a0mnjkgm92al9qqiyif8lzgh";
};
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "LibArchive Virtual Filesystem add-on for Kodi";
license = licenses.gpl2Plus;
platforms = platforms.all;
diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix
index 6a0b1cbdf73..6bec8f9c891 100644
--- a/pkgs/applications/video/kodi/wrapper.nix
+++ b/pkgs/applications/video/kodi/wrapper.nix
@@ -18,8 +18,8 @@ in buildEnv {
--prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath plugins} \
--prefix KODI_HOME : $out/share/kodi \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
- (stdenv.lib.concatMap
- (plugin: plugin.extraRuntimeDependencies) plugins)}"
+ (lib.concatMap
+ (plugin: plugin.extraRuntimeDependencies or []) plugins)}"
done
'';
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index da413915e37..1776aab0033 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, dpkg, makeWrapper, buildFHSUserEnv
-, gtk3, gdk-pixbuf, cairo, libjpeg_original, glib, gnome2, libGLU
+{ lib, stdenv, fetchurl, dpkg, makeWrapper, buildFHSUserEnv
+, gtk3, gdk-pixbuf, cairo, libjpeg_original, glib, pango, libGLU
, nvidia_cg_toolkit, zlib, openssl, portaudio
}:
let
- fullPath = stdenv.lib.makeLibraryPath [
+ fullPath = lib.makeLibraryPath [
stdenv.cc.cc
gtk3
gdk-pixbuf
cairo
libjpeg_original
glib
- gnome2.pango
+ pango
libGLU
nvidia_cg_toolkit
zlib
@@ -80,8 +80,8 @@ in buildFHSUserEnv {
meta = {
description = "Professional Non-Linear Video Editor";
homepage = "https://www.lwks.com/";
- license = stdenv.lib.licenses.unfree;
- maintainers = [ stdenv.lib.maintainers.antonxy ];
+ license = lib.licenses.unfree;
+ maintainers = [ lib.maintainers.antonxy ];
platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/video/linuxstopmotion/default.nix b/pkgs/applications/video/linuxstopmotion/default.nix
index 3a2d1b79e9e..ad9a77af080 100644
--- a/pkgs/applications/video/linuxstopmotion/default.nix
+++ b/pkgs/applications/video/linuxstopmotion/default.nix
@@ -1,32 +1,26 @@
-{ stdenv, fetchgit, pkgconfig, qt4, SDL, SDL_image, libvorbis, libtar, libxml2
-, gamin, qmake4Hook
-}:
+{ mkDerivation, lib, fetchgit, pkg-config, qmake, qtbase, qttools, qtmultimedia, libvorbis, libtar, libxml2 }:
-stdenv.mkDerivation rec {
- version = "0.8";
+mkDerivation rec {
+ version = "0.8.5";
pname = "linuxstopmotion";
-
+
src = fetchgit {
- url = "git://git.code.sf.net/p/linuxstopmotion/code";
- rev = "refs/tags/${version}";
- sha256 = "19v9d0v3laiwi0f1n92lvj2s5s1mxsrfygna0xyw9pkcnk3b26q6";
+ url = "https://git.code.sf.net/p/linuxstopmotion/code";
+ rev = version;
+ sha256 = "1612lkwsfzc59wvdj2zbj5cwsyw66bwn31jrzjrxvygxdh4ab069";
};
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ qt4 SDL SDL_image libvorbis libtar libxml2 gamin qmake4Hook ];
+ nativeBuildInputs = [ qmake pkg-config ];
+ buildInputs = [ qtbase qttools qtmultimedia libvorbis libtar libxml2 ];
- patches = [ ./linuxstopmotion-fix-wrong-isProcess-logic.patch ];
-
- # Installation breaks without this
- preInstall = ''
- mkdir -p "$out/share/stopmotion/translations/"
- cp -v build/*.qm "$out/share/stopmotion/translations/"
+ postPatch = ''
+ substituteInPlace stopmotion.pro --replace '$$[QT_INSTALL_BINS]' '${lib.getDev qttools}/bin'
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Create stop-motion animation movies";
homepage = "http://linuxstopmotion.org/";
- license = licenses.gpl2;
+ license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
diff --git a/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch b/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch
deleted file mode 100644
index caab48d0e2d..00000000000
--- a/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b23b7dab1d540b0710fcb9ded1c6256a49844906 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Hello from NGINX
'';
in
- buildImage {
+ buildLayeredImage {
name = "nginx-container";
tag = "latest";
- contents = pkgs.nginx;
+ contents = [
+ fakeNss
+ pkgs.nginx
+ ];
extraCommands = ''
# nginx still tries to read this directory even if error_log
@@ -75,12 +78,6 @@ rec {
mkdir -p var/log/nginx
mkdir -p var/cache/nginx
'';
- runAsRoot = ''
- #!${pkgs.stdenv.shell}
- ${shadowSetup}
- groupadd --system nginx
- useradd --system --gid nginx nginx
- '';
config = {
Cmd = [ "nginx" "-c" nginxConf ];
@@ -407,4 +404,27 @@ rec {
contents = [ pkgs.bash pkgs.coreutils ] ++ nonRootShadowSetup { uid = 999; user = "somebody"; };
};
+ # basic example, with cross compilation
+ cross = let
+ # Cross compile for x86_64 if on aarch64
+ crossPkgs =
+ if pkgs.system == "aarch64-linux" then pkgsCross.gnu64
+ else pkgsCross.aarch64-multiplatform;
+ in crossPkgs.dockerTools.buildImage {
+ name = "hello-cross";
+ tag = "latest";
+ contents = crossPkgs.hello;
+ };
+
+ # layered image where a store path is itself a symlink
+ layeredStoreSymlink =
+ let
+ target = pkgs.writeTextDir "dir/target" "Content doesn't matter.";
+ symlink = pkgs.runCommandNoCC "symlink" {} "ln -s ${target} $out";
+ in
+ pkgs.dockerTools.buildLayeredImage {
+ name = "layeredstoresymlink";
+ tag = "latest";
+ contents = [ pkgs.bash symlink ];
+ } // { passthru = { inherit symlink; }; };
}
diff --git a/pkgs/build-support/docker/nix-prefetch-docker b/pkgs/build-support/docker/nix-prefetch-docker
index 1b6785189c2..5798ab5984f 100755
--- a/pkgs/build-support/docker/nix-prefetch-docker
+++ b/pkgs/build-support/docker/nix-prefetch-docker
@@ -127,7 +127,7 @@ trap "rm -rf \"$tmpPath\"" EXIT
tmpFile="$tmpPath/$(get_name $finalImageName $finalImageTag)"
if test -z "$QUIET"; then
- skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag"
+ skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag" >&2
else
skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag" > /dev/null
fi
@@ -139,12 +139,12 @@ imageHash=$(nix-hash --flat --type $hashType --base32 "$tmpFile")
finalPath=$(nix-store --add-fixed "$hashType" "$tmpFile")
if test -z "$QUIET"; then
- echo "-> ImageName: $imageName"
- echo "-> ImageDigest: $imageDigest"
- echo "-> FinalImageName: $finalImageName"
- echo "-> FinalImageTag: $finalImageTag"
- echo "-> ImagePath: $finalPath"
- echo "-> ImageHash: $imageHash"
+ echo "-> ImageName: $imageName" >&2
+ echo "-> ImageDigest: $imageDigest" >&2
+ echo "-> FinalImageName: $finalImageName" >&2
+ echo "-> FinalImageTag: $finalImageTag" >&2
+ echo "-> ImagePath: $finalPath" >&2
+ echo "-> ImageHash: $imageHash" >&2
fi
if [ "$format" == "nix" ]; then
diff --git a/pkgs/build-support/docker/stream_layered_image.py b/pkgs/build-support/docker/stream_layered_image.py
index cbae0f723f9..e35bd0b0e8c 100644
--- a/pkgs/build-support/docker/stream_layered_image.py
+++ b/pkgs/build-support/docker/stream_layered_image.py
@@ -83,7 +83,11 @@ def archive_paths_to(obj, paths, mtime):
for path in paths:
path = pathlib.Path(path)
- files = itertools.chain([path], path.rglob("*"))
+ if path.is_symlink():
+ files = [path]
+ else:
+ files = itertools.chain([path], path.rglob("*"))
+
for filename in sorted(files):
ti = append_root(tar.gettarinfo(filename))
diff --git a/pkgs/build-support/dotnetbuildhelpers/default.nix b/pkgs/build-support/dotnetbuildhelpers/default.nix
index 809619ed55d..4348832ac04 100644
--- a/pkgs/build-support/dotnetbuildhelpers/default.nix
+++ b/pkgs/build-support/dotnetbuildhelpers/default.nix
@@ -1,4 +1,4 @@
-{ runCommand, mono, pkgconfig }:
+{ runCommand, mono, pkg-config }:
runCommand
"dotnetbuildhelpers"
{ preferLocalBuild = true; }
@@ -12,7 +12,7 @@
cp -v "$script" "$target"/"$scriptName"
chmod 755 "$target"/"$scriptName"
patchShebangs "$target"/"$scriptName"
- substituteInPlace "$target"/"$scriptName" --replace pkg-config ${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config
+ substituteInPlace "$target"/"$scriptName" --replace pkg-config ${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config
substituteInPlace "$target"/"$scriptName" --replace monodis ${mono}/bin/monodis
done
''
diff --git a/pkgs/build-support/emacs/elpa.nix b/pkgs/build-support/emacs/elpa.nix
index e6f6c23e449..214aed9c3f9 100644
--- a/pkgs/build-support/emacs/elpa.nix
+++ b/pkgs/build-support/emacs/elpa.nix
@@ -7,9 +7,18 @@ with lib;
{ pname
, version
, src
+, meta ? {}
, ...
}@args:
+let
+
+ defaultMeta = {
+ homepage = args.src.meta.homepage or "https://elpa.gnu.org/packages/${pname}.html";
+ };
+
+in
+
import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
phases = "installPhase fixupPhase distPhase";
@@ -23,6 +32,8 @@ import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
runHook postInstall
'';
+
+ meta = defaultMeta // meta;
}
// removeAttrs args [ "files" "fileSpecs"
diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix
index 956787ad59e..588699517ba 100644
--- a/pkgs/build-support/emacs/generic.nix
+++ b/pkgs/build-support/emacs/generic.nix
@@ -60,10 +60,13 @@ stdenv.mkDerivation ({
LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
- postInstall = ''
- find $out/share/emacs -type f -name '*.el' -print0 | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c "emacs --batch -f batch-native-compile {} || true"
- '';
+ addEmacsNativeLoadPath = true;
+ postInstall = ''
+ find $out/share/emacs -type f -name '*.el' -print0 \
+ | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c \
+ "emacs --batch --eval=\"(add-to-list 'comp-eln-load-path \\\"$out/share/emacs/native-lisp/\\\")\" -f batch-native-compile {} || true"
+ '';
}
// removeAttrs args [ "buildInputs" "packageRequires"
diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix
index e2ec84c75e6..d6fe3085837 100644
--- a/pkgs/build-support/emacs/melpa.nix
+++ b/pkgs/build-support/emacs/melpa.nix
@@ -23,7 +23,7 @@ with lib;
let
defaultMeta = {
- homepage = args.src.meta.homepage or "http://melpa.org/#/${pname}";
+ homepage = args.src.meta.homepage or "https://melpa.org/#/${pname}";
};
in
diff --git a/pkgs/build-support/emacs/setup-hook.sh b/pkgs/build-support/emacs/setup-hook.sh
index 83e995631b3..f6f2331b8e0 100644
--- a/pkgs/build-support/emacs/setup-hook.sh
+++ b/pkgs/build-support/emacs/setup-hook.sh
@@ -7,9 +7,20 @@ addToEmacsLoadPath() {
fi
}
+addToEmacsNativeLoadPath() {
+ local nativeDir="$1"
+ if [[ -d $nativeDir && ${EMACSNATIVELOADPATH-} != *"$nativeDir":* ]]; then
+ export EMACSNATIVELOADPATH="$nativeDir:${EMACSNATIVELOADPATH-}"
+ fi
+}
+
addEmacsVars () {
addToEmacsLoadPath "$1/share/emacs/site-lisp"
+ if [ -n "${addEmacsNativeLoadPath:-}" ]; then
+ addToEmacsNativeLoadPath "$1/share/emacs/native-lisp"
+ fi
+
# Add sub paths to the Emacs load path if it is a directory
# containing .el files. This is necessary to build some packages,
# e.g., using trivialBuild.
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index 1f2fbd8068e..f34835eaf09 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -2,11 +2,11 @@
# Usage
-`emacsWithPackages` takes a single argument: a function from a package
+`emacs.pkgs.withPackages` takes a single argument: a function from a package
set to a list of packages (the packages that will be available in
Emacs). For example,
```
-emacsWithPackages (epkgs: [ epkgs.evil epkgs.magit ])
+emacs.pkgs.withPackages (epkgs: [ epkgs.evil epkgs.magit ])
```
All the packages in the list should come from the provided package
set. It is possible to add any package to the list, but the provided
@@ -15,26 +15,34 @@ the correct version of Emacs.
# Overriding
-`emacsWithPackages` inherits the package set which contains it, so the
+`emacs.pkgs.withPackages` inherits the package set which contains it, so the
correct way to override the provided package set is to override the
-set which contains `emacsWithPackages`. For example, to override
-`emacsPackages.emacsWithPackages`,
+set which contains `emacs.pkgs.withPackages`. For example, to override
+`emacs.pkgs.emacs.pkgs.withPackages`,
```
let customEmacsPackages =
- emacsPackages.overrideScope' (self: super: {
+ emacs.pkgs.overrideScope' (self: super: {
# use a custom version of emacs
emacs = ...;
# use the unstable MELPA version of magit
magit = self.melpaPackages.magit;
});
-in customEmacsPackages.emacsWithPackages (epkgs: [ epkgs.evil epkgs.magit ])
+in customEmacsPackages.emacs.pkgs.withPackages (epkgs: [ epkgs.evil epkgs.magit ])
```
*/
{ lib, lndir, makeWrapper, runCommand }: self:
-with lib; let inherit (self) emacs; in
+with lib;
+
+let
+
+ inherit (self) emacs;
+
+ nativeComp = emacs.nativeComp or false;
+
+in
packagesFun: # packages explicitly requested by the user
@@ -95,6 +103,9 @@ runCommand
}
mkdir -p $out/bin
mkdir -p $out/share/emacs/site-lisp
+ ${optionalString nativeComp ''
+ mkdir -p $out/share/emacs/native-lisp
+ ''}
local requires
for pkg in $explicitRequires; do
@@ -116,6 +127,9 @@ runCommand
linkEmacsPackage() {
linkPath "$1" "bin" "bin"
linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp"
+ ${optionalString nativeComp ''
+ linkPath "$1" "share/emacs/native-lisp" "share/emacs/native-lisp"
+ ''}
}
# Iterate over the array of inputs (avoiding nix's own interpolation)
@@ -138,12 +152,21 @@ runCommand
(load-file "$emacs/share/emacs/site-lisp/site-start.el")
(add-to-list 'load-path "$out/share/emacs/site-lisp")
(add-to-list 'exec-path "$out/bin")
+ ${optionalString nativeComp ''
+ (add-to-list 'comp-eln-load-path "$out/share/emacs/native-lisp/")
+ ''}
EOF
# Link subdirs.el from the emacs distribution
ln -s $emacs/share/emacs/site-lisp/subdirs.el -T $subdirs
# Byte-compiling improves start-up time only slightly, but costs nothing.
$emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs"
+
+ ${optionalString nativeComp ''
+ $emacs/bin/emacs --batch \
+ --eval "(add-to-list 'comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \
+ -f batch-native-compile "$siteStart" "$subdirs"
+ ''}
'';
inherit (emacs) meta;
@@ -155,8 +178,13 @@ runCommand
for prog in $emacs/bin/*; do # */
local progname=$(basename "$prog")
rm -f "$out/bin/$progname"
- makeWrapper "$prog" "$out/bin/$progname" \
- --suffix EMACSLOADPATH ":" "$deps/share/emacs/site-lisp:"
+
+ substitute ${./wrapper.sh} $out/bin/$progname \
+ --subst-var-by bash ${emacs.stdenv.shell} \
+ --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
+ --subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp:" \
+ --subst-var prog
+ chmod +x $out/bin/$progname
done
# Wrap MacOS app
@@ -168,8 +196,13 @@ runCommand
$emacs/Applications/Emacs.app/Contents/PkgInfo \
$emacs/Applications/Emacs.app/Contents/Resources \
$out/Applications/Emacs.app/Contents
- makeWrapper $emacs/Applications/Emacs.app/Contents/MacOS/Emacs $out/Applications/Emacs.app/Contents/MacOS/Emacs \
- --suffix EMACSLOADPATH ":" "$deps/share/emacs/site-lisp:"
+
+
+ substitute ${./wrapper.sh} $out/Applications/Emacs.app/Contents/MacOS/Emacs \
+ --subst-var-by bash ${emacs.stdenv.shell} \
+ --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
+ --subst-var-by prog "$emacs/Applications/Emacs.app/Contents/MacOS/Emacs"
+ chmod +x $out/Applications/Emacs.app/Contents/MacOS/Emacs
fi
mkdir -p $out/share
diff --git a/pkgs/build-support/emacs/wrapper.sh b/pkgs/build-support/emacs/wrapper.sh
new file mode 100644
index 00000000000..e8eecb8c869
--- /dev/null
+++ b/pkgs/build-support/emacs/wrapper.sh
@@ -0,0 +1,47 @@
+#!@bash@
+
+IFS=:
+
+newLoadPath=()
+newNativeLoadPath=()
+added=
+
+if [[ -n $EMACSLOADPATH ]]
+then
+ while read -rd: entry
+ do
+ if [[ -z $entry && -z $added ]]
+ then
+ newLoadPath+=(@wrapperSiteLisp@)
+ added=1
+ fi
+ newLoadPath+=("$entry")
+ done <<< "$EMACSLOADPATH:"
+else
+ newLoadPath+=(@wrapperSiteLisp@)
+ newLoadPath+=("")
+fi
+
+if [[ -n $EMACSNATIVELOADPATH ]]
+then
+ while read -rd: entry
+ do
+ if [[ -z $entry && -z $added ]]
+ then
+ newNativeLoadPath+=(@wrapperSiteLispNative@)
+ added=1
+ fi
+ newNativeLoadPath+=("$entry")
+ done <<< "$EMACSNATIVELOADPATH:"
+else
+ newNativeLoadPath+=(@wrapperSiteLispNative@)
+ newNativeLoadPath+=("")
+fi
+
+export EMACSLOADPATH="${newLoadPath[*]}"
+export emacsWithPackages_siteLisp=@wrapperSiteLisp@
+
+export EMACSNATIVELOADPATH="${newNativeLoadPath[*]}"
+export emacsWithPackages_siteLispNative=@wrapperSiteLispNative@
+
+exec @prog@ "$@"
diff --git a/pkgs/build-support/fetchbzr/default.nix b/pkgs/build-support/fetchbzr/default.nix
index 2cf169de7a5..b7db9e9274d 100644
--- a/pkgs/build-support/fetchbzr/default.nix
+++ b/pkgs/build-support/fetchbzr/default.nix
@@ -10,6 +10,6 @@ stdenvNoCC.mkDerivation {
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = sha256;
-
+
inherit url rev;
}
diff --git a/pkgs/build-support/fetchfirefoxaddon/default.nix b/pkgs/build-support/fetchfirefoxaddon/default.nix
new file mode 100644
index 00000000000..9efe9197d68
--- /dev/null
+++ b/pkgs/build-support/fetchfirefoxaddon/default.nix
@@ -0,0 +1,41 @@
+{stdenv, lib, coreutils, unzip, jq, zip, fetchurl,writeScript, ...}:
+
+{
+ name
+, url
+, md5 ? ""
+, sha1 ? ""
+, sha256 ? ""
+, sha512 ? ""
+, fixedExtid ? null
+, hash ? ""
+}:
+
+stdenv.mkDerivation rec {
+
+ inherit name;
+ extid = if fixedExtid == null then "nixos@${name}" else fixedExtid;
+ passthru = {
+ exitd=extid;
+ };
+
+ builder = writeScript "xpibuilder" ''
+ source $stdenv/setup
+
+ header "firefox addon $name into $out"
+
+ UUID="${extid}"
+ mkdir -p "$out/$UUID"
+ unzip -q ${src} -d "$out/$UUID"
+ NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}, "browser_specific_settings":{"gecko":{"id": "${extid}"}}}' "$out/$UUID/manifest.json")
+ echo "$NEW_MANIFEST" > "$out/$UUID/manifest.json"
+ cd "$out/$UUID"
+ zip -r -q -FS "$out/$UUID.xpi" *
+ rm -r "$out/$UUID"
+ '';
+ src = fetchurl {
+ url = url;
+ inherit md5 sha1 sha256 sha512 hash;
+ };
+ nativeBuildInputs = [ coreutils unzip zip jq ];
+}
diff --git a/pkgs/build-support/fetchfossil/default.nix b/pkgs/build-support/fetchfossil/default.nix
index 27933b47178..3a4876bc5de 100644
--- a/pkgs/build-support/fetchfossil/default.nix
+++ b/pkgs/build-support/fetchfossil/default.nix
@@ -1,11 +1,11 @@
-{stdenv, fossil}:
+{stdenv, fossil, cacert}:
{name ? null, url, rev, sha256}:
stdenv.mkDerivation {
name = "fossil-archive" + (if name != null then "-${name}" else "");
builder = ./builder.sh;
- nativeBuildInputs = [fossil];
+ nativeBuildInputs = [fossil cacert];
# Envvar docs are hard to find. A link for the future:
# https://www.fossil-scm.org/index.html/doc/trunk/www/env-opts.md
diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh
index 6ae46469738..0047a335c76 100644
--- a/pkgs/build-support/fetchgit/builder.sh
+++ b/pkgs/build-support/fetchgit/builder.sh
@@ -8,6 +8,7 @@ header "exporting $url (rev $rev) into $out"
$SHELL $fetcher --builder --url "$url" --out "$out" --rev "$rev" \
${leaveDotGit:+--leave-dotGit} \
+ ${fetchLFS:+--fetch-lfs} \
${deepClone:+--deepClone} \
${fetchSubmodules:+--fetch-submodules} \
${branchName:+--branch-name "$branchName"}
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 0405951a9e4..5f5ded128de 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -1,4 +1,4 @@
-{stdenvNoCC, git, cacert}: let
+{stdenvNoCC, git, git-lfs, cacert}: let
urlToName = url: rev: let
inherit (stdenvNoCC.lib) removeSuffix splitString last;
base = last (splitString ":" (baseNameOf (removeSuffix "/" url)));
@@ -20,6 +20,7 @@ in
# successfully. This can do things like check or transform the file.
postFetch ? ""
, preferLocalBuild ? true
+, fetchLFS ? false
}:
/* NOTE:
@@ -53,13 +54,15 @@ stdenvNoCC.mkDerivation {
inherit name;
builder = ./builder.sh;
fetcher = ./nix-prefetch-git; # This must be a string to ensure it's called with bash.
- nativeBuildInputs = [git];
+
+ nativeBuildInputs = [ git ]
+ ++ stdenvNoCC.lib.optionals fetchLFS [ git-lfs ];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = sha256;
- inherit url rev leaveDotGit fetchSubmodules deepClone branchName postFetch;
+ inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName postFetch;
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 43f7c5acd5a..3cb115c5e6e 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -9,6 +9,7 @@ hashType=$NIX_HASH_ALGO
deepClone=$NIX_PREFETCH_GIT_DEEP_CLONE
leaveDotGit=$NIX_PREFETCH_GIT_LEAVE_DOT_GIT
fetchSubmodules=
+fetchLFS=
builder=
branchName=$NIX_PREFETCH_GIT_BRANCH_NAME
@@ -72,6 +73,7 @@ for arg; do
--quiet) QUIET=true;;
--no-deepClone) deepClone=;;
--leave-dotGit) leaveDotGit=true;;
+ --fetch-lfs) fetchLFS=true;;
--fetch-submodules) fetchSubmodules=true;;
--builder) builder=true;;
-h|--help) usage; exit;;
@@ -283,6 +285,11 @@ clone_user_rev() {
local url="$2"
local rev="${3:-HEAD}"
+ if [ -n "$fetchLFS" ]; then
+ HOME=$TMPDIR
+ git lfs install
+ fi
+
# Perform the checkout.
case "$rev" in
HEAD|refs/*)
diff --git a/pkgs/build-support/fetchmavenartifact/default.nix b/pkgs/build-support/fetchmavenartifact/default.nix
index 583a9ea396c..42162638e72 100644
--- a/pkgs/build-support/fetchmavenartifact/default.nix
+++ b/pkgs/build-support/fetchmavenartifact/default.nix
@@ -3,10 +3,10 @@
{ fetchurl, stdenv }:
let
defaultRepos = [
- "http://repo1.maven.org/maven2"
- "http://oss.sonatype.org/content/repositories/releases"
- "http://oss.sonatype.org/content/repositories/public"
- "http://repo.typesafe.com/typesafe/releases"
+ "https://repo1.maven.org/maven2"
+ "https://oss.sonatype.org/content/repositories/releases"
+ "https://oss.sonatype.org/content/repositories/public"
+ "https://repo.typesafe.com/typesafe/releases"
];
in
@@ -17,6 +17,8 @@ args@
artifactId
, # Example: "4.3.6"
version
+, # Example: "jdk11"
+ classifier ? null
, # List of maven repositories from where to fetch the artifact.
# Example: [ http://oss.sonatype.org/content/repositories/public ].
repos ? defaultRepos
@@ -48,7 +50,7 @@ let
(replaceChars ["."] ["/"] groupId)
artifactId
version
- "${artifactId}-${version}.jar"
+ "${artifactId}-${version}${optionalString (!isNull classifier) "-${classifier}"}.jar"
];
urls_ =
if url != "" then [url]
@@ -56,7 +58,7 @@ let
else map mkJarUrl repos;
jar =
fetchurl (
- builtins.removeAttrs args ["groupId" "artifactId" "version" "repos" "url" ]
+ builtins.removeAttrs args ["groupId" "artifactId" "version" "classifier" "repos" "url" ]
// { urls = urls_; name = "${name_}.jar"; }
);
in
diff --git a/pkgs/build-support/fetchmtn/default.nix b/pkgs/build-support/fetchmtn/default.nix
index 7ce67453d69..b5da0f80a31 100644
--- a/pkgs/build-support/fetchmtn/default.nix
+++ b/pkgs/build-support/fetchmtn/default.nix
@@ -4,7 +4,7 @@
# each is an url for sync
# selector is mtn selector, like h:org.example.branch
-#
+#
{name ? "mtn-checkout", dbs ? [], sha256
, selector ? "h:" + branch, branch}:
diff --git a/pkgs/build-support/fetchsvnrevision/default.nix b/pkgs/build-support/fetchsvnrevision/default.nix
index 288451a225c..f2e2a11da8d 100644
--- a/pkgs/build-support/fetchsvnrevision/default.nix
+++ b/pkgs/build-support/fetchsvnrevision/default.nix
@@ -7,4 +7,4 @@ runCommand: subversion: repository:
rev=$(echo p | svn ls -v --depth empty ${repository} |awk '{ print $1 }')
echo "[ \"$rev\" ]" > $out
echo Latest revision is $rev
- '')
\ No newline at end of file
+ '')
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 0eba8816b63..b61cd9a0d90 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -9,10 +9,10 @@
# "sourceforge", "gnu", etc.
luarocks = [
- "https://luarocks.org"
+ "https://luarocks.org/"
"https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/"
- "http://luafr.org/moonrocks"
- "http://luarocks.logiceditor.com/rocks"
+ "http://luafr.org/moonrocks/"
+ "http://luarocks.logiceditor.com/rocks/"
];
# SourceForge.
diff --git a/pkgs/build-support/fetchzip/default.nix b/pkgs/build-support/fetchzip/default.nix
index c61df8ceb00..a1744b48deb 100644
--- a/pkgs/build-support/fetchzip/default.nix
+++ b/pkgs/build-support/fetchzip/default.nix
@@ -44,8 +44,20 @@
mv "$unpackDir/$fn" "$out"
'' else ''
mv "$unpackDir" "$out"
- '') #*/
- + extraPostFetch;
+ '')
+ + extraPostFetch
+ # Remove write permissions for files unpacked with write bits set
+ # Fixes https://github.com/NixOS/nixpkgs/issues/38649
+ #
+ # However, we should (for the moment) retain write permission on the directory
+ # itself, to avoid tickling https://github.com/NixOS/nix/issues/4295 in
+ # single-user Nix installations. This is because in sandbox mode we'll try to
+ # move the path, and if we don't have write permissions on the directory,
+ # then we can't update the ".." entry.
+ + ''
+ chmod -R a-w "$out"
+ chmod u+w "$out"
+ '';
} // removeAttrs args [ "stripRoot" "extraPostFetch" ])).overrideAttrs (x: {
# Hackety-hack: we actually need unzip hooks, too
nativeBuildInputs = x.nativeBuildInputs ++ [ unzip ];
diff --git a/pkgs/build-support/install-shell-files/default.nix b/pkgs/build-support/install-shell-files/default.nix
index e1f2e24dd87..d50661ddc65 100644
--- a/pkgs/build-support/install-shell-files/default.nix
+++ b/pkgs/build-support/install-shell-files/default.nix
@@ -1,4 +1,12 @@
-{ makeSetupHook }:
+{ makeSetupHook, tests }:
# See the header comment in ../setup-hooks/install-shell-files.sh for example usage.
-makeSetupHook { name = "install-shell-files"; } ../setup-hooks/install-shell-files.sh
+let
+ setupHook = makeSetupHook { name = "install-shell-files"; } ../setup-hooks/install-shell-files.sh;
+in
+
+setupHook.overrideAttrs (oldAttrs: {
+ passthru = (oldAttrs.passthru or {}) // {
+ tests = tests.install-shell-files;
+ };
+})
diff --git a/pkgs/build-support/kernel/initrd-compressor-meta.nix b/pkgs/build-support/kernel/initrd-compressor-meta.nix
new file mode 100644
index 00000000000..443e599a239
--- /dev/null
+++ b/pkgs/build-support/kernel/initrd-compressor-meta.nix
@@ -0,0 +1,53 @@
+rec {
+ cat = {
+ executable = pkgs: "cat";
+ ubootName = "none";
+ extension = ".cpio";
+ };
+ gzip = {
+ executable = pkgs: "${pkgs.gzip}/bin/gzip";
+ defaultArgs = ["-9n"];
+ ubootName = "gzip";
+ extension = ".gz";
+ };
+ bzip2 = {
+ executable = pkgs: "${pkgs.bzip2}/bin/bzip2";
+ ubootName = "bzip2";
+ extension = ".bz2";
+ };
+ xz = {
+ executable = pkgs: "${pkgs.xz}/bin/xz";
+ defaultArgs = ["--check=crc32" "--lzma2=dict=512KiB"];
+ extension = ".xz";
+ };
+ lzma = {
+ executable = pkgs: "${pkgs.xz}/bin/lzma";
+ defaultArgs = ["--check=crc32" "--lzma1=dict=512KiB"];
+ ubootName = "lzma";
+ extension = ".lzma";
+ };
+ lz4 = {
+ executable = pkgs: "${pkgs.lz4}/bin/lz4";
+ defaultArgs = ["-l"];
+ ubootName = "lz4";
+ extension = ".lz4";
+ };
+ lzop = {
+ executable = pkgs: "${pkgs.lzop}/bin/lzop";
+ ubootName = "lzo";
+ extension = ".lzo";
+ };
+ zstd = {
+ executable = pkgs: "${pkgs.zstd}/bin/zstd";
+ defaultArgs = ["-10"];
+ ubootName = "zstd";
+ extension = ".zst";
+ };
+ pigz = gzip // {
+ executable = pkgs: "${pkgs.pigz}/bin/pigz";
+ };
+ pixz = xz // {
+ executable = pkgs: "${pkgs.pixz}/bin/pixz";
+ defaultArgs = [];
+ };
+}
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index ed5dbdaee17..901eb311a88 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -1,22 +1,74 @@
-# Create an initial ramdisk containing the closure of the specified
-# file system objects. An initial ramdisk is used during the initial
+# Create an initramfs containing the closure of the specified
+# file system objects. An initramfs is used during the initial
# stages of booting a Linux system. It is loaded by the boot loader
# along with the kernel image. It's supposed to contain everything
# (such as kernel modules) necessary to allow us to mount the root
# file system. Once the root file system is mounted, the `real' boot
# script can be called.
#
-# An initrd is really just a gzipped cpio archive.
-#
-# Symlinks are created for each top-level file system object. E.g.,
-# `contents = {object = ...; symlink = /init;}' is a typical
-# argument.
-
-{ stdenvNoCC, perl, cpio, contents, ubootTools
+# An initramfs is a cpio archive, and may be compressed with a number
+# of algorithms.
+let
+ # Some metadata on various compression programs, relevant to naming
+ # the initramfs file and, if applicable, generating a u-boot image
+ # from it.
+ compressors = import ./initrd-compressor-meta.nix;
+ # Get the basename of the actual compression program from the whole
+ # compression command, for the purpose of guessing the u-boot
+ # compression type and filename extension.
+ compressorName = fullCommand: builtins.elemAt (builtins.match "([^ ]*/)?([^ ]+).*" fullCommand) 1;
+in
+{ stdenvNoCC, perl, cpio, ubootTools, lib, pkgsBuildHost
+# Name of the derivation (not of the resulting file!)
, name ? "initrd"
-, compressor ? "gzip -9n"
+
+# Program used to compress the cpio archive; use "cat" for no compression.
+# This can also be a function which takes a package set and returns the path to the compressor,
+# such as `pkgs: "${pkgs.lzop}/bin/lzop"`.
+, compressor ? "gzip"
+, _compressorFunction ?
+ if lib.isFunction compressor then compressor
+ else if ! builtins.hasContext compressor && builtins.hasAttr compressor compressors then compressors.${compressor}.executable
+ else _: compressor
+, _compressorExecutable ? _compressorFunction pkgsBuildHost
+, _compressorName ? compressorName _compressorExecutable
+, _compressorMeta ? compressors.${_compressorName} or {}
+
+# List of arguments to pass to the compressor program, or null to use its defaults
+, compressorArgs ? null
+, _compressorArgsReal ? if compressorArgs == null then _compressorMeta.defaultArgs or [] else compressorArgs
+
+# Filename extension to use for the compressed initramfs. This is
+# included for clarity, but $out/initrd will always be a symlink to
+# the final image.
+# If this isn't guessed, you may want to complete the metadata above and send a PR :)
+, extension ? _compressorMeta.extension or
+ (throw "Unrecognised compressor ${_compressorName}, please specify filename extension")
+
+# List of { object = path_or_derivation; symlink = "/path"; }
+# The paths are copied into the initramfs in their nix store path
+# form, then linked at the root according to `symlink`.
+, contents
+
+# List of uncompressed cpio files to prepend to the initramfs. This
+# can be used to add files in specified paths without them becoming
+# symlinks to store paths.
, prepend ? []
-, lib
+
+# Whether to wrap the initramfs in a u-boot image.
+, makeUInitrd ? stdenvNoCC.hostPlatform.platform.kernelTarget == "uImage"
+
+# If generating a u-boot image, the architecture to use. The default
+# guess may not align with u-boot's nomenclature correctly, so it can
+# be overridden.
+# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list.
+, uInitrdArch ? stdenvNoCC.hostPlatform.kernelArch
+
+# The name of the compression, as recognised by u-boot.
+# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list.
+# If this isn't guessed, you may want to complete the metadata above and send a PR :)
+, uInitrdCompression ? _compressorMeta.ubootName or
+ (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression")
}:
let
# !!! Move this into a public lib function, it is probably useful for others
@@ -24,15 +76,26 @@ let
lib.concatStringsSep "-" (filter (x: !(isList x)) (split "[^a-zA-Z0-9_=.?-]+" x));
in stdenvNoCC.mkDerivation rec {
- inherit name;
+ inherit name makeUInitrd extension uInitrdArch prepend;
+
+ ${if makeUInitrd then "uinitrdCompression" else null} = uInitrdCompression;
builder = ./make-initrd.sh;
- makeUInitrd = stdenvNoCC.hostPlatform.platform.kernelTarget == "uImage";
-
nativeBuildInputs = [ perl cpio ]
++ stdenvNoCC.lib.optional makeUInitrd ubootTools;
+ compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}";
+
+ # Pass the function through, for reuse in append-initrd-secrets. The
+ # function is used instead of the string, in order to support
+ # cross-compilation (append-initrd-secrets running on a different
+ # architecture than what the main initramfs is built on).
+ passthru = {
+ compressorExecutableFunction = _compressorFunction;
+ compressorArgs = _compressorArgsReal;
+ };
+
# !!! should use XML.
objects = map (x: x.object) contents;
symlinks = map (x: x.symlink) contents;
@@ -47,6 +110,4 @@ in stdenvNoCC.mkDerivation rec {
contents
(lib.range 0 (lib.length contents - 1));
pathsFromGraph = ./paths-from-graph.pl;
-
- inherit compressor prepend;
}
diff --git a/pkgs/build-support/kernel/make-initrd.sh b/pkgs/build-support/kernel/make-initrd.sh
index 0aeaedeb372..c0619ef14ae 100644
--- a/pkgs/build-support/kernel/make-initrd.sh
+++ b/pkgs/build-support/kernel/make-initrd.sh
@@ -39,10 +39,13 @@ mkdir -p $out
for PREP in $prepend; do
cat $PREP >> $out/initrd
done
-(cd root && find * -print0 | xargs -0r touch -h -d '@1')
-(cd root && find * -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null | $compressor >> $out/initrd)
+(cd root && find * .[^.*] -exec touch -h -d '@1' '{}' +)
+(cd root && find * .[^.*] -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null | eval -- $compress >> "$out/initrd")
if [ -n "$makeUInitrd" ]; then
- mv $out/initrd $out/initrd.gz
- mkimage -A arm -O linux -T ramdisk -C gzip -d $out/initrd.gz $out/initrd
+ mkimage -A $uInitrdArch -O linux -T ramdisk -C "$uInitrdCompression" -d $out/initrd"$extension" $out/initrd.img
+ # Compatibility symlink
+ ln -s "initrd.img" "$out/initrd"
+else
+ ln -s "initrd" "$out/initrd$extension"
fi
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index 3f895d9cfed..3b3a38ea1d3 100644
--- a/pkgs/build-support/kernel/modules-closure.sh
+++ b/pkgs/build-support/kernel/modules-closure.sh
@@ -81,7 +81,8 @@ for module in $(cat closure); do
for i in $(modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:'); do
mkdir -p "$out/lib/firmware/$(dirname "$i")"
echo "firmware for $module: $i"
- cp "$firmware/lib/firmware/$i" "$out/lib/firmware/$i" 2>/dev/null || if test -z "$allowMissing"; then exit 1; fi
+ cp "$firmware/lib/firmware/$i" "$out/lib/firmware/$i" 2>/dev/null \
+ || echo "WARNING: missing firmware $i for module $module"
done
done
diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix
index fd46e298513..329286bd362 100644
--- a/pkgs/build-support/make-desktopitem/default.nix
+++ b/pkgs/build-support/make-desktopitem/default.nix
@@ -12,16 +12,16 @@
, mimeType ? null
, categories ? null
, startupNotify ? null
-, extraDesktopEntries ? {} # Extra key-value pairs to add to the [Desktop Entry] section. This may override other values
+, extraDesktopEntries ? { } # Extra key-value pairs to add to the [Desktop Entry] section. This may override other values
, extraEntries ? "" # Extra configuration. Will be appended to the end of the file and may thus contain extra sections
, fileValidation ? true # whether to validate resulting desktop file.
}:
-
let
# like builtins.toString, but null -> null instead of null -> ""
- nullableToString = value: if value == null then null
- else if builtins.isBool value then lib.boolToString value
- else builtins.toString value;
+ nullableToString = value:
+ if value == null then null
+ else if builtins.isBool value then lib.boolToString value
+ else builtins.toString value;
# The [Desktop entry] section of the desktop file, as attribute set.
mainSection = {
@@ -30,7 +30,7 @@ let
"Icon" = nullableToString icon;
"Comment" = nullableToString comment;
"Terminal" = nullableToString terminal;
- "Name" = toString name;
+ "Name" = toString desktopName;
"GenericName" = nullableToString genericName;
"MimeType" = nullableToString mimeType;
"Categories" = nullableToString categories;
@@ -39,16 +39,19 @@ let
# Map all entries to a list of lines
desktopFileStrings =
- ["[Desktop Entry]"]
+ [ "[Desktop Entry]" ]
++ builtins.filter
(v: v != null)
(lib.mapAttrsToList
(name: value: if value != null then "${name}=${value}" else null)
mainSection
)
- ++ (if extraEntries == "" then [] else ["${extraEntries}"]);
+ ++ (if extraEntries == "" then [ ] else [ "${extraEntries}" ]);
in
-runCommandLocal "${name}.desktop" {}
+runCommandLocal "${name}.desktop"
+{
+ nativeBuildInputs = [ desktop-file-utils ];
+}
(''
mkdir -p "$out/share/applications"
cat > "$out/share/applications/${name}.desktop" <