diff --git a/flake.nix b/flake.nix index bb76fae486d5..29dffa9fa4e4 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,9 @@ in { lib = lib.extend (final: prev: { + + nixos = import ./nixos/lib { lib = final; }; + nixosSystem = { modules, ... } @ args: import ./nixos/lib/eval-config.nix (args // { modules = diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index bdb2a2c8bb63..b85bbc046c37 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6604,7 +6604,7 @@ }; kylesferrazza = { name = "Kyle Sferrazza"; - email = "kyle.sferrazza@gmail.com"; + email = "nixpkgs@kylesferrazza.com"; github = "kylesferrazza"; githubId = 6677292; diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 12a308dfdffb..cb537263c72e 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -108,6 +108,14 @@ services.powerdns-admin. + + + InvoicePlane, + web application for managing and creating invoices. Available + at + services.invoiceplane. + + maddy, a diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index c816b062557f..25994d8df083 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -35,6 +35,8 @@ In addition to numerous new and upgraded packages, this release has the followin - [PowerDNS-Admin](https://github.com/ngoduykhanh/PowerDNS-Admin), a web interface for the PowerDNS server. Available at [services.powerdns-admin](options.html#opt-services.powerdns-admin.enable). +- [InvoicePlane](https://invoiceplane.com), web application for managing and creating invoices. Available at [services.invoiceplane](options.html#opt-services.invoiceplane.enable). + - [maddy](https://maddy.email), a composable all-in-one mail server. Available as [services.maddy](options.html#opt-services.maddy.enable). - [mtr-exporter](https://github.com/mgumz/mtr-exporter), a Prometheus exporter for mtr metrics. Available as [services.mtr-exporter](options.html#opt-services.mtr-exporter.enable). diff --git a/nixos/lib/default.nix b/nixos/lib/default.nix new file mode 100644 index 000000000000..2b3056e01457 --- /dev/null +++ b/nixos/lib/default.nix @@ -0,0 +1,33 @@ +let + # The warning is in a top-level let binding so it is only printed once. + minimalModulesWarning = warn "lib.nixos.evalModules is experimental and subject to change. See nixos/lib/default.nix" null; + inherit (nonExtendedLib) warn; + nonExtendedLib = import ../../lib; +in +{ # Optional. Allows an extended `lib` to be used instead of the regular Nixpkgs lib. + lib ? nonExtendedLib, + + # Feature flags allow you to opt in to unfinished code. These may change some + # behavior or disable warnings. + featureFlags ? {}, + + # This file itself is rather new, so we accept unknown parameters to be forward + # compatible. This is generally not recommended, because typos go undetected. + ... +}: +let + seqIf = cond: if cond then builtins.seq else a: b: b; + # If cond, force `a` before returning any attr + seqAttrsIf = cond: a: lib.mapAttrs (_: v: seqIf cond a v); + + eval-config-minimal = import ./eval-config-minimal.nix { inherit lib; }; +in +/* + This attribute set appears as lib.nixos in the flake, or can be imported + using a binding like `nixosLib = import (nixpkgs + "/nixos/lib") { }`. +*/ +{ + inherit (seqAttrsIf (!featureFlags?minimalModules) minimalModulesWarning eval-config-minimal) + evalModules + ; +} diff --git a/nixos/lib/eval-config-minimal.nix b/nixos/lib/eval-config-minimal.nix new file mode 100644 index 000000000000..d45b9ffd4261 --- /dev/null +++ b/nixos/lib/eval-config-minimal.nix @@ -0,0 +1,49 @@ + +# DO NOT IMPORT. Use nixpkgsFlake.lib.nixos, or import (nixpkgs + "/nixos/lib") +{ lib }: # read -^ + +let + + /* + Invoke NixOS. Unlike traditional NixOS, this does not include all modules. + Any such modules have to be explicitly added via the `modules` parameter, + or imported using `imports` in a module. + + A minimal module list improves NixOS evaluation performance and allows + modules to be independently usable, supporting new use cases. + + Parameters: + + modules: A list of modules that constitute the configuration. + + specialArgs: An attribute set of module arguments. Unlike + `config._module.args`, these are available for use in + `imports`. + `config._module.args` should be preferred when possible. + + Return: + + An attribute set containing `config.system.build.toplevel` among other + attributes. See `lib.evalModules` in the Nixpkgs library. + + */ + evalModules = { + prefix ? [], + modules ? [], + specialArgs ? {}, + }: + # NOTE: Regular NixOS currently does use this function! Don't break it! + # Ideally we don't diverge, unless we learn that we should. + # In other words, only the public interface of nixos.evalModules + # is experimental. + lib.evalModules { + inherit prefix modules; + specialArgs = { + modulesPath = builtins.toString ../modules; + } // specialArgs; + }; + +in +{ + inherit evalModules; +} diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix index 00e58e24e926..e3eb88a60eba 100644 --- a/nixos/lib/eval-config.nix +++ b/nixos/lib/eval-config.nix @@ -33,6 +33,12 @@ let pkgs_ = pkgs; in let + evalModulesMinimal = (import ./default.nix { + inherit lib; + # Implicit use of feature is noted in implementation. + featureFlags.minimalModules = { }; + }).evalModules; + pkgsModule = rec { _file = ./eval-config.nix; key = _file; @@ -70,11 +76,9 @@ let }; allUserModules = modules ++ legacyModules; - noUserModules = lib.evalModules ({ - inherit prefix; + noUserModules = evalModulesMinimal ({ + inherit prefix specialArgs; modules = baseModules ++ extraModules ++ [ pkgsModule modulesModule ]; - specialArgs = - { modulesPath = builtins.toString ../modules; } // specialArgs; }); # Extra arguments that are useful for constructing a similar configuration. diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix index 2e0c8e4cf2c4..69967c8a7601 100644 --- a/nixos/modules/misc/nixpkgs.nix +++ b/nixos/modules/misc/nixpkgs.nix @@ -64,6 +64,11 @@ let in { + imports = [ + ./assertions.nix + ./meta.nix + ]; + options.nixpkgs = { pkgs = mkOption { diff --git a/nixos/modules/misc/nixpkgs/test.nix b/nixos/modules/misc/nixpkgs/test.nix new file mode 100644 index 000000000000..ec5fab9fb4a5 --- /dev/null +++ b/nixos/modules/misc/nixpkgs/test.nix @@ -0,0 +1,8 @@ +{ evalMinimalConfig, pkgs, lib, stdenv }: +lib.recurseIntoAttrs { + invokeNixpkgsSimple = + (evalMinimalConfig ({ config, modulesPath, ... }: { + imports = [ (modulesPath + "/misc/nixpkgs.nix") ]; + nixpkgs.system = stdenv.hostPlatform.system; + }))._module.args.pkgs.hello; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index fdf93f2e17c5..4b2cb803e20e 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1022,6 +1022,7 @@ ./services/web-apps/keycloak.nix ./services/web-apps/lemmy.nix ./services/web-apps/invidious.nix + ./services/web-apps/invoiceplane.nix ./services/web-apps/limesurvey.nix ./services/web-apps/mastodon.nix ./services/web-apps/mattermost.nix diff --git a/nixos/modules/services/web-apps/invoiceplane.nix b/nixos/modules/services/web-apps/invoiceplane.nix new file mode 100644 index 000000000000..095eec36dec3 --- /dev/null +++ b/nixos/modules/services/web-apps/invoiceplane.nix @@ -0,0 +1,305 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.invoiceplane; + eachSite = cfg.sites; + user = "invoiceplane"; + webserver = config.services.${cfg.webserver}; + + invoiceplane-config = hostName: cfg: pkgs.writeText "ipconfig.php" '' + IP_URL=http://${hostName} + ENABLE_DEBUG=false + DISABLE_SETUP=false + REMOVE_INDEXPHP=false + DB_HOSTNAME=${cfg.database.host} + DB_USERNAME=${cfg.database.user} + # NOTE: file_get_contents adds newline at the end of returned string + DB_PASSWORD=${if cfg.database.passwordFile == null then "" else "trim(file_get_contents('${cfg.database.passwordFile}'), \"\\r\\n\")"} + DB_DATABASE=${cfg.database.name} + DB_PORT=${toString cfg.database.port} + SESS_EXPIRATION=864000 + ENABLE_INVOICE_DELETION=false + DISABLE_READ_ONLY=false + ENCRYPTION_KEY= + ENCRYPTION_CIPHER=AES-256 + SETUP_COMPLETED=false + ''; + + extraConfig = hostName: cfg: pkgs.writeText "extraConfig.php" '' + ${toString cfg.extraConfig} + ''; + + pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec { + pname = "invoiceplane-${hostName}"; + version = src.version; + src = pkgs.invoiceplane; + + patchPhase = '' + # Patch index.php file to load additional config file + substituteInPlace index.php \ + --replace "require('vendor/autoload.php');" "require('vendor/autoload.php'); \$dotenv = new \Dotenv\Dotenv(__DIR__, 'extraConfig.php'); \$dotenv->load();"; + ''; + + installPhase = '' + mkdir -p $out + cp -r * $out/ + + # symlink uploads and log directories + rm -r $out/uploads $out/application/logs $out/vendor/mpdf/mpdf/tmp + ln -sf ${cfg.stateDir}/uploads $out/ + ln -sf ${cfg.stateDir}/logs $out/application/ + ln -sf ${cfg.stateDir}/tmp $out/vendor/mpdf/mpdf/ + + # symlink the InvoicePlane config + ln -s ${cfg.stateDir}/ipconfig.php $out/ipconfig.php + + # symlink the extraConfig file + ln -s ${extraConfig hostName cfg} $out/extraConfig.php + + # symlink additional templates + ${concatMapStringsSep "\n" (template: "cp -r ${template}/. $out/application/views/invoice_templates/pdf/") cfg.invoiceTemplates} + ''; + }; + + siteOpts = { lib, name, ... }: + { + options = { + + enable = mkEnableOption "InvoicePlane web application"; + + stateDir = mkOption { + type = types.path; + default = "/var/lib/invoiceplane/${name}"; + description = '' + This directory is used for uploads of attachements and cache. + The directory passed here is automatically created and permissions + adjusted as required. + ''; + }; + + database = { + host = mkOption { + type = types.str; + default = "localhost"; + description = "Database host address."; + }; + + port = mkOption { + type = types.port; + default = 3306; + description = "Database host port."; + }; + + name = mkOption { + type = types.str; + default = "invoiceplane"; + description = "Database name."; + }; + + user = mkOption { + type = types.str; + default = "invoiceplane"; + description = "Database user."; + }; + + passwordFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/invoiceplane-dbpassword"; + description = '' + A file containing the password corresponding to + . + ''; + }; + + createLocally = mkOption { + type = types.bool; + default = true; + description = "Create the database and database user locally."; + }; + }; + + invoiceTemplates = mkOption { + type = types.listOf types.path; + default = []; + description = '' + List of path(s) to respective template(s) which are copied from the 'invoice_templates/pdf' directory. + These templates need to be packaged before use, see example. + ''; + example = literalExpression '' + let + # Let's package an example template + template-vtdirektmarketing = pkgs.stdenv.mkDerivation { + name = "vtdirektmarketing"; + # Download the template from a public repository + src = pkgs.fetchgit { + url = "https://git.project-insanity.org/onny/invoiceplane-vtdirektmarketing.git"; + sha256 = "1hh0q7wzsh8v8x03i82p6qrgbxr4v5fb05xylyrpp975l8axyg2z"; + }; + sourceRoot = "."; + # Installing simply means copying template php file to the output directory + installPhase = "" + mkdir -p $out + cp invoiceplane-vtdirektmarketing/vtdirektmarketing.php $out/ + ""; + }; + # And then pass this package to the template list like this: + in [ template-vtdirektmarketing ] + ''; + }; + + poolConfig = mkOption { + type = with types; attrsOf (oneOf [ str int bool ]); + default = { + "pm" = "dynamic"; + "pm.max_children" = 32; + "pm.start_servers" = 2; + "pm.min_spare_servers" = 2; + "pm.max_spare_servers" = 4; + "pm.max_requests" = 500; + }; + description = '' + Options for the InvoicePlane PHP pool. See the documentation on php-fpm.conf + for details on configuration directives. + ''; + }; + + extraConfig = mkOption { + type = types.nullOr types.lines; + default = null; + example = '' + SETUP_COMPLETED=true + DISABLE_SETUP=true + IP_URL=https://invoice.example.com + ''; + description = '' + InvoicePlane configuration. Refer to + + for details on supported values. + ''; + }; + + }; + + }; +in +{ + # interface + options = { + services.invoiceplane = mkOption { + type = types.submodule { + + 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 [ "caddy" ]; + default = "caddy"; + description = '' + Which webserver to use for virtual host management. Currently only + caddy is supported. + ''; + }; + }; + default = {}; + description = "InvoicePlane configuration."; + }; + + }; + + # implementation + config = mkIf (eachSite != {}) (mkMerge [{ + + assertions = flatten (mapAttrsToList (hostName: cfg: + [{ assertion = cfg.database.createLocally -> cfg.database.user == user; + message = ''services.invoiceplane.sites."${hostName}".database.user must be ${user} if the database is to be automatically provisioned''; + } + { assertion = cfg.database.createLocally -> cfg.database.passwordFile == null; + message = ''services.invoiceplane.sites."${hostName}".database.passwordFile cannot be specified if services.invoiceplane.sites."${hostName}".database.createLocally is set to true.''; + }] + ) eachSite); + + services.mysql = mkIf (any (v: v.database.createLocally) (attrValues eachSite)) { + enable = true; + package = mkDefault pkgs.mariadb; + ensureDatabases = mapAttrsToList (hostName: cfg: cfg.database.name) eachSite; + ensureUsers = mapAttrsToList (hostName: cfg: + { name = cfg.database.user; + ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; }; + } + ) eachSite; + }; + + services.phpfpm = { + phpPackage = pkgs.php74; + pools = mapAttrs' (hostName: cfg: ( + nameValuePair "invoiceplane-${hostName}" { + inherit user; + group = webserver.group; + settings = { + "listen.owner" = webserver.user; + "listen.group" = webserver.group; + } // cfg.poolConfig; + } + )) eachSite; + }; + + } + + { + systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [ + "d ${cfg.stateDir} 0750 ${user} ${webserver.group} - -" + "f ${cfg.stateDir}/ipconfig.php 0750 ${user} ${webserver.group} - -" + "d ${cfg.stateDir}/logs 0750 ${user} ${webserver.group} - -" + "d ${cfg.stateDir}/uploads 0750 ${user} ${webserver.group} - -" + "d ${cfg.stateDir}/uploads/archive 0750 ${user} ${webserver.group} - -" + "d ${cfg.stateDir}/uploads/customer_files 0750 ${user} ${webserver.group} - -" + "d ${cfg.stateDir}/uploads/temp 0750 ${user} ${webserver.group} - -" + "d ${cfg.stateDir}/uploads/temp/mpdf 0750 ${user} ${webserver.group} - -" + "d ${cfg.stateDir}/tmp 0750 ${user} ${webserver.group} - -" + ]) eachSite); + + systemd.services.invoiceplane-config = { + serviceConfig.Type = "oneshot"; + script = concatStrings (mapAttrsToList (hostName: cfg: + '' + mkdir -p ${cfg.stateDir}/logs \ + ${cfg.stateDir}/uploads + if ! grep -q IP_URL "${cfg.stateDir}/ipconfig.php"; then + cp "${invoiceplane-config hostName cfg}" "${cfg.stateDir}/ipconfig.php" + fi + '') eachSite); + wantedBy = [ "multi-user.target" ]; + }; + + users.users.${user} = { + group = webserver.group; + isSystemUser = true; + }; + } + + (mkIf (cfg.webserver == "caddy") { + services.caddy = { + enable = true; + virtualHosts = mapAttrs' (hostName: cfg: ( + nameValuePair "http://${hostName}" { + extraConfig = '' + root * ${pkg hostName cfg} + file_server + + php_fastcgi unix/${config.services.phpfpm.pools."invoiceplane-${hostName}".socket} + ''; + } + )) eachSite; + }; + }) + + + ]); +} + diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index b2f223e7ccdc..940ae11ddd1f 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -19,6 +19,13 @@ let handleTestOn = systems: path: args: if elem system systems then handleTest path args else {}; + + nixosLib = import ../lib { + # Experimental features need testing too, but there's no point in warning + # about it, so we enable the feature flag. + featureFlags.minimalModules = {}; + }; + evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; }; in { _3proxy = handleTest ./3proxy.nix {}; @@ -208,6 +215,7 @@ in initrd-secrets = handleTest ./initrd-secrets.nix {}; inspircd = handleTest ./inspircd.nix {}; installer = handleTest ./installer.nix {}; + invoiceplane = handleTest ./invoiceplane.nix {}; iodine = handleTest ./iodine.nix {}; ipfs = handleTest ./ipfs.nix {}; ipv6 = handleTest ./ipv6.nix {}; @@ -331,6 +339,7 @@ in nix-serve-ssh = handleTest ./nix-serve-ssh.nix {}; nixops = handleTest ./nixops/default.nix {}; nixos-generate-config = handleTest ./nixos-generate-config.nix {}; + nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; }; node-red = handleTest ./node-red.nix {}; nomad = handleTest ./nomad.nix {}; novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {}; diff --git a/nixos/tests/invoiceplane.nix b/nixos/tests/invoiceplane.nix new file mode 100644 index 000000000000..4e63f8ac21c9 --- /dev/null +++ b/nixos/tests/invoiceplane.nix @@ -0,0 +1,82 @@ +import ./make-test-python.nix ({ pkgs, ... }: + +{ + name = "invoiceplane"; + meta = with pkgs.lib.maintainers; { + maintainers = [ + onny + ]; + }; + + nodes = { + invoiceplane_caddy = { ... }: { + services.invoiceplane.webserver = "caddy"; + services.invoiceplane.sites = { + "site1.local" = { + #database.name = "invoiceplane1"; + database.createLocally = true; + enable = true; + }; + "site2.local" = { + #database.name = "invoiceplane2"; + database.createLocally = true; + enable = true; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 ]; + networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; + }; + }; + + testScript = '' + start_all() + + invoiceplane_caddy.wait_for_unit("caddy") + invoiceplane_caddy.wait_for_open_port(80) + invoiceplane_caddy.wait_for_open_port(3306) + + site_names = ["site1.local", "site2.local"] + + for site_name in site_names: + machine.wait_for_unit(f"phpfpm-invoiceplane-{site_name}") + + with subtest("Website returns welcome screen"): + assert "Please install InvoicePlane" in machine.succeed(f"curl -L {site_name}") + + with subtest("Finish InvoicePlane setup"): + machine.succeed( + f"curl -sSfL --cookie-jar cjar {site_name}/index.php/setup/language" + ) + csrf_token = machine.succeed( + "grep ip_csrf_cookie cjar | cut -f 7 | tr -d '\n'" + ) + machine.succeed( + f"curl -sSfL --cookie cjar --cookie-jar cjar -d '_ip_csrf={csrf_token}&ip_lang=english&btn_continue=Continue' {site_name}/index.php/setup/language" + ) + csrf_token = machine.succeed( + "grep ip_csrf_cookie cjar | cut -f 7 | tr -d '\n'" + ) + machine.succeed( + f"curl -sSfL --cookie cjar --cookie-jar cjar -d '_ip_csrf={csrf_token}&btn_continue=Continue' {site_name}/index.php/setup/prerequisites" + ) + csrf_token = machine.succeed( + "grep ip_csrf_cookie cjar | cut -f 7 | tr -d '\n'" + ) + machine.succeed( + f"curl -sSfL --cookie cjar --cookie-jar cjar -d '_ip_csrf={csrf_token}&btn_continue=Continue' {site_name}/index.php/setup/configure_database" + ) + csrf_token = machine.succeed( + "grep ip_csrf_cookie cjar | cut -f 7 | tr -d '\n'" + ) + machine.succeed( + f"curl -sSfl --cookie cjar --cookie-jar cjar -d '_ip_csrf={csrf_token}&btn_continue=Continue' {site_name}/index.php/setup/install_tables" + ) + csrf_token = machine.succeed( + "grep ip_csrf_cookie cjar | cut -f 7 | tr -d '\n'" + ) + machine.succeed( + f"curl -sSfl --cookie cjar --cookie-jar cjar -d '_ip_csrf={csrf_token}&btn_continue=Continue' {site_name}/index.php/setup/upgrade_tables" + ) + ''; +}) diff --git a/pkgs/applications/audio/spotify-qt/default.nix b/pkgs/applications/audio/spotify-qt/default.nix index 70acbd4c31a2..45ff1bebc79e 100644 --- a/pkgs/applications/audio/spotify-qt/default.nix +++ b/pkgs/applications/audio/spotify-qt/default.nix @@ -9,13 +9,13 @@ mkDerivation rec { pname = "spotify-qt"; - version = "3.7"; + version = "3.8"; src = fetchFromGitHub { owner = "kraxarn"; repo = pname; rev = "v${version}"; - sha256 = "sha256-oRrgZtSDebbUVPc+hxE9GJ2n1AmGvZt/2aWrBMmRtNA="; + sha256 = "sha256-Rgtw+nrM8YUBHPIIe9zVhLij/ep07piPf/2MSmTVQKk="; }; buildInputs = [ libxcb qtbase qtsvg ]; diff --git a/pkgs/applications/misc/pdfstudioviewer/default.nix b/pkgs/applications/misc/pdfstudioviewer/default.nix new file mode 100644 index 000000000000..9dc01108e657 --- /dev/null +++ b/pkgs/applications/misc/pdfstudioviewer/default.nix @@ -0,0 +1,81 @@ +{ stdenv +, lib +, fetchurl +, dpkg +, makeDesktopItem +, copyDesktopItems +, autoPatchelfHook +, sane-backends +, jdk11 +}: + +let year = "2021"; +in stdenv.mkDerivation rec { + pname = "pdfstudioviewer"; + version = "${year}.1.2"; + autoPatchelfIgnoreMissingDeps = false; + strictDeps = true; + + src = fetchurl { + url = "https://download.qoppa.com/${pname}/v${year}/PDFStudioViewer_v${ + builtins.replaceStrings [ "." ] [ "_" ] version + }_linux64.deb"; + sha256 = "128k3fm8m8zdykx4s30g5m2zl7cgmvs4qinf1w525zh84v56agz6"; + }; + + buildInputs = [ + sane-backends + jdk11 + ]; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + copyDesktopItems + ]; + + desktopItems = [ + (makeDesktopItem { + name = "${pname}${year}"; + desktopName = "PDF Studio"; + genericName = "View and edit PDF files"; + exec = "${pname} %f"; + icon = "${pname}${year}"; + comment = "Views and edits PDF files"; + mimeType = "application/pdf"; + categories = "Office"; + type = "Application"; + terminal = false; + }) + ]; + + unpackPhase = "dpkg-deb -x $src ."; + dontBuild = true; + + postPatch = '' + substituteInPlace opt/${pname}${year}/${pname}${year} --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}" + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + mkdir -p $out/share + mkdir -p $out/share/pixmaps + cp -r opt/${pname}${year} $out/share/ + rm -rf $out/share/${pname}${year}/jre + ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/ + ln -s $out/share/${pname}${year}/${pname}${year} $out/bin/${pname} + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://www.qoppa.com/pdfstudio/"; + description = "An easy to use, full-featured PDF editing software"; + license = licenses.unfree; + platforms = platforms.linux; + mainProgram = pname; + maintainers = [ maintainers.pwoelfel ]; + }; +} diff --git a/pkgs/applications/science/chemistry/molden/default.nix b/pkgs/applications/science/chemistry/molden/default.nix index 9595639d381e..03f7c6c2b40f 100644 --- a/pkgs/applications/science/chemistry/molden/default.nix +++ b/pkgs/applications/science/chemistry/molden/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { pname = "molden"; src = fetchurl { - url = "ftp://ftp.cmbi.umcn.nl/pub/molgraph/molden/molden${version}.tar.gz"; + url = "https://ftp.science.ru.nl/Molden//molden${version}.tar.gz"; sha256 = "02qi16pz2wffn3cc47dpjqhfafzwfmb79waw4nnhfyir8a4h3cq1"; }; diff --git a/pkgs/applications/science/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix index dd726c96606e..29c72b7f11c0 100644 --- a/pkgs/applications/science/physics/sherpa/default.nix +++ b/pkgs/applications/science/physics/sherpa/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "sherpa"; - version = "2.2.11"; + version = "2.2.12"; src = fetchurl { url = "https://www.hepforge.org/archive/sherpa/SHERPA-MC-${version}.tar.gz"; - sha256 = "sha256-DrA/h/f/MjGylKxAtVMq6OLvEdb6yB7pRt8UJXNmwi0="; + sha256 = "sha256-UpRkd1yoKLncllEQUm80DedDtgA8Hm+Kvi/BRVCu0AE="; }; postPatch = lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index ceca7fa636f1..bbf5bd9aa16d 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -19,8 +19,6 @@ assert ( # cgit) that are needed here should be included directly in Nixpkgs as # files. -with lib; - let common = { version, sha256, patches ? [], withDocs ? false, extraMeta ? {} }: stdenv.mkDerivation rec { @@ -36,7 +34,7 @@ let postPatch = '' patchShebangs Configure - '' + optionalString (versionOlder version "1.1.0") '' + '' + lib.optionalString (lib.versionOlder version "1.1.0") '' patchShebangs test/* for a in test/t* ; do substituteInPlace "$a" \ @@ -44,15 +42,15 @@ let done '' # config is a configure script which is not installed. - + optionalString (versionAtLeast version "1.1.1") '' + + lib.optionalString (lib.versionAtLeast version "1.1.1") '' substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env' - '' + optionalString (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isMusl) '' + '' + lib.optionalString (lib.versionAtLeast version "1.1.0" && stdenv.hostPlatform.isMusl) '' substituteInPlace crypto/async/arch/async_posix.h \ --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \ '!defined(__ANDROID__) && !defined(__OpenBSD__) && 0' ''; - outputs = [ "bin" "dev" "out" "man" ] ++ optional withDocs "doc"; + outputs = [ "bin" "dev" "out" "man" ] ++ lib.optional withDocs "doc"; setOutputFlags = false; separateDebugInfo = !stdenv.hostPlatform.isDarwin && @@ -86,7 +84,7 @@ let else if stdenv.hostPlatform.isBSD then "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" else if stdenv.hostPlatform.isMinGW - then "./Configure mingw${optionalString + then "./Configure mingw${lib.optionalString (stdenv.hostPlatform.parsed.cpu.bits != 32) (toString stdenv.hostPlatform.parsed.cpu.bits)}" else if stdenv.hostPlatform.isLinux @@ -108,12 +106,12 @@ let "-DUSE_CRYPTODEV_DIGESTS" ] ++ lib.optional enableSSL2 "enable-ssl2" ++ lib.optional enableSSL3 "enable-ssl3" - ++ lib.optional (versionAtLeast version "3.0.0") "enable-ktls" - ++ lib.optional (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isAarch64) "no-afalgeng" + ++ lib.optional (lib.versionAtLeast version "3.0.0") "enable-ktls" + ++ lib.optional (lib.versionAtLeast version "1.1.0" && stdenv.hostPlatform.isAarch64) "no-afalgeng" # OpenSSL needs a specific `no-shared` configure flag. # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options # for a comprehensive list of configuration options. - ++ lib.optional (versionAtLeast version "1.1.0" && static) "no-shared"; + ++ lib.optional (lib.versionAtLeast version "1.1.0" && static) "no-shared"; makeFlags = [ "MANDIR=$(man)/share/man" @@ -192,7 +190,7 @@ in { extraMeta.knownVulnerabilities = [ "Support for OpenSSL 1.0.2 ended with 2019." ]; }; - openssl_1_1 = common { + openssl_1_1 = common rec { version = "1.1.1m"; sha256 = "sha256-+JGZvosjykX8fLnx2NPuZzEjGChq0DD1MWrKZGLbbJY="; patches = [ diff --git a/pkgs/development/libraries/ucx/default.nix b/pkgs/development/libraries/ucx/default.nix index 06c0ada16feb..76118edfcb3b 100644 --- a/pkgs/development/libraries/ucx/default.nix +++ b/pkgs/development/libraries/ucx/default.nix @@ -13,13 +13,13 @@ let in stdenv.mkDerivation rec { pname = "ucx"; - version = "1.11.2"; + version = "1.12.0"; src = fetchFromGitHub { owner = "openucx"; repo = "ucx"; rev = "v${version}"; - sha256 = "0a4rbgr3hn3h42krb7lasfidhqcavacbpp1pv66l4lvfc0gkwi2i"; + sha256 = "0jwza9ivfnhkfwg4c58pxalkga5scz803k631xw4hcliy62gk53w"; }; nativeBuildInputs = [ autoreconfHook doxygen ]; diff --git a/pkgs/development/ocaml-modules/lablgtk3/default.nix b/pkgs/development/ocaml-modules/lablgtk3/default.nix index 29bc928e6220..81fb51d1f1e2 100644 --- a/pkgs/development/ocaml-modules/lablgtk3/default.nix +++ b/pkgs/development/ocaml-modules/lablgtk3/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, pkg-config, buildDunePackage, dune-configurator, gtk3, cairo2 }: +{ lib, fetchFromGitHub, fetchpatch, pkg-config, buildDunePackage, dune-configurator, gtk3, cairo2 }: buildDunePackage rec { version = "3.1.2"; @@ -15,6 +15,11 @@ buildDunePackage rec { sha256 = "sha256:0b17w9qb1f02h3313cm62mrqlhwxficppzm72n7sf8mmwrylxbm7"; }; + patches = [ (fetchpatch { + name = "dune-project.patch"; + url = "https://raw.githubusercontent.com/ocaml/opam-repository/10a48cb9fab88f67f6cb70280e0fec035c32d41c/packages/lablgtk3/lablgtk3.3.1.2/files/dune-project.patch"; + sha256 = "03jf5hclqdq7iq84djaqcnfnnnd7z3hb48rr8n1gyxzjyx86b3fh"; + }) ]; nativeBuildInputs = [ pkg-config ]; buildInputs = [ dune-configurator ]; propagatedBuildInputs = [ gtk3 cairo2 ]; diff --git a/pkgs/development/python-modules/deep-translator/default.nix b/pkgs/development/python-modules/deep-translator/default.nix index ae7bf52e1fe7..cdc18f159fb9 100644 --- a/pkgs/development/python-modules/deep-translator/default.nix +++ b/pkgs/development/python-modules/deep-translator/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "deep-translator"; - version = "1.6.0"; + version = "1.6.1"; src = fetchPypi { inherit pname version; - sha256 = "sha256-B/SnLSaCRVhQvSU2hmdKPswM2N73nHAzQfVNBMgCofI="; + sha256 = "2611c54209b234730f3e5e6481cb875e120e49d9ec1a27a1fa89850150485975"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pa-ringbuffer/default.nix b/pkgs/development/python-modules/pa-ringbuffer/default.nix index 466d3937a1fb..066c4a47ae4e 100644 --- a/pkgs/development/python-modules/pa-ringbuffer/default.nix +++ b/pkgs/development/python-modules/pa-ringbuffer/default.nix @@ -2,13 +2,13 @@ buildPythonPackage rec { pname = "pa-ringbuffer"; - version = "0.1.3"; + version = "0.1.4"; src = fetchFromGitHub { owner = "spatialaudio"; repo = "python-pa-ringbuffer"; rev = version; - sha256 = "0afpydy1l20hd1xncjppjhqa2c8dj5h9nlv4z8m55cs9hc9h1mxv"; + sha256 = "1d4k6z13mc1f88m6wbhfx8hillb7q78n33ws5bmyblsdkv1gx607"; }; meta = { diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix index a51f15f5eeb7..96037d512838 100644 --- a/pkgs/development/python-modules/pyswitchbot/default.nix +++ b/pkgs/development/python-modules/pyswitchbot/default.nix @@ -6,14 +6,14 @@ buildPythonPackage rec { pname = "pyswitchbot"; - version = "0.13.0"; + version = "0.13.2"; format = "setuptools"; src = fetchFromGitHub { owner = "Danielhiversen"; repo = "pySwitchbot"; rev = version; - sha256 = "sha256-dx3OMzWJohOYCg7TnrqL4FLZoC+Q1dyJyUAdreDyfl0="; + sha256 = "0pdmssd5dr364p3lrkxqryjc0rbaw6xp724zwqf3i87qs6ljs928"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix index 2bff91864c85..939c4404d836 100644 --- a/pkgs/development/python-modules/python-telegram-bot/default.nix +++ b/pkgs/development/python-modules/python-telegram-bot/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "python-telegram-bot"; - version = "13.9"; + version = "13.10"; format = "setuptools"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "512d7a84f4bf4e59b7acaf87a38e29c60f65a2717ebf6455b4d66fd058326b1b"; + sha256 = "d2c555431821f4ace0c1b7ce12af41999f01b793b275dee131f1034d08c01e3e"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/shodan/default.nix b/pkgs/development/python-modules/shodan/default.nix index 8b378e844e43..772b38be30f2 100644 --- a/pkgs/development/python-modules/shodan/default.nix +++ b/pkgs/development/python-modules/shodan/default.nix @@ -5,16 +5,20 @@ , colorama , requests , setuptools +, pythonOlder , XlsxWriter }: buildPythonPackage rec { pname = "shodan"; - version = "1.26.0"; + version = "1.26.1"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "4f2ee19bdcad41a5f4618c8e7e1759f62c337cc2214416b53ad3d0c04a1146bc"; + sha256 = "sha256-8oJ7QNaRiYjvn18W3LihM4OqrhooRYmPcBLqyJBru4c="; }; propagatedBuildInputs = [ @@ -27,7 +31,10 @@ buildPythonPackage rec { # The tests require a shodan api key, so skip them. doCheck = false; - pythonImportsCheck = [ "shodan" ]; + + pythonImportsCheck = [ + "shodan" + ]; meta = with lib; { description = "Python library and command-line utility for Shodan"; diff --git a/pkgs/misc/cups/drivers/canon/default.nix b/pkgs/misc/cups/drivers/canon/default.nix index 93bc1f79e250..6a9fc808004e 100644 --- a/pkgs/misc/cups/drivers/canon/default.nix +++ b/pkgs/misc/cups/drivers/canon/default.nix @@ -4,9 +4,15 @@ , unzip , autoconf , automake -, libtool +, libtool_1_5 , makeWrapper , cups +, jbigkit +, glib +, gtk3 +, pkg-config +, gnome2 +, libxml2 , ghostscript , pkgsi686Linux , zlib @@ -15,16 +21,14 @@ let i686_NIX_GCC = pkgsi686Linux.callPackage ({ gcc }: gcc) { }; - i686_libxml2 = pkgsi686Linux.callPackage ({ libxml2 }: libxml2) { }; - commonVer = "4.10"; - version = "3.70"; - dl = "4/0100010264/01"; + version = "5.40"; + dl = "6/0100009236/10"; versionNoDots = builtins.replaceStrings [ "." ] [ "" ] version; src_canon = fetchurl { - url = "http://gdlp01.c-wss.com/gds/${dl}/linux-UFRII-drv-v${versionNoDots}-uken-07.tar.gz"; - sha256 = "01nxpg3h1c64p5skxv904fg5c4sblmif486vkij2v62wwn6l65pz"; + url = "http://gdlp01.c-wss.com/gds/${dl}/linux-UFRII-drv-v${versionNoDots}-usen-20.tar.gz"; + sha256 = "sha256:069z6ijmql62mcdyxnzc9mf0dxa6z1107cd0ab4i1adk8kr3d75k"; }; in @@ -36,190 +40,122 @@ stdenv.mkDerivation { src = src_canon; postUnpack = '' - (cd $sourceRoot; tar -xzf Sources/cndrvcups-common-${commonVer}-1.tar.gz) - (cd $sourceRoot; tar -xzf Sources/cndrvcups-lb-${version}-1.tar.gz) + (cd $sourceRoot; tar -xzf Sources/cnrdrvcups-lb-${version}-1.tar.gz) + (cd $sourceRoot; sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-common-${version}/allgen.sh) + (cd $sourceRoot; sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-common-${version}/allgen.sh) + (cd $sourceRoot; sed -ie "s@_bindir=/usr/bin@_libdir=$out/bin@" cnrdrvcups-common-${version}/allgen.sh) + (cd $sourceRoot; sed -ie "s@etc/cngplp@$out/etc/cngplp@" cnrdrvcups-common-${version}/cngplp/Makefile.am) + (cd $sourceRoot; sed -ie "s@usr/share/cngplp@$out/usr/share/cngplp@" cnrdrvcups-common-${version}/cngplp/src/Makefile.am) + (cd $sourceRoot; patchShebangs cnrdrvcups-common-${version}) + + (cd $sourceRoot; sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-lb-${version}/allgen.sh) + (cd $sourceRoot; sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-lb-${version}/allgen.sh) + (cd $sourceRoot; sed -ie "s@_bindir=/usr/bin@_libdir=$out/bin@" cnrdrvcups-lb-${version}/allgen.sh) + (cd $sourceRoot; sed -ie '/^cd \.\.\/cngplp/,/^cd files/{/^cd files/!{d}}' cnrdrvcups-lb-${version}/allgen.sh) + (cd $sourceRoot; sed -ie "s@cd \.\./pdftocpca@cd pdftocpca@" cnrdrvcups-lb-${version}/allgen.sh) + (cd $sourceRoot; sed -i "/CNGPLPDIR/d" cnrdrvcups-lb-${version}/Makefile) + (cd $sourceRoot; patchShebangs cnrdrvcups-lb-${version}) ''; - nativeBuildInputs = [ makeWrapper unzip autoconf automake libtool ]; + nativeBuildInputs = [ makeWrapper unzip autoconf automake libtool_1_5 ]; - buildInputs = [ cups zlib ]; + buildInputs = [ cups zlib jbigkit glib gtk3 pkg-config gnome2.libglade libxml2 ]; installPhase = '' runHook preInstall - ## - ## cndrvcups-common buildPhase - ## - ( cd cndrvcups-common-${commonVer}/buftool - autoreconf -fi - ./autogen.sh --prefix=$out --enable-progpath=$out/bin --libdir=$out/lib --disable-shared --enable-static - make - ) - - ( cd cndrvcups-common-${commonVer}/backend - ./autogen.sh --prefix=$out --libdir=$out/lib - make - ) - - ( cd cndrvcups-common-${commonVer}/c3plmod_ipc - make - ) - - ## - ## cndrvcups-common installPhase - ## - - ( cd cndrvcups-common-${commonVer}/buftool + ( + cd cnrdrvcups-common-${version} + ./allgen.sh make install ) - - ( cd cndrvcups-common-${commonVer}/backend - make install - ) - - ( cd cndrvcups-common-${commonVer}/c3plmod_ipc - make install DESTDIR=$out/lib - ) - - ( cd cndrvcups-common-${commonVer}/libs - chmod 755 * - mkdir -p $out/lib32 - mkdir -p $out/bin - cp libcaiowrap.so.1.0.0 $out/lib32 - cp libcaiousb.so.1.0.0 $out/lib32 - cp libc3pl.so.0.0.1 $out/lib32 - cp libcaepcm.so.1.0 $out/lib32 - cp libColorGear.so.0.0.0 $out/lib32 - cp libColorGearC.so.1.0.0 $out/lib32 - cp libcanon_slim.so.1.0.0 $out/lib32 - cp c3pldrv $out/bin - ) - - (cd cndrvcups-common-${commonVer}/Rule + ( + cd cnrdrvcups-common-${version}/Rule mkdir -p $out/share/usb - chmod 644 *.usb-quirks $out/share/usb + install -m 644 *.usb-quirks $out/share/usb ) - - (cd cndrvcups-common-${commonVer}/data - chmod 644 *.ICC - mkdir -p $out/share/caepcm - cp *.ICC $out/share/caepcm - cp *.icc $out/share/caepcm - cp *.PRF $out/share/caepcm - ) - - (cd $out/lib32 - ln -sf libc3pl.so.0.0.1 libc3pl.so.0 - ln -sf libc3pl.so.0.0.1 libc3pl.so - ln -sf libcaepcm.so.1.0 libcaepcm.so.1 - ln -sf libcaepcm.so.1.0 libcaepcm.so - ln -sf libcaiowrap.so.1.0.0 libcaiowrap.so.1 - ln -sf libcaiowrap.so.1.0.0 libcaiowrap.so - ln -sf libcaiousb.so.1.0.0 libcaiousb.so.1 - ln -sf libcaiousb.so.1.0.0 libcaiousb.so - ln -sf libcanon_slim.so.1.0.0 libcanon_slim.so.1 - ln -sf libcanon_slim.so.1.0.0 libcanon_slim.so - ln -sf libColorGear.so.0.0.0 libColorGear.so.0 - ln -sf libColorGear.so.0.0.0 libColorGear.so - ln -sf libColorGearC.so.1.0.0 libColorGearC.so.1 - ln -sf libColorGearC.so.1.0.0 libColorGearC.so - ) - - (cd $out/lib - ln -sf libcanonc3pl.so.1.0.0 libcanonc3pl.so - ln -sf libcanonc3pl.so.1.0.0 libcanonc3pl.so.1 - ) - - patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib" $out/lib32/libColorGear.so.0.0.0 - patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib" $out/lib32/libColorGearC.so.1.0.0 - - patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32" $out/bin/c3pldrv - - # c3pldrv is programmed with fixed paths that point to "/usr/{bin,lib.share}/..." - # preload32 wrappes all necessary function calls to redirect the fixed paths - # into $out. - mkdir -p $out/libexec - preload32=$out/libexec/libpreload32.so - ${i686_NIX_GCC}/bin/gcc -shared ${./preload.c} -o $preload32 -ldl -DOUT=\"$out\" -fPIC - wrapProgram "$out/bin/c3pldrv" \ - --set PRELOAD_DEBUG 1 \ - --set LD_PRELOAD $preload32 \ - --prefix LD_LIBRARY_PATH : "$out/lib32" - - - - ## - ## cndrvcups-lb buildPhase - ## - - ( cd cndrvcups-lb-${version}/buftool - ./autogen.sh --prefix=$out --libdir=$out/lib --enable-progpath=$out/bin --enable-static - make - ) - - ( cd cndrvcups-lb-${version}/pstoufr2cpca - ./autogen.sh --prefix=$out --libdir=$out/lib - make - ) - - ## - ## cndrvcups-lb installPhase - ## - - ( cd cndrvcups-lb-${version}/pstoufr2cpca + ( + cd cnrdrvcups-lb-${version} + ./allgen.sh make install ) - - ( cd cndrvcups-lb-${version}/libs - chmod 755 * + ( + cd lib mkdir -p $out/lib32 - mkdir -p $out/bin - cp libcanonufr2.la $out/lib32 - cp libcanonufr2.so.1.0.0 $out/lib32 - cp libufr2filter.so.1.0.0 $out/lib32 - cp libEnoJBIG.so.1.0.0 $out/lib32 - cp libEnoJPEG.so.1.0.0 $out/lib32 - cp libcaiocnpkbidi.so.1.0.0 $out/lib32 - cp libcnlbcm.so.1.0 $out/lib32 + install -m 755 libs32/intel/libColorGearCufr2.so.2.0.0 $out/lib32 + install -m 755 libs32/intel/libcaepcmufr2.so.1.0 $out/lib32 + install -m 755 libs32/intel/libcaiocnpkbidir.so.1.0.0 $out/lib32 + install -m 755 libs32/intel/libcaiousb.so.1.0.0 $out/lib32 + install -m 755 libs32/intel/libcaiowrapufr2.so.1.0.0 $out/lib32 + install -m 755 libs32/intel/libcanon_slimufr2.so.1.0.0 $out/lib32 + install -m 755 libs32/intel/libcanonufr2r.so.1.0.0 $out/lib32 + install -m 755 libs32/intel/libcnaccm.so.1.0 $out/lib32 + install -m 755 libs32/intel/libcnlbcmr.so.1.0 $out/lib32 + install -m 755 libs32/intel/libcnncapcmr.so.1.0 $out/lib32 + install -m 755 libs32/intel/libufr2filterr.so.1.0.0 $out/lib32 - cp cnpkmoduleufr2 $out/bin #maybe needs setuid 4755 - cp cnpkbidi $out/bin - ) + mkdir -p $out/lib + install -m 755 libs64/intel/libColorGearCufr2.so.2.0.0 $out/lib + install -m 755 libs64/intel/libcaepcmufr2.so.1.0 $out/lib + install -m 755 libs64/intel/libcaiocnpkbidir.so.1.0.0 $out/lib + install -m 755 libs64/intel/libcaiousb.so.1.0.0 $out/lib + install -m 755 libs64/intel/libcaiowrapufr2.so.1.0.0 $out/lib + install -m 755 libs64/intel/libcanon_slimufr2.so.1.0.0 $out/lib + install -m 755 libs64/intel/libcanonufr2r.so.1.0.0 $out/lib + install -m 755 libs64/intel/libcnaccm.so.1.0 $out/lib + install -m 755 libs64/intel/libcnlbcmr.so.1.0 $out/lib + install -m 755 libs64/intel/libcnncapcmr.so.1.0 $out/lib + install -m 755 libs64/intel/libufr2filterr.so.1.0.0 $out/lib - ( cd $out/lib32 - ln -sf libcanonufr2.so.1.0.0 libcanonufr2.so - ln -sf libcanonufr2.so.1.0.0 libcanonufr2.so.1 - ln -sf libufr2filter.so.1.0.0 libufr2filter.so - ln -sf libufr2filter.so.1.0.0 libufr2filter.so.1 - ln -sf libEnoJBIG.so.1.0.0 libEnoJBIG.so - ln -sf libEnoJBIG.so.1.0.0 libEnoJBIG.so.1 - ln -sf libEnoJPEG.so.1.0.0 libEnoJPEG.so - ln -sf libEnoJPEG.so.1.0.0 libEnoJPEG.so.1 - ln -sf libcaiocnpkbidi.so.1.0.0 libcaiocnpkbidi.so - ln -sf libcaiocnpkbidi.so.1.0.0 libcaiocnpkbidi.so.1 - ln -sf libcnlbcm.so.1.0 libcnlbcm.so.1 - ln -sf libcnlbcm.so.1.0 libcnlbcm.so - ) + install -m 755 libs64/intel/cnpdfdrv $out/bin + install -m 755 libs64/intel/cnpkbidir $out/bin + install -m 755 libs64/intel/cnpkmoduleufr2r $out/bin + install -m 755 libs64/intel/cnrsdrvufr2 $out/bin + install -m 755 libs64/intel/cnsetuputil2 $out/bin + + mkdir -p $out/share/cnpkbidir + install -m 644 libs64/intel/cnpkbidir_info* $out/share/cnpkbidir - ( cd cndrvcups-lb-${version} - chmod 644 data/CnLB* - chmod 644 libs/cnpkbidi_info* - chmod 644 libs/ThLB* - mkdir -p $out/share/caepcm - mkdir -p $out/share/cnpkbidi mkdir -p $out/share/ufr2filter - cp data/CnLB* $out/share/caepcm - cp libs/cnpkbidi_info* $out/share/cnpkbidi - cp libs/ThLB* $out/share/ufr2filter + install -m 644 libs64/intel/ThLB* $out/share/ufr2filter + ) + + ( + cd $out/lib32 + ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so + ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so + ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so.1 + ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so + ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so.1 + ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so + ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so.1 + ) + + ( + cd $out/lib + ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so + ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so + ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so.1 + ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so + ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so.1 + ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so + ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so.1 + ) + + # Perhaps patch the lib64 version as well??? + patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib" $out/lib32/libColorGearCufr2.so.2.0.0 + + ( + cd lib/data/ufr2 + mkdir -p $out/share/caepcm + install -m 644 *.ICC $out/share/caepcm + install -m 644 *.icc $out/share/caepcm + install -m 644 *.PRF $out/share/caepcm + install -m 644 CnLB* $out/share/caepcm ) mkdir -p $out/share/cups/model - install -c -m 644 cndrvcups-lb-${version}/ppd/CN*.ppd $out/share/cups/model/ - - patchelf --set-rpath "$out/lib32:${i686_libxml2.out}/lib" $out/lib32/libcanonufr2.so.1.0.0 - - patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32" $out/bin/cnpkmoduleufr2 - patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32:${i686_libxml2.out}/lib" $out/bin/cnpkbidi + install -m 644 cnrdrvcups-lb-${version}/ppd/*.ppd $out/share/cups/model/ makeWrapper "${ghostscript}/bin/gs" "$out/bin/gs" \ --prefix LD_LIBRARY_PATH ":" "$out/lib" \ @@ -233,7 +169,7 @@ stdenv.mkDerivation { homepage = "http://www.canon.com/"; license = licenses.unfree; maintainers = with maintainers; [ - kylesferrazza + # please consider maintaining if you are updating this package ]; }; } diff --git a/pkgs/misc/cups/drivers/canon/preload.c b/pkgs/misc/cups/drivers/canon/preload.c deleted file mode 100644 index f3a30063a6e3..000000000000 --- a/pkgs/misc/cups/drivers/canon/preload.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * LD_PRELOAD trick to make c3pldrv handle the absolute path to /usr/{bin,lib,share)}. - * As c3pldrv is a 32 bit executable, /lib will be rewritten to /lib32. - * - * Usage: - * gcc -shared -fPIC -DOUT="$out" preload.c -o preload.so -ldl - * LD_PRELOAD=$PWD/preload.so ./c3pldrv - */ - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include - -#ifndef OUT -#error Missing OUT define - path to the installation directory. -#endif - -typedef void *(*dlopen_func_t)(const char *filename, int flag); -typedef int (*open_func_t)(const char *pathname, int flags, ...); -typedef int (*execv_func_t)(const char *path, char *const argv[]); - - -void *dlopen(const char *filename, int flag) -{ - dlopen_func_t orig_dlopen; - const char *new_filename; - char buffer[PATH_MAX]; - - orig_dlopen = (dlopen_func_t)dlsym(RTLD_NEXT, "dlopen"); - - new_filename = filename; - if (strncmp("/usr/lib", filename, 8) == 0) { - snprintf(buffer, PATH_MAX, OUT "/lib32%s", filename+8); - buffer[PATH_MAX-1] = '\0'; - new_filename = buffer; - } - - return orig_dlopen(new_filename, flag); -} - -int open(const char *pathname, int flags, ...) -{ - open_func_t orig_open; - const char *new_pathname; - char buffer[PATH_MAX]; - - orig_open = (open_func_t)dlsym(RTLD_NEXT, "open"); - - new_pathname = pathname; - if (strncmp("/usr/share", pathname, 10) == 0) { - snprintf(buffer, PATH_MAX, OUT "%s", pathname+4); - buffer[PATH_MAX-1] = '\0'; - new_pathname = buffer; - } - - return orig_open(new_pathname, flags); -} - -int execv(const char *path, char *const argv[]) -{ - execv_func_t orig_execv; - const char *new_path; - char buffer[PATH_MAX]; - - orig_execv = (execv_func_t)dlsym(RTLD_NEXT, "execv"); - - new_path = path; - if (strncmp("/usr/bin", path, 8) == 0) { - snprintf(buffer, PATH_MAX, OUT "%s", path+4); - buffer[PATH_MAX-1] = '\0'; - new_path = buffer; - } - - return orig_execv(new_path, argv); -} - diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix index 4d49ce5308d5..62264f10857f 100644 --- a/pkgs/misc/vim-plugins/generated.nix +++ b/pkgs/misc/vim-plugins/generated.nix @@ -1710,6 +1710,18 @@ final: prev: meta.homepage = "https://github.com/dracula/vim/"; }; + dressing-nvim = buildVimPluginFrom2Nix { + pname = "dressing.nvim"; + version = "2022-01-18"; + src = fetchFromGitHub { + owner = "stevearc"; + repo = "dressing.nvim"; + rev = "3f23266f0c623415ab8051c6e05c35e0981025b5"; + sha256 = "0khdg2wn204f0rrh5m26iaymf4ic73lk5h5z0zkc1ahdhfy3alsv"; + }; + meta.homepage = "https://github.com/stevearc/dressing.nvim/"; + }; + echodoc-vim = buildVimPluginFrom2Nix { pname = "echodoc.vim"; version = "2021-11-26"; diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names index d3b6466e9643..49cbb06dd828 100644 --- a/pkgs/misc/vim-plugins/vim-plugin-names +++ b/pkgs/misc/vim-plugins/vim-plugin-names @@ -755,6 +755,7 @@ steelsojka/pears.nvim stefandtw/quickfix-reflector.vim stephpy/vim-yaml stevearc/aerial.nvim +stevearc/dressing.nvim stsewd/fzf-checkout.vim sudormrfbin/cheatsheet.nvim sunaku/vim-dasht diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix index a5b36ad5c4ac..7203ac704c70 100644 --- a/pkgs/servers/amqp/rabbitmq-server/default.nix +++ b/pkgs/servers/amqp/rabbitmq-server/default.nix @@ -27,12 +27,12 @@ stdenv.mkDerivation rec { pname = "rabbitmq-server"; - version = "3.9.8"; + version = "3.9.13"; # when updating, consider bumping elixir version in all-packages.nix src = fetchurl { url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-l77pOFNzw83Qj+MbnwGiClA7HIGvAtI0N/9k12GV7lU="; + sha256 = "sha256-DndZ74m+CFyrukxKyOpfoRCb86RID2XL7x0eUZifcno="; }; nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync ]; diff --git a/pkgs/servers/web-apps/invoiceplane/default.nix b/pkgs/servers/web-apps/invoiceplane/default.nix new file mode 100644 index 000000000000..6c9ffd44b9d7 --- /dev/null +++ b/pkgs/servers/web-apps/invoiceplane/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, writeText, unzip, nixosTests }: + +stdenv.mkDerivation rec { + pname = "invoiceplane"; + version = "1.5.11"; + + src = fetchurl { + url = "https://github.com/InvoicePlane/InvoicePlane/releases/download/v${version}/v${version}.zip"; + sha256 = "137g0xps4kb3j7f5gz84ql18iggbya6d9dnrfp05g2qcbbp8kqad"; + }; + + nativeBuildInputs = [ unzip ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/ + cp -r . $out/ + ''; + + passthru.tests = { + inherit (nixosTests) invoiceplane; + }; + + meta = with lib; { + description = "Self-hosted open source application for managing your invoices, clients and payments"; + license = licenses.mit; + homepage = "https://www.invoiceplane.com"; + platforms = platforms.all; + maintainers = with maintainers; [ onny ]; + }; +} diff --git a/pkgs/tools/X11/caffeine-ng/default.nix b/pkgs/tools/X11/caffeine-ng/default.nix index cadfa2c99973..36d43ea75d4d 100644 --- a/pkgs/tools/X11/caffeine-ng/default.nix +++ b/pkgs/tools/X11/caffeine-ng/default.nix @@ -4,11 +4,11 @@ python3Packages.buildPythonApplication rec { pname = "caffeine-ng"; - version = "3.4.2"; + version = "3.5.1"; src = python3Packages.fetchPypi{ inherit pname version; - sha256="05k8smjlfjcccgmp8qi04l7106k46fs4p8fl5bdqqjwv6pwl7y4w"; + sha256="0akzldqvxnqngpj1s6y2phgj7ch8wfm02j6z2drqvsbvaadw0jbm"; }; nativeBuildInputs = [ wrapGAppsHook glib ]; @@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec { ]; pythonPath = with python3Packages; [ dbus-python docopt ewmh pygobject3 pyxdg - setproctitle + setproctitle pulsectl ]; doCheck = false; # There are no tests. diff --git a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix index e661af0f949f..b70ddb76fc1f 100644 --- a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix +++ b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "amazon-ecr-credential-helper"; - version = "0.5.0"; + version = "0.6.0"; goPackagePath = "github.com/awslabs/amazon-ecr-credential-helper"; @@ -10,13 +10,13 @@ buildGoPackage rec { owner = "awslabs"; repo = "amazon-ecr-credential-helper"; rev = "v${version}"; - sha256 = "sha256-GmGse+N7QeG2sAjCumGkUAWu/KfhnMltzeh+s8o+tiw="; + sha256 = "sha256-lkc8plWWmth8SjeWBCf1HTnCfg09QNIsN3xPePqnv6Y="; }; meta = with lib; { description = "The Amazon ECR Docker Credential Helper is a credential helper for the Docker daemon that makes it easier to use Amazon Elastic Container Registry"; homepage = "https://github.com/awslabs/amazon-ecr-credential-helper"; - license = licenses.asl20 ; + license = licenses.asl20; maintainers = with maintainers; [ kalbasit ]; platforms = platforms.linux ++ platforms.darwin; }; diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix index c15633a4f5d4..7b8e6e07dcc9 100644 --- a/pkgs/tools/networking/amass/default.nix +++ b/pkgs/tools/networking/amass/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "amass"; - version = "3.15.2"; + version = "3.16.0"; src = fetchFromGitHub { owner = "OWASP"; repo = "Amass"; rev = "v${version}"; - sha256 = "sha256-0zTnknpjTvUEai06JsRfQASclxpvaJnEfYK7biZeqU0="; + sha256 = "sha256-V3FqiAvHnd3q3yhrhDaeka22R+mBqFdPjGqY4FGCx9M="; }; - vendorSha256 = "sha256-Lh/VN+IBXpT8e7ok5Qjfk5tgXEUVwKMHYcp9WrChN3A="; + vendorSha256 = "sha256-0hor9Sldl8HhlKfYhWhb79wnZSMn5/Hg0Ux937qQkT4="; outputs = [ "out" "wordlists" ]; diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile index 22b2cb70e0ed..4e770c3ead14 100644 --- a/pkgs/tools/security/metasploit/Gemfile +++ b/pkgs/tools/security/metasploit/Gemfile @@ -1,4 +1,4 @@ # frozen_string_literal: true source "https://rubygems.org" -gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.24" +gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.25" diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock index 38c9bda14349..d7be1df5a86e 100644 --- a/pkgs/tools/security/metasploit/Gemfile.lock +++ b/pkgs/tools/security/metasploit/Gemfile.lock @@ -1,9 +1,9 @@ GIT remote: https://github.com/rapid7/metasploit-framework - revision: 0991344df7a2b343b99e83507bf217137f11801d - ref: refs/tags/6.1.24 + revision: 4a1ba0f9095d5c6e954ba58bc71d02feefc411a5 + ref: refs/tags/6.1.25 specs: - metasploit-framework (6.1.24) + metasploit-framework (6.1.25) actionpack (~> 6.0) activerecord (~> 6.0) activesupport (~> 6.0) @@ -19,12 +19,11 @@ GIT em-http-request eventmachine faker - faraday (= 1.8.0) + faraday faye-websocket filesize hrr_rb_ssh-ed25519 http-cookie - io-console (= 0.5.9) irb jsobfu json @@ -129,13 +128,13 @@ GEM arel-helpers (2.14.0) activerecord (>= 3.1.0, < 8) aws-eventstream (1.2.0) - aws-partitions (1.547.0) - aws-sdk-core (3.125.2) + aws-partitions (1.549.0) + aws-sdk-core (3.125.5) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-ec2 (1.291.0) + aws-sdk-ec2 (1.294.0) aws-sdk-core (~> 3, >= 3.125.0) aws-sigv4 (~> 1.1) aws-sdk-iam (1.65.0) @@ -153,17 +152,17 @@ GEM bcrypt (3.1.16) bcrypt_pbkdf (1.1.0) bindata (2.4.10) - bson (4.13.0) + bson (4.14.0) builder (3.2.4) concurrent-ruby (1.0.5) cookiejar (0.3.3) crass (1.0.6) daemons (1.4.1) - dnsruby (1.61.7) + dnsruby (1.61.9) simpleidn (~> 0.1) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - ed25519 (1.2.4) + ed25519 (1.3.0) em-http-request (1.1.7) addressable (>= 2.3.4) cookiejar (!= 0.3.1) @@ -176,25 +175,29 @@ GEM eventmachine (1.2.7) faker (2.19.0) i18n (>= 1.6, < 2) - faraday (1.8.0) + faraday (1.9.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) + faraday-net_http_persistent (~> 1.0) faraday-patron (~> 1.0) faraday-rack (~> 1.0) - multipart-post (>= 1.2, < 3) + faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) faraday-httpclient (1.0.1) + faraday-multipart (1.0.3) + multipart-post (>= 1.2, < 3) faraday-net_http (1.0.1) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) faraday-rack (1.0.0) + faraday-retry (1.0.3) faye-websocket (0.11.1) eventmachine (>= 0.12.0) websocket-driver (>= 0.5.1) @@ -215,7 +218,7 @@ GEM httpclient (2.8.3) i18n (1.8.11) concurrent-ruby (~> 1.0) - io-console (0.5.9) + io-console (0.5.11) irb (1.3.6) reline (>= 0.2.5) jmespath (1.5.0) @@ -264,7 +267,7 @@ GEM mini_portile2 (2.7.1) minitest (5.15.0) mqtt (0.5.0) - msgpack (1.4.2) + msgpack (1.4.3) multi_json (1.15.0) multipart-post (2.1.1) mustermann (1.1.1) @@ -275,11 +278,11 @@ GEM network_interface (0.0.2) nexpose (7.3.0) nio4r (2.5.8) - nokogiri (1.13.0) + nokogiri (1.13.1) mini_portile2 (~> 2.7.0) racc (~> 1.4) nori (2.6.0) - octokit (4.21.0) + octokit (4.22.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) openssl-ccm (1.2.2) @@ -373,7 +376,7 @@ GEM rex-text rexml (3.2.5) rkelly-remix (0.0.7) - ruby-macho (2.5.1) + ruby-macho (3.0.0) ruby-rc4 (0.1.5) ruby2_keywords (0.0.5) ruby_smb (3.0.0) @@ -419,7 +422,7 @@ GEM websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) win32api (0.1.0) - windows_error (0.1.2) + windows_error (0.1.3) winrm (2.3.6) builder (>= 2.1.2) erubi (~> 1.8) diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix index 727518fe81df..d9a508640ca9 100644 --- a/pkgs/tools/security/metasploit/default.nix +++ b/pkgs/tools/security/metasploit/default.nix @@ -15,13 +15,13 @@ let }; in stdenv.mkDerivation rec { pname = "metasploit-framework"; - version = "6.1.24"; + version = "6.1.25"; src = fetchFromGitHub { owner = "rapid7"; repo = "metasploit-framework"; rev = version; - sha256 = "sha256-eCnudckLCiE6L2EC/IHqbXdOrGBkSmWZHyHFvvFUqQ4="; + sha256 = "sha256-lfTueN3s7wsyQRrulsx7TKVMhOu6//4Z6DDjR/Lm6Vw="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix index a9bcf2c227f4..56bc01387144 100644 --- a/pkgs/tools/security/metasploit/gemset.nix +++ b/pkgs/tools/security/metasploit/gemset.nix @@ -104,30 +104,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1fi4irlxam3bmvafm6iiqj0vlzqg10vc4bzznl4c5w6zmg0lzp6b"; + sha256 = "02d86hv5jfs27hszd9d92q31dz3wl3s1racimkhb7nx8xg0l9ldj"; type = "gem"; }; - version = "1.547.0"; + version = "1.549.0"; }; aws-sdk-core = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jp8nz18r9skri118haqy0slqmr5bwjw7xvrghcmj9lx409f0m6p"; + sha256 = "1i6835n7d2ss3k3ljwbw8by0fagymk0122ill3i9ipghz21xpqld"; type = "gem"; }; - version = "3.125.2"; + version = "3.125.5"; }; aws-sdk-ec2 = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1awg6wdq5nqlxq5zqj2h06898d9b24ci3jnczpss9pqgis4g0w0n"; + sha256 = "0rzbd111n7pgzpgjabcxi2mpnkxf3fcxkvy4rqidyf80m4633gwy"; type = "gem"; }; - version = "1.291.0"; + version = "1.294.0"; }; aws-sdk-iam = { groups = ["default"]; @@ -204,10 +204,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ir2fml3d6gjzqhiqpxl8rqmgrp5lqrx8xdwz9cmcnxhfzmqgxbp"; + sha256 = "0vfwqzd89542xm8sc1ni6jvjy6wgycnri67q7agxnc5jmwawmcgf"; type = "gem"; }; - version = "4.13.0"; + version = "4.14.0"; }; builder = { groups = ["default"]; @@ -264,10 +264,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pbhj4xmj4262in6c1nwl5ssw0qypg8ysjrrkwn2akkzbxzy9rfq"; + sha256 = "0v8jfxamsdvs8rdl28ylcp5xphb03kmf5f1aqrnr2020ras618kc"; type = "gem"; }; - version = "1.61.7"; + version = "1.61.9"; }; domain_name = { groups = ["default"]; @@ -284,10 +284,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw"; + sha256 = "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji"; type = "gem"; }; - version = "1.2.4"; + version = "1.3.0"; }; em-http-request = { groups = ["default"]; @@ -344,10 +344,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi"; + sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6"; type = "gem"; }; - version = "1.8.0"; + version = "1.9.3"; }; faraday-em_http = { groups = ["default"]; @@ -389,6 +389,16 @@ }; version = "1.0.1"; }; + faraday-multipart = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03qfi9020ynf7hkdiaq01sd2mllvw7fg4qiin3pk028b4wv23j3j"; + type = "gem"; + }; + version = "1.0.3"; + }; faraday-net_http = { groups = ["default"]; platforms = []; @@ -429,6 +439,16 @@ }; version = "1.0.0"; }; + faraday-retry = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd"; + type = "gem"; + }; + version = "1.0.3"; + }; faye-websocket = { groups = ["default"]; platforms = []; @@ -554,10 +574,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0pmafwxh8z1apnk7bb1ibnbhfrgb1jgilxm4j8d0fcqlc2ggmbja"; + sha256 = "0r9kxrf9jccrr329pa3s37rf16vy426cbqmfwxkav1fidwvih93y"; type = "gem"; }; - version = "0.5.9"; + version = "0.5.11"; }; irb = { groups = ["default"]; @@ -664,12 +684,12 @@ platforms = []; source = { fetchSubmodules = false; - rev = "0991344df7a2b343b99e83507bf217137f11801d"; - sha256 = "03m9akqvxi913ycnajk4c2n4wxvdxa0zq0k15wx222hbr5sywabq"; + rev = "4a1ba0f9095d5c6e954ba58bc71d02feefc411a5"; + sha256 = "0p79wvr4gqrhx0czxzxsxf24r9acgg69dvhs84r0pvzcvmwfxx4m"; type = "git"; url = "https://github.com/rapid7/metasploit-framework"; }; - version = "6.1.24"; + version = "6.1.25"; }; metasploit-model = { groups = ["default"]; @@ -756,10 +776,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6"; + sha256 = "14kg9wdfls7s63lds9blrd77n8mx780bzyh05dj8kn0aimw3l9dx"; type = "gem"; }; - version = "1.4.2"; + version = "1.4.3"; }; multi_json = { groups = ["default"]; @@ -857,10 +877,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1cvx23d8z1nf5nsr5cv55m5dhr3f1bnvgdfqqfnjvhcd8cfnkgcd"; + sha256 = "1zqzawia52cdcmi55lp7v8jmiqyw7pcpwsksqlnirwfm3f7bnf11"; type = "gem"; }; - version = "1.13.0"; + version = "1.13.1"; }; nori = { groups = ["default"]; @@ -877,10 +897,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ak64rb48d8z98nw6q70r6i0i3ivv61iqla40ss5l79491qfnn27"; + sha256 = "1nmdd7klyinvrrv2mggwwmc99ykaq7i379j00i37hvvaqx4giifj"; type = "gem"; }; - version = "4.21.0"; + version = "4.22.0"; }; openssl-ccm = { groups = ["default"]; @@ -1307,10 +1327,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jgmhj4srl7cck1ipbjys6q4klcs473gq90bm59baw4j1wpfaxch"; + sha256 = "0sg0kzqrldx9mlpvymif3dcgz8j8q1nc8jaszrd03nfh5bvp3fd5"; type = "gem"; }; - version = "2.5.1"; + version = "3.0.0"; }; ruby-rc4 = { groups = ["default"]; @@ -1567,10 +1587,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0kbcv9j5sc7pvjzf1dkp6h69i6lmj205zyy2arxcfgqg11bsz2kp"; + sha256 = "1dy35rfdmj6pfhdicix1kcgpj5y7844a43i6bnklngn7b1wmy3av"; type = "gem"; }; - version = "0.1.2"; + version = "0.1.3"; }; winrm = { groups = ["default"]; diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile index feb1437d6d40..9e65ac43afa1 100644 --- a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile +++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile @@ -1,11 +1,13 @@ source 'https://rubygems.org' gem 'asciidoctor' -gem 'asciidoctor-diagram' -gem 'asciidoctor-pdf' -gem 'asciidoctor-epub3' -gem 'asciidoctor-mathematical' gem 'asciidoctor-bibtex' +gem 'asciidoctor-diagram' +gem 'asciidoctor-epub3' +gem 'asciidoctor-html5s' +gem 'asciidoctor-mathematical' +gem 'asciidoctor-pdf' gem 'asciidoctor-revealjs' +gem 'asciidoctor-rouge' gem 'coderay' gem 'pygments.rb' gem 'rouge' diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock index 14829ed7b0a6..98418e183d45 100644 --- a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock +++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock @@ -23,6 +23,9 @@ GEM asciidoctor (>= 1.5.6, < 3.0.0) gepub (~> 1.0.0) mime-types (~> 3.0) + asciidoctor-html5s (0.5.1) + asciidoctor (>= 1.5.7, < 3.0) + thread_safe (~> 0.3.4) asciidoctor-mathematical (0.3.5) asciidoctor (~> 2.0) asciimath (~> 2.0) @@ -41,6 +44,9 @@ GEM asciidoctor (>= 2.0.0, < 3.0.0) concurrent-ruby (~> 1.0) thread_safe (~> 0.3.5) + asciidoctor-rouge (0.4.0) + asciidoctor (>= 1.5.6, < 2.1) + rouge (>= 2.2, < 4) asciimath (2.0.3) bibtex-ruby (5.1.6) latex-decode (~> 0.0) @@ -120,9 +126,11 @@ DEPENDENCIES asciidoctor-bibtex asciidoctor-diagram asciidoctor-epub3 + asciidoctor-html5s asciidoctor-mathematical asciidoctor-pdf asciidoctor-revealjs + asciidoctor-rouge coderay pygments.rb rouge diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix b/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix index 6bd49e099623..e88f9701d0d3 100644 --- a/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix +++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix @@ -93,6 +93,17 @@ }; version = "1.5.1"; }; + asciidoctor-html5s = { + dependencies = ["asciidoctor" "thread_safe"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zfbfcqyrsk8bnd526ang3b4j3m5pbns7x3fdxarrm8vv1qplss1"; + type = "gem"; + }; + version = "0.5.1"; + }; asciidoctor-mathematical = { dependencies = ["asciidoctor" "asciimath" "mathematical"]; groups = ["default"]; @@ -126,6 +137,17 @@ }; version = "4.1.0"; }; + asciidoctor-rouge = { + dependencies = ["asciidoctor" "rouge"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "197sbzs9km58pgfqdnnglhqr7anhb0m330cv1vxfc3s2qz106zjz"; + type = "gem"; + }; + version = "0.4.0"; + }; asciimath = { groups = ["default"]; platforms = []; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b553b28ae5e3..0f9558a93790 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3242,6 +3242,8 @@ with pkgs; interlock = callPackage ../servers/interlock {}; + invoiceplane = callPackage ../servers/web-apps/invoiceplane { }; + iotools = callPackage ../tools/misc/iotools { }; jellyfin = callPackage ../servers/jellyfin { }; @@ -24216,6 +24218,8 @@ with pkgs; pdfstudio = callPackage ../applications/misc/pdfstudio { }; + pdfstudioviewer = callPackage ../applications/misc/pdfstudioviewer { }; + aeolus = callPackage ../applications/audio/aeolus { }; aewan = callPackage ../applications/editors/aewan { };