Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-05-22 00:56:03 +00:00 committed by GitHub
commit 901fb5e64e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
87 changed files with 3511 additions and 1315 deletions

View file

@ -207,6 +207,12 @@
The <option>security.hideProcessInformation</option> module has been removed. The <option>security.hideProcessInformation</option> module has been removed.
It was broken since the switch to cgroups-v2. It was broken since the switch to cgroups-v2.
</para> </para>
</listitem>
<listitem>
<para>
The <literal>linuxPackages.ati_drivers_x11</literal> kernel modules have been removed.
The drivers only supported kernels prior to 4.2, and thus have become obsolete.
</para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
@ -1113,6 +1119,11 @@ environment.systemPackages = [
This prevents NVRAM from filling up, which ensures the latest diagnostic data is always stored and alleviates problems with writing new boot configurations. This prevents NVRAM from filling up, which ensures the latest diagnostic data is always stored and alleviates problems with writing new boot configurations.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Nixpkgs now contains <link xlink:href="https://github.com/NixOS/nixpkgs/pull/118232">automatically packaged GNOME Shell extensions</link> from the <link xlink:href="https://extensions.gnome.org/">GNOME Extensions</link> portal. You can find them, filed by their UUID, under <literal>gnome38Extensions</literal> attribute for GNOME 3.38 and under <literal>gnome40Extensions</literal> for GNOME 40. Finally, the <literal>gnomeExtensions</literal> attribute contains extensions for the latest GNOME Shell version in Nixpkgs, listed under a more human-friendly name. The unqualified attribute scope also contains manually packaged extensions. Note that the automatically packaged extensions are provided for convenience and are not checked or guaranteed to work.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View file

@ -316,8 +316,9 @@ class Machine:
start_command += "-cdrom " + args["cdrom"] + " " start_command += "-cdrom " + args["cdrom"] + " "
if "usb" in args: if "usb" in args:
# https://github.com/qemu/qemu/blob/master/docs/usb2.txt
start_command += ( start_command += (
"-device piix3-usb-uhci -drive " "-device usb-ehci -drive "
+ "id=usbdisk,file=" + "id=usbdisk,file="
+ args["usb"] + args["usb"]
+ ",if=none,readonly " + ",if=none,readonly "

View file

@ -63,8 +63,7 @@ in
description = '' description = ''
On 64-bit systems, whether to support Direct Rendering for On 64-bit systems, whether to support Direct Rendering for
32-bit applications (such as Wine). This is currently only 32-bit applications (such as Wine). This is currently only
supported for the <literal>nvidia</literal> and supported for the <literal>nvidia</literal> as well as
<literal>ati_unfree</literal> drivers, as well as
<literal>Mesa</literal>. <literal>Mesa</literal>.
''; '';
}; };

View file

@ -1,40 +0,0 @@
# This module provides the proprietary ATI X11 / OpenGL drivers.
{ config, lib, pkgs, ... }:
with lib;
let
drivers = config.services.xserver.videoDrivers;
enabled = elem "ati_unfree" drivers;
ati_x11 = config.boot.kernelPackages.ati_drivers_x11;
in
{
config = mkIf enabled {
nixpkgs.config.xorg.abiCompat = "1.17";
services.xserver.drivers = singleton
{ name = "fglrx"; modules = [ ati_x11 ]; display = true; };
hardware.opengl.package = ati_x11;
hardware.opengl.package32 = pkgs.pkgsi686Linux.linuxPackages.ati_drivers_x11.override { libsOnly = true; kernel = null; };
hardware.opengl.setLdLibraryPath = true;
environment.systemPackages = [ ati_x11 ];
boot.extraModulePackages = [ ati_x11 ];
boot.blacklistedKernelModules = [ "radeon" ];
environment.etc.ati.source = "${ati_x11}/etc/ati";
};
}

View file

@ -76,7 +76,6 @@
./hardware/wooting.nix ./hardware/wooting.nix
./hardware/uinput.nix ./hardware/uinput.nix
./hardware/video/amdgpu-pro.nix ./hardware/video/amdgpu-pro.nix
./hardware/video/ati.nix
./hardware/video/capture/mwprocapture.nix ./hardware/video/capture/mwprocapture.nix
./hardware/video/bumblebee.nix ./hardware/video/bumblebee.nix
./hardware/video/displaylink.nix ./hardware/video/displaylink.nix
@ -806,6 +805,7 @@
./services/networking/smartdns.nix ./services/networking/smartdns.nix
./services/networking/smokeping.nix ./services/networking/smokeping.nix
./services/networking/softether.nix ./services/networking/softether.nix
./services/networking/solanum.nix
./services/networking/spacecookie.nix ./services/networking/spacecookie.nix
./services/networking/spiped.nix ./services/networking/spiped.nix
./services/networking/squid.nix ./services/networking/squid.nix

View file

@ -31,11 +31,11 @@
<link linkend="opt-services.mailman.enable">enable</link> = true; <link linkend="opt-services.mailman.enable">enable</link> = true;
<link linkend="opt-services.mailman.serve.enable">serve.enable</link> = true; <link linkend="opt-services.mailman.serve.enable">serve.enable</link> = true;
<link linkend="opt-services.mailman.hyperkitty.enable">hyperkitty.enable</link> = true; <link linkend="opt-services.mailman.hyperkitty.enable">hyperkitty.enable</link> = true;
<link linkend="opt-services.mailman.hyperkitty.enable">webHosts</link> = ["lists.example.org"]; <link linkend="opt-services.mailman.webHosts">webHosts</link> = ["lists.example.org"];
<link linkend="opt-services.mailman.hyperkitty.enable">siteOwner</link> = "mailman@example.org"; <link linkend="opt-services.mailman.siteOwner">siteOwner</link> = "mailman@example.org";
}; };
<link linkend="opt-services.nginx.virtualHosts._name_.enableACME">services.nginx.virtualHosts."lists.example.org".enableACME</link> = true; <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">services.nginx.virtualHosts."lists.example.org".enableACME</link> = true;
<link linkend="opt-services.mailman.hyperkitty.enable">networking.firewall.allowedTCPPorts</link> = [ 25 80 443 ]; <link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 25 80 443 ];
}</programlisting> }</programlisting>
</para> </para>
<para> <para>

View file

@ -386,6 +386,10 @@ let
List of relabel configurations. List of relabel configurations.
''; '';
metric_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
List of metric relabel configurations.
'';
sample_limit = mkDefOpt types.int "0" '' sample_limit = mkDefOpt types.int "0" ''
Per-scrape limit on number of scraped samples that will be accepted. Per-scrape limit on number of scraped samples that will be accepted.
If more than this number of samples are present after metric relabelling If more than this number of samples are present after metric relabelling

View file

@ -0,0 +1,104 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkEnableOption mkIf mkOption types;
inherit (pkgs) solanum;
cfg = config.services.solanum;
configFile = pkgs.writeText "solanum.conf" cfg.config;
in
{
###### interface
options = {
services.solanum = {
enable = mkEnableOption "Solanum IRC daemon";
config = mkOption {
type = types.str;
default = ''
serverinfo {
name = "irc.example.com";
sid = "1ix";
description = "irc!";
vhost = "0.0.0.0";
vhost6 = "::";
};
listen {
host = "0.0.0.0";
port = 6667;
};
auth {
user = "*@*";
class = "users";
flags = exceed_limit;
};
channel {
default_split_user_count = 0;
};
'';
description = ''
Solanum IRC daemon configuration file.
check <link xlink:href="https://github.com/solanum-ircd/solanum/blob/main/doc/reference.conf"/> for all options.
'';
};
openFilesLimit = mkOption {
type = types.int;
default = 1024;
description = ''
Maximum number of open files. Limits the clients and server connections.
'';
};
motd = mkOption {
type = types.nullOr types.lines;
default = null;
description = ''
Solanum MOTD text.
Solanum will read its MOTD from <literal>/etc/solanum/ircd.motd</literal>.
If set, the value of this option will be written to this path.
'';
};
};
};
###### implementation
config = mkIf cfg.enable (lib.mkMerge [
{
systemd.services.solanum = {
description = "Solanum IRC daemon";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
BANDB_DBPATH = "/var/lib/solanum/ban.db";
};
serviceConfig = {
ExecStart = "${solanum}/bin/solanum -foreground -logfile /dev/stdout -configfile ${configFile} -pidfile /run/solanum/ircd.pid";
DynamicUser = true;
User = "solanum";
StateDirectory = "solanum";
RuntimeDirectory = "solanum";
LimitNOFILE = "${toString cfg.openFilesLimit}";
};
};
}
(mkIf (cfg.motd != null) {
environment.etc."solanum/ircd.motd".text = cfg.motd;
})
]);
}

View file

