diff options
23 files changed, 378 insertions, 116 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 7e4e02c5a7f..939d6121eee 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -7888,6 +7888,12 @@ githubId = 757752; name = "Jonas Heinrich"; }; + ony = { + name = "Mykola Orliuk"; + email = "virkony@gmail.com"; + github = "ony"; + githubId = 11265; + }; OPNA2608 = { email = "christoph.neidahl@gmail.com"; github = "OPNA2608"; diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml index b9967ffb982..fcaac9e8bec 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml @@ -546,6 +546,22 @@ <literal>claws-mail-gtk2</literal> package. </para> </listitem> + <listitem> + <para> + The wordpress module provides a new interface which allows to + use different webservers with the new option + <link xlink:href="options.html#opt-services.wordpress.webserver"><literal>services.wordpress.webserver</literal></link>. + Currently <literal>httpd</literal> and + <literal>nginx</literal> are supported. The definitions of + wordpress sites should now be set in + <link xlink:href="options.html#opt-services.wordpress.sites"><literal>services.wordpress.sites</literal></link>. + </para> + <para> + Sites definitions that use the old interface are automatically + migrated in the new option. This backward compatibility will + be removed in 22.05. + </para> + </listitem> </itemizedlist> </section> </section> diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index 377dbf598d9..030f1d21818 100644 --- a/nixos/doc/manual/release-notes/rl-2111.section.md +++ b/nixos/doc/manual/release-notes/rl-2111.section.md @@ -135,3 +135,7 @@ In addition to numerous new and upgraded packages, this release has the followin - Sway: The terminal emulator `rxvt-unicode` is no longer installed by default via `programs.sway.extraPackages`. The current default configuration uses `alacritty` (and soon `foot`) so this is only an issue when using a customized configuration and not installing `rxvt-unicode` explicitly. - The `claws-mail` package now references the new GTK+ 3 release branch, major version 4. To use the GTK+ 2 releases, one can install the `claws-mail-gtk2` package. + +- The wordpress module provides a new interface which allows to use different webservers with the new option [`services.wordpress.webserver`](options.html#opt-services.wordpress.webserver). Currently `httpd` and `nginx` are supported. The definitions of wordpress sites should now be set in [`services.wordpress.sites`](options.html#opt-services.wordpress.sites). + + Sites definitions that use the old interface are automatically migrated in the new option. This backward compatibility will be removed in 22.05. diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix index 775ecb3acaf..6f1ef815bc4 100644 --- a/nixos/modules/services/web-apps/wordpress.nix +++ b/nixos/modules/services/web-apps/wordpress.nix @@ -3,13 +3,18 @@ let inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types; inherit (lib) any attrValues concatMapStringsSep flatten literalExample; - inherit (lib) mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString; + inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString; - eachSite = config.services.wordpress; + cfg = migrateOldAttrs config.services.wordpress; + eachSite = cfg.sites; user = "wordpress"; - group = config.services.httpd.group; + webserver = config.services.${cfg.webserver}; stateDir = hostName: "/var/lib/wordpress/${hostName}"; + # Migrate config.services.wordpress.<hostName> to config.services.wordpress.sites.<hostName> + oldSites = filterAttrs (o: _: o != "sites" && o != "webserver"); + migrateOldAttrs = cfg: cfg // { sites = cfg.sites // oldSites cfg; }; + pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec { pname = "wordpress-${hostName}"; version = src.version; @@ -261,21 +266,48 @@ in # interface options = { services.wordpress = mkOption { - type = types.attrsOf (types.submodule siteOpts); + type = types.submodule { + # Used to support old interface + freeformType = types.attrsOf (types.submodule siteOpts); + + # New interface + options.sites = mkOption { + type = types.attrsOf (types.submodule siteOpts); + default = {}; + description = "Specification of one or more WordPress sites to serve"; + }; + + options.webserver = mkOption { + type = types.enum [ "httpd" "nginx" ]; + default = "httpd"; + description = '' + Whether to use apache2 or nginx for virtual host management. + + Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.<name></literal>. + See <xref linkend="opt-services.nginx.virtualHosts"/> for further information. + + Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.<name></literal>. + See <xref linkend="opt-services.httpd.virtualHosts"/> for further information. + ''; + }; + }; default = {}; - description = "Specification of one or more WordPress sites to serve via Apache."; + description = "Wordpress configuration"; }; + }; # implementation - config = mkIf (eachSite != {}) { + config = mkIf (eachSite != {}) (mkMerge [{ assertions = mapAttrsToList (hostName: cfg: { assertion = cfg.database.createLocally -> cfg.database.user == user; - message = "services.wordpress.${hostName}.database.user must be ${user} if the database is to be automatically provisioned"; + message = ''services.wordpress.sites."${hostName}".database.user must be ${user} if the database is to be automatically provisioned''; } ) eachSite; + warnings = mapAttrsToList (hostName: _: ''services.wordpress."${hostName}" is deprecated use services.wordpress.sites."${hostName}"'') (oldSites cfg); + services.mysql = mkIf (any (v: v.database.createLocally) (attrValues eachSite)) { enable = true; package = mkDefault pkgs.mariadb; @@ -289,14 +321,18 @@ in services.phpfpm.pools = mapAttrs' (hostName: cfg: ( nameValuePair "wordpress-${hostName}" { - inherit user group; + inherit user; + group = webserver.group; settings = { - "listen.owner" = config.services.httpd.user; - "listen.group" = config.services.httpd.group; + "listen.owner" = webserver.user; + "listen.group" = webserver.group; } // cfg.poolConfig; } )) eachSite; + } + + (mkIf (cfg.webserver == "httpd") { services.httpd = { enable = true; extraModules = [ "proxy_fcgi" ]; @@ -332,11 +368,13 @@ in ''; } ]) eachSite; }; + }) + { systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [ - "d '${stateDir hostName}' 0750 ${user} ${group} - -" - "d '${cfg.uploadsDir}' 0750 ${user} ${group} - -" - "Z '${cfg.uploadsDir}' 0750 ${user} ${group} - -" + "d '${stateDir hostName}' 0750 ${user} ${webserver.group} - -" + "d '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -" + "Z '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -" ]) eachSite); systemd.services = mkMerge [ @@ -350,7 +388,7 @@ in serviceConfig = { Type = "oneshot"; User = user; - Group = group; + Group = webserver.group; }; })) eachSite) @@ -360,9 +398,65 @@ in ]; users.users.${user} = { - group = group; + group = webserver.group; isSystemUser = true; }; + } - }; + (mkIf (cfg.webserver == "nginx") { + services.nginx = { + enable = true; + virtualHosts = mapAttrs (hostName: cfg: { + serverName = mkDefault hostName; + root = "${pkg hostName cfg}/share/wordpress"; + extraConfig = '' + index index.php; + ''; + locations = { + "/" = { + priority = 200; + extraConfig = '' + try_files $uri $uri/ /index.php$is_args$args; + ''; + }; + "~ \\.php$" = { + priority = 500; + extraConfig = '' + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass unix:${config.services.phpfpm.pools."wordpress-${hostName}".socket}; + fastcgi_index index.php; + include "${config.services.nginx.package}/conf/fastcgi.conf"; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; + # Mitigate https://httpoxy.org/ vulnerabilities + fastcgi_param HTTP_PROXY ""; + fastcgi_intercept_errors off; + fastcgi_buffer_size 16k; + fastcgi_buffers 4 16k; + fastcgi_connect_timeout 300; + fastcgi_send_timeout 300; + fastcgi_read_timeout 300; + ''; + }; + "~ /\\." = { + priority = 800; + extraConfig = "deny all;"; + }; + "~* /(?:uploads|files)/.*\\.php$" = { + priority = 900; + extraConfig = "deny all;"; + }; + "~* \\.(js|css|png|jpg|jpeg|gif|ico)$" = { + priority = 1000; + extraConfig = '' + expires max; + log_not_found off; + ''; + }; + }; + }) eachSite; + }; + }) + + ]); } diff --git a/nixos/tests/wordpress.nix b/nixos/tests/wordpress.nix index a5c10c2de74..45c58b5b65c 100644 --- a/nixos/tests/wordpress.nix +++ b/nixos/tests/wordpress.nix @@ -10,48 +10,68 @@ import ./make-test-python.nix ({ pkgs, ... }: ]; }; - machine = - { ... }: - { services.httpd.adminAddr = "webmaster@site.local"; + nodes = { + wp_httpd = { ... }: { + services.httpd.adminAddr = "webmaster@site.local"; services.httpd.logPerVirtualHost = true; - services.wordpress."site1.local" = { - database.tablePrefix = "site1_"; + services.wordpress = { + # Test support for old interface + "site1.local" = { + database.tablePrefix = "site1_"; + }; + sites = { + "site2.local" = { + database.tablePrefix = "site2_"; + }; + }; }; - services.wordpress."site2.local" = { - database.tablePrefix = "site2_"; + networking.firewall.allowedTCPPorts = [ 80 ]; + networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; + }; + + wp_nginx = { ... }: { + services.wordpress.webserver = "nginx"; + services.wordpress.sites = { + "site1.local" = { + database.tablePrefix = "site1_"; + }; + "site2.local" = { + database.tablePrefix = "site2_"; + }; }; + networking.firewall.allowedTCPPorts = [ 80 ]; networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; }; + }; testScript = '' import re start_all() - machine.wait_for_unit("httpd") - - machine.wait_for_unit("phpfpm-wordpress-site1.local") - machine.wait_for_unit("phpfpm-wordpress-site2.local") + wp_httpd.wait_for_unit("httpd") + wp_nginx.wait_for_unit("nginx") site_names = ["site1.local", "site2.local"] - with subtest("website returns welcome screen"): + for machine in (wp_httpd, wp_nginx): for site_name in site_names: - assert "Welcome to the famous" in machine.succeed(f"curl -fL {site_name}") + machine.wait_for_unit(f"phpfpm-wordpress-{site_name}") - with subtest("wordpress-init went through"): - for site_name in site_names: - info = machine.get_unit_info(f"wordpress-init-{site_name}") - assert info["Result"] == "success" + with subtest("website returns welcome screen"): + assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}") - with subtest("secret keys are set"): - pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE) - for site_name in site_names: - assert pattern.search( - machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php") - ) + with subtest("wordpress-init went through"): + info = machine.get_unit_info(f"wordpress-init-{site_name}") + assert info["Result"] == "success" + + with subtest("secret keys are set"): + pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE) + assert pattern.search( + machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php") + ) ''; }) diff --git a/pkgs/applications/blockchains/bitcoin.nix b/pkgs/applications/blockchains/bitcoin.nix index 162a5ddee1a..00727d294df 100644 --- a/pkgs/applications/blockchains/bitcoin.nix +++ b/pkgs/applications/blockchains/bitcoin.nix @@ -1,21 +1,22 @@ -{ lib, stdenv +{ lib +, stdenv , fetchurl -, pkg-config , autoreconfHook -, db48 -, sqlite +, pkg-config +, util-linux +, hexdump +, wrapQtAppsHook ? null , boost +, libevent +, miniupnpc , zeromq -, hexdump , zlib -, miniupnpc +, db48 +, sqlite +, qrencode , qtbase ? null , qttools ? null -, wrapQtAppsHook ? null -, util-linux , python3 -, qrencode -, libevent , nixosTests , withGui , withWallet ? true @@ -43,13 +44,14 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = - [ pkg-config autoreconfHook ] - ++ optional stdenv.isDarwin hexdump - ++ optional withGui wrapQtAppsHook; - buildInputs = [ boost zlib zeromq miniupnpc libevent ] + [ autoreconfHook pkg-config ] ++ optionals stdenv.isLinux [ util-linux ] + ++ optionals stdenv.isDarwin [ hexdump ] + ++ optionals withGui [ wrapQtAppsHook ]; + + buildInputs = [ boost libevent miniupnpc zeromq zlib ] ++ optionals withWallet [ db48 sqlite ] - ++ optionals withGui [ qtbase qttools qrencode ]; + ++ optionals withGui [ qrencode qtbase qttools ]; postInstall = optional withGui '' install -Dm644 ${desktop} $out/share/applications/bitcoin-qt.desktop diff --git a/pkgs/applications/blockchains/elements.nix b/pkgs/applications/blockchains/elements.nix new file mode 100644 index 00000000000..c44f2078dae --- /dev/null +++ b/pkgs/applications/blockchains/elements.nix @@ -0,0 +1,86 @@ +{ lib +, stdenv +, fetchurl +, autoreconfHook +, pkg-config +, util-linux +, hexdump +, wrapQtAppsHook ? null +, boost +, libevent +, miniupnpc +, zeromq +, zlib +, db48 +, sqlite +, qrencode +, qtbase ? null +, qttools ? null +, python3 +, openssl +, withGui +, withWallet ? true +}: + +with lib; +stdenv.mkDerivation rec { + pname = if withGui then "elements" else "elementsd"; + version = "0.18.1.12"; + + src = fetchurl { + url = "https://github.com/ElementsProject/elements/archive/elements-${version}.tar.gz"; + sha256 = "84a51013596b09c62913649ac90373622185f779446ee7e65b4b258a2876609f"; + }; + + nativeBuildInputs = + [ autoreconfHook pkg-config ] + ++ optionals stdenv.isLinux [ util-linux ] + ++ optionals stdenv.isDarwin [ hexdump ] + ++ optionals withGui [ wrapQtAppsHook ]; + + buildInputs = [ boost libevent miniupnpc zeromq zlib openssl ] + ++ optionals withWallet [ db48 sqlite ] + ++ optionals withGui [ qrencode qtbase qttools ]; + + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--disable-bench" + ] ++ optionals (!doCheck) [ + "--disable-tests" + "--disable-gui-tests" + ] ++ optionals (!withWallet) [ + "--disable-wallet" + ] ++ optionals withGui [ + "--with-gui=qt5" + "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" + ]; + + checkInputs = [ python3 ]; + + doCheck = true; + + checkFlags = + [ "LC_ALL=C.UTF-8" ] + # QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI. + # See also https://github.com/NixOS/nixpkgs/issues/24256 + ++ optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}"; + + enableParallelBuilding = true; + + meta = { + description = "Open Source implementation of advanced blockchain features extending the Bitcoin protocol"; + longDescription= '' + The Elements blockchain platform is a collection of feature experiments and extensions to the + Bitcoin protocol. This platform enables anyone to build their own businesses or networks + pegged to Bitcoin as a sidechain or run as a standalone blockchain with arbitrary asset + tokens. + ''; + homepage = "https://www.github.com/ElementsProject/elements"; + maintainers = with maintainers; [ prusnak ]; + license = licenses.mit; + platforms = platforms.unix; + # Qt GUI is currently broken in upstream + # No rule to make target 'qt/res/rendered_icons/about.png', needed by 'qt/qrc_bitcoin.cpp'. + broken = withGui; + }; +} diff --git a/pkgs/applications/misc/dmenu/wayland.nix b/pkgs/applications/misc/dmenu/wayland.nix index 8d77588ce8f..6b8f92ddb1c 100644 --- a/pkgs/applications/misc/dmenu/wayland.nix +++ b/pkgs/applications/misc/dmenu/wayland.nix @@ -1,5 +1,6 @@ { lib, stdenv, fetchFromGitHub, meson, ninja, cairo, pango, pkg-config, wayland-protocols -, glib, wayland, libxkbcommon, makeWrapper +, glib, wayland, libxkbcommon, makeWrapper, wayland-scanner +, fetchpatch }: stdenv.mkDerivation rec { @@ -15,9 +16,19 @@ stdenv.mkDerivation rec { outputs = [ "out" "man" ]; - nativeBuildInputs = [ meson ninja pkg-config makeWrapper ]; + depsBuildBuild = [ pkg-config ]; + nativeBuildInputs = [ meson ninja pkg-config makeWrapper wayland-scanner ]; buildInputs = [ cairo pango wayland-protocols glib wayland libxkbcommon ]; + # Patch to support cross-compilation, see https://github.com/nyyManni/dmenu-wayland/pull/23/ + patches = [ + # can be removed when https://github.com/nyyManni/dmenu-wayland/pull/23 is included + (fetchpatch { + url = "https://github.com/nyyManni/dmenu-wayland/commit/3434410de5dcb007539495395f7dc5421923dd3a.patch"; + sha256 = "sha256-im16kU8RWrCY0btYOYjDp8XtfGEivemIPlhwPX0C77o="; + }) + ]; + postInstall = '' wrapProgram $out/bin/dmenu-wl_run \ --prefix PATH : $out/bin diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix index dc5a8739760..b5bdef03db7 100644 --- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix +++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix @@ -2,8 +2,9 @@ , gtkspell2, aspell , gst_all_1, startupnotification, gettext , perlPackages, libxml2, nss, nspr, farstream -, libXScrnSaver, ncurses, avahi, dbus, dbus-glib, intltool, libidn -, lib, python, libICE, libXext, libSM +, libXScrnSaver, avahi, dbus, dbus-glib, intltool, libidn +, lib, python3, libICE, libXext, libSM +, libgnt, ncurses , cyrus_sasl ? null , openssl ? null , gnutls ? null @@ -16,28 +17,27 @@ let unwrapped = stdenv.mkDerivation rec { pname = "pidgin"; majorVersion = "2"; - version = "${majorVersion}.13.0"; + version = "${majorVersion}.14.6"; src = fetchurl { url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2"; - sha256 = "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7"; + sha256 = "bb45f7c032f9efd6922a5dbf2840995775e5584771b23992d04f6eff7dff5336"; }; - inherit nss ncurses; - nativeBuildInputs = [ makeWrapper ]; NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"; buildInputs = let - python-with-dbus = python.withPackages (pp: with pp; [ dbus-python ]); + python-with-dbus = python3.withPackages (pp: with pp; [ dbus-python ]); in [ aspell startupnotification gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good libxml2 nss nspr - libXScrnSaver ncurses python-with-dbus + libXScrnSaver python-with-dbus avahi dbus dbus-glib intltool libidn libICE libXext libSM cyrus_sasl + libgnt ncurses # optional: build finch - the console UI ] ++ (lib.optional (openssl != null) openssl) ++ (lib.optional (gnutls != null) gnutls) @@ -62,6 +62,7 @@ let unwrapped = stdenv.mkDerivation rec { "--disable-meanwhile" "--disable-nm" "--disable-tcl" + "--disable-gevolution" ] ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ]) ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]) diff --git a/pkgs/desktops/arcan/arcan.nix b/pkgs/desktops/arcan/arcan.nix index 8a30da9e81f..c6a57ecc3bd 100644 --- a/pkgs/desktops/arcan/arcan.nix +++ b/pkgs/desktops/arcan/arcan.nix @@ -52,13 +52,13 @@ let in stdenv.mkDerivation rec { pname = "arcan"; - version = "0.6.1pre1+unstable=2021-07-07"; + version = "0.6.1pre1+unstable=2021-07-10"; src = fetchFromGitHub { owner = "letoram"; repo = "arcan"; - rev = "f3341ab94b32d02f3d15c3b91a512b2614e950a5"; - hash = "sha256-YBtRA5uCk4tjX3Bsu5vMkaNaCLRlM6HVQ53sna3gDsY="; + rev = "25da999e6e03688c71c7df3852314c01ed610e0d"; + hash = "sha256-+ZF6mD/Z0N/5QCjXe80z4L6JOE33+Yv4ZlwKvlG/c44="; }; postUnpack = '' diff --git a/pkgs/desktops/arcan/default.nix b/pkgs/desktops/arcan/default.nix index dba284f0100..874035c4801 100644 --- a/pkgs/desktops/arcan/default.nix +++ b/pkgs/desktops/arcan/default.nix @@ -37,6 +37,6 @@ rec { everyone-wrapped = callPackage ./wrapper.nix { name = "everyone-wrapped"; - appls = [ durden pipeworld prio ]; + appls = [ durden pipeworld ]; }; } diff --git a/pkgs/desktops/arcan/durden.nix b/pkgs/desktops/arcan/durden.nix index cfe41cb6ec2..f6837f96fb6 100644 --- a/pkgs/desktops/arcan/durden.nix +++ b/pkgs/desktops/arcan/durden.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "durden"; - version = "0.6.1+unstable=2021-06-25"; + version = "0.6.1+unstable=2021-07-11"; src = fetchFromGitHub { owner = "letoram"; repo = pname; - rev = "fb618fccc57a68b6ce933b4df5822acd1965d591"; - hash = "sha256-PovI837Xca4wV0g0s4tYUMFGVUDf+f8HcdvM1+0aDxk="; + rev = "8e0a5c07cade9ad9f606781615c9ebae7b28b6d5"; + hash = "sha256-4cGuCAeYmmr4ACWt2akVQu2cPqqyE6p+XFaKWcFf3t0="; }; installPhase = '' diff --git a/pkgs/desktops/arcan/wrapper.nix b/pkgs/desktops/arcan/wrapper.nix index a8b93ca1dea..4368b0ad3a5 100644 --- a/pkgs/desktops/arcan/wrapper.nix +++ b/pkgs/desktops/arcan/wrapper.nix @@ -21,7 +21,7 @@ symlinkJoin rec { --set ARCAN_LIBPATH "${placeholder "out"}/lib/" \ --set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \ --set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" \ - --set ARCAN_STATEBASEPATH "$HOME/.arcan/resources/savestates/" + --set ARCAN_STATEBASEPATH "\$HOME/.arcan/resources/savestates/" done ''; } diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix index 21aeb38530f..2e20314d480 100644 --- a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix @@ -11,15 +11,17 @@ , glib , granite , libgee +, libhandy , elementary-icon-theme , elementary-gtk-theme , gettext , wrapGAppsHook +, appstream }: stdenv.mkDerivation rec { pname = "elementary-feedback"; - version = "1.0"; + version = "6.0.0"; repoName = "feedback"; @@ -27,7 +29,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "sha256-GkVnowqGXwnEgplT34Po/BKzC2F/IQE2kIw0SLSLhGU="; + sha256 = "1fh9a0nfvbrxamki9avm9by760csj2nqy4ya7wzbnqbrrvjwd3fv"; }; passthru = { @@ -47,11 +49,13 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + appstream elementary-icon-theme granite gtk3 elementary-gtk-theme libgee + libhandy glib ]; diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix index 5a5c314b3e9..fe6c3f187fe 100644 --- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix @@ -1,6 +1,5 @@ { lib, stdenv , fetchFromGitHub -, fetchpatch , nix-update-script , pantheon , pkg-config @@ -16,6 +15,7 @@ , json-glib , libgda , libgpod +, libhandy , libnotify , libpeas , libsoup @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { pname = "elementary-music"; - version = "5.0.5"; + version = "5.1.0"; repoName = "music"; @@ -39,17 +39,9 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "sha256-3GZoBCu9rF+BnNk9APBzKWO1JYg1XYWwrEvwcjWvYDE="; + sha256 = "13v7rii9ardyd661s6d4hvvs4ig44v7s3qd1bx7imaigr72gg58b"; }; - patches = [ - # Fix build with latest Vala. - (fetchpatch { - url = "https://github.com/elementary/music/commit/9ed3bbb3a0d68e289a772b4603f58e52a4973316.patch"; - sha256 = "fFO97SQzTc2fYFJFGfFPSUCdkCgZxfX1fjDQ7GH4BUs="; - }) - ]; - passthru = { updateScript = nix-update-script { attrPath = "pantheon.${pname}"; @@ -82,6 +74,7 @@ stdenv.mkDerivation rec { libgda libgee libgpod + libhandy libnotify libpeas libsignon-glib diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix index 7280051361a..bced420dbc0 100644 --- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix @@ -1,6 +1,5 @@ { lib, stdenv , fetchFromGitHub -, fetchpatch , nix-update-script , pantheon , meson @@ -12,6 +11,7 @@ , libaccounts-glib , libexif , libgee +, libhandy , geocode-glib , gexiv2 , libgphoto2 @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { pname = "elementary-photos"; - version = "2.7.0"; + version = "2.7.1"; repoName = "photos"; @@ -43,17 +43,9 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "sha256-bTk4shryAWWMrKX3mza6xQ05qpBPf80Ey7fmYgKLUiY="; + sha256 = "1dql14k43rv3in451amiwv4z71hz3ailx67hd8gw1ka3yw12128p"; }; - patches = [ - # Fix build with latest Vala. - (fetchpatch { - url = "https://github.com/elementary/photos/commit/27e529fc96da828982563e2e19a6f0cef883a29e.patch"; - sha256 = "w39wh45VHggCs62TN6wpUEyz/hJ1y7qL1Ox+sp0Pt2s="; - }) - ]; - passthru = { updateScript = nix-update-script { attrPath = "pantheon.${pname}"; @@ -88,6 +80,7 @@ stdenv.mkDerivation rec { libgee libgphoto2 libgudev + libhandy libraw librest libsoup diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix index e5506093719..95df9a613a8 100644 --- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { pname = "elementary-videos"; - version = "2.7.2"; + version = "2.7.3"; repoName = "videos"; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "sha256-MSyhCXsziQ0MD4lGp9X/9odidjT/L+2Aihwd1qCGvB0="; + sha256 = "04nl9kn33dysvsg0n5qx1z8qgrifkgfwsm7gh1l308v3n8c69lh7"; }; passthru = { diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix index 55935b2ee0e..bd4845172c5 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { pname = "elementary-icon-theme"; - version = "5.3.1"; + version = "6.0.0"; repoName = "icons"; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "sha256-6XFzjpuHpGIZ+azkPuFcSF7p66sDonwLwjvlNBZDRmc="; + sha256 = "0k94zi8fzi0nf5q471fmrlz8jjkv8m6vav1spzv7ynkg2hik8d9b"; }; passthru = { diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix index 3d4dc6bd84a..2397dd8ffcf 100644 --- a/pkgs/desktops/pantheon/granite/default.nix +++ b/pkgs/desktops/pantheon/granite/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { pname = "granite"; - version = "6.0.0"; + version = "6.1.0"; outputs = [ "out" "dev" ]; @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-RGukXeFmtnyCfK8pKdvTHL0t8yhEYwAiiPelTy1Xcf0="; + sha256 = "02hn4abnsn6fm2m33pjmlnkj8dljsm292z62vn8ccvy7l8f9my6l"; }; passthru = { diff --git a/pkgs/development/libraries/libgnt/default.nix b/pkgs/development/libraries/libgnt/default.nix new file mode 100644 index 00000000000..33ce7fbaa11 --- /dev/null +++ b/pkgs/development/libraries/libgnt/default.nix @@ -0,0 +1,37 @@ +{ stdenv, lib, fetchurl, meson, ninja, pkg-config +, gtk-doc, docbook-xsl-nons +, glib, ncurses, libxml2 +, buildDocs ? true +}: +stdenv.mkDerivation rec { + pname = "libgnt"; + version = "2.14.1"; + + outputs = [ "out" "dev" ] ++ lib.optional buildDocs "devdoc"; + + src = fetchurl { + url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.xz"; + sha256 = "1n2bxg0ignn53c08cp69pj4sdg53kwlqn23rincyjmpr327fdhsy"; + }; + + nativeBuildInputs = [ meson ninja pkg-config ] + ++ lib.optionals buildDocs [ gtk-doc docbook-xsl-nons ]; + + buildInputs = [ glib ncurses libxml2 ]; + + postPatch = '' + substituteInPlace meson.build --replace \ + "ncurses_sys_prefix = '/usr'" \ + "ncurses_sys_prefix = '${lib.getDev ncurses}'" + '' + lib.optionalString (!buildDocs) '' + sed "/^subdir('doc')$/d" -i meson.build + ''; + + meta = with lib; { + description = "An ncurses toolkit for creating text-mode graphical user interfaces"; + homepage = "https://keep.imfreedom.org/libgnt/libgnt/"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with lib.maintainers; [ ony ]; + }; +} diff --git a/pkgs/development/tools/rq/default.nix b/pkgs/development/tools/rq/default.nix index 7d222e03bc9..68669e88516 100644 --- a/pkgs/development/tools/rq/default.nix +++ b/pkgs/development/tools/rq/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, rustPlatform, libiconv, llvmPackages, v8 }: +{ stdenv, lib, fetchFromGitHub, rustPlatform }: rustPlatform.buildRustPackage rec { pname = "rq"; @@ -13,9 +13,6 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "0071q08f75qrxdkbx1b9phqpbj15r79jbh391y32acifi7hr35hj"; - buildInputs = [ llvmPackages.libclang v8 ] - ++ lib.optionals stdenv.isDarwin [ libiconv ]; - postPatch = '' # Remove #[deny(warnings)] which is equivalent to -Werror in C. # Prevents build failures when upgrading rustc, which may give more warnings. @@ -23,11 +20,6 @@ rustPlatform.buildRustPackage rec { --replace "#![deny(warnings)]" "" ''; - configurePhase = '' - export LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib" - export V8_SOURCE="${v8}" - ''; - meta = with lib; { description = "A tool for doing record analysis and transformation"; homepage = "https://github.com/dflemstr/rq"; diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix index d052ddb7b79..e5192b7b3c1 100644 --- a/pkgs/servers/dns/knot-dns/default.nix +++ b/pkgs/servers/dns/knot-dns/default.nix @@ -7,11 +7,11 @@ let inherit (lib) optional optionals; in stdenv.mkDerivation rec { pname = "knot-dns"; - version = "3.0.7"; + version = "3.0.8"; src = fetchurl { url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz"; - sha256 = "2bad8be0be95c8f54a26d1e16299e65f31ae1b34bd6ad3819aa50e7b40521484"; + sha256 = "df723949c19ebecf9a7118894c3127e292eb09dc7274b5ce9b527409f42edfb0"; }; outputs = [ "bin" "out" "dev" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 00d2c8f115e..a7b61572351 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8489,9 +8489,7 @@ in routino = callPackage ../tools/misc/routino { }; - rq = callPackage ../development/tools/rq { - inherit (darwin) libiconv; - }; + rq = callPackage ../development/tools/rq { }; rs-git-fsmonitor = callPackage ../applications/version-management/git-and-tools/rs-git-fsmonitor { }; @@ -16542,6 +16540,8 @@ in libgksu = callPackage ../development/libraries/libgksu { }; + libgnt = callPackage ../development/libraries/libgnt { }; + libgpgerror = callPackage ../development/libraries/libgpg-error { }; # https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=blob;f=README;h=fd6e1a83f55696c1f7a08f6dfca08b2d6b7617ec;hb=70058cd9f944d620764e57c838209afae8a58c78#l118 @@ -28510,6 +28510,9 @@ in electrs = callPackage ../applications/blockchains/electrs.nix { }; + elements = libsForQt5.callPackage ../applications/blockchains/elements.nix { miniupnpc = miniupnpc_2; withGui = true; }; + elementsd = callPackage ../applications/blockchains/elements.nix { miniupnpc = miniupnpc_2; withGui = false; }; + ergo = callPackage ../applications/blockchains/ergo { }; exodus = callPackage ../applications/blockchains/exodus { }; |