@ -384,6 +384,7 @@ in
snapcast = handleTest ./snapcast.nix {}; snapcast = handleTest ./snapcast.nix {};
snapper = handleTest ./snapper.nix {}; snapper = handleTest ./snapper.nix {};
sogo = handleTest ./sogo.nix {}; sogo = handleTest ./sogo.nix {};
solanum = handleTest ./solanum.nix {};
solr = handleTest ./solr.nix {}; solr = handleTest ./solr.nix {};
sonarr = handleTest ./sonarr.nix {}; sonarr = handleTest ./sonarr.nix {};
spacecookie = handleTest ./spacecookie.nix {}; spacecookie = handleTest ./spacecookie.nix {};

89
nixos/tests/solanum.nix Normal file
View file

@ -0,0 +1,89 @@
let
clients = [
"ircclient1"
"ircclient2"
];
server = "solanum";
ircPort = 6667;
channel = "nixos-cat";
iiDir = "/tmp/irc";
in
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "solanum";
nodes = {
"${server}" = {
networking.firewall.allowedTCPPorts = [ ircPort ];
services.solanum = {
enable = true;
};
};
} // lib.listToAttrs (builtins.map (client: lib.nameValuePair client {
imports = [
./common/user-account.nix
];
systemd.services.ii = {
requires = [ "network.target" ];
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecPreStartPre = "mkdir -p ${iiDir}";
ExecStart = ''
${lib.getBin pkgs.ii}/bin/ii -n ${client} -s ${server} -i ${iiDir}
'';
User = "alice";
};
};
}) clients);
testScript =
let
msg = client: "Hello, my name is ${client}";
clientScript = client: [
''
${client}.wait_for_unit("network.target")
${client}.systemctl("start ii")
${client}.wait_for_unit("ii")
${client}.wait_for_file("${iiDir}/${server}/out")
''
# wait until first PING from server arrives before joining,
# so we don't try it too early
''
${client}.wait_until_succeeds("grep 'PING' ${iiDir}/${server}/out")
''
# join ${channel}
''
${client}.succeed("echo '/j #${channel}' > ${iiDir}/${server}/in")
${client}.wait_for_file("${iiDir}/${server}/#${channel}/in")
''
# send a greeting
''
${client}.succeed(
"echo '${msg client}' > ${iiDir}/${server}/#${channel}/in"
)
''
# check that all greetings arrived on all clients
] ++ builtins.map (other: ''
${client}.succeed(
"grep '${msg other}$' ${iiDir}/${server}/#${channel}/out"
)
'') clients;
# foldl', but requires a non-empty list instead of a start value
reduce = f: list:
builtins.foldl' f (builtins.head list) (builtins.tail list);
in ''
start_all()
${server}.systemctl("status solanum")
${server}.wait_for_open_port(${toString ircPort})
# run clientScript for all clients so that every list
# entry is executed by every client before advancing
# to the next one.
'' + lib.concatStrings
(reduce
(lib.zipListsWith (cs: c: cs + c))
(builtins.map clientScript clients));
})

View file

@ -14,11 +14,10 @@
, musepackSupport ? true, libmpc, libmpcdec, taglib , musepackSupport ? true, libmpc, libmpcdec, taglib
, vorbisSupport ? true, libvorbis , vorbisSupport ? true, libvorbis
, speexSupport ? true, speex , speexSupport ? true, speex
, ffmpegSupport ? true, ffmpeg_3 , ffmpegSupport ? true, ffmpeg
, sndfileSupport ? true, libsndfile , sndfileSupport ? true, libsndfile
, wavpackSupport ? true, wavpack , wavpackSupport ? true, wavpack
# Misc # Misc
, withffmpeg4 ? false, ffmpeg_4
, curlSupport ? true, curl , curlSupport ? true, curl
, samplerateSupport ? true, libsamplerate , samplerateSupport ? true, libsamplerate
, withDebug ? false , withDebug ? false
@ -39,7 +38,7 @@ in stdenv.mkDerivation rec {
}; };
patches = [] patches = []
++ opt withffmpeg4 ./moc-ffmpeg4.patch ++ opt ffmpegSupport ./moc-ffmpeg4.patch
++ opt pulseSupport ./pulseaudio.patch; ++ opt pulseSupport ./pulseaudio.patch;
nativeBuildInputs = [ pkg-config ] nativeBuildInputs = [ pkg-config ]
@ -60,8 +59,7 @@ in stdenv.mkDerivation rec {
++ lib.optionals musepackSupport [ libmpc libmpcdec taglib ] ++ lib.optionals musepackSupport [ libmpc libmpcdec taglib ]
++ opt vorbisSupport libvorbis ++ opt vorbisSupport libvorbis
++ opt speexSupport speex ++ opt speexSupport speex
++ opt (ffmpegSupport && !withffmpeg4) ffmpeg_3 ++ opt ffmpegSupport ffmpeg
++ opt (ffmpegSupport && withffmpeg4) ffmpeg_4
++ opt sndfileSupport libsndfile ++ opt sndfileSupport libsndfile
++ opt wavpackSupport wavpack ++ opt wavpackSupport wavpack
# Misc # Misc

View file

@ -655,10 +655,10 @@
elpaBuild { elpaBuild {
pname = "corfu"; pname = "corfu";
ename = "corfu"; ename = "corfu";
version = "0.6"; version = "0.8";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/corfu-0.6.tar"; url = "https://elpa.gnu.org/packages/corfu-0.8.tar";
sha256 = "0zl769l3mmy4b0pj70dwjllq0224r2w4l45xvaqbj75qfqclj6cj"; sha256 = "1qrrky1g4k5vw56435dgkwnmnri7i51gkydd76as3l0ixm4pnp05";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1738,6 +1738,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
isearch-mb = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "isearch-mb";
ename = "isearch-mb";
version = "0.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/isearch-mb-0.2.tar";
sha256 = "1mfjppv33cb5f5f6cc1486msxjxfjnnkryc1yax43k6fgzjr0j4h";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/isearch-mb.html";
license = lib.licenses.free;
};
}) {};
iterators = callPackage ({ elpaBuild, emacs, fetchurl, lib }: iterators = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "iterators"; pname = "iterators";
@ -2544,10 +2559,10 @@
elpaBuild { elpaBuild {
pname = "org"; pname = "org";
ename = "org"; ename = "org";
version = "9.4.5"; version = "9.4.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/org-9.4.5.tar"; url = "https://elpa.gnu.org/packages/org-9.4.6.tar";
sha256 = "0h5qhrd984vf17qc227wz68191xfgbpq32dyhw0lcz2d9i0pl3xk"; sha256 = "1k49ymsi77366as2wi4kzv2f1xnbwpb47iw7iw07yxwlhmm7vskq";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2829,10 +2844,10 @@
elpaBuild { elpaBuild {
pname = "pyim"; pname = "pyim";
ename = "pyim"; ename = "pyim";
version = "3.7.5"; version = "3.7.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/pyim-3.7.5.tar"; url = "https://elpa.gnu.org/packages/pyim-3.7.6.tar";
sha256 = "09f34wgzckbxgr5xvaqrj0wdcmnfsb31a6m460f5g0acys20ams5"; sha256 = "1crimmvyppjmds9shfvxy9j5zi3mk133bv5av0fgicm7ddkivksr";
}; };
packageRequires = [ async emacs xr ]; packageRequires = [ async emacs xr ];
meta = { meta = {
@ -3955,10 +3970,10 @@
elpaBuild { elpaBuild {
pname = "vertico"; pname = "vertico";
ename = "vertico"; ename = "vertico";
version = "0.8"; version = "0.10";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/vertico-0.8.tar"; url = "https://elpa.gnu.org/packages/vertico-0.10.tar";
sha256 = "1cdq49csd57vqhrs1nbif79yw4s8c0p2i2ww5n5znzj7rnxwpva4"; sha256 = "07bzhxgp3k6q4wl9ijhx4vg8diinn782xhr8axn790a5vj199j78";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {

View file

@ -5,8 +5,9 @@
To update the list of packages from MELPA, To update the list of packages from MELPA,
1. Run `./update-elpa`. 1. Run `./update-elpa`.
2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacs.pkgs.elpaPackages`. 2. Check for evaluation errors:
3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix` `nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages`.
3. Run `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
## Update from overlay ## Update from overlay
@ -15,8 +16,8 @@ Alternatively, run the following command:
./update-from-overlay ./update-from-overlay
It will update both melpa and elpa packages using It will update both melpa and elpa packages using
https://github.com/nix-community/emacs-overlay. It's almost https://github.com/nix-community/emacs-overlay. It's almost instantenous and
instantenous and formats commits for you. formats commits for you.
*/ */
@ -30,7 +31,7 @@ self: let
}); });
}; };
elpaBuild = import ../../../build-support/emacs/elpa.nix { elpaBuild = import ../../../../build-support/emacs/elpa.nix {
inherit lib stdenv texinfo writeText; inherit lib stdenv texinfo writeText;
inherit (self) emacs; inherit (self) emacs;
}; };

View file

@ -1,5 +1,5 @@
let let
pkgs = import ../../../.. { }; pkgs = import ../../../../.. { };
src = pkgs.fetchgit { src = pkgs.fetchgit {
url = "https://github.com/ttuegel/emacs2nix.git"; url = "https://github.com/ttuegel/emacs2nix.git";

View file

@ -211,13 +211,19 @@
# From old emacsPackages (pre emacsPackagesNg) # From old emacsPackages (pre emacsPackagesNg)
cedet = callPackage ./cedet { }; cedet = callPackage ./cedet { };
cedille = callPackage ./cedille { cedille = pkgs.cedille; }; cedille = callPackage ./cedille { cedille = pkgs.cedille; };
colorThemeSolarized = callPackage ./color-theme-solarized { }; color-theme-solarized = callPackage ./color-theme-solarized { };
emacsSessionManagement = callPackage ./session-management-for-emacs { }; session-management-for-emacs = callPackage ./session-management-for-emacs { };
hsc3-mode = callPackage ./hsc3 { }; hsc3-mode = callPackage ./hsc3 { };
ido-ubiquitous = callPackage ./ido-ubiquitous { }; ido-ubiquitous = callPackage ./ido-ubiquitous { };
prolog-mode = callPackage ./prolog { }; prolog-mode = callPackage ./prolog { };
rectMark = callPackage ./rect-mark { }; rect-mark = callPackage ./rect-mark { };
sunriseCommander = callPackage ./sunrise-commander { }; sunrise-commander = callPackage ./sunrise-commander { };
# camelCase aliases for some of the kebab-case expressions above
colorThemeSolarized = color-theme-solarized;
emacsSessionManagement = session-management-for-emacs;
rectMark = rect-mark;
sunriseCommander = sunrise-commander;
# Legacy aliases, these try to mostly map to melpa stable because it's # Legacy aliases, these try to mostly map to melpa stable because it's
# closer to the old outdated package infra. # closer to the old outdated package infra.

View file

@ -4,11 +4,11 @@
To update the list of packages from MELPA, To update the list of packages from MELPA,
1. Run ./update-melpa 1. Run `./update-melpa`
2. Check for evaluation errors: 2. Check for evaluation errors:
env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacs.pkgs..melpaStablePackages env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacs.pkgs..melpaPackages env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
3. `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json` 3. Run `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json`
## Update from overlay ## Update from overlay
@ -17,8 +17,8 @@ Alternatively, run the following command:
./update-from-overlay ./update-from-overlay
It will update both melpa and elpa packages using It will update both melpa and elpa packages using
https://github.com/nix-community/emacs-overlay. It's almost https://github.com/nix-community/emacs-overlay. It's almost instantenous and
instantenous and formats commits for you. formats commits for you.
*/ */

View file

@ -4,10 +4,10 @@
elpaBuild { elpaBuild {
pname = "org"; pname = "org";
ename = "org"; ename = "org";
version = "20210510"; version = "20210519";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-20210510.tar"; url = "https://orgmode.org/elpa/org-20210519.tar";
sha256 = "015c68pk52vksar7kpyb0nkcyjihlczmpq4h5vdv8xayas2qlzc7"; sha256 = "14vchfg69wai1yxv1fzvjk185gnfr7d9qrdijf0qmbbr5znci8rf";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -19,10 +19,10 @@
elpaBuild { elpaBuild {
pname = "org-plus-contrib"; pname = "org-plus-contrib";
ename = "org-plus-contrib"; ename = "org-plus-contrib";
version = "20210510"; version = "20210519";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-plus-contrib-20210510.tar"; url = "https://orgmode.org/elpa/org-plus-contrib-20210519.tar";
sha256 = "0pdwjnpcsk75jv4qs8n4xia6vspwn6dndbdx9z7kq5vqz7w4ykmw"; sha256 = "0g765fsc7ssn779xnhjzrxy1sz5b019h7dk1q26yk2w6i540ybfl";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {

View file

@ -5,8 +5,8 @@
To update the list of packages from Org (ELPA), To update the list of packages from Org (ELPA),
1. Run `./update-org`. 1. Run `./update-org`.
2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacs.pkgs.orgPackages`. 2. Check for evaluation errors: `nix-instantiate ../../../../.. -A emacs.pkgs.orgPackages`.
3. `git commit -m "org-packages $(date -Idate)" -- org-generated.nix` 3. Run `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
*/ */

View file

@ -8,14 +8,14 @@ export NIXPKGS_ALLOW_BROKEN=1
# You can use this to avoid running lengthy code generation jobs locally # You can use this to avoid running lengthy code generation jobs locally
curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/elpa/elpa-generated.nix curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/elpa/elpa-generated.nix
nix-instantiate ../../../.. -A emacs.pkgs.elpaPackages --show-trace nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages --show-trace
git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacs.pkgs.elpa-packages: $(date --iso)" -- elpa-generated.nix git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacs.pkgs.elpa-packages: $(date --iso)" -- elpa-generated.nix
curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/org/org-generated.nix curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/org/org-generated.nix
nix-instantiate ../../../.. -A emacs.pkgs.orgPackages --show-trace nix-instantiate ../../../../../ -A emacs.pkgs.orgPackages --show-trace
git diff --exit-code org-generated.nix > /dev/null || git commit -m "emacs.pkgs.org-packages: $(date --iso)" -- org-generated.nix git diff --exit-code org-generated.nix > /dev/null || git commit -m "emacs.pkgs.org-packages: $(date --iso)" -- org-generated.nix
curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json
nix-instantiate --show-trace ../../../../ -A emacs.pkgs.melpaStablePackages nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
nix-instantiate --show-trace ../../../../ -A emacs.pkgs.melpaPackages nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
git diff --exit-code recipes-archive-melpa.json > /dev/null || git commit -m "emacs.pkgs.melpa-packages: $(date --iso)" -- recipes-archive-melpa.json git diff --exit-code recipes-archive-melpa.json > /dev/null || git commit -m "emacs.pkgs.melpa-packages: $(date --iso)" -- recipes-archive-melpa.json

View file

@ -1,5 +1,5 @@
let let
pkgs = import ../../../.. {}; pkgs = import ../../../../.. {};
emacsEnv = pkgs.emacs.pkgs.withPackages (epkgs: let emacsEnv = pkgs.emacs.pkgs.withPackages (epkgs: let

View file

@ -1,6 +1,6 @@
{ lib, stdenv, makeDesktopItem, fetchurl, unzip { lib, stdenv, makeDesktopItem, fetchurl, unzip
, gdk-pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsaLib, cups, expat, udev, gnome , gdk-pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsaLib, cups, expat, udev, gnome
, xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core, libdrm, mesa , xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -33,6 +33,8 @@ stdenv.mkDerivation rec {
udev udev
libX11 libX11
libxcb libxcb
libxshmfence
libxkbcommon
libXi libXi
libXcursor libXcursor
libXdamage libXdamage

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "cloudflared"; pname = "cloudflared";
version = "2021.5.7"; version = "2021.5.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cloudflare"; owner = "cloudflare";
repo = "cloudflared"; repo = "cloudflared";
rev = version; rev = version;
sha256 = "sha256-ekQ5cfQo6/IUIhYaVgyAqbHAaHABL55zhIpqLy6tQ8g="; sha256 = "sha256-Ojbn4QRNZWkSF9RUtFt7roGbt/6l5SFAqEXBCcTJvRI=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -10,7 +10,7 @@
, cyrus_sasl , cyrus_sasl
, fetchFromGitLab , fetchFromGitLab
, fetchurl , fetchurl
, ffmpeg_3 , ffmpeg
, gdk-pixbuf , gdk-pixbuf
, glib , glib
, gnused , gnused
@ -87,7 +87,7 @@ mkDerivation rec {
bzrtp bzrtp
cairo cairo
cyrus_sasl cyrus_sasl
ffmpeg_3 ffmpeg
gdk-pixbuf gdk-pixbuf
glib glib
gtk2 gtk2

View file

@ -0,0 +1,26 @@
# GNOME Shell extensions
All extensions are packaged automatically. They can be found in the `pkgs.gnomeXYExtensions` for XY being a GNOME version. The package names are the extensions UUID, which can be a bit unwieldy to use. `pkgs.gnomeExtensions` is a set of manually curated extensions that match the current `gnome.gnome-shell` versions. Their name is human-friendly, compared to the other extensions sets. Some of its extensions are manually packaged.
## Automatically packaged extensions
The actual packages are created by `buildGnomeExtensions.nix`, provided the correct arguments are fed into it. The important extension data is stored in `extensions.json`, one line/item per extension. That file is generated by running `update-extensions.py`. Furthermore, the automatic generated names are dumped in `collisions.json` for manual inspection. `extensionRenames.nix` contains provides new names for all extensions that collide.
### Extensions updates
For everyday updates,
1. Run `update-extensions.py`.
2. Update `extensionRenames.nix` according to the comment at the top.
For GNOME updates,
1. Add a new `gnomeXYExtensions` set
2. Remove old ones for GNOME versions we dont want to support any more
3. Update `supported_versions` in `./update-extensions.py` and re-run it
4. Change `gnomeExtensions` to the new version
5. Update `./extensionsRenames.nix` accordingly
## Manually packaged extensions
Manually packaged extensions overwrite some of the automatically packaged ones in `pkgs.gnomeExtensions`. They are listed in `manuallyPackaged.nix`, every extension has its own sub-folder.

View file

@ -0,0 +1,54 @@
{ pkgs, lib, stdenv, fetchzip }:
let
buildGnomeExtension = {
# Every gnome extension has a UUID. It's the name of the extension folder once unpacked
# and can always be found in the metadata.json of every extension.
uuid,
name,
pname,
description,
# extensions.gnome.org extension URL
link,
# Extension version numbers are integers
version,
sha256,
# Hex-encoded string of JSON bytes
metadata,
}:
stdenv.mkDerivation {
inherit pname;
version = builtins.toString version;
src = fetchzip {
url = "https://extensions.gnome.org/extension-data/${
builtins.replaceStrings [ "@" ] [ "" ] uuid
}.v${builtins.toString version}.shell-extension.zip";
inherit sha256;
stripRoot = false;
# The download URL may change content over time. This is because the
# metadata.json is automatically generated, and parts of it can be changed
# without making a new release. We simply substitute the possibly changed fields
# with their content from when we last updated, and thus get a deterministic output
# hash.
extraPostFetch = ''
echo "${metadata}" | base64 --decode > $out/metadata.json
'';
};
buildCommand = ''
mkdir -p $out/share/gnome-shell/extensions/
cp -r -T $src $out/share/gnome-shell/extensions/${uuid}
'';
meta = {
description = builtins.head (lib.splitString "\n" description);
longDescription = description;
homepage = link;
license = lib.licenses.gpl2Plus; # https://wiki.gnome.org/Projects/GnomeShell/Extensions/Review#Licensing
maintainers = with lib.maintainers; [ piegames ];
};
# Store the extension's UUID, because we might need it at some places
passthru.extensionUuid = uuid;
};
in
lib.makeOverridable buildGnomeExtension

View file

@ -0,0 +1,42 @@
{
"38": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"lock-keys": [
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
],
"fuzzy-clock": [
"Fuzzy_Clock@dallagi",
"fuzzy-clock@keepawayfromfire.co.uk"
],
"transparent-window": [
"transparent-window@pbxqdown.github.com",
"transparentwindows.mdirshad07"
],
"floating-dock": [
"floatingDock@sun.wxg@gmail.com",
"floating-dock@nandoferreira_prof@hotmail.com"
]
},
"40": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"lock-keys": [
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
]
}
}

View file

@ -0,0 +1,73 @@
{ lib
, callPackage
, config
}:
let
buildShellExtension = callPackage ./buildGnomeExtension.nix { };
# Index of all scraped extensions (with supported versions)
extensionsIndex = lib.importJSON ./extensions.json;
# A list of UUIDs that have the same pname and we need to rename them
extensionRenames = import ./extensionRenames.nix;
# Take all extensions from the index that match the gnome version, build them and put them into a list of derivations
produceExtensionsList = shell-version:
lib.trivial.pipe extensionsIndex [
# Does a given extension match our current shell version?
(builtins.filter
(extension: (builtins.hasAttr shell-version extension."shell_version_map"))
)
# Take in an `extension` object from the JSON and transform it into the correct args to call `buildShellExtension`
(map
(extension: {
inherit (extension) uuid name description link pname;
inherit (extension.shell_version_map.${shell-version}) version sha256 metadata;
})
)
# Build them
(map buildShellExtension)
];
# Map the list of extensions to an attrset based on the UUID as key
mapUuidNames = extensions:
lib.trivial.pipe extensions [
(map (extension: lib.nameValuePair extension.extensionUuid extension))
builtins.listToAttrs
];
# Map the list of extensions to an attrset based on the pname as key, which is more human readable than the UUID
# We also take care of conflict renaming in here
mapReadableNames = extensionsList: lib.trivial.pipe extensionsList [
# Filter out all extensions that map to null
(lib.filter (extension:
!(
(builtins.hasAttr extension.extensionUuid extensionRenames)
&& ((builtins.getAttr extension.extensionUuid extensionRenames) == null)
)
))
# Map all extensions to their pname, with potential overwrites
(map (extension:
lib.nameValuePair (extensionRenames.${extension.extensionUuid} or extension.pname) extension
))
builtins.listToAttrs
];
in rec {
inherit buildShellExtension;
gnome38Extensions = mapUuidNames (produceExtensionsList "38");
gnome40Extensions = mapUuidNames (produceExtensionsList "40");
gnomeExtensions = lib.recurseIntoAttrs (
(mapReadableNames (produceExtensionsList "40"))
// (callPackage ./manuallyPackaged.nix {})
// lib.optionalAttrs (config.allowAliases or false) {
unite-shell = gnomeExtensions.unite; # added 2021-01-19
arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
}
);
}

View file

@ -0,0 +1,29 @@
# A list of UUIDs that have the same pname and we need to rename them
# MAINTENANCE:
# - Every item from ./collisions.json (for the respective Shell version) should have an entry in here
# - Set the value to `null` for filtering (duplicate or unmaintained extensions)
# - Sort the entries in order of appearance in the collisions.json
{
"apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
"Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
"workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
"horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
"lockkeys@vaina.lt" = "lock-keys";
"lockkeys@fawtytoo" = "lock-keys-2";
# These are conflicts for 3.38 extensions. They will very probably come back
# once more of them support 40.
# See https://github.com/pbxqdown/gnome-shell-extension-transparent-window/issues/12#issuecomment-800765381
#"transparent-window@pbxqdown.github.com" = "transparent-window";
#"transparentwindows.mdirshad07" = null;
#"floatingDock@sun.wxg@gmail.com" = "floating-dock";
#"floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock-2";
# That extension is broken because of https://github.com/NixOS/nixpkgs/issues/118612
#"flypie@schneegans.github.com" = null;
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,40 @@
{ callPackage }:
{
appindicator = callPackage ./appindicator { };
arcmenu = callPackage ./arcmenu { };
caffeine = callPackage ./caffeine { };
clipboard-indicator = callPackage ./clipboard-indicator { };
clock-override = callPackage ./clock-override { };
dash-to-dock = callPackage ./dash-to-dock { };
dash-to-panel = callPackage ./dash-to-panel { };
disable-unredirect = callPackage ./disable-unredirect { };
draw-on-your-screen = callPackage ./draw-on-your-screen { };
drop-down-terminal = callPackage ./drop-down-terminal { };
dynamic-panel-transparency = callPackage ./dynamic-panel-transparency { };
easyScreenCast = callPackage ./EasyScreenCast { };
emoji-selector = callPackage ./emoji-selector { };
freon = callPackage ./freon { };
fuzzy-app-search = callPackage ./fuzzy-app-search { };
gsconnect = callPackage ./gsconnect { };
hot-edge = callPackage ./hot-edge { };
icon-hider = callPackage ./icon-hider { };
impatience = callPackage ./impatience { };
material-shell = callPackage ./material-shell { };
mpris-indicator-button = callPackage ./mpris-indicator-button { };
night-theme-switcher = callPackage ./night-theme-switcher { };
no-title-bar = callPackage ./no-title-bar { };
noannoyance = callPackage ./noannoyance { };
paperwm = callPackage ./paperwm { };
pidgin-im-integration = callPackage ./pidgin-im-integration { };
remove-dropdown-arrows = callPackage ./remove-dropdown-arrows { };
sound-output-device-chooser = callPackage ./sound-output-device-chooser { };
system-monitor = callPackage ./system-monitor { };
taskwhisperer = callPackage ./taskwhisperer { };
tilingnome = callPackage ./tilingnome { };
timepp = callPackage ./timepp { };
topicons-plus = callPackage ./topicons-plus { };
unite = callPackage ./unite { };
window-corner-preview = callPackage ./window-corner-preview { };
window-is-ready-remover = callPackage ./window-is-ready-remover { };
workspace-matrix = callPackage ./workspace-matrix { };
}

View file

@ -0,0 +1,284 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=../../../.. -i python3 -p python3
import json
import urllib.request
import urllib.error
from typing import List, Dict, Optional, Any, Tuple
import logging
from operator import itemgetter
import subprocess
import zipfile
import io
import base64
# We don't want all those deprecated legacy extensions
# Group extensions by GNOME "major" version for compatibility reasons
supported_versions = {
"38": "3.38",
"40": "40",
}
# Some type alias to increase readility of complex compound types
PackageName = str
ShellVersion = str
Uuid = str
ExtensionVersion = int
# Keep track of all names that have been used till now to detect collisions.
# This works because we deterministically process all extensions in historical order
# The outer dict level is the shell version, as we are tracking duplicates only per same Shell version.
# key: shell version, value: Dict with key: pname, value: list of UUIDs with that pname
package_name_registry: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {}
for shell_version in supported_versions.keys():
package_name_registry[shell_version] = {}
def fetch_extension_data(uuid: str, version: str) -> Tuple[str, str]:
"""
Download the extension and hash it. We use `nix-prefetch-url` for this for efficiency reasons.
Returns a tuple with the hash (Nix-compatible) of the zip file's content and the base64-encoded content of its metadata.json.
"""
# The download URLs follow this schema
uuid = uuid.replace("@", "")
url: str = f"https://extensions.gnome.org/extension-data/{uuid}.v{version}.shell-extension.zip"
# Yes, we download that file three times:
# The first time is for the maintainter, so they may have a personal backup to fix potential issues
# subprocess.run(
# ["wget", url], capture_output=True, text=True
# )
# The second time, we extract the metadata.json because we need it too
with urllib.request.urlopen(url) as response:
data = zipfile.ZipFile(io.BytesIO(response.read()), 'r')
metadata = base64.b64encode(data.read('metadata.json')).decode()
# The third time is to get the file into the store and to get its hash
hash = subprocess.run(
["nix-prefetch-url", "--unpack", url], capture_output=True, text=True
).stdout.strip()
return hash, metadata
def generate_extension_versions(
extension_version_map: Dict[ShellVersion, ExtensionVersion], uuid: str
) -> Dict[ShellVersion, Dict[str, str]]:
"""
Takes in a mapping from shell versions to extension versions and transforms it the way we need it:
- Only take one extension version per GNOME Shell major version (as per `supported_versions`)
- Filter out versions that only support old GNOME versions
- Download the extension and hash it
"""
extension_versions: Dict[ShellVersion, Dict[str, str]] = {}
for shell_version, version_prefix in supported_versions.items():
# Newest compatible extension version
extension_version: Optional[int] = max(
(
int(ext_ver)
for shell_ver, ext_ver in extension_version_map.items()
if (shell_ver.startswith(version_prefix))
),
default=None,
)
# Extension is not compatible with this GNOME version
if not extension_version:
continue
logging.debug(
f"[{shell_version}] Downloading '{uuid}' v{extension_version}"
)
sha256, metadata = fetch_extension_data(uuid, str(extension_version))
extension_versions[shell_version] = {
"version": str(extension_version),
"sha256": sha256,
# The downloads are impure, their metadata.json may change at any time.
# Thus, be back it up / pin it to remain deterministic
# Upstream issue: https://gitlab.gnome.org/Infrastructure/extensions-web/-/issues/137
"metadata": metadata,
}
return extension_versions
def pname_from_url(url: str) -> Tuple[str, str]:
"""
Parse something like "/extension/1475/battery-time/" and output ("battery-time", "1475")
"""
url = url.split("/") # type: ignore
return (url[3], url[2])
def process_extension(extension: Dict[str, Any]) -> Optional[Dict[str, Any]]:
"""
Process an extension. It takes in raw scraped data and downloads all the necessary information that buildGnomeExtension.nix requires
Input: a json object of one extension queried from the site. It has the following schema (only important key listed):
{
"uuid": str,
"name": str,
"description": str,
"link": str,
"shell_version_map": {
str: { "version": int, },
},
}
"uuid" is an extension UUID that looks like this (most of the time): "extension-name@username.domain.tld".
Don't make any assumptions on it, and treat it like an opaque string!
"link" follows the following schema: "/extension/$number/$string/"
The number is monotonically increasing and unique to every extension.
The string is usually derived from the extensions's name (but shortened, kebab-cased and URL friendly).
It may diverge from the actual name.
The keys of "shell_version_map" are GNOME Shell version numbers.
Output: a json object to be stored, or None if the extension should be skipped. Schema:
{
"uuid": str,
"name": str,
"pname": str,
"description": str,
"link": str,
"shell_version_map": {
str: { "version": int, "sha256": str, "metadata": <hex> },
}
}
Only "uuid" gets passed along unmodified. "name", "description" and "link" are taken from the input, but sanitized.
"pname" gets generated from other fields and "shell_version_map" has a completely different structure than the input
field with the same name.
"""
uuid = extension["uuid"]
# Yeah, there are some extensions without any releases
if not extension["shell_version_map"]:
return None
logging.info(f"Processing '{uuid}'")
# Input is a mapping str -> { version: int, … }
# We want to map shell versions to extension versions
shell_version_map: Dict[ShellVersion, int] = {
k: v["version"] for k, v in extension["shell_version_map"].items()
}
# Transform shell_version_map to be more useful for us. Also throw away unwanted versions
shell_version_map: Dict[ShellVersion, Dict[str, str]] = generate_extension_versions(shell_version_map, uuid) # type: ignore
# No compatible versions found
if not shell_version_map:
return None
# Fetch a human-readable name for the package.
(pname, _pname_id) = pname_from_url(extension["link"])
for shell_version in shell_version_map.keys():
if pname in package_name_registry[shell_version]:
logging.warning(f"Package name '{pname}' is colliding.")
package_name_registry[shell_version][pname].append(uuid)
else:
package_name_registry[shell_version][pname] = [uuid]
return {
"uuid": uuid,
"name": extension["name"],
"pname": pname,
"description": extension["description"],
"link": "https://extensions.gnome.org" + extension["link"],
"shell_version_map": shell_version_map,
}
def scrape_extensions_index() -> List[Dict[str, Any]]:
"""
Scrape the list of extensions by sending search queries to the API. We simply go over it
page by page until we hit a non-full page or a 404 error.
The returned list is sorted by the age of the extension, in order to be deterministic.
"""
page = 0
extensions = []
while True:
page += 1
logging.info("Scraping page " + str(page))
try:
with urllib.request.urlopen(
f"https://extensions.gnome.org/extension-query/?n_per_page=25&page={page}"
) as response:
data = json.loads(response.read().decode())["extensions"]
responseLength = len(data)
for extension in data:
extensions.append(extension)
# If our page isn't "full", it must have been the last one
if responseLength < 25:
logging.debug(
f"\tThis page only has {responseLength} entries, so it must be the last one."
)
break
except urllib.error.HTTPError as e:
if e.code == 404:
# We reached past the last page and are done now
break
else:
raise
# `pk` is the primary key in the extensions.gnome.org database. Sorting on it will give us a stable,
# deterministic ordering.
extensions.sort(key=itemgetter("pk"))
return extensions
if __name__ == "__main__":
logging.basicConfig(level=logging.DEBUG)
raw_extensions = scrape_extensions_index()
logging.info(f"Downloaded {len(raw_extensions)} extensions. Processing …")
processed_extensions: List[Dict[str, Any]] = []
for num, raw_extension in enumerate(raw_extensions):
processed_extension = process_extension(raw_extension)
if processed_extension:
processed_extensions.append(processed_extension)
logging.debug(f"Processed {num + 1} / {len(raw_extensions)}")
logging.info(
f"Done. Writing results to extensions.json ({len(processed_extensions)} extensions in total)"
)
with open("extensions.json", "w") as out:
# Manually pretty-print the outer level, but then do one compact line per extension
# This allows for the diffs to be manageable (one line of change per extension) despite their quantity
for index, extension in enumerate(processed_extensions):
if index == 0:
out.write("[ ")
else:
out.write(", ")
json.dump(extension, out, ensure_ascii=False)
out.write("\n")
out.write("]\n")
with open("extensions.json", "r") as out:
# Check that the generated file actually is valid JSON, just to be sure
json.load(out)
logging.info(
"Done. Writing name collisions to collisions.json (please check manually)"
)
with open("collisions.json", "w") as out:
# Filter out those that are not duplicates
package_name_registry_filtered: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {
# The outer level keys are shell versions
shell_version: {
# The inner keys are extension names, with a list of all extensions with that name as value.
pname: extensions for pname, extensions in collisions.items() if len(extensions) > 1
} for shell_version, collisions in package_name_registry.items()
}
json.dump(package_name_registry_filtered, out, indent=2, ensure_ascii=False)
out.write("\n")

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "intel-media-driver"; pname = "intel-media-driver";
version = "21.2.0"; version = "21.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "intel"; owner = "intel";
repo = "media-driver"; repo = "media-driver";
rev = "intel-media-${version}"; rev = "intel-media-${version}";
sha256 = "101wbg5j00amdbfz4p6mpg90wi549dl78jd34mac5g6zhcpwqbh9"; sha256 = "0a49087ca3li1cbsdcwp31zlakfw9dxcr2lnxzm5s3x63jvwlbag";
}; };
cmakeFlags = [ cmakeFlags = [

View file

@ -10,7 +10,7 @@
, cyrus_sasl , cyrus_sasl
, doxygen , doxygen
, fetchFromGitLab , fetchFromGitLab
, ffmpeg_3 , ffmpeg
, gdk-pixbuf , gdk-pixbuf
, glib , glib
, graphviz , graphviz
@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
bzrtp bzrtp
cairo cairo
cyrus_sasl cyrus_sasl
ffmpeg_3 ffmpeg
gdk-pixbuf gdk-pixbuf
glib glib
gtk2 gtk2

View file

@ -4,7 +4,7 @@
, cmake , cmake
, doxygen , doxygen
, fetchFromGitLab , fetchFromGitLab
, ffmpeg_3 , ffmpeg
, glew , glew
, gsm , gsm
, intltool , intltool
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
alsaLib alsaLib
bctoolbox bctoolbox
bzrtp bzrtp
ffmpeg_3 ffmpeg
glew glew
gsm gsm
libGL libGL

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "octomap"; pname = "octomap";
version = "1.9.6"; version = "1.9.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OctoMap"; owner = "OctoMap";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "03v341dffa0pfzmf2431xb5nq50zq9zlhgl6k2aa3fsza5xmbb70"; sha256 = "1pb58w6vka7wzs533lcy7i6y5nwjfrzy6b35fhrb1dhq2mgszc79";
}; };
sourceRoot = "source/octomap"; sourceRoot = "source/octomap";

View file

@ -11,14 +11,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiodiscover"; pname = "aiodiscover";
version = "1.4.0"; version = "1.4.2";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bdraco"; owner = "bdraco";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-t0bs3n0eLUR22i1lZkepCffjiUFzvXBdP7Xq49KXeS4="; sha256 = "sha256-xiIN/YLIOdPuqenyxybu0iUpYEy3MyBssXswza5InU0=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -7,13 +7,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "karton-asciimagic"; pname = "karton-asciimagic";
version = "1.0.1"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "CERT-Polska"; owner = "CERT-Polska";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0d15fhb3y0jpwdfm4y11i6pmfa9szr943cm6slvf0ir31f9nznyz"; sha256 = "0vj4b8man81g99g4c53zyvp1gc47c2imj5ha9r4z4bf8gs3aqsv6";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -5,6 +5,7 @@
, ipykernel , ipykernel
, jupyter_client , jupyter_client
, nbformat , nbformat
, pytestCheckHook
, pytest , pytest
, six , six
, glibcLocales , glibcLocales
@ -23,7 +24,7 @@ buildPythonPackage rec {
}; };
checkInputs = [ checkInputs = [
pytest pytestCheckHook
matplotlib matplotlib
sympy sympy
pytestcov pytestcov
@ -40,14 +41,15 @@ buildPythonPackage rec {
six six
]; ];
# Set HOME so that matplotlib doesn't try to use pytestFlagsArray = [
# /homeless-shelter/.config/matplotlib, otherwise some of the tests fail for "tests"
# having an unexpected warning on stderr produced by matplotlib. # These are the main tests but they're fragile so skip them. They error
# Ignore impure tests. # whenever matplotlib outputs any unexpected warnings, e.g. deprecation
checkPhase = '' # warnings.
export HOME=$(mktemp -d) "--ignore=tests/test_unit_tests_in_notebooks.py"
pytest tests --ignore tests/test_timeouts.py # Impure
''; "--ignore=tests/test_timeouts.py"
];
# Some of the tests use localhost networking. # Some of the tests use localhost networking.
__darwinAllowLocalNetworking = true; __darwinAllowLocalNetworking = true;

View file

@ -14,12 +14,12 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
version = "0.12.4"; version = "0.13";
pname = "pybids"; pname = "pybids";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "830f3f518ab0d2e058e9ba6d6ff9a942792909c874433b3ad58a3339a23f46bf"; sha256 = "sha256-zVFaGAKgTP9UiUdmO4+Tut8Qc64xuGyB26cQLRHOqYw=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -1,9 +1,9 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, { lib, stdenv, fetchFromGitHub,
fetchHex, erlang, makeWrapper, fetchHex, erlang, makeWrapper,
writeScript, common-updater-scripts, coreutils, git, gnused, nix, rebar3-nix }: writeScript, common-updater-scripts, coreutils, git, gnused, nix, rebar3-nix }:
let let
version = "3.15.1"; version = "3.16.0";
owner = "erlang"; owner = "erlang";
deps = import ./rebar-deps.nix { inherit fetchFromGitHub fetchHex; }; deps = import ./rebar-deps.nix { inherit fetchFromGitHub fetchHex; };
rebar3 = stdenv.mkDerivation rec { rebar3 = stdenv.mkDerivation rec {
@ -16,20 +16,11 @@ let
inherit owner; inherit owner;
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1pcy5m79g0l9l3d8lkbx6cq1w87z1g3sa6wwvgbgraj2v3wkyy5g"; sha256 = "1yqvm37l5rn5dyg4sc2hv47930s2524qrdpnjwy3zqa27r7k5n36";
}; };
buildInputs = [ erlang ]; buildInputs = [ erlang ];
patches = [
# TODO: remove this on next rebar3 release
(fetchpatch {
name = "escriptize-erl-libs";
url = "https://github.com/erlang/rebar3/commit/8049a92512420b0967a4c23acfa304d8ca7a712e.patch";
sha256 = "0jzdy7n2nz4v38nn76bgjcmssvqgvdhy9v2gl867ylwqn1y5sdm1";
})
];
postPatch = '' postPatch = ''
mkdir -p _checkouts _build/default/lib/ mkdir -p _checkouts _build/default/lib/
@ -109,7 +100,7 @@ let
# global-deps.patch makes it possible to use REBAR_GLOBAL_PLUGINS to # global-deps.patch makes it possible to use REBAR_GLOBAL_PLUGINS to
# instruct rebar3 to always load a certain plugin. It is necessary since # instruct rebar3 to always load a certain plugin. It is necessary since
# REBAR_GLOBAL_CONFIG_DIR doesn't seem to work for this. # REBAR_GLOBAL_CONFIG_DIR doesn't seem to work for this.
patches = old.patches ++ [ ./skip-plugins.patch ./global-plugins.patch ]; patches = [ ./skip-plugins.patch ./global-plugins.patch ];
})); }));
in stdenv.mkDerivation { in stdenv.mkDerivation {
pname = "rebar3-with-plugins"; pname = "rebar3-with-plugins";

View file

@ -16,11 +16,6 @@
version = "1.8.1"; version = "1.8.1";
sha256 = "sha256-5FdFrenEdqmkaeoIQOQYqxk2DcRPAaIzME4RikRIa6A="; sha256 = "sha256-5FdFrenEdqmkaeoIQOQYqxk2DcRPAaIzME4RikRIa6A=";
}; };
parse_trans = fetchHex {
pkg = "parse_trans";
version = "3.3.1";
sha256 = "sha256-B82Vd4hfVjYtQU6MTE5r3xDUOodnq7ktJMvoskxUiIs=";
};
getopt = fetchHex { getopt = fetchHex {
pkg = "getopt"; pkg = "getopt";
version = "1.0.1"; version = "1.0.1";
@ -33,8 +28,8 @@
}; };
erlware_commons = fetchHex { erlware_commons = fetchHex {
pkg = "erlware_commons"; pkg = "erlware_commons";
version = "1.4.0"; version = "1.5.0";
sha256 = "sha256-GF7PXPQ7qzoBPds2FM57un9seoJ5BOZOV9pU/N/c4uY="; sha256 = "sha256-PnxvsrpMKbDdXf6dAxtmRJ4giOzsGoFGW9n94F7X0Ns=";
}; };
cth_readable = fetchHex { cth_readable = fetchHex {
pkg = "cth_readable"; pkg = "cth_readable";
@ -48,8 +43,8 @@
}; };
certifi = fetchHex { certifi = fetchHex {
pkg = "certifi"; pkg = "certifi";
version = "2.5.3"; version = "2.6.1";
sha256 = "sha256-7VFqyzkpsQEgip1wAGLVIPOVPaO2uRjYZhBv+pgOHBA="; sha256 = "sha256-UkyXtJkbOEndXBemMSI4licsawr0RneLpGdaHf9Tu34=";
}; };
bbmustache = fetchHex { bbmustache = fetchHex {
pkg = "bbmustache"; pkg = "bbmustache";

View file

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "wally-cli"; pname = "wally-cli";
version = "2.0.0"; version = "2.0.1";
subPackages = [ "." ]; subPackages = [ "." ];
@ -14,15 +14,12 @@ buildGoModule rec {
owner = "zsa"; owner = "zsa";
repo = "wally-cli"; repo = "wally-cli";
rev = "${version}-linux"; rev = "${version}-linux";
sha256 = "0xz3z18bbnf736ngjj6jhnp3p2j55m5jhnb2xl6l5hybracfyhm7"; sha256 = "NuyQHEygy4LNqLtrpdwfCR+fNy3ZUxOClVdRen6AXMc=";
}; };
vendorSha256 = "0jqx38x5qvir6zc5yq9p2adafwqhy4hil1k5g81rr1fvbn06k3a6"; vendorSha256 = "AVYG+aLpAXohUOORV/uPw7vro+Kg98+AmSmYGHtOals=";
runVend = true; runVend = true;
# Can be removed when https://github.com/zsa/wally-cli/pull/1 is merged.
doCheck = false;
meta = with lib; { meta = with lib; {
description = "A tool to flash firmware to mechanical keyboards"; description = "A tool to flash firmware to mechanical keyboards";
homepage = "https://ergodox-ez.com/pages/wally-planck"; homepage = "https://ergodox-ez.com/pages/wally-planck";

View file

@ -1,34 +0,0 @@
{ stdenv, lib, fetchurl, autoPatchelfHook }:
stdenv.mkDerivation rec {
pname = "deepspeech";
version = "0.9.3";
src = fetchurl {
url = "https://github.com/mozilla/DeepSpeech/releases/download/v${version}/native_client.amd64.cpu.linux.tar.xz";
sha256 = "1qy2gspprcxi76jk06ljp028xl0wkk1m3mqaxyf5qbhhfbvvpfap";
};
setSourceRoot = "sourceRoot=`pwd`";
nativeBuildInputs = [
autoPatchelfHook
];
buildInputs = [
stdenv.cc.cc.lib
];
installPhase = ''
install -D deepspeech $out/bin/deepspeech
install -D deepspeech.h $out/include/deepspeech.h
install -D libdeepspeech.so $out/lib/libdeepspeech.so
'';
meta = with lib; {
homepage = https://github.com/mozilla/DeepSpeech;
description = "Open source embedded (offline, on-device) speech-to-text engine, which can run in real time on broad range of devices";
license = licenses.mpl20;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ rvolosatovs ];
};
}

View file

@ -5,19 +5,17 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "betterlockscreen"; pname = "betterlockscreen";
version = "3.0.1"; version = "3.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pavanjadhaw"; owner = "pavanjadhaw";
repo = "betterlockscreen"; repo = "betterlockscreen";
rev = version; rev = version;
sha256 = "0jc8ifb69shmd0avx6vny4m1w5dfxkkf5vnm7qcrmc8yflb0s3z6"; sha256 = "14vkgdzw7mprjsvmhm3aav8gds73ngn2xxij4syq7l1mhk701wak";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
patches = [ ./replace-i3lock.patch ];
installPhase = installPhase =
let let
PATH = PATH =

View file

@ -1,12 +0,0 @@
--- a/betterlockscreen
+++ b/betterlockscreen
@@ -76,7 +76,7 @@ prelock() {
lock() {
#$1 image path
- i3lock \
+ i3lock-color \
-t -i "$1" \
--timepos='x+110:h-70' \
--datepos='x+43:h-45' \

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, fetchpatch, kernel }: { lib, stdenv, fetchurl, kernel }:
let cfg = import ./version.nix; in let cfg = import ./version.nix; in
@ -11,14 +11,6 @@ stdenv.mkDerivation rec {
sha256 = cfg.sha256.${pname}; sha256 = cfg.sha256.${pname};
}; };
patches = [
(fetchpatch {
# Fix build with Kernel>=5.12, remove for batman-adv>=2021.1
url = "https://git.open-mesh.org/batman-adv.git/patch/6d67ca7f530d4620e3d066b02aefbfd8893d6c05?hp=362da918384286a959ad7c3455d9d33d9ff99d7d";
sha256 = "039x67yfkwl0b8af8vwx5m58ji2qn8x44rr1rkzi5j43cvmnh2cg";
})
];
nativeBuildInputs = kernel.moduleBuildDependencies; nativeBuildInputs = kernel.moduleBuildDependencies;
hardeningDisable = [ "pic" ]; hardeningDisable = [ "pic" ];

View file

@ -1,9 +1,9 @@
{ {
version = "2021.0"; version = "2021.1";
sha256 = { sha256 = {
batman-adv = "1898y0m8sgca0dmhyfkpmx2g6qc0b1xvh5nm7cvnhwl9h2jrp62s"; batman-adv = "1l1lk41h4chymrb41ihqrr3p80xdwhhp1kkksr157mzailyq8xxz";
alfred = "0jr4wbz81ijd03ssfxb9mqlj3zbx2k495lsl0np262hyla6w0qm0"; alfred = "122y92vqrpp3g6dbjfv8hkhwjlfa3skr91lbzicr0pw8mm6wzqll";
batctl = "1r01a8zxivq4slwc81dgg9qknqsli8qw17csfj95321gjpqqpv4w"; batctl = "0xp1cqcw0g0irgw9yhkch01rbn39gzvfxv8b2yya32vbnkmqrcj4";
}; };
} }

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,3 @@
[ [
{"matrix-appservice-irc": "git+https://github.com/matrix-org/matrix-appservice-irc.git#0.25.0" } {"matrix-appservice-irc": "git+https://github.com/matrix-org/matrix-appservice-irc.git#0.26.0" }
] ]

View file

@ -2,6 +2,7 @@
{ {
matrix-synapse-ldap3 = callPackage ./ldap3.nix { }; matrix-synapse-ldap3 = callPackage ./ldap3.nix { };
matrix-synapse-mjolnir-antispam = callPackage ./mjolnir-antispam.nix { };
matrix-synapse-pam = callPackage ./pam.nix { }; matrix-synapse-pam = callPackage ./pam.nix { };
matrix-synapse-shared-secret-auth = callPackage ./shared-secret-auth.nix { }; matrix-synapse-shared-secret-auth = callPackage ./shared-secret-auth.nix { };
} }

View file

@ -0,0 +1,32 @@
{ lib, buildPythonPackage, fetchFromGitHub, matrix-synapse }:
buildPythonPackage rec {
pname = "matrix-synapse-mjolnir-antispam";
version = "0.1.17";
src = fetchFromGitHub {
owner = "matrix-org";
repo = "mjolnir";
rev = "v${version}";
sha256 = "sha256-uBI5AllXWgl3eL60WZ/j11Tt7QpY7CKcmFQOU74/Qjs=";
};
sourceRoot = "./source/synapse_antispam";
propagatedBuildInputs = [ matrix-synapse ];
doCheck = false; # no tests
pythonImportsCheck = [ "mjolnir" ];
meta = with lib; {
description = "AntiSpam / Banlist plugin to be used with mjolnir";
longDescription = ''
Primarily meant to block invites from undesired homeservers/users,
Mjolnir's Synapse module is a way to interpret ban lists and apply
them to your entire homeserver.
'';
homepage = "https://github.com/matrix-org/mjolnir#synapse-module";
license = licenses.asl20;
maintainers = with maintainers; [ jojosch ];
};
}

View file

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "grafana"; pname = "grafana";
version = "7.5.6"; version = "7.5.7";
excludedPackages = [ "release_publisher" ]; excludedPackages = [ "release_publisher" ];
@ -10,15 +10,15 @@ buildGoModule rec {
rev = "v${version}"; rev = "v${version}";
owner = "grafana"; owner = "grafana";
repo = "grafana"; repo = "grafana";
sha256 = "1683as90p4zkzhaj52vy60bcmpr77zynys87mjzh3s6ks3xfxn2x"; sha256 = "sha256-GTQK02zxOBTE+93vT0zLMhAeZ7F3Cq/0lbvbzwB2QZA=";
}; };
srcStatic = fetchurl { srcStatic = fetchurl {
url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz"; url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
sha256 = "1mywvm4d116y56rffiywk1hx6wxj1418gf7q0v0hfdlwk1lqi9nz"; sha256 = "sha256-IQ7aAuUrNa+bSh5ld6IttujM8AgKUSlu8H7pwzDi164=";
}; };
vendorSha256 = "01a5v292x59fmayjkqnf4c8k8viasxr2s2khs4yrv6p829lx3hq2"; vendorSha256 = "sha256-AsPRaRLomp090XAKLXLXKm40ESPO4im9qi6VLpLYRQU=";
# grafana-aws-sdk is specified with two versions which causes a problem later: # grafana-aws-sdk is specified with two versions which causes a problem later:
# go: inconsistent vendoring in /build/source: # go: inconsistent vendoring in /build/source:

View file

@ -16,8 +16,10 @@ let
passthru.tests = nixosTests.nextcloud; passthru.tests = nixosTests.nextcloud;
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/ mkdir -p $out/
cp -R . $out/ cp -R . $out/
runHook postInstall
''; '';
meta = with lib; { meta = with lib; {
@ -58,8 +60,8 @@ in {
}; };
nextcloud21 = generic { nextcloud21 = generic {
version = "21.0.1"; version = "21.0.2";
sha256 = "dd7c8ccc01547914a75b44bbf86028289c8919dc39f4e2e720147b6bd596aebe"; sha256 = "5e5b38109a3485db5fd2d248f24478eabe6c0790ec10b030acbbee207d5511fe";
}; };
# tip: get she sha with: # tip: get she sha with:
# curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256' # curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'

View file

@ -0,0 +1,35 @@
{ rustPlatform
, lib
, fetchgit
, openssl
, pkg-config
, systemd
}:
rustPlatform.buildRustPackage rec {
pname = "pr-tracker";
version = "1.0.0";
src = fetchgit {
url = "https://git.qyliss.net/pr-tracker";
rev = version;
sha256 = "sha256-NHtY05Llrvfvcb3uyagLd6kaVW630TIP3IreFrY3wl0=";
};
cargoSha256 = "sha256-SgSASfIanADV31pVy+VIwozTLxq7P3oMDIiAAQ8s+k0=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl systemd ];
meta = with lib; {
description = "Nixpkgs pull request channel tracker";
longDescription = ''
A web server that displays the path a Nixpkgs pull request will take
through the various release channels.
'';
platforms = platforms.linux;
homepage = "https://git.qyliss.net/pr-tracker";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ sumnerevans ];
};
}

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "tailscale"; pname = "tailscale";
version = "1.8.3"; version = "1.8.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tailscale"; owner = "tailscale";
repo = "tailscale"; repo = "tailscale";
rev = "v${version}"; rev = "v${version}";
sha256 = "0q0nk0ychb00xhycq3kda57dzrswl8yhci7fzv8yiqzrv3ygpvyd"; sha256 = "0wr6zb8v5082gbh0isz8inmndvqfqgmh5bgaz8ij2id5qwx5znx6";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -0,0 +1,34 @@
{ stdenv, lib, fetchurl, autoPatchelfHook }:
stdenv.mkDerivation rec {
pname = "stt";
version = "0.9.3";
src = fetchurl {
url = "https://github.com/coqui-ai/STT/releases/download/v${version}/native_client.tf.Linux.tar.xz";
sha256 = "0axwys8vis4f0m7d1i2r3dfqlc8p3yj2nisvc7pdi5qs741xgy8w";
};
setSourceRoot = "sourceRoot=`pwd`";
nativeBuildInputs = [
autoPatchelfHook
];
buildInputs = [
stdenv.cc.cc.lib
];
installPhase = ''
install -D stt $out/bin/stt
install -D coqui-stt.h $out/include/coqui-stt.h
install -D libstt.so $out/lib/libstt.so
'';
meta = with lib; {
homepage = https://github.com/coqui-ai/STT;
description = "Deep learning toolkit for Speech-to-Text, battle-tested in research and production";
license = licenses.mpl20;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ rvolosatovs ];
};
}

View file

@ -5,13 +5,13 @@
buildGoModule rec { buildGoModule rec {
pname = "ipinfo"; pname = "ipinfo";
version = "1.1.4"; version = "1.1.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = "cli"; repo = "cli";
rev = "${pname}-${version}"; rev = "${pname}-${version}";
sha256 = "1j50bbq7skbh1pffkmrbs1cyz2x22bniwcdw27rjzmvjixs4wj6h"; sha256 = "16i5vmx39j7l5mhs28niapki9530nsbw6xik8rsky55v9i5pr72d";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -167,6 +167,7 @@ mapAliases ({
deadpixi-sam = deadpixi-sam-unstable; deadpixi-sam = deadpixi-sam-unstable;
debian_devscripts = debian-devscripts; # added 2016-03-23 debian_devscripts = debian-devscripts; # added 2016-03-23
deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31 deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31
deepspeech = throw "deepspeech was removed in favor of stt. https://github.com/NixOS/nixpkgs/issues/119496"; # added 2021-05-05
desktop_file_utils = desktop-file-utils; # added 2018-02-25 desktop_file_utils = desktop-file-utils; # added 2018-02-25
devicemapper = lvm2; # added 2018-04-25 devicemapper = lvm2; # added 2018-04-25
digikam5 = digikam; # added 2017-02-18 digikam5 = digikam; # added 2017-02-18

View file

@ -7871,6 +7871,8 @@ in
polygraph = callPackage ../tools/networking/polygraph { }; polygraph = callPackage ../tools/networking/polygraph { };
pr-tracker = callPackage ../servers/pr-tracker { };
progress = callPackage ../tools/misc/progress { }; progress = callPackage ../tools/misc/progress { };
ps3netsrv = callPackage ../servers/ps3netsrv { }; ps3netsrv = callPackage ../servers/ps3netsrv { };
@ -28674,6 +28676,8 @@ in
streamlit = python3Packages.callPackage ../applications/science/machine-learning/streamlit { }; streamlit = python3Packages.callPackage ../applications/science/machine-learning/streamlit { };
stt = callPackage ../tools/audio/stt { };
stuntrally = callPackage ../games/stuntrally { stuntrally = callPackage ../games/stuntrally {
ogre = ogre1_9; ogre = ogre1_9;
mygui = mygui.override { mygui = mygui.override {
@ -28939,51 +28943,10 @@ in
gnome = recurseIntoAttrs (callPackage ../desktops/gnome { }); gnome = recurseIntoAttrs (callPackage ../desktops/gnome { });
gnomeExtensions = recurseIntoAttrs { inherit (callPackage ../desktops/gnome/extensions { })
appindicator = callPackage ../desktops/gnome/extensions/appindicator { }; gnomeExtensions
arcmenu = callPackage ../desktops/gnome/extensions/arcmenu { }; gnome38Extensions
caffeine = callPackage ../desktops/gnome/extensions/caffeine { }; gnome40Extensions;
clipboard-indicator = callPackage ../desktops/gnome/extensions/clipboard-indicator { };
clock-override = callPackage ../desktops/gnome/extensions/clock-override { };
dash-to-dock = callPackage ../desktops/gnome/extensions/dash-to-dock { };
dash-to-panel = callPackage ../desktops/gnome/extensions/dash-to-panel { };
disable-unredirect = callPackage ../desktops/gnome/extensions/disable-unredirect { };
draw-on-your-screen = callPackage ../desktops/gnome/extensions/draw-on-your-screen { };
drop-down-terminal = callPackage ../desktops/gnome/extensions/drop-down-terminal { };
dynamic-panel-transparency = callPackage ../desktops/gnome/extensions/dynamic-panel-transparency { };
easyScreenCast = callPackage ../desktops/gnome/extensions/EasyScreenCast { };
emoji-selector = callPackage ../desktops/gnome/extensions/emoji-selector { };
freon = callPackage ../desktops/gnome/extensions/freon { };
fuzzy-app-search = callPackage ../desktops/gnome/extensions/fuzzy-app-search { };
gsconnect = callPackage ../desktops/gnome/extensions/gsconnect { };
hot-edge = callPackage ../desktops/gnome/extensions/hot-edge { };
icon-hider = callPackage ../desktops/gnome/extensions/icon-hider { };
impatience = callPackage ../desktops/gnome/extensions/impatience { };
material-shell = callPackage ../desktops/gnome/extensions/material-shell { };
mpris-indicator-button = callPackage ../desktops/gnome/extensions/mpris-indicator-button { };
night-theme-switcher = callPackage ../desktops/gnome/extensions/night-theme-switcher { };
no-title-bar = callPackage ../desktops/gnome/extensions/no-title-bar { };
noannoyance = callPackage ../desktops/gnome/extensions/noannoyance { };
paperwm = callPackage ../desktops/gnome/extensions/paperwm { };
pidgin-im-integration = callPackage ../desktops/gnome/extensions/pidgin-im-integration { };
remove-dropdown-arrows = callPackage ../desktops/gnome/extensions/remove-dropdown-arrows { };
sound-output-device-chooser = callPackage ../desktops/gnome/extensions/sound-output-device-chooser { };
system-monitor = callPackage ../desktops/gnome/extensions/system-monitor { };
taskwhisperer = callPackage ../desktops/gnome/extensions/taskwhisperer { };
tilingnome = callPackage ../desktops/gnome/extensions/tilingnome { };
timepp = callPackage ../desktops/gnome/extensions/timepp { };
topicons-plus = callPackage ../desktops/gnome/extensions/topicons-plus { };
unite = callPackage ../desktops/gnome/extensions/unite { };
window-corner-preview = callPackage ../desktops/gnome/extensions/window-corner-preview { };
window-is-ready-remover = callPackage ../desktops/gnome/extensions/window-is-ready-remover { };
workspace-matrix = callPackage ../desktops/gnome/extensions/workspace-matrix { };
nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
} // lib.optionalAttrs (config.allowAliases or false) {
unite-shell = gnomeExtensions.unite; # added 2021-01-19
arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
};
gnome-connections = callPackage ../desktops/gnome/apps/gnome-connections { }; gnome-connections = callPackage ../desktops/gnome/apps/gnome-connections { };
@ -30172,8 +30135,6 @@ in
dbus-map = callPackage ../tools/misc/dbus-map { }; dbus-map = callPackage ../tools/misc/dbus-map { };
deepspeech = callPackage ../misc/deepspeech { };
dell-530cdn = callPackage ../misc/drivers/dell-530cdn {}; dell-530cdn = callPackage ../misc/drivers/dell-530cdn {};
demjson = with python3Packages; toPythonApplication demjson; demjson = with python3Packages; toPythonApplication demjson;

View file

@ -25,21 +25,21 @@
let let
mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/elpa-packages.nix { mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/elpa-packages.nix {
inherit (pkgs) stdenv texinfo writeText; inherit (pkgs) stdenv texinfo writeText;
inherit lib; inherit lib;
}; };
# Contains both melpa stable & unstable # Contains both melpa stable & unstable
melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs-modes/melpa-packages.nix { melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/melpa-packages.nix {
inherit lib pkgs; inherit lib pkgs;
}; };
mkOrgPackages = { lib }: import ../applications/editors/emacs-modes/org-packages.nix { mkOrgPackages = { lib }: import ../applications/editors/emacs/elisp-packages/org-packages.nix {
inherit lib; inherit lib;
}; };
mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/manual-packages.nix { mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/manual-packages.nix {
inherit lib pkgs; inherit lib pkgs;
}; };