diff --git a/lib/licenses.nix b/lib/licenses.nix index 873056d2fa5e..b3ea106e954a 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -204,6 +204,11 @@ in mkLicense lset) ({ free = false; }; + caossl = { + fullName = "Computer Associates Open Source Licence Version 1.0"; + url = "http://jxplorer.org/licence.html"; + }; + cal10 = { fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)"; url = "https://opensource.org/licenses/CAL-1.0"; @@ -230,6 +235,12 @@ in mkLicense lset) ({ free = false; }; + cc-by-nc-nd-40 = { + spdxId = "CC-BY-NC-ND-4.0"; + fullName = "Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International"; + free = false; + }; + cc-by-nc-sa-20 = { spdxId = "CC-BY-NC-SA-2.0"; fullName = "Creative Commons Attribution Non Commercial Share Alike 2.0"; diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ca9919f46729..047fe343043f 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -4957,6 +4957,12 @@ githubId = 25955146; name = "eyJhb"; }; + f2k1de = { + name = "f2k1de"; + email = "hi@f2k1.de"; + github = "f2k1de"; + githubId = 11199213; + }; f4814n = { email = "me@f4814n.de"; github = "f4814"; diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index 508a1661db54..2e257cff6213 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -108,6 +108,8 @@ In addition to numerous new and upgraded packages, this release has the followin - [vault-agent](https://developer.hashicorp.com/vault/docs/agent), a template rendering and API auth proxy for HashiCorp Vault, similar to `consul-template`. Available as [services.vault-agent](#opt-services.vault-agent.instances). +- [trippy](https://github.com/fujiapple852/trippy), a network diagnostic tool. Available as [programs.trippy](#opt-programs.trippy.enable). + - [v2rayA](https://v2raya.org), a Linux web GUI client of Project V which supports V2Ray, Xray, SS, SSR, Trojan and Pingtunnel. Available as [services.v2raya](options.html#opt-services.v2raya.enable). - [rshim](https://github.com/Mellanox/rshim-user-space), the user-space rshim driver for the BlueField SoC. Available as [services.rshim](options.html#opt-services.rshim.enable). @@ -180,6 +182,8 @@ In addition to numerous new and upgraded packages, this release has the followin - `git-bug` has been updated to at least version 0.8.0, which includes backwards incompatible changes. The `git-bug-migration` package can be used to upgrade existing repositories. +- `graylog` has been updated to version 5, which can not be upgraded directly from the previously packaged version 3.3. If you had installed the previously packaged version 3.3, please follow the [upgrade path](https://go2docs.graylog.org/5-0/upgrading_graylog/upgrade_path.htm) from 3.3 to 4.0 to 4.3 to 5.0. + - `nushell` has been updated to at least version 0.77.0, which includes potential breaking changes in aliases. The old aliases are now available as `old-alias` but it is recommended you migrate to the new format. See [Reworked aliases](https://www.nushell.sh/blog/2023-03-14-nushell_0_77.html#reworked-aliases-breaking-changes-kubouch). - `keepassx` and `keepassx2` have been removed, due to upstream [stopping development](https://www.keepassx.org/index.html%3Fp=636.html). Consider [KeePassXC](https://keepassxc.org) as a maintained alternative. @@ -195,6 +199,26 @@ In addition to numerous new and upgraded packages, this release has the followin - `services.sourcehut.dispatch` and the corresponding package (`sourcehut.dispatchsrht`) have been removed due to [upstream deprecation](https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/). +- The attributes used by `services.snapper.configs.` have changed. Migrate from this: + + ```nix + services.snapper.configs.example = { + subvolume = "/example"; + extraConfig = '' + ALLOW_USERS="alice" + ''; + }; + ``` + + to this: + + ```nix + services.snapper.configs.example = { + SUBVOLUME = "/example"; + ALLOW_USERS = [ "alice" ]; + }; + ``` + - The [services.snapserver.openFirewall](#opt-services.snapserver.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitly set this option to `true`, or configure your firewall. - The [services.tmate-ssh-server.openFirewall](#opt-services.tmate-ssh-server.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitly set this option to `true`, or configure your firewall. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 675f0925a445..cefdb3133cbc 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -249,6 +249,7 @@ ./programs/thunar.nix ./programs/tmux.nix ./programs/traceroute.nix + ./programs/trippy.nix ./programs/tsm-client.nix ./programs/turbovnc.nix ./programs/udevil.nix diff --git a/nixos/modules/programs/trippy.nix b/nixos/modules/programs/trippy.nix new file mode 100644 index 000000000000..6e31aea43e75 --- /dev/null +++ b/nixos/modules/programs/trippy.nix @@ -0,0 +1,24 @@ +{ lib, config, pkgs, ... }: + +let + cfg = config.programs.trippy; +in + +{ + options = { + programs.trippy = { + enable = lib.mkEnableOption (lib.mdDoc "trippy"); + }; + }; + + config = lib.mkIf cfg.enable { + security.wrappers.trip = { + owner = "root"; + group = "root"; + capabilities = "cap_net_raw+p"; + source = lib.getExe pkgs.trippy; + }; + }; + + meta.maintainers = with lib.maintainers; [ figsoda ]; +} diff --git a/nixos/modules/security/acme/default.nix b/nixos/modules/security/acme/default.nix index ea94b54312cf..8aee71c864d0 100644 --- a/nixos/modules/security/acme/default.nix +++ b/nixos/modules/security/acme/default.nix @@ -323,7 +323,7 @@ let } fi ''); - } // optionalAttrs (data.listenHTTP != null && toInt (elemAt (splitString ":" data.listenHTTP) 1) < 1024) { + } // optionalAttrs (data.listenHTTP != null && toInt (last (splitString ":" data.listenHTTP)) < 1024) { CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ]; AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; }; diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix index 8cc0c084d659..3a951f7cbc83 100644 --- a/nixos/modules/services/backup/restic.nix +++ b/nixos/modules/services/backup/restic.nix @@ -145,6 +145,7 @@ in type = types.attrsOf unitOption; default = { OnCalendar = "daily"; + Persistent = true; }; description = lib.mdDoc '' When to run the backup. See {manpage}`systemd.timer(5)` for details. @@ -152,6 +153,7 @@ in example = { OnCalendar = "00:05"; RandomizedDelaySec = "5h"; + Persistent = true; }; }; diff --git a/nixos/modules/services/hardware/keyd.nix b/nixos/modules/services/hardware/keyd.nix index 64c769405fab..d17b0e4303ef 100644 --- a/nixos/modules/services/hardware/keyd.nix +++ b/nixos/modules/services/hardware/keyd.nix @@ -76,7 +76,9 @@ in ExecStart = "${pkgs.keyd}/bin/keyd"; Restart = "always"; - DynamicUser = true; + # TODO investigate why it doesn't work propeprly with DynamicUser + # See issue: https://github.com/NixOS/nixpkgs/issues/226346 + # DynamicUser = true; SupplementaryGroups = [ config.users.groups.input.name config.users.groups.uinput.name @@ -96,6 +98,7 @@ in ProtectHostname = true; PrivateUsers = true; PrivateMounts = true; + PrivateTmp = true; RestrictNamespaces = true; ProtectKernelLogs = true; ProtectKernelModules = true; @@ -104,7 +107,18 @@ in MemoryDenyWriteExecute = true; RestrictRealtime = true; LockPersonality = true; - ProtectProc = "noaccess"; + ProtectProc = "invisible"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "~@resources" + ]; + RestrictAddressFamilies = [ "AF_UNIX" ]; + RestrictSUIDSGID = true; + IPAddressDeny = [ "any" ]; + NoNewPrivileges = true; + ProtectSystem = "strict"; + ProcSubset = "pid"; UMask = "0077"; }; }; diff --git a/nixos/modules/services/logging/graylog.nix b/nixos/modules/services/logging/graylog.nix index 70c3ca50888c..1eb51c50ff79 100644 --- a/nixos/modules/services/logging/graylog.nix +++ b/nixos/modules/services/logging/graylog.nix @@ -37,8 +37,8 @@ in package = mkOption { type = types.package; - default = pkgs.graylog; - defaultText = literalExpression "pkgs.graylog"; + default = if versionOlder config.system.stateVersion "23.05" then pkgs.graylog-3_3 else pkgs.graylog-5_0; + defaultText = literalExpression (if versionOlder config.system.stateVersion "23.05" then "pkgs.graylog-3_3" else "pkgs.graylog-5_0"); description = lib.mdDoc "Graylog package to use."; }; diff --git a/nixos/modules/services/misc/rshim.nix b/nixos/modules/services/misc/rshim.nix index 169f1fa5793b..0fef2cc228c9 100644 --- a/nixos/modules/services/misc/rshim.nix +++ b/nixos/modules/services/misc/rshim.nix @@ -3,11 +3,11 @@ let cfg = config.services.rshim; - rshimCommand = lib.escapeShellArgs ([ "${cfg.package}/bin/rshim" ] + rshimCommand = [ "${cfg.package}/bin/rshim" ] ++ lib.optionals (cfg.backend != null) [ "--backend ${cfg.backend}" ] ++ lib.optionals (cfg.device != null) [ "--device ${cfg.device}" ] ++ lib.optionals (cfg.index != null) [ "--index ${builtins.toString cfg.index}" ] - ++ [ "--log-level ${builtins.toString cfg.log-level}" ]) + ++ [ "--log-level ${builtins.toString cfg.log-level}" ] ; in { diff --git a/nixos/modules/services/misc/snapper.nix b/nixos/modules/services/misc/snapper.nix index 30ed30e7a8fa..569433c3c71d 100644 --- a/nixos/modules/services/misc/snapper.nix +++ b/nixos/modules/services/misc/snapper.nix @@ -4,6 +4,81 @@ with lib; let cfg = config.services.snapper; + + mkValue = v: + if isList v then "\"${concatMapStringsSep " " (escape [ "\\" " " ]) v}\"" + else if v == true then "yes" + else if v == false then "no" + else if isString v then "\"${v}\"" + else builtins.toJSON v; + + mkKeyValue = k: v: "${k}=${mkValue v}"; + + # "it's recommended to always specify the filesystem type" -- man snapper-configs + defaultOf = k: if k == "FSTYPE" then null else configOptions.${k}.default or null; + + safeStr = types.strMatching "[^\n\"]*" // { + description = "string without line breaks or quotes"; + descriptionClass = "conjunction"; + }; + + configOptions = { + SUBVOLUME = mkOption { + type = types.path; + description = lib.mdDoc '' + Path of the subvolume or mount point. + This path is a subvolume and has to contain a subvolume named + .snapshots. + See also man:snapper(8) section PERMISSIONS. + ''; + }; + + FSTYPE = mkOption { + type = types.enum [ "btrfs" ]; + default = "btrfs"; + description = lib.mdDoc '' + Filesystem type. Only btrfs is stable and tested. + ''; + }; + + ALLOW_GROUPS = mkOption { + type = types.listOf safeStr; + default = []; + description = lib.mdDoc '' + List of groups allowed to operate with the config. + + Also see the PERMISSIONS section in man:snapper(8). + ''; + }; + + ALLOW_USERS = mkOption { + type = types.listOf safeStr; + default = []; + example = [ "alice" ]; + description = lib.mdDoc '' + List of users allowed to operate with the config. "root" is always + implicitly included. + + Also see the PERMISSIONS section in man:snapper(8). + ''; + }; + + TIMELINE_CLEANUP = mkOption { + type = types.bool; + default = false; + description = lib.mdDoc '' + Defines whether the timeline cleanup algorithm should be run for the config. + ''; + }; + + TIMELINE_CREATE = mkOption { + type = types.bool; + default = false; + description = lib.mdDoc '' + Defines whether hourly snapshots should be created. + ''; + }; + }; in { @@ -52,49 +127,23 @@ in example = literalExpression '' { home = { - subvolume = "/home"; - extraConfig = ''' - ALLOW_USERS="alice" - TIMELINE_CREATE=yes - TIMELINE_CLEANUP=yes - '''; + SUBVOLUME = "/home"; + ALLOW_USERS = [ "alice" ]; + TIMELINE_CREATE = true; + TIMELINE_CLEANUP = true; }; } ''; description = lib.mdDoc '' - Subvolume configuration + Subvolume configuration. Any option mentioned in man:snapper-configs(5) + is valid here, even if NixOS doesn't document it. ''; type = types.attrsOf (types.submodule { - options = { - subvolume = mkOption { - type = types.path; - description = lib.mdDoc '' - Path of the subvolume or mount point. - This path is a subvolume and has to contain a subvolume named - .snapshots. - See also man:snapper(8) section PERMISSIONS. - ''; - }; + freeformType = types.attrsOf (types.oneOf [ (types.listOf safeStr) types.bool safeStr types.number ]); - fstype = mkOption { - type = types.enum [ "btrfs" ]; - default = "btrfs"; - description = lib.mdDoc '' - Filesystem type. Only btrfs is stable and tested. - ''; - }; - - extraConfig = mkOption { - type = types.lines; - default = ""; - description = lib.mdDoc '' - Additional configuration next to SUBVOLUME and FSTYPE. - See man:snapper-configs(5). - ''; - }; - }; + options = configOptions; }); }; }; @@ -117,11 +166,7 @@ in } // (mapAttrs' (name: subvolume: nameValuePair "snapper/configs/${name}" ({ - text = '' - ${subvolume.extraConfig} - FSTYPE="${subvolume.fstype}" - SUBVOLUME="${subvolume.subvolume}" - ''; + text = lib.generators.toKeyValue { inherit mkKeyValue; } (filterAttrs (k: v: v != defaultOf k) subvolume); })) cfg.configs) // (lib.optionalAttrs (cfg.filters != null) { "snapper/filters/default.txt".text = cfg.filters; @@ -181,5 +226,28 @@ in unitConfig.ConditionPathExists = "/etc/snapper/configs/root"; }; + assertions = + concatMap + (name: + let + sub = cfg.configs.${name}; + in + [ { assertion = !(sub ? extraConfig); + message = '' + The option definition `services.snapper.configs.${name}.extraConfig' no longer has any effect; please remove it. + The contents of this option should be migrated to attributes on `services.snapper.configs.${name}'. + ''; + } + ] ++ + map + (attr: { + assertion = !(hasAttr attr sub); + message = '' + The option definition `services.snapper.configs.${name}.${attr}' has been renamed to `services.snapper.configs.${name}.${toUpper attr}'. + ''; + }) + [ "fstype" "subvolume" ] + ) + (attrNames cfg.configs); }); } diff --git a/nixos/modules/services/web-apps/vikunja.nix b/nixos/modules/services/web-apps/vikunja.nix index c3552200d4e5..8bc8e8c29259 100644 --- a/nixos/modules/services/web-apps/vikunja.nix +++ b/nixos/modules/services/web-apps/vikunja.nix @@ -56,6 +56,11 @@ in { type = types.str; description = lib.mdDoc "The Hostname under which the frontend is running."; }; + port = mkOption { + type = types.port; + default = 3456; + description = lib.mdDoc "The TCP port exposed by the API."; + }; settings = mkOption { type = format.type; @@ -101,6 +106,7 @@ in { inherit (cfg.database) type host user database path; }; service = { + interface = ":${toString cfg.port}"; frontendurl = "${cfg.frontendScheme}://${cfg.frontendHostname}/"; }; files = { @@ -132,7 +138,7 @@ in { tryFiles = "try_files $uri $uri/ /"; }; "~* ^/(api|dav|\\.well-known)/" = { - proxyPass = "http://localhost:3456"; + proxyPass = "http://localhost:${toString cfg.port}"; extraConfig = '' client_max_body_size 20M; ''; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 008dfbe39377..81c5e8dd9f3a 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -644,6 +644,7 @@ in { retroarch = handleTest ./retroarch.nix {}; robustirc-bridge = handleTest ./robustirc-bridge.nix {}; roundcube = handleTest ./roundcube.nix {}; + rshim = handleTest ./rshim.nix {}; rspamd = handleTest ./rspamd.nix {}; rss2email = handleTest ./rss2email.nix {}; rstudio-server = handleTest ./rstudio-server.nix {}; diff --git a/nixos/tests/pgadmin4.nix b/nixos/tests/pgadmin4.nix index 6a9ce6ceae29..cb8de87c9ee3 100644 --- a/nixos/tests/pgadmin4.nix +++ b/nixos/tests/pgadmin4.nix @@ -9,6 +9,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: imports = [ ./common/user-account.nix ]; environment.systemPackages = with pkgs; [ + wget curl pgadmin4-desktopmode ]; @@ -40,8 +41,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: with subtest("Check pgadmin module"): machine.wait_for_unit("postgresql") machine.wait_for_unit("pgadmin") - machine.wait_until_succeeds("curl -s localhost:5051") - machine.wait_until_succeeds("curl -s localhost:5051/login | grep \"pgAdmin 4\" > /dev/null") + machine.wait_until_succeeds("curl -sS localhost:5051") + machine.wait_until_succeeds("curl -sS localhost:5051/login | grep \"pgAdmin 4\" > /dev/null") + # check for missing support files (css, js etc). Should catch not-generated files during build. See e.g. https://github.com/NixOS/nixpkgs/pull/229184 + machine.succeed("wget -nv --level=1 --spider --recursive localhost:5051/login") # pgadmin4 module saves the configuration to /etc/pgadmin/config_system.py # pgadmin4-desktopmode tries to read that as well. This normally fails with a PermissionError, as the config file @@ -51,7 +54,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: # because of the wrong config for desktopmode. with subtest("Check pgadmin standalone desktop mode"): machine.execute("sudo -u alice pgadmin4 >&2 &", timeout=60) - machine.wait_until_succeeds("curl -s localhost:5050") - machine.wait_until_succeeds("curl -s localhost:5050/browser/ | grep \"pgAdmin 4\" > /dev/null") + machine.wait_until_succeeds("curl -sS localhost:5050") + machine.wait_until_succeeds("curl -sS localhost:5050/browser/ | grep \"pgAdmin 4\" > /dev/null") + machine.succeed("wget -nv --level=1 --spider --recursive localhost:5050/browser") ''; }) diff --git a/nixos/tests/rshim.nix b/nixos/tests/rshim.nix new file mode 100644 index 000000000000..bb5cce028ae7 --- /dev/null +++ b/nixos/tests/rshim.nix @@ -0,0 +1,25 @@ +{ system ? builtins.currentSystem +, config ? { } +, pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; + +{ + basic = makeTest { + name = "rshim"; + meta.maintainers = with maintainers; [ nikstur ]; + + nodes.machine = { config, pkgs, ... }: { + services.rshim.enable = true; + }; + + testScript = { nodes, ... }: '' + machine.start() + machine.wait_for_unit("multi-user.target") + + print(machine.succeed("systemctl status rshim.service")) + ''; + }; +} diff --git a/nixos/tests/vikunja.nix b/nixos/tests/vikunja.nix index 2f6c4c1f4661..2660aa9767ca 100644 --- a/nixos/tests/vikunja.nix +++ b/nixos/tests/vikunja.nix @@ -26,6 +26,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { }; frontendScheme = "http"; frontendHostname = "localhost"; + port = 9090; }; services.postgresql = { enable = true; @@ -52,8 +53,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { vikunjaSqlite.succeed("curl --fail http://localhost") vikunjaPostgresql.wait_for_unit("vikunja-api.service") - vikunjaPostgresql.wait_for_open_port(3456) - vikunjaPostgresql.succeed("curl --fail http://localhost:3456/api/v1/info") + vikunjaPostgresql.wait_for_open_port(9090) + vikunjaPostgresql.succeed("curl --fail http://localhost:9090/api/v1/info") vikunjaPostgresql.wait_for_unit("nginx.service") vikunjaPostgresql.wait_for_open_port(80) diff --git a/pkgs/applications/backup/restic-integrity/default.nix b/pkgs/applications/backup/restic-integrity/default.nix new file mode 100644 index 000000000000..6c571527248d --- /dev/null +++ b/pkgs/applications/backup/restic-integrity/default.nix @@ -0,0 +1,25 @@ +{ lib +, rustPlatform +, fetchFromGitLab +}: + +rustPlatform.buildRustPackage rec { + pname = "restic-integrity"; + version = "1.2.1"; + src = fetchFromGitLab { + domain = "gitlab.upi.li"; + owner = "networkException"; + repo = "restic-integrity"; + rev = version; + hash = "sha256-/n8muqW9ol0AY9RM3N4nqLDw0U1h0308M1uRCMS2kOM="; + }; + + cargoHash = "sha256-TYDPzjWxTK9hQhzSknkCao9lq9UjZN3yQX3wtkMmP6E="; + + meta = with lib; { + description = "A CLI tool to check the integrity of a restic repository without unlocking it"; + homepage = "https://gitlab.upi.li/networkException/restic-integrity"; + license = with licenses; [ bsd2 ]; + maintainers = with maintainers; [ janik ]; + }; +} diff --git a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix index 76af53164faa..8bb4a5f5ce1a 100644 --- a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix +++ b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, vscode-utils, callPackage }: let - version = "1.8.1"; + version = "1.16.0"; rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; }; arch = if stdenv.isLinux then "linux" @@ -13,7 +13,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec { name = "rescript-vscode"; publisher = "chenglou92"; inherit version; - sha256 = "sha256-XZG0PRzc3wyAVq9tQeGDlaUZg5YAgkPxJ3NsrdUHoOk="; + sha256 = "sha256-JoC9+NkbLAZXkOKDDMB0Xgzmn+w90pHcokerMrdACi4="; }; postPatch = '' rm -r ${analysisDir} diff --git a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/rescript-editor-analysis.nix b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/rescript-editor-analysis.nix index 11d9b8a6fe0b..125dfa0041bb 100644 --- a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/rescript-editor-analysis.nix +++ b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/rescript-editor-analysis.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, bash, ocaml, dune_3, version }: +{ lib, stdenv, fetchFromGitHub, bash, ocaml, ocamlPackages, dune_3, version }: stdenv.mkDerivation { pname = "rescript-editor-analysis"; @@ -8,10 +8,10 @@ stdenv.mkDerivation { owner = "rescript-lang"; repo = "rescript-vscode"; rev = version; - sha256 = "sha256-a8otK0BxZbl0nOp4QWQRkjb5fM85JA4nVkLuKAz71xU="; + sha256 = "sha256-+Ht8qWwxtFWHFMiV/aoZIs2S3SxkOWgdwSKN+akp/LU="; }; - nativeBuildInputs = [ ocaml dune_3 ]; + nativeBuildInputs = [ ocaml dune_3 ocamlPackages.cppo ]; # Skip testing phases because they need to download and install node modules postPatch = '' diff --git a/pkgs/applications/misc/kemai/000-cmake-disable-conan.diff b/pkgs/applications/misc/kemai/000-cmake-disable-conan.diff new file mode 100644 index 000000000000..3a438e2519a1 --- /dev/null +++ b/pkgs/applications/misc/kemai/000-cmake-disable-conan.diff @@ -0,0 +1,38 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ce78a9d..3cd51e0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,18 +8,21 @@ list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}) + # Common configuration + set(CMAKE_CXX_STANDARD 20) + set(CMAKE_CXX_STANDARD_REQUIRED ON) +- +-# Setup Conan +-if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake") +- message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan") +- file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake" +- "${CMAKE_BINARY_DIR}/conan.cmake" +- TLS_VERIFY ON) +-endif() +-include(${CMAKE_BINARY_DIR}/conan.cmake) +- +-conan_cmake_autodetect(settings) +-conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR} BUILD missing SETTINGS ${settings}) ++set(USE_CONAN ON CACHE BOOL "Use conan for dependency managment") ++ ++if(USE_CONAN) ++ # Setup Conan ++ if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake") ++ message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan") ++ file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake" ++ "${CMAKE_BINARY_DIR}/conan.cmake" ++ TLS_VERIFY ON) ++ endif() ++ include(${CMAKE_BINARY_DIR}/conan.cmake) ++ ++ conan_cmake_autodetect(settings) ++ conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR} BUILD missing SETTINGS ${settings}) ++endif () + + # Setup Qt + set(CMAKE_AUTOMOC ON) diff --git a/pkgs/applications/misc/kemai/default.nix b/pkgs/applications/misc/kemai/default.nix new file mode 100644 index 000000000000..1e358299f5fd --- /dev/null +++ b/pkgs/applications/misc/kemai/default.nix @@ -0,0 +1,52 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, magic-enum +, spdlog +, qtbase +, qtconnectivity +, qttools +, qtlanguageserver +, wrapQtAppsHook +, libXScrnSaver +, nix-update-script +}: + +stdenv.mkDerivation rec { + pname = "kemai"; + version = "0.9.2"; + + src = fetchFromGitHub { + owner = "AlexandrePTJ"; + repo = "kemai"; + rev = version; + hash = "sha256-PDjNO2iMPK0J3TSHVZ/DW3W0GkdB8yNZYoTGEd2snac="; + }; + + buildInputs = [ + qtbase + qtconnectivity + qttools + qtlanguageserver + libXScrnSaver + magic-enum + spdlog + ]; + cmakeFlags = [ "-DUSE_CONAN=OFF" ]; + patches = [ ./000-cmake-disable-conan.diff ]; + + nativeBuildInputs = [ cmake wrapQtAppsHook ]; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "Kimai desktop client written in QT6"; + homepage = "https://github.com/AlexandrePTJ/kemai"; + license = licenses.mit; + maintainers = with maintainers; [ poelzi ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/misc/privacyidea/default.nix b/pkgs/applications/misc/privacyidea/default.nix index 858eb6d2c21e..3adfe13bd93e 100644 --- a/pkgs/applications/misc/privacyidea/default.nix +++ b/pkgs/applications/misc/privacyidea/default.nix @@ -167,6 +167,9 @@ let sphinxHook = null; sphinx-rtd-theme = null; }).overridePythonAttrs dropDocOutput; + deprecated = (super.deprecated.override { + sphinxHook = null; + }).overridePythonAttrs dropDocOutput; }; }; in @@ -239,5 +242,6 @@ python3'.pkgs.buildPythonPackage rec { license = licenses.agpl3Plus; homepage = "http://www.privacyidea.org"; maintainers = with maintainers; [ globin ma27 ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/rofi-power-menu/default.nix b/pkgs/applications/misc/rofi-power-menu/default.nix index e02b7062f4bc..99004eaa270b 100644 --- a/pkgs/applications/misc/rofi-power-menu/default.nix +++ b/pkgs/applications/misc/rofi-power-menu/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "rofi-power-menu"; - version = "3.0.2"; + version = "3.1.0"; src = fetchFromGitHub { owner = "jluttine"; repo = "rofi-power-menu"; rev = version; - sha256 = "sha256-Bkc87BXSnAR517wCkyOAfoACYx/5xprDGJQhLWGUNns="; + sha256 = "sha256-VPCfmCTr6ADNT7MW4jiqLI/lvTjlAu1QrCAugiD0toU="; }; installPhase = '' diff --git a/pkgs/applications/misc/slweb/default.nix b/pkgs/applications/misc/slweb/default.nix index f73f02989398..edf0b9b05ffe 100644 --- a/pkgs/applications/misc/slweb/default.nix +++ b/pkgs/applications/misc/slweb/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "slweb"; - version = "0.5.4"; + version = "0.5.5"; src = fetchFromSourcehut { owner = "~strahinja"; repo = pname; rev = "v${version}"; - sha256 = "sha256-Wj9ZCs8nRBpIkX5jzTqBdo83zUBMamykk1vbBCIWyoQ="; + sha256 = "sha256-Hk3L++J8JiCRXitNHi9uWb7aYN8lMG3GjfpmNyIpoKU="; }; nativeBuildInputs = [ redo-apenwarr ]; diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix index 29727e0a697d..470a4bdf7ef3 100644 --- a/pkgs/applications/networking/cluster/tanka/default.nix +++ b/pkgs/applications/networking/cluster/tanka/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "tanka"; - version = "0.24.0"; + version = "0.25.0"; src = fetchFromGitHub { owner = "grafana"; repo = pname; rev = "v${version}"; - sha256 = "sha256-RZLmbf9ginMbFAaUKL5mK5HIYQslP8Vu8zdh1OJ1P1Y="; + sha256 = "sha256-LAOcDgosSGE7sLiQYSimz//oZ3FHcx3PTjtG0WdDNmg="; }; - vendorHash = "sha256-g9e0NesI7WdaTHZ57XRlo8as3IWAFlFW4nkyf6+kd40="; + vendorHash = "sha256-//uxNK8u7zIVeIUN401DXtkJsX/1iVfDcoFwcs8Y3cg="; doCheck = false; diff --git a/pkgs/applications/networking/instant-messengers/schildichat/pin.json b/pkgs/applications/networking/instant-messengers/schildichat/pin.json index a0e94dc0f1d6..fbae80954e8b 100644 --- a/pkgs/applications/networking/instant-messengers/schildichat/pin.json +++ b/pkgs/applications/networking/instant-messengers/schildichat/pin.json @@ -1,9 +1,9 @@ { - "version": "1.11.22-sc.1", - "rev": "v1.11.22-sc.1", - "srcHash": "0di80hjd0d8bsbgbnddbmdjllc7cssgaxy27kd50j4dmw8qll1hv", - "webYarnHash": "182fh1ayh1y98kbg4mn8fxqvljs19b02j4ivvjszm55dcpwfp1df", - "jsSdkYarnHash": "0a8c7y34wh8bk1v35sa1s3s4piqkzvhjrzzapack4kzl1pfn0vix", - "reactSdkYarnHash": "0nhw9vk0yk2v738b2w6jjq5pfib5j66m5maxczhm40zync8b1wmp", - "desktopYarnHash": "0bq24rjf63rkq3jphv7raqaz2fnibmj41z905k5f3l4ln835ndfv" + "version": "1.11.30-sc.2", + "rev": "v1.11.30-sc.2", + "srcHash": "1qb1fcr52gyzxndz3j77vn3ddwjpxwvicnh16c72zpzpfbbky7a5", + "webYarnHash": "0bg5vc7q8afqfpsaqqkczf9whbzici5d2bxj5cadhrlmlb27f8nx", + "jsSdkYarnHash": "0p1whh3pmqz170l542fiq3zgljl5daa9b96i59p3wvggnx7kny7j", + "reactSdkYarnHash": "02ysshiyjj3w00b628is9bd7i8qc3vc8kr1zam2dpj26lb9k5pdd", + "desktopYarnHash": "16pzmlwzf3z8mky3wb4azaiggigyfnpxmbq3irjp30ic6yhl50yw" } diff --git a/pkgs/applications/networking/insync/default.nix b/pkgs/applications/networking/insync/default.nix index 0c96262fff67..6269502ba87d 100644 --- a/pkgs/applications/networking/insync/default.nix +++ b/pkgs/applications/networking/insync/default.nix @@ -1,34 +1,26 @@ -{ lib, stdenv, fetchurl, makeWrapper, autoPatchelfHook }: +{ lib +, writeShellScript +, buildFHSEnv +, stdenv +, fetchurl +, autoPatchelfHook +, dpkg +, nss +, libvorbis +, libdrm +, libGL +, wayland +, libthai +}: -stdenv.mkDerivation rec { +let pname = "insync"; - version = "1.5.7.37371"; - src = - if stdenv.hostPlatform.system == "x86_64-linux" then - fetchurl { - url = "http://s.insynchq.com/builds/insync-portable_${version}_amd64.tar.bz2"; - sha256 = "1cm3q6y2crw6pcsvh21sbkmh1hin7xl4fyslc96nbyql8rxsky5n"; - } - else - throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}"; - - nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; - - postPatch = '' - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable - ''; - - installPhase = '' - mkdir -p $out/bin - cp -a client $out/client - makeWrapper $out/client/insync-portable $out/bin/insync --set LC_TIME C - ''; - - meta = { + version = "3.8.5.50499"; + meta = with lib; { platforms = ["x86_64-linux"]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - license = lib.licenses.unfree; - maintainers = [ ]; + license = licenses.unfree; + maintainers = with maintainers; [ hellwolf ]; homepage = "https://www.insynchq.com"; description = "Google Drive sync and backup with multiple account support"; longDescription = '' @@ -38,8 +30,81 @@ stdenv.mkDerivation rec { and built in sharing. There is a 15-day free trial, and it is a paid application after that. + + Known bug(s): + + 1) Currently the system try icon does not render correctly. + 2) libqtvirtualkeyboardplugin does not have necessary Qt library shipped from vendor. ''; - # download URL removed - broken = true; }; + insync-pkg = stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + # Find a binary from https://www.insynchq.com/downloads/linux#ubuntu. + url = "https://cdn.insynchq.com/builds/linux/${pname}_${version}-lunar_amd64.deb"; + sha256 = "sha256-mpMJe8LAmO9OrqRIEWuxfVNeh5ANvjZIEHFz8cXYObY="; + }; + + buildInputs = [ + nss + libvorbis + libdrm + libGL + wayland + libthai + ]; + + nativeBuildInputs = [ autoPatchelfHook dpkg ]; + + unpackPhase = '' + dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/lib $out/share + cp -R usr/* $out/ + + # use system glibc + rm -f $out/lib/insync/{libgcc_s.so.1,libstdc++.so.6} + + # remove badly packaged plugins + rm $out/lib/insync/PySide2/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so + + runHook postInstall + ''; + + dontConfigure = true; + dontBuild = true; + + # NB! This did the trick, otherwise it segfaults! However I don't understand why! + dontStrip = true; + + inherit meta; + }; +in buildFHSEnv { # ref: pkgs/build-support/build-fhsenv-bubblewrap/default.nix + name = "${pname}-${version}"; + inherit meta; + + # for including insync's xdg data dirs + extraOutputsToInstall = [ "share" ]; + + targetPkgs = pkgs: [ + insync-pkg + ]; + + multiPkgs = pkgs: with pkgs; [ + # apparently only package needed for the FHS :) + libudev0-shim + ]; + + runScript = writeShellScript "insync-wrapper.sh" '' + # QT_STYLE_OVERRIDE was used to suppress a QT warning, it should have no actual effect for this binary. + export QT_STYLE_OVERRIDE=Fusion + exec "${insync-pkg.outPath}/lib/insync/insync" "$@" + ''; + # "insync start" command starts a daemon. + dieWithParent = false; } diff --git a/pkgs/applications/networking/insync/v3.nix b/pkgs/applications/networking/insync/v3.nix deleted file mode 100644 index b121b1c1ec5e..000000000000 --- a/pkgs/applications/networking/insync/v3.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ stdenv -, lib -, fetchurl -, makeWrapper -, dpkg -, libxcb -, libGL -, nss -, libthai -, wayland -, alsa-lib -, qtvirtualkeyboard -, qtwebchannel -, qtwebsockets -, qtlocation -, qtwebengine -, autoPatchelfHook -, wrapQtAppsHook -}: - -stdenv.mkDerivation rec { - pname = "insync"; - version = "3.8.5.50499"; - - src = fetchurl { - url = "https://cdn.insynchq.com/builds/linux/${pname}_${version}-focal_amd64.deb"; - hash = "sha256-CtDwU0Cey12kDjEX+Y9x7pfKNARfKDopWsDVRaA1Zts="; - }; - - postPatch = '' - substituteInPlace usr/bin/insync --replace /usr/lib/insync $out/usr/lib/insync - ''; - - buildInputs = [ - alsa-lib - libGL - libthai - libxcb - nss - qtlocation - qtvirtualkeyboard - qtwebchannel - qtwebengine - qtwebsockets - wayland - ]; - - nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper wrapQtAppsHook ]; - - unpackPhase = '' - dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner - ''; - - installPhase = '' - mkdir -p $out/bin $out/lib $out/share - cp -R usr/* $out/ - rm $out/lib/insync/libGLX.so.0 - rm $out/lib/insync/libQt5* - sed -i 's|/usr/lib/insync|/lib/insync|' "$out/bin/insync" - wrapQtApp "$out/lib/insync/insync" - ''; - - dontConfigure = true; - dontBuild = true; - - meta = with lib; { - platforms = ["x86_64-linux"]; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - license = licenses.unfree; - maintainers = with maintainers; [ ]; - homepage = "https://www.insynchq.com"; - description = "Google Drive sync and backup with multiple account support"; - longDescription = '' - Insync is a commercial application that syncs your Drive files to your - computer. It has more advanced features than Google's official client - such as multiple account support, Google Doc conversion, symlink support, - and built in sharing. - - There is a 15-day free trial, and it is a paid application after that. - ''; - }; -} diff --git a/pkgs/applications/networking/jxplorer/default.nix b/pkgs/applications/networking/jxplorer/default.nix new file mode 100644 index 000000000000..7f1a46b37dab --- /dev/null +++ b/pkgs/applications/networking/jxplorer/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchurl, makeDesktopItem, ant, jdk8, copyDesktopItems, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "jxplorer"; + version = "3.3.1.2"; + + src = fetchurl { + url = "https://github.com/pegacat/jxplorer/releases/download/v${version}/jxplorer-${version}-project.tar.bz2"; + hash = "sha256-/lWkavH51OqNFSLpgT+4WcQcfW3WvnnOkB03jB7bE/s="; + }; + + nativeBuildInputs = [ + copyDesktopItems + makeWrapper + ]; + + desktopItems = [ + (makeDesktopItem { + name = "JXplorer"; + exec = "jxplorer"; + comment = "A Java Ldap Browser"; + desktopName = "JXplorer"; + genericName = "Java Ldap Browser"; + icon = "jxplorer"; + }) + ]; + + installPhase = '' + runHook preInstall + install -d "$out/opt/jxplorer" "$out/bin" "$out/share/pixmaps" + cp -r ./. "$out/opt/jxplorer" + install -Dm644 images/JX128.png "$out/share/pixmaps/jxplorer.png" + runHook postInstall + ''; + + postFixup = '' + chmod +x $out/opt/jxplorer/jxplorer.sh + makeWrapper $out/opt/jxplorer/jxplorer.sh $out/bin/jxplorer \ + --chdir $out/opt/jxplorer \ + --set JAVA_HOME ${jdk8} + ''; + + meta = with lib; { + description = "A Java Ldap Browser"; + homepage = "https://sourceforge.net/projects/jxplorer/"; + license = lib.licenses.caossl; + maintainers = with maintainers; [ benwbooth ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix index 9d099f5c7082..1cbdd84ba639 100644 --- a/pkgs/development/compilers/nim/default.nix +++ b/pkgs/development/compilers/nim/default.nix @@ -148,6 +148,7 @@ in { description = "Statically typed, imperative programming language"; homepage = "https://nim-lang.org/"; license = licenses.mit; + mainProgram = "nim"; maintainers = with maintainers; [ ehmry ]; }; }; diff --git a/pkgs/development/libraries/libosmo-abis/default.nix b/pkgs/development/libraries/libosmo-abis/default.nix deleted file mode 100644 index ee8b3c926614..000000000000 --- a/pkgs/development/libraries/libosmo-abis/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchgit, autoreconfHook, pkg-config -, libosmocore, ortp, bctoolbox -}: - -stdenv.mkDerivation rec { - pname = "libosmo-abis"; - version = "1.4.0"; - - src = fetchgit { - url = "https://gitea.osmocom.org/osmocom/libosmo-abis"; - rev = version; - sha256 = "sha256-RKJis0Ur3Y0LximNQl+hm6GENg8t2E1S++2c+63D2pQ="; - }; - - postPatch = '' - echo "${version}" > .tarball-version - ''; - - configureFlags = [ "--disable-dahdi" ]; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - libosmocore - ortp - bctoolbox - ]; - - meta = with lib; { - description = "GSM A-bis interface library"; - homepage = "https://osmocom.org/projects/libosmo-abis"; - maintainers = [ maintainers.markuskowa ]; - platforms = platforms.linux; - license = licenses.agpl3Only; - }; -} diff --git a/pkgs/development/libraries/libosmo-netif/default.nix b/pkgs/development/libraries/libosmo-netif/default.nix deleted file mode 100644 index 8b1fd40d8dad..000000000000 --- a/pkgs/development/libraries/libosmo-netif/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchgit, autoreconfHook, pkg-config -, libosmocore, lksctp-tools -}: - - -stdenv.mkDerivation rec { - pname = "libosmo-netif"; - version = "1.3.0"; - - src = fetchgit { - url = "https://gitea.osmocom.org/osmocom/libosmo-netif"; - rev = version; - sha256 = "sha256-PhGi/6JVO8tXxzfGwEKUB/GdrgCJkqROo26TPU+O9Sg="; - }; - - postPatch = '' - echo "${version}" > .tarball-version - ''; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - libosmocore - lksctp-tools - ]; - - meta = with lib; { - description = "Higher-layer GSM cellular communications protocol implementation"; - homepage = "https://gitea.osmocom.org/osmocom/libosmo-netif"; - maintainers = [ maintainers.markuskowa ]; - platforms = platforms.linux; - license = licenses.agpl3Only; - }; -} diff --git a/pkgs/development/libraries/libosmo-sccp/default.nix b/pkgs/development/libraries/libosmo-sccp/default.nix deleted file mode 100644 index 0c3878101066..000000000000 --- a/pkgs/development/libraries/libosmo-sccp/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchgit, autoreconfHook, pkg-config -, libosmocore, libosmo-netif, lksctp-tools -}: - - -stdenv.mkDerivation rec { - pname = "libosmo-sccp"; - version = "1.7.0"; - - src = fetchgit { - url = "https://gitea.osmocom.org/osmocom/libosmo-sccp"; - rev = version; - sha256 = "sha256-ScJZke9iNmFc9XXqtRjb24ZzKfa5EYws5PDNhcZFb7U="; - }; - - postPatch = '' - echo "${version}" > .tarball-version - ''; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - libosmocore - libosmo-netif - lksctp-tools - ]; - - meta = with lib; { - description = "Implementation of telecom signaling protocols and OsmoSTP"; - homepage = "https://osmocom.org/projects/osmo-stp/wiki"; - maintainers = [ maintainers.markuskowa ]; - platforms = platforms.linux; - license = licenses.agpl3Only; - }; -} diff --git a/pkgs/development/python-modules/extractcode/default.nix b/pkgs/development/python-modules/extractcode/default.nix index c2193539814a..612ee8b84375 100644 --- a/pkgs/development/python-modules/extractcode/default.nix +++ b/pkgs/development/python-modules/extractcode/default.nix @@ -8,6 +8,7 @@ , pytestCheckHook , pythonOlder , setuptools-scm +, six , typecode }: @@ -40,6 +41,7 @@ buildPythonPackage rec { patch extractcode-libarchive extractcode-7z + six ]; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/py-zabbix/default.nix b/pkgs/development/python-modules/py-zabbix/default.nix index e706da6064ca..b39a706c6538 100644 --- a/pkgs/development/python-modules/py-zabbix/default.nix +++ b/pkgs/development/python-modules/py-zabbix/default.nix @@ -1,6 +1,7 @@ { lib , buildPythonPackage , fetchFromGitHub +, fetchpatch , pytestCheckHook , pythonOlder }: @@ -15,10 +16,19 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "adubkov"; repo = "py-zabbix"; - rev = version; - sha256 = "aPQc188pszfDQvNtsGYlRLHS5CG5VyqptSoe4/GJVvE="; + rev = "refs/tags/${version}"; + hash = "sha256-aPQc188pszfDQvNtsGYlRLHS5CG5VyqptSoe4/GJVvE="; }; + patches = [ + # Remove Python2 comp, https://github.com/adubkov/py-zabbix/pull/154 + (fetchpatch { + name = "no-more-py2.patch"; + url = "https://github.com/adubkov/py-zabbix/commit/8deedb860f52870fbeacc54a40341520702341e2.patch"; + hash = "sha256-Af7pnCZIObC0ZQLaamBK1pTAVAFs/Mh7+og5jAKqk4s="; + }) + ]; + nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix index 1f528d9ab715..14df8ba37147 100644 --- a/pkgs/development/python-modules/pymc/default.nix +++ b/pkgs/development/python-modules/pymc/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "pymc"; - version = "5.0.2"; + version = "5.3.1"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "pymc-devs"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-ffNWSSzoRLFmYzN9sm5Z1j6WtEoFzGkCQxpBC0NlpRc="; + hash = "sha256-TtRIYgsPlire4li4/9Ls7Rh1SIkDGi5uCSN7huSrelA="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/ruff-lsp/default.nix b/pkgs/development/python-modules/ruff-lsp/default.nix index 7ef48b86fa0b..39deed3b0161 100644 --- a/pkgs/development/python-modules/ruff-lsp/default.nix +++ b/pkgs/development/python-modules/ruff-lsp/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "ruff-lsp"; - version = "0.0.24"; + version = "0.0.27"; format = "pyproject"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit version; pname = "ruff_lsp"; - sha256 = "sha256-1he/GYk8O9LqPXH3mu7eGWuRygiDG1OnJ+JNT2Pynzo="; + hash = "sha256-Mp5PX87UFUADl/INxZptTsHUBxNpaSRqdsPgRNnLCaQ="; }; postPatch = '' diff --git a/pkgs/development/tools/bodyclose/default.nix b/pkgs/development/tools/bodyclose/default.nix new file mode 100644 index 000000000000..e252223b883f --- /dev/null +++ b/pkgs/development/tools/bodyclose/default.nix @@ -0,0 +1,27 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "bodyclose"; + version = "2023-04-21"; + + src = fetchFromGitHub { + owner = "timakin"; + repo = "bodyclose"; + rev = "574207250966ef48b7c65325648b17ff2c3a900a"; + hash = "sha256-qUt8uOk1vgj2rtzTevGh9c4McxbFKgEw83pq7IAlRdg="; + }; + + vendorHash = "sha256-TSYaY7Rg0ZoXdIN1sTNmgjC4PcVcgwSTuE43FYbzlAs="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Golang linter to check whether HTTP response body is closed and a re-use of TCP connection is not blocked"; + homepage = "https://github.com/timakin/bodyclose"; + license = licenses.mit; + maintainers = with maintainers; [ meain ]; + }; +} diff --git a/pkgs/development/tools/misc/ast-grep/default.nix b/pkgs/development/tools/misc/ast-grep/default.nix new file mode 100644 index 000000000000..2cad8d017d7a --- /dev/null +++ b/pkgs/development/tools/misc/ast-grep/default.nix @@ -0,0 +1,26 @@ +{ lib +, rustPlatform +, fetchFromGitHub +}: +rustPlatform.buildRustPackage rec { + pname = "ast-grep"; + version = "0.5.2"; + + src = fetchFromGitHub { + owner = "ast-grep"; + repo = "ast-grep"; + rev = "v${version}"; + hash = "sha256-4bslw+BADUQO9cUCEYZ1U4eRdr/2652Shty+NVY0ZYI="; + }; + + cargoHash = "sha256-ed6hc7MIo/Hu1JY7yy6dYHbaTZ9S+T0dh/2H3sTT52Y="; + + meta = with lib; { + mainProgram = "sg"; + description = "A fast and polyglot tool for code searching, linting, rewriting at large scale"; + homepage = "https://ast-grep.github.io/"; + changelog = "https://github.com/ast-grep/ast-grep/blob/${src.rev}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ montchr ]; + }; +} diff --git a/pkgs/development/tools/misc/kibana/7.x.nix b/pkgs/development/tools/misc/kibana/7.x.nix index 69aa71a6f245..e2586f32af3d 100644 --- a/pkgs/development/tools/misc/kibana/7.x.nix +++ b/pkgs/development/tools/misc/kibana/7.x.nix @@ -17,9 +17,10 @@ let plat = elemAt info 1; shas = { - x86_64-linux = "b657d82c8189acc8a8f656ab949e1484aaa98755a16c33f48c318fb17180343f"; - x86_64-darwin = "ac2b5a639ad83431db25e4161f811111d45db052eb845091e18f847016a34a55"; - aarch64-linux = "a1f7ab9e874799bf380b94394e5bb1ce28f38019896293dde8797d74ad273e67"; + x86_64-linux = "f0f9f65b6ba3cc401a519f764314854f6f1f22a9c3b55dfc5a4921455d64fc0d5b8352d267217076da82157553f235ab3d2506497132f23789b126205177e86b"; + x86_64-darwin = "2ba707a0e7a5c34be98ee5e299b8f1d9ace99a626112efd48ca08bfc9640374ec37fc1761c9ef91599e7a5bf5055d2731759b0337952d7767b02d9c46640be71"; + aarch64-linux = "6899c46a06cceb3bfa5db22cdad90db3063b3859c6059a379ac29ce5755073e45b6914491c7c0ec92c48344c1658ea68f7453992d1a39b70782f699315d175de"; + aarch64-darwin = "194b7288f394ff39af3e114099a8f0f847091fd50231ee50c12105189e2b1dfdff8971795c2c22275ff113734e543cfaf51940682d77576c89d2d5bce9b26b92"; }; in stdenv.mkDerivation rec { @@ -28,7 +29,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://artifacts.elastic.co/downloads/kibana/${pname}-${version}-${plat}-${arch}.tar.gz"; - sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture"); + sha512 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture"); }; patches = [ diff --git a/pkgs/development/tools/misc/kibana/disable-nodejs-version-check.patch b/pkgs/development/tools/misc/kibana/disable-nodejs-version-check.patch deleted file mode 100644 index 12a81566a72c..000000000000 --- a/pkgs/development/tools/misc/kibana/disable-nodejs-version-check.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -Naur a/src/setup_node_env/node_version_validator.js b/src/setup_node_env/node_version_validator.js ---- a/src/setup_node_env/node_version_validator.js 2018-11-16 03:28:42.000000000 +0100 -+++ b/src/setup_node_env/node_version_validator.js 2018-12-01 12:19:48.238337176 +0100 -@@ -26,7 +26,7 @@ - var currentVersion = process && process.version || null; - var rawRequiredVersion = pkg && pkg.engines && pkg.engines.node || null; - var requiredVersion = rawRequiredVersion ? 'v' + rawRequiredVersion : rawRequiredVersion; --var isVersionValid = !!currentVersion && !!requiredVersion && currentVersion === requiredVersion; -+var isVersionValid = !!currentVersion && !!requiredVersion; - - // Validates current the NodeJS version compatibility when Kibana starts. - if (!isVersionValid) { -@@ -35,4 +35,4 @@ - // Actions to apply when validation fails: error report + exit. - console.error(errorMessage); - process.exit(1); --} -\ No newline at end of file -+} diff --git a/pkgs/development/tools/misc/orogene/default.nix b/pkgs/development/tools/misc/orogene/default.nix new file mode 100644 index 000000000000..242e00816b4b --- /dev/null +++ b/pkgs/development/tools/misc/orogene/default.nix @@ -0,0 +1,47 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, openssl +, stdenv +, darwin +}: + +rustPlatform.buildRustPackage rec { + pname = "orogene"; + version = "0.3.25"; + + src = fetchFromGitHub { + owner = "orogene"; + repo = "orogene"; + rev = "v${version}"; + hash = "sha256-QQhlkTg14nPYQvKYoZf07PjknTZZRUTzBzNFJeovny8="; + fetchSubmodules = true; + }; + + cargoHash = "sha256-uxW196f/PEVxGHmZ7hUyvaIz1OD1XmyVEuwk8Hdvsvs="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + openssl + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Security + ]; + + preCheck = '' + export CI=true + export HOME=$(mktemp -d) + ''; + + meta = with lib; { + description = "A package manager for tools that use node_modules"; + homepage = "https://github.com/orogene/orogene"; + changelog = "https://github.com/orogene/orogene/blob/${src.rev}/CHANGELOG.md"; + license = with licenses; [ asl20 isc ]; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "oro"; + }; +} diff --git a/pkgs/development/tools/ruff/default.nix b/pkgs/development/tools/ruff/default.nix index b1d4e87a4bfd..fa2384b18c7a 100644 --- a/pkgs/development/tools/ruff/default.nix +++ b/pkgs/development/tools/ruff/default.nix @@ -5,6 +5,8 @@ , installShellFiles , stdenv , darwin + # tests +, ruff-lsp }: rustPlatform.buildRustPackage rec { @@ -64,6 +66,10 @@ rustPlatform.buildRustPackage rec { --zsh <($out/bin/ruff generate-shell-completion zsh) ''; + passthru.tests = { + inherit ruff-lsp; + }; + meta = with lib; { description = "An extremely fast Python linter"; homepage = "https://github.com/charliermarsh/ruff"; diff --git a/pkgs/misc/logging/beats/7.x.nix b/pkgs/misc/logging/beats/7.x.nix index b5f812d002cc..945b3b3ba585 100644 --- a/pkgs/misc/logging/beats/7.x.nix +++ b/pkgs/misc/logging/beats/7.x.nix @@ -8,10 +8,10 @@ let beat = package: extraArgs: buildGoModule (rec { owner = "elastic"; repo = "beats"; rev = "v${version}"; - sha256 = "sha256-DE7XpzVBu9qL7fMXXYRYLdVXrr0WB0IL0KAG0Zc3TVo="; + hash = "sha256-BGi2fGUz0J7BuLo3JA4c2yUlWXdLpjn+AcMHkDGd3js="; }; - vendorSha256 = "sha256-TQrXUcLv7rFo3PP3bVx0wEC1WbtkJDsCm+/izHAxqBc="; + vendorHash = "sha256-FtFHfxCIZ4G1aFfGUgRfTz+zL4OE4SLPuDzXqL6CDyo="; subPackages = [ package ]; diff --git a/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix b/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix index 46a5bca79031..8ae426269a86 100644 --- a/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix +++ b/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix @@ -5,6 +5,7 @@ , glibc , libGL , xorg +, makeWrapper , qtx11extras , wrapQtAppsHook , autoPatchelfHook @@ -20,17 +21,18 @@ let in stdenv.mkDerivation rec { pname = "xp-pen-deco-01-v2-driver"; - version = "3.3.9.230222-1"; + version = "3.2.3.230215-1"; src = fetchzip { - url = "https://www.xp-pen.com/download/file/id/1936/pid/440/ext/gz.html#.tar.gz"; + url = "https://download01.xp-pen.com/file/2023/03/XPPen-pentablet-${version}.x86_64.tar.gz"; name = "xp-pen-deco-01-v2-driver-${version}.tar.gz"; - sha256 = "sha256-xrRDxH7e00dISXb+lTtrnui+fNFpX7bLke2o+aTjJNk="; + sha256 = "sha256-CV4ZaGCFFcfy2J0O8leYgcyzFVwJQFQJsShOv9B7jfI="; }; nativeBuildInputs = [ wrapQtAppsHook autoPatchelfHook + makeWrapper ]; dontBuild = true; diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix index 0f956cf8d78b..714aa674cc9a 100644 --- a/pkgs/servers/keycloak/default.nix +++ b/pkgs/servers/keycloak/default.nix @@ -13,11 +13,11 @@ stdenv.mkDerivation rec { pname = "keycloak"; - version = "20.0.5"; + version = "21.1.1"; src = fetchzip { url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip"; - hash = "sha256-4h3q9J1+KufMaSuzbX9qaBwXPR8zhVpxQAXDBY3uPjM="; + hash = "sha256-ZX5UKjU9BEtO/uA25WhSUmeO6jQ1FpKF1irFx2fwPBU="; }; nativeBuildInputs = [ makeWrapper jre ]; diff --git a/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix b/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix index b388e20aa1b1..e8d917fea3bd 100644 --- a/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix +++ b/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "keycloak-metrics-spi"; - version = "2.5.3"; + version = "3.0.0"; src = fetchurl { url = "https://github.com/aerogear/keycloak-metrics-spi/releases/download/${version}/keycloak-metrics-spi-${version}.jar"; - sha256 = "15lsy8wjw6nlfdfhllc45z9l5474p0lsghrwzzsssvd68bw54gwv"; + sha256 = "1r06xjnvd7wxl64jqpms6jnl4csfwigb9n9lxcjpkgh2jzfs43sp"; }; dontUnpack = true; diff --git a/pkgs/servers/osmocom/libasn1c/default.nix b/pkgs/servers/osmocom/libasn1c/default.nix new file mode 100644 index 000000000000..36aae50bd836 --- /dev/null +++ b/pkgs/servers/osmocom/libasn1c/default.nix @@ -0,0 +1,42 @@ +{ lib +, stdenv +, autoreconfHook +, fetchFromGitHub +, pkg-config +, talloc +}: + +stdenv.mkDerivation rec { + pname = "libasn1c"; + version = "0.9.35"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "libasn1c"; + rev = version; + hash = "sha256-mi97sWo42U/02xv4QDyUTRh26cyxhcOV5npqCuWsUOc="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + talloc + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Runtime library of Lev Walkin's asn1c split out as separate library"; + homepage = "github.com/osmocom/libasn1c/"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = with maintainers; [ janik ]; + }; +} diff --git a/pkgs/servers/osmocom/libosmo-netif/default.nix b/pkgs/servers/osmocom/libosmo-netif/default.nix new file mode 100644 index 000000000000..746e353fe7d2 --- /dev/null +++ b/pkgs/servers/osmocom/libosmo-netif/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, autoreconfHook +, fetchFromGitHub +, lksctp-tools +, pkg-config +, libosmocore +}: + +stdenv.mkDerivation rec { + pname = "libosmo-netif"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "libosmo-netif"; + rev = version; + hash = "sha256-PhGi/6JVO8tXxzfGwEKUB/GdrgCJkqROo26TPU+O9Sg="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + lksctp-tools + libosmocore + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Osmocom network / socket interface library"; + homepage = "https://osmocom.org/projects/libosmo-netif/wiki"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ + janik + markuskowa + ]; + }; +} diff --git a/pkgs/servers/osmocom/libosmo-sccp/default.nix b/pkgs/servers/osmocom/libosmo-sccp/default.nix new file mode 100644 index 000000000000..64dded983e7c --- /dev/null +++ b/pkgs/servers/osmocom/libosmo-sccp/default.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, autoreconfHook +, fetchFromGitHub +, lksctp-tools +, pkg-config +, libosmocore +, libosmo-netif +}: + +stdenv.mkDerivation rec { + pname = "libosmo-sccp"; + version = "1.7.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "libosmo-sccp"; + rev = version; + hash = "sha256-ScJZke9iNmFc9XXqtRjb24ZzKfa5EYws5PDNhcZFb7U="; + }; + + configureFlags = [ "--with-systemdsystemunitdir=$out" ]; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + lksctp-tools + libosmocore + libosmo-netif + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "SCCP + SIGTRAN (SUA/M3UA) libraries as well as OsmoSTP"; + homepage = "https://osmocom.org/projects/libosmo-sccp"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ + janik + markuskowa + ]; + }; +} diff --git a/pkgs/servers/osmocom/libosmoabis/default.nix b/pkgs/servers/osmocom/libosmoabis/default.nix new file mode 100644 index 000000000000..dc3d3b3955e5 --- /dev/null +++ b/pkgs/servers/osmocom/libosmoabis/default.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, autoreconfHook +, fetchFromGitHub +, pkg-config +, libosmocore +, ortp +, bctoolbox +}: + +stdenv.mkDerivation rec { + pname = "libosmoabis"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "libosmo-abis"; + rev = version; + hash = "sha256-RKJis0Ur3Y0LximNQl+hm6GENg8t2E1S++2c+63D2pQ="; + }; + + configureFlags = [ "enable_dahdi=false" ]; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + ortp + bctoolbox + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Osmocom Abis interface library"; + homepage = "https://github.com/osmocom/libosmo-abis"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ + janik + markuskowa + ]; + }; +} diff --git a/pkgs/applications/misc/libosmocore/default.nix b/pkgs/servers/osmocom/libosmocore/default.nix similarity index 91% rename from pkgs/applications/misc/libosmocore/default.nix rename to pkgs/servers/osmocom/libosmocore/default.nix index 5f9ce0a9a647..843f6786464c 100644 --- a/pkgs/applications/misc/libosmocore/default.nix +++ b/pkgs/servers/osmocom/libosmocore/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv +{ lib +, stdenv , autoreconfHook , fetchFromGitHub , gnutls @@ -51,6 +52,9 @@ stdenv.mkDerivation rec { homepage = "https://github.com/osmocom/libosmocore"; license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = with maintainers; [ mog ]; + maintainers = with maintainers; [ + mog + janik + ]; }; } diff --git a/pkgs/servers/osmocom/osmo-bsc/default.nix b/pkgs/servers/osmocom/osmo-bsc/default.nix new file mode 100644 index 000000000000..fd10dd5f20d1 --- /dev/null +++ b/pkgs/servers/osmocom/osmo-bsc/default.nix @@ -0,0 +1,55 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, libosmoabis +, libosmo-netif +, libosmo-sccp +, osmo-mgw +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-bsc"; + version = "1.9.1"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-bsc"; + rev = "${version}"; + hash = "sha256-oCHEWQjHG2JZdoisROukwRbpQq2cNAgC+1yOqsgx+As="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + libosmoabis + libosmo-netif + libosmo-sccp + osmo-mgw + ]; + + enableParallelBuilding = true; + + meta = { + description = "GSM Base Station Controller"; + homepage = "https://projects.osmocom.org/projects/osmobsc"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-bts/default.nix b/pkgs/servers/osmocom/osmo-bts/default.nix new file mode 100644 index 000000000000..c4a10f21abab --- /dev/null +++ b/pkgs/servers/osmocom/osmo-bts/default.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, libosmoabis +, libosmo-netif +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-bts"; + version = "1.6.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-bts"; + rev = "${version}"; + hash = "sha256-RSWXWQn3DAPtThUbthyXrSFSQhHzKaH/m1f6/MCojzM="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + libosmoabis + libosmo-netif + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom GSM Base Transceiver Station (BTS)"; + homepage = "https://osmocom.org/projects/osmobts"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-ggsn/default.nix b/pkgs/servers/osmocom/osmo-ggsn/default.nix new file mode 100644 index 000000000000..d65dad1dbb00 --- /dev/null +++ b/pkgs/servers/osmocom/osmo-ggsn/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-ggsn"; + version = "1.10.1"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-ggsn"; + rev = "${version}"; + hash = "sha256-j7Szh6lDZY9ji9VAdE3D73R/WBPDo85nVB8hr4HzO7M="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom Gateway GPRS Support Node (GGSN), successor of OpenGGSN"; + homepage = "https://osmocom.org/projects/openggsn"; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-hlr/default.nix b/pkgs/servers/osmocom/osmo-hlr/default.nix new file mode 100644 index 000000000000..8ecb1ad3780d --- /dev/null +++ b/pkgs/servers/osmocom/osmo-hlr/default.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, libosmoabis +, sqlite +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-hlr"; + version = "1.6.1"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-hlr"; + rev = "${version}"; + hash = "sha256-lFIYoDaJbVcC0A0TukRO9KDTVx31WqPPz/Z3wACJBp0="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + libosmoabis + sqlite + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom implementation of 3GPP Home Location Registr (HLR)"; + homepage = "https://osmocom.org/projects/osmo-hlr"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-hnbgw/default.nix b/pkgs/servers/osmocom/osmo-hnbgw/default.nix new file mode 100644 index 000000000000..ecadc543c566 --- /dev/null +++ b/pkgs/servers/osmocom/osmo-hnbgw/default.nix @@ -0,0 +1,59 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, lksctp-tools +, libosmo-netif +, libasn1c +, libosmo-sccp +, osmo-iuh +, osmo-mgw +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-hnbgw"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-hnbgw"; + rev = "${version}"; + hash = "sha256-OWCAiU4mK57e5gm6QOovwmoFAaCG1d8ZYpkP4isIqvI="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + lksctp-tools + libosmo-netif + libasn1c + libosmo-sccp + osmo-iuh + osmo-mgw + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom Home NodeB Gateway, for attaching femtocells to the 3G CN (OsmoMSC, OsmoSGSN)"; + homepage = "https://osmocom.org/projects/osmohnbgw"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-hnodeb/default.nix b/pkgs/servers/osmocom/osmo-hnodeb/default.nix new file mode 100644 index 000000000000..cf5c715ccddf --- /dev/null +++ b/pkgs/servers/osmocom/osmo-hnodeb/default.nix @@ -0,0 +1,59 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, lksctp-tools +, libasn1c +, libosmoabis +, libosmo-netif +, libosmo-sccp +, osmo-iuh +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-hnodeb"; + version = "0.1.1"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-hnodeb"; + rev = "${version}"; + hash = "sha256-Izivyw2HqRmrM68ehGqlIkJeuZ986d1WQ0yr6NWWTdA="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + lksctp-tools + libasn1c + libosmoabis + libosmo-netif + libosmo-sccp + osmo-iuh + ]; + + enableParallelBuilding = true; + + meta = { + description = "(upper layers of) HomeNodeB"; + homepage = "https://osmocom.org/projects/osmo-hnodeb"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-iuh/default.nix b/pkgs/servers/osmocom/osmo-iuh/default.nix new file mode 100644 index 000000000000..8f38383196e6 --- /dev/null +++ b/pkgs/servers/osmocom/osmo-iuh/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, lksctp-tools +, libosmo-netif +, libosmo-sccp +, libasn1c +, python3 +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-iuh"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-iuh"; + rev = "${version}"; + hash = "sha256-AwLLfG+5JgvFSBddzyUQdPDFZOX1uQyDSyr4O/wTlgs="; + }; + + prePatch = '' + substituteInPlace src/../asn1/utils/asn1tostruct.py \ + --replace '#!/usr/bin/env python3' '#!${python3}/bin/python3' + ''; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + python3 + ]; + + buildInputs = [ + libosmocore + lksctp-tools + libosmo-netif + libosmo-sccp + libasn1c + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom IuH library"; + homepage = "https://osmocom.org/projects/osmohnbgw/wiki"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-mgw/default.nix b/pkgs/servers/osmocom/osmo-mgw/default.nix new file mode 100644 index 000000000000..68939011b98c --- /dev/null +++ b/pkgs/servers/osmocom/osmo-mgw/default.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, libosmo-netif +, libosmoabis +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-mgw"; + version = "1.11.1"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-mgw"; + rev = "${version}"; + hash = "sha256-l7JBAigcqQdb1IIz2iuetK8EKVkevtei7hB98g4a79Y="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + libosmo-netif + libosmoabis + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom Media Gateway (MGW). speaks RTP and E1 as well as MGCP"; + homepage = "https://osmocom.org/projects/osmo-mgw"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-msc/default.nix b/pkgs/servers/osmocom/osmo-msc/default.nix new file mode 100644 index 000000000000..fdb6d35bcb79 --- /dev/null +++ b/pkgs/servers/osmocom/osmo-msc/default.nix @@ -0,0 +1,61 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, sqlite +, libosmoabis +, libosmo-netif +, libosmo-sccp +, osmo-mgw +, osmo-hlr +, lksctp-tools +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-msc"; + version = "1.10.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-msc"; + rev = "${version}"; + hash = "sha256-CVyjSo+QFDLcow6XAcudhQ7LOnbCSHeYVTzTMh7KEwg="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + sqlite + libosmoabis + libosmo-netif + libosmo-sccp + osmo-mgw + osmo-hlr + lksctp-tools + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom implementation of 3GPP Mobile Swtiching Centre (MSC)"; + homepage = "https://osmocom.org/projects/osmomsc/wiki"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-pcu/default.nix b/pkgs/servers/osmocom/osmo-pcu/default.nix new file mode 100644 index 000000000000..99495d0dd1e8 --- /dev/null +++ b/pkgs/servers/osmocom/osmo-pcu/default.nix @@ -0,0 +1,48 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-pcu"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-pcu"; + rev = "${version}"; + hash = "sha256-wZLTDvqVxP0FXV0VQH5KuigwbgzBipwL5JkTDp5Mzrc="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom Packet control Unit (PCU): Network-side GPRS (RLC/MAC); BTS- or BSC-colocated"; + homepage = "https://osmocom.org/projects/osmopcu"; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-sgsn/default.nix b/pkgs/servers/osmocom/osmo-sgsn/default.nix new file mode 100644 index 000000000000..89afa75209b6 --- /dev/null +++ b/pkgs/servers/osmocom/osmo-sgsn/default.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, libosmoabis +, libosmo-netif +, osmo-hlr +, osmo-ggsn +, c-ares +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-ggsn"; + version = "1.10.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-sgsn"; + rev = "${version}"; + hash = "sha256-tjExV8XigPEZ5gOCEoWfjhtGJVa5Ja3GHnpSovradak="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + libosmoabis + libosmo-netif + osmo-hlr + osmo-ggsn + c-ares + ]; + + enableParallelBuilding = true; + + meta = { + description = "Osmocom implementation of the 3GPP Serving GPRS Support Node (SGSN)"; + homepage = "https://osmocom.org/projects/osmosgsn"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/osmocom/osmo-sip-connector/default.nix b/pkgs/servers/osmocom/osmo-sip-connector/default.nix new file mode 100644 index 000000000000..10546e95328d --- /dev/null +++ b/pkgs/servers/osmocom/osmo-sip-connector/default.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, libosmocore +, sofia_sip +, glib +}: + +let + inherit (stdenv) isLinux; +in + +stdenv.mkDerivation rec { + pname = "osmo-sip-connector"; + version = "1.6.2"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "osmo-sip-connector"; + rev = "${version}"; + hash = "sha256-vsPtNeh6Yi5fQb+E90OF4/Hnjl9T5nMf9EMBhzpIA2I="; + }; + + postPatch = '' + echo "${version}" > .tarball-version + ''; + + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libosmocore + sofia_sip + glib + ]; + + enableParallelBuilding = true; + + meta = { + description = "This implements an interface between the MNCC (Mobile Network Call Control) interface of OsmoMSC (and also previously OsmoNITB) and SIP"; + homepage = "https://osmocom.org/projects/osmo-sip-conector"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ janik ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/servers/search/elasticsearch/7.x.nix b/pkgs/servers/search/elasticsearch/7.x.nix index aad6403cf6ab..cd8ddeded826 100644 --- a/pkgs/servers/search/elasticsearch/7.x.nix +++ b/pkgs/servers/search/elasticsearch/7.x.nix @@ -18,10 +18,10 @@ let plat = elemAt info 1; shas = { - x86_64-linux = "7281b79f2bf7421c2d71ab4eecdfd517b86b6788d1651dad315198c564284ea9"; - x86_64-darwin = "6d2343171a0d384910312220aae3512f45e3d3d900557b736c139b8363a008e4"; - aarch64-linux = "3153820d53a454513b534765fef68ce1f61a2dd92d4dae7428a1220bb3ce8fe5"; - aarch64-darwin = "e62af7486c1041d3f1648646671d5c665e1abffd696cd2a5d96c2a5aaabe38f8"; + x86_64-linux = "f49d8fce010db83e6a89462535c71ba11a1153589038a7db430fc7db44178a55d5538dea80e6d4c690f4f0e838168965297c6a3ae31fbc5020af4d966067a90c"; + x86_64-darwin = "b7d87bfa2e1793354bfb51ea11bbeeb29cfba62633288c3ed4ab9eecc05d05953db9446e7ca46ffe63f5aa646a0534fb8f4aa897a59fa2ae7e200b824576d915"; + aarch64-linux = "aa9624c1777a8530f5eca4f75385de1a95ba8db3d56810cc1e134434438181580c32f5f46ab79094742d077e9b741cfb2549cda549147123dae14109e27a1443"; + aarch64-darwin = "191e04a1e440a5ad679d04f6d852a6ab26cb14870b8af38a2ab6a14251a7b6d1ed7646e33b87f4971bb04a68d767abaecaa8dba07e3ae29211f0a358bb499d61"; }; in stdenv.mkDerivation rec { @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch/${pname}-${version}-${plat}-${arch}.tar.gz"; - sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture"); + sha512 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture"); }; patches = [ ./es-home-6.x.patch ]; diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix index 3007eed03378..74aa4282a62e 100644 --- a/pkgs/servers/search/elasticsearch/plugins.nix +++ b/pkgs/servers/search/elasticsearch/plugins.nix @@ -38,7 +38,7 @@ in src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; sha256 = - if version == "7.17.4" then "a4e881d86694ae70ab6b18f72ea700415971200145d33d438e57c0374d9fc16f" + if version == "7.17.9" then "sha256-70KU7aGUHEZsjykXqHUYspGyX0CCrlS1er9WdUbxxSE=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -54,7 +54,7 @@ in src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; sha256 = - if version == "7.17.4" then "sha256-O6GCTwuxRrFFht9pQGg8G0O8wrFP2YnSaG02yy7NZ6I=" + if version == "7.17.9" then "sha256-oRTs1eK7jpoKaMvc+6rx9qiA8wg+gYUADM0HuJU0nOY=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -70,7 +70,7 @@ in src = fetchurl { url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip"; sha256 = - if version == "7.17.4" then "sha256-5tg4Lts++kL3QEnP+TM7NGR3EQH17H3KmhGHuhIGVqU=" + if version == "7.17.9" then "sha256-iY25apDkS6s0RoR9dVL2o/hFuUo6XhMzLjl8wDSFejk=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -86,7 +86,7 @@ in src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; sha256 = - if version == "7.17.4" then "1c8175b2dac54277c1f41981fb4a784829e74e6e74268381fe0c27bc6652704b" + if version == "7.17.9" then "sha256-xlEabvNiddEwRfKrHIq1QPFJFMd2gByurIZF9LOxVSs=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -102,7 +102,7 @@ in src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; sha256 = - if version == "7.17.4" then "702e446997bde5cb38af120a1cb4271d976fdd23444be49e53b6be3801d845a9" + if version == "7.17.9" then "sha256-J1q87fhL4A5tkxPADgHflPbO2RRMGPUk58l7DEpgd94=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -118,7 +118,7 @@ in src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; sha256 = - if version == "7.17.4" then "7d1574a585a9db0988ee248159d51f62cce5578a8c082096ef3e26efdb24aee7" + if version == "7.17.9" then "sha256-BhJtBdsT5Xapehfn0xaTWpSrvT1W+Hhv/yqliA6dBG8=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -134,7 +134,7 @@ in src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip"; sha256 = - if version == "7.17.4" then "cad923a662db705d40ca29698aa118e9e4cc50ae564c426a76d5acb777a4f57c" + if version == "7.17.9" then "sha256-bjVMVwZfj9WyjkwTXwTJdmaqZ1sWuvOZKXh9PFTOwb8=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -150,7 +150,7 @@ in src = fetchurl { url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip"; sha256 = - if version == "7.17.4" then "a50be4cea5c68ad7615f87d672ba160d027fdfde2be0578bb2dabd6384cc8108" + if version == "7.17.9" then "sha256-ZyImIHYOz5bOEA+ARtPB2CznTOSjFKsavzWXXEzfkO8=" else throw "unsupported version ${version} for plugin ${pluginName}"; }; meta = with lib; { @@ -166,13 +166,13 @@ in pluginName = "search-guard"; version = # https://docs.search-guard.com/latest/search-guard-versions - if esVersion == "7.17.4" then "${esVersion}-53.4.0" + if esVersion == "7.17.9" then "${esVersion}-53.6.0" else throw "unsupported version ${esVersion} for plugin ${pluginName}"; src = - if esVersion == "7.17.4" then + if esVersion == "7.17.9" then fetchurl { url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip"; - sha256 = "sha256-PIRzhkxYryAiPjdjAXeV+g+O4YmQ1oV31m2GMC1PXu0="; + sha256 = "sha256-HwxNvWvjqaI3ytSjNnsGcyt3omIZp69bgwxoufL2Nj8="; } else throw "unsupported version ${version} for plugin ${pluginName}"; meta = with lib; { diff --git a/pkgs/servers/sql/proxysql/default.nix b/pkgs/servers/sql/proxysql/default.nix index 3b495b533960..f32f6a9814ce 100644 --- a/pkgs/servers/sql/proxysql/default.nix +++ b/pkgs/servers/sql/proxysql/default.nix @@ -33,13 +33,13 @@ stdenv.mkDerivation rec { pname = "proxysql"; - version = "2.5.1"; + version = "2.5.2"; src = fetchFromGitHub { owner = "sysown"; repo = pname; rev = version; - hash = "sha256-Z85/oSV2TUKEoum09G6OHNw6K/Evt1wMCcleTcc96EY="; + hash = "sha256-KPTvFbEreWQBAs5ofcdVzlVqL0t5pM/mMLv4+E4lJ5M="; }; patches = [ diff --git a/pkgs/servers/sql/proxysql/makefiles.patch b/pkgs/servers/sql/proxysql/makefiles.patch index 63c0b32c8b10..ed16c9d64703 100644 --- a/pkgs/servers/sql/proxysql/makefiles.patch +++ b/pkgs/servers/sql/proxysql/makefiles.patch @@ -1,5 +1,5 @@ diff --git a/Makefile b/Makefile -index e7dae058..09c28859 100644 +index df7ed196..3a3b393d 100644 --- a/Makefile +++ b/Makefile @@ -57,11 +57,7 @@ endif @@ -36,7 +36,7 @@ index e7dae058..09c28859 100644 install -m 0755 etc/init.d/proxysql /etc/init.d ifeq ($(DISTRO),"CentOS Linux") diff --git a/deps/Makefile b/deps/Makefile -index 55a45ba9..8443d439 100644 +index 47c0f3c3..80d33d11 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -66,10 +66,7 @@ endif @@ -56,28 +56,28 @@ index 55a45ba9..8443d439 100644 libssl/openssl/libssl.a: - cd libssl && rm -rf openssl-openssl-*/ openssl-3*/ || true - cd libssl && tar -zxf openssl-*.tar.gz - cd libssl/openssl && patch crypto/ec/curve448/curve448.c < ../curve448.c-multiplication-overflow.patch - cd libssl/openssl && patch crypto/asn1/a_time.c < ../a_time.c-multiplication-overflow.patch + # cd libssl/openssl && patch crypto/ec/curve448/curve448.c < ../curve448.c-multiplication-overflow.patch + # cd libssl/openssl && patch crypto/asn1/a_time.c < ../a_time.c-multiplication-overflow.patch cd libssl/openssl && ./config no-ssl3 no-tests -@@ -95,8 +90,6 @@ libssl: libssl/openssl/libssl.a - +@@ -103,8 +98,6 @@ ifeq ($(MIN_VERSION),$(lastword $(SORTED_VERSIONS))) + endif libhttpserver/libhttpserver/build/src/.libs/libhttpserver.a: libmicrohttpd/libmicrohttpd/src/microhttpd/.libs/libmicrohttpd.a re2/re2/obj/libre2.a - cd libhttpserver && rm -rf libhttpserver-*/ || true - cd libhttpserver && tar -zxf libhttpserver-*.tar.gz + #ifeq ($(REQUIRE_PATCH), true) cd libhttpserver/libhttpserver && patch -p1 < ../noexcept.patch cd libhttpserver/libhttpserver && patch -p1 < ../re2_regex.patch - cd libhttpserver/libhttpserver && patch -p1 < ../final_val_post_process.patch -@@ -112,8 +105,6 @@ libhttpserver: libhttpserver/libhttpserver/build/src/.libs/libhttpserver.a +@@ -122,8 +115,6 @@ libhttpserver: libhttpserver/libhttpserver/build/src/.libs/libhttpserver.a libev/libev/.libs/libev.a: - cd libev && rm -rf libev-*/ || true - cd libev && tar -zxf libev-*.tar.gz - # cd libev/libev && patch ev.c < ../ev.c-multiplication-overflow.patch + cd libev/libev && patch ev.c < ../ev.c-multiplication-overflow.patch cd libev/libev && ./configure cd libev/libev && CC=${CC} CXX=${CXX} ${MAKE} -@@ -122,8 +113,6 @@ ev: libev/libev/.libs/libev.a +@@ -132,8 +123,6 @@ ev: libev/libev/.libs/libev.a curl/curl/lib/.libs/libcurl.a: libssl/openssl/libssl.a @@ -86,7 +86,7 @@ index 55a45ba9..8443d439 100644 # cd curl/curl && ./configure --disable-debug --disable-ftp --disable-ldap --disable-ldaps --disable-rtsp --disable-proxy --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smb --disable-smtp --disable-gopher --disable-manual --disable-ipv6 --disable-sspi --disable-crypto-auth --disable-ntlm-wb --disable-tls-srp --without-nghttp2 --without-libidn2 --without-libssh2 --without-brotli --with-ssl=$(shell pwd)/../../libssl/openssl/ && CC=${CC} CXX=${CXX} ${MAKE} # cd curl/curl && patch configure < ../configure.patch cd curl/curl && autoreconf -fi -@@ -133,16 +122,6 @@ curl: curl/curl/lib/.libs/libcurl.a +@@ -143,16 +132,6 @@ curl: curl/curl/lib/.libs/libcurl.a libmicrohttpd/libmicrohttpd/src/microhttpd/.libs/libmicrohttpd.a: @@ -103,18 +103,16 @@ index 55a45ba9..8443d439 100644 ifeq ($(UNAME_S),Darwin) cd libmicrohttpd/libmicrohttpd && patch src/microhttpd/mhd_sockets.c < ../mhd_sockets.c-issue-5977.patch endif -@@ -159,10 +138,7 @@ cityhash/cityhash/src/.libs/libcityhash.a: +@@ -171,8 +150,6 @@ cityhash: cityhash/cityhash/src/.libs/libcityhash.a - cityhash: cityhash/cityhash/src/.libs/libcityhash.a -- lz4/lz4/lib/liblz4.a: - cd lz4 && rm -rf lz4-*/ || true - cd lz4 && tar -zxf lz4-*.tar.gz cd lz4/lz4 && CC=${CC} CXX=${CXX} ${MAKE} lz4: lz4/lz4/lib/liblz4.a -@@ -187,8 +163,6 @@ clickhouse-cpp: clickhouse-cpp/clickhouse-cpp/clickhouse/libclickhouse-cpp-lib-s +@@ -197,8 +174,6 @@ clickhouse-cpp: clickhouse-cpp/clickhouse-cpp/clickhouse/libclickhouse-cpp-lib-s libdaemon/libdaemon/libdaemon/.libs/libdaemon.a: @@ -123,7 +121,7 @@ index 55a45ba9..8443d439 100644 cd libdaemon/libdaemon && cp ../config.guess . && chmod +x config.guess && cp ../config.sub . && chmod +x config.sub && ./configure --disable-examples cd libdaemon/libdaemon && CC=${CC} CXX=${CXX} ${MAKE} -@@ -265,8 +239,6 @@ sqlite3: sqlite3/sqlite3/sqlite3.o +@@ -282,8 +257,6 @@ sqlite3: sqlite3/sqlite3/sqlite3.o libconfig/libconfig/lib/.libs/libconfig++.a: @@ -132,7 +130,7 @@ index 55a45ba9..8443d439 100644 cd libconfig/libconfig && ./configure --disable-examples cd libconfig/libconfig && CC=${CC} CXX=${CXX} ${MAKE} -@@ -274,9 +246,6 @@ libconfig: libconfig/libconfig/lib/.libs/libconfig++.a +@@ -291,9 +264,6 @@ libconfig: libconfig/libconfig/lib/.libs/libconfig++.a prometheus-cpp/prometheus-cpp/lib/libprometheus-cpp-core.a: @@ -142,7 +140,7 @@ index 55a45ba9..8443d439 100644 cd prometheus-cpp/prometheus-cpp && patch -p1 < ../serial_exposer.patch cd prometheus-cpp/prometheus-cpp && patch -p1 < ../registry_counters_reset.patch cd prometheus-cpp/prometheus-cpp && patch -p1 < ../fix_old_distros.patch -@@ -287,11 +256,6 @@ prometheus-cpp: prometheus-cpp/prometheus-cpp/lib/libprometheus-cpp-core.a +@@ -304,10 +274,6 @@ prometheus-cpp: prometheus-cpp/prometheus-cpp/lib/libprometheus-cpp-core.a re2/re2/obj/libre2.a: @@ -150,17 +148,15 @@ index 55a45ba9..8443d439 100644 - cd re2 && tar -zxf re2-*.tar.gz -# cd re2/re2 && sed -i -e 's/-O3 -g /-O3 -fPIC /' Makefile -# cd re2/re2 && patch util/mutex.h < ../mutex.h.patch --# cd re2/re2 && patch re2/onepass.cc < ../onepass.cc-multiplication-overflow.patch + cd re2/re2 && patch re2/onepass.cc < ../onepass.cc-multiplication-overflow.patch ifeq ($(UNAME_S),Darwin) cd re2/re2 && sed -i '' -e 's/-O3 -g/-O3 -g -std=c++11 -fPIC -DMEMORY_SANITIZER -DRE2_ON_VALGRIND /' Makefile - # cd re2/re2 && sed -i '' -e 's/RE2_CXXFLAGS?=-std=c++11 /RE2_CXXFLAGS?=-std=c++11 -fPIC /' Makefile -@@ -305,9 +269,6 @@ re2: re2/re2/obj/libre2.a +@@ -322,8 +288,6 @@ re2: re2/re2/obj/libre2.a pcre/pcre/.libs/libpcre.a: - cd pcre && rm -rf pcre-*/ || true - cd pcre && tar -zxf pcre-*.tar.gz --# cd pcre/pcre && patch pcretest.c < ../pcretest.c-multiplication-overflow.patch + cd pcre/pcre && patch pcretest.c < ../pcretest.c-multiplication-overflow.patch cd pcre/pcre && ./configure cd pcre/pcre && CC=${CC} CXX=${CXX} ${MAKE} - diff --git a/pkgs/tools/admin/winbox/default.nix b/pkgs/tools/admin/winbox/default.nix index 699e7a0d3561..6c9b9290494d 100644 --- a/pkgs/tools/admin/winbox/default.nix +++ b/pkgs/tools/admin/winbox/default.nix @@ -1,8 +1,6 @@ { lib -, stdenv , fetchurl , makeDesktopItem -, makeWrapper , symlinkJoin , writeShellScriptBin , wine @@ -12,15 +10,15 @@ let inherit (lib) last splitString; pname = "winbox"; - version = "3.37"; + version = "3.38"; name = "${pname}-${version}"; executable = fetchurl (if (wine.meta.mainProgram == "wine64") then { url = "https://download.mikrotik.com/winbox/${version}/winbox64.exe"; - sha256 = "0fbl0i5ga9afg8mklm9xqidcr388sca00slj401npwh9b3j9drmb"; + sha256 = "RV+j8FQigpwPprR2xuMYpDRMDwugSZD+O2ZmyPZDz54="; } else { url = "https://download.mikrotik.com/winbox/${version}/winbox.exe"; - sha256 = "1zla30bc755x5gfv9ff1bgjvpsjmg2d7jsjxnwwy679fry4n4cwl"; + sha256 = "dh3P+otukhnEpVTqTu16MgIHVnJbzp4Voj+wZ3r5Fxg="; }); # This is from the winbox AUR package: diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix index c389d9158d0f..223fa567d1d0 100644 --- a/pkgs/tools/misc/bdf2psf/default.nix +++ b/pkgs/tools/misc/bdf2psf/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "bdf2psf"; - version = "1.218"; + version = "1.220"; src = fetchurl { url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb"; - sha256 = "sha256-pHL3Q/qOLq8AAmMuNoGRzz+c1xQxJk/6+t6u3EdWqMY="; + sha256 = "sha256-cDpHYuWe3tAh7QSfeYEV4XsUBccdTs3b+0xYYrPKmR4="; }; nativeBuildInputs = [ dpkg ]; diff --git a/pkgs/tools/misc/graylog/3.3.nix b/pkgs/tools/misc/graylog/3.3.nix new file mode 100644 index 000000000000..fc93b9fc5829 --- /dev/null +++ b/pkgs/tools/misc/graylog/3.3.nix @@ -0,0 +1,9 @@ +{ callPackage, lib }: +let + buildGraylog = callPackage ./graylog.nix {}; +in buildGraylog { + version = "3.3.16"; + sha256 = "sha256-P/cnfYKnMSnDD4otEyirKlLaFduyfSO9sao4BY3c3Z4="; + maintainers = [ lib.maintainers.fadenb ]; + license = lib.licenses.gpl3; +} diff --git a/pkgs/tools/misc/graylog/4.0.nix b/pkgs/tools/misc/graylog/4.0.nix new file mode 100644 index 000000000000..cae23dd431d7 --- /dev/null +++ b/pkgs/tools/misc/graylog/4.0.nix @@ -0,0 +1,9 @@ +{ callPackage, lib, ...}: +let + buildGraylog = callPackage ./graylog.nix {}; +in buildGraylog { + version = "4.0.8"; + sha256 = "sha256-1JlJNJSU1wJiztLhYD87YM/7p3YCBXBKerEo/xfumUg="; + maintainers = [ lib.maintainers.f2k1de ]; + license = lib.licenses.sspl; +} diff --git a/pkgs/tools/misc/graylog/4.3.nix b/pkgs/tools/misc/graylog/4.3.nix new file mode 100644 index 000000000000..1bd2ed3ec70d --- /dev/null +++ b/pkgs/tools/misc/graylog/4.3.nix @@ -0,0 +1,9 @@ +{ callPackage, lib, ...}: +let + buildGraylog = callPackage ./graylog.nix {}; +in buildGraylog { + version = "4.3.9"; + sha256 = "sha256-BMw6U47LQQFFVM34rgadMetpYTtj6R3E+uU0dtTcH64="; + maintainers = [ lib.maintainers.f2k1de ]; + license = lib.licenses.sspl; +} diff --git a/pkgs/tools/misc/graylog/5.0.nix b/pkgs/tools/misc/graylog/5.0.nix new file mode 100644 index 000000000000..d13c682d7c75 --- /dev/null +++ b/pkgs/tools/misc/graylog/5.0.nix @@ -0,0 +1,9 @@ +{ callPackage, lib, ...}: +let + buildGraylog = callPackage ./graylog.nix {}; +in buildGraylog { + version = "5.0.6"; + sha256 = "sha256-GOxiGx2BU4x4A9W0k94gqXlhRwoixm0WK0UZN+LXkyQ="; + maintainers = [ lib.maintainers.f2k1de ]; + license = lib.licenses.sspl; +} diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix deleted file mode 100644 index 99f130b3e5df..000000000000 --- a/pkgs/tools/misc/graylog/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchurl, makeWrapper, openjdk11_headless, nixosTests }: - -stdenv.mkDerivation rec { - pname = "graylog"; - version = "3.3.16"; - - src = fetchurl { - url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz"; - sha256 = "sha256-P/cnfYKnMSnDD4otEyirKlLaFduyfSO9sao4BY3c3Z4="; - }; - - dontBuild = true; - dontStrip = true; - - nativeBuildInputs = [ makeWrapper ]; - makeWrapperArgs = [ "--set-default" "JAVA_HOME" "${openjdk11_headless}" ]; - - passthru.tests = { inherit (nixosTests) graylog; }; - - installPhase = '' - mkdir -p $out - cp -r {graylog.jar,lib,bin,plugin} $out - wrapProgram $out/bin/graylogctl $makeWrapperArgs - ''; - - meta = with lib; { - description = "Open source log management solution"; - homepage = "https://www.graylog.org/"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.gpl3; - maintainers = [ maintainers.fadenb ]; - mainProgram = "graylogctl"; - platforms = platforms.unix; - }; -} diff --git a/pkgs/tools/misc/graylog/graylog.nix b/pkgs/tools/misc/graylog/graylog.nix new file mode 100644 index 000000000000..4608d6fa3f57 --- /dev/null +++ b/pkgs/tools/misc/graylog/graylog.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, makeWrapper, openjdk11_headless, openjdk17_headless, systemd, nixosTests}: + +{ version, sha256, maintainers, license }: +stdenv.mkDerivation rec { + pname = "graylog_${lib.versions.majorMinor version}"; + inherit version; + + src = fetchurl { + url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz"; + inherit sha256; + }; + + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + makeWrapperArgs = [ + "--set-default" "JAVA_HOME" "${if (lib.versionAtLeast version "5.0") then openjdk17_headless else openjdk11_headless}" + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ systemd ]}" + ]; + + passthru.tests = { inherit (nixosTests) graylog; }; + + installPhase = '' + mkdir -p $out + cp -r {graylog.jar,bin,plugin} $out + '' + lib.optionalString (lib.versionOlder version "4.3") '' + cp -r lib $out + '' + '' + wrapProgram $out/bin/graylogctl $makeWrapperArgs + ''; + + meta = with lib; { + description = "Open source log management solution"; + homepage = "https://www.graylog.org/"; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; + inherit license; + inherit maintainers; + mainProgram = "graylogctl"; + platforms = platforms.unix; + }; +} diff --git a/pkgs/tools/misc/graylog/plugins.nix b/pkgs/tools/misc/graylog/plugins.nix index 756484234d6e..205576584581 100644 --- a/pkgs/tools/misc/graylog/plugins.nix +++ b/pkgs/tools/misc/graylog/plugins.nix @@ -1,6 +1,6 @@ -{ pkgs, lib, stdenv, fetchurl, unzip, graylog }: +{ lib, stdenv, fetchurl, unzip, graylog-5_0 }: -with pkgs.lib; +with lib; let glPlugin = a@{ @@ -17,7 +17,7 @@ let dontUnpack = true; nativeBuildInputs = [ unzip ]; meta = a.meta // { - platforms = graylog.meta.platforms; + platforms = graylog-5_0.meta.platforms; maintainers = (a.meta.maintainers or []) ++ [ maintainers.fadenb ]; sourceProvenance = with sourceTypes; [ binaryBytecode ]; }; diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix index cdf810d2a209..c462a02f22b3 100644 --- a/pkgs/tools/misc/logstash/7.x.nix +++ b/pkgs/tools/misc/logstash/7.x.nix @@ -16,14 +16,14 @@ let shas = if enableUnfree then { - x86_64-linux = "35e50e05fba0240aa5b138bc1c81f67addaf557701f8df41c682b5bc708f7455"; - x86_64-darwin = "698b6000788e123b647c988993f710c6d9bc44eb8c8e6f97d6b18a695a61f0a6"; - aarch64-linux = "69694856fde11836eb1613bf3a2ba31fbdc933f58c8527b6180f6122c8bb528b"; + x86_64-linux = "a43d592e70f023a594f31a3fba365a9cca6611599bd61f998cb1fc38ddd177d459bce23eaf54f811fe0a87a47cdd4bf4b4d4c8008dab1ac03173371f63b91b6c"; + x86_64-darwin = "7f7d89f438400da178b30f345b6ebc80f55f87f38b8925ca8c9dea86f0e2f23f70ccab03fdef5b83c085f1441e77592aab05006d163bc2af1920e1cc0ebdfc17"; + aarch64-linux = "3c74d622c362e3aa72442a477ef34b0eb9131f5b550166d0f7f422bd3678acf07d75c702691d6606e5501f4b40854a352398d1c2813f1fb0a152663d75d5658b"; } else { - x86_64-linux = "3a2da2e63bc08ee1886db29c80103c669d3ed6960290b8b97d771232769f282e"; - x86_64-darwin = "655ab873e16257827f884f67b66d62c4da40a895d06206faa435615ad0a56796"; - aarch64-linux = "235cf57afb619801808d5fe1bff7e01a4a9b29f77723566e5371b5f3b2bf8fad"; + x86_64-linux = "7c3f9867853582e5d06b9f895b4740abf56a9b6ce34dfbfb624cf9a4b956f489145cd13f3194a7fb16efc52410f55e797c269dc2957a35bdebf9e1aaa3547eaa"; + x86_64-darwin = "d81c20317a7c163e42f5aad9e148505a64bba8565ff913650a840918b80e6aadde071596e569b0c8f965810b821779ca3d00f9a7cb24a5c86fff571ca9227c38"; + aarch64-linux = "93d9700fc3dd99bc918be19fe41ef60b9071eadcc6fd57833dbf1fff2e0f2419c62f3493a0454f215b0dfd30cec90f1aca5eeff15c4eb3a583519dc9a69e896a"; }; this = stdenv.mkDerivation rec { version = elk7Version; @@ -32,7 +32,7 @@ let src = fetchurl { url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}-${plat}-${arch}.tar.gz"; - sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture"); + sha512 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture"); }; dontBuild = true; diff --git a/pkgs/tools/networking/phantomsocks/default.nix b/pkgs/tools/networking/phantomsocks/default.nix index fc8fef3a14b8..6f3c3ad9a336 100644 --- a/pkgs/tools/networking/phantomsocks/default.nix +++ b/pkgs/tools/networking/phantomsocks/default.nix @@ -1,6 +1,11 @@ { lib , buildGoModule , fetchFromGitHub +, stdenv +, libpcap +# Cann't be build with both pcap and rawsocket tags +, withPcap ? (!stdenv.isLinux && !withRawsocket) +, withRawsocket ? (stdenv.isLinux && !withPcap) }: buildGoModule rec { @@ -16,6 +21,13 @@ buildGoModule rec { vendorHash = "sha256-c0NQfZuMMWz1ASwFBcpMNjxZwXLo++gMYBiNgvT8ZLQ="; + ldflags = [ + "-s" "-w" + ]; + buildInputs = lib.optional withPcap libpcap; + tags = lib.optional withPcap "pcap" + ++ lib.optional withRawsocket "rawsocket"; + meta = with lib;{ homepage = "https://github.com/macronut/phantomsocks"; description = "A cross-platform proxy client/server for Linux/Windows/macOS"; diff --git a/pkgs/tools/text/ov/default.nix b/pkgs/tools/text/ov/default.nix index ab8db6fbea45..bbe9dea8b7b3 100644 --- a/pkgs/tools/text/ov/default.nix +++ b/pkgs/tools/text/ov/default.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "ov"; - version = "0.15.0"; + version = "0.22.0"; src = fetchFromGitHub { owner = "noborus"; repo = "ov"; rev = "refs/tags/v${version}"; - hash = "sha256-gL2Gz7ziy6YfAiGuvyg7P9wUBST/Hy6/vmpQN9tdv3g="; + hash = "sha256-+yxWvh9UjbGdMl8jyEi/ZqsnDWuIci/ZZ+RNFS/yxoo="; }; - vendorHash = "sha256-BM9XnjAiX3qAukqwbl3Aij1scKU2+txx4SHC8aHaS/Q="; + vendorHash = "sha256-bQREazHu0SQrMKyNPtUvzeKR/zb0FJOLpHBwHml43Hs="; ldflags = [ "-X main.Version=v${version}" diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix index a22c3b921e84..71c81a43ef39 100644 --- a/pkgs/tools/typesetting/tex/texlive/combine.nix +++ b/pkgs/tools/typesetting/tex/texlive/combine.nix @@ -15,13 +15,15 @@ let ]; }; pkgList = rec { - all = lib.filter pkgFilter (combinePkgs (lib.attrValues pkgSet)); + combined = combinePkgs (lib.attrValues pkgSet); + all = lib.filter pkgFilter combined; splitBin = builtins.partition (p: p.tlType == "bin") all; bin = splitBin.right ++ lib.optional (lib.any (p: p.tlType == "run" && p.pname == "pdfcrop") splitBin.wrong) (lib.getBin ghostscript); nonbin = splitBin.wrong; + tlpkg = lib.filter (pkg: pkg.tlType == "tlpkg") combined; # extra interpreters needed for shebangs, based on 2015 schemes "medium" and "tetex" # (omitted tk needed in pname == "epspdf", bin/epspdftk) @@ -35,11 +37,8 @@ let name = "texlive-${extraName}-${bin.texliveYear}${extraVersion}"; - texmfroot = (buildEnv { - name = "${name}-texmfroot"; - - # the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist (e.g. fmtutil, updmap look for perl modules there) - extraPrefix = "/texmf-dist"; + texmfdist = (buildEnv { + name = "${name}-texmfdist"; # remove fake derivations (without 'outPath') to avoid undesired build dependencies paths = lib.catAttrs "outPath" pkgList.nonbin; @@ -48,16 +47,32 @@ let postBuild = # generate ls-R database '' - perl -I "${bin.core.out}/share/texmf-dist/scripts/texlive" \ - -- "$out/texmf-dist/scripts/texlive/mktexlsr.pl" --sort "$out"/texmf-dist + perl "$out/scripts/texlive/mktexlsr.pl" --sort "$out" ''; }).overrideAttrs (_: { allowSubstitutes = true; }); + tlpkg = (buildEnv { + name = "${name}-tlpkg"; + + # remove fake derivations (without 'outPath') to avoid undesired build dependencies + paths = lib.catAttrs "outPath" pkgList.tlpkg; + }).overrideAttrs (_: { allowSubstitutes = true; }); + + # the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist + # and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both) + texmfroot = runCommand "${name}-texmfroot" { + inherit texmfdist tlpkg; + } '' + mkdir -p "$out" + ln -s "$texmfdist" "$out"/texmf-dist + ln -s "$tlpkg" "$out"/tlpkg + ''; + # expose info and man pages in usual /share/{info,man} location doc = buildEnv { name = "${name}-doc"; - paths = [ (texmfroot.outPath + "/texmf-dist/doc") ]; + paths = [ (texmfdist.outPath + "/doc") ]; extraPrefix = "/share"; pathsToLink = [ @@ -76,6 +91,9 @@ in (buildEnv { paths = lib.catAttrs "outPath" pkgList.bin ++ [ doc ]; pathsToLink = [ "/" + "/share/texmf-var/scripts" + "/share/texmf-var/tex/generic/config" + "/share/texmf-var/web2c" "/bin" # ensure these are writeable directories ]; @@ -91,9 +109,8 @@ in (buildEnv { postBuild = '' TEXMFROOT="${texmfroot}" - TEXMFDIST="${texmfroot}/texmf-dist" + TEXMFDIST="${texmfdist}" export PATH="$out/bin:$PATH" - export PERL5LIB="${bin.core.out}/share/texmf-dist/scripts/texlive" # modules otherwise found in tlpkg/ of texlive.infra TEXMFSYSCONFIG="$out/share/texmf-config" TEXMFSYSVAR="$out/share/texmf-var" export TEXMFCNF="$TEXMFSYSVAR/web2c" @@ -199,7 +216,6 @@ in (buildEnv { rm "$link" makeWrapper "$target" "$link" \ --prefix PATH : "${gnused}/bin:${gnugrep}/bin:${coreutils}/bin:$out/bin:${perl}/bin" \ - --prefix PERL5LIB : "$PERL5LIB" \ --set-default TEXMFCNF "$TEXMFCNF" \ --set-default FONTCONFIG_FILE "${ # neccessary for XeTeX to find the fonts distributed with texlive @@ -232,16 +248,29 @@ in (buildEnv { done } '' + + # texlive postactions (see TeXLive::TLUtils::_do_postaction_script) + (lib.concatMapStrings (pkg: '' + postaction='${pkg.postactionScript}' + case "$postaction" in + *.pl) postInterp=perl ;; + *.texlua) postInterp=texlua ;; + *) postInterp= ;; + esac + echo "postaction install script for ${pkg.pname}: ''${postInterp:+$postInterp }$postaction install $TEXMFROOT" + $postInterp "$TEXMFROOT/$postaction" install "$TEXMFROOT" + '') (lib.filter (pkg: pkg ? postactionScript) pkgList.tlpkg)) + # texlive post-install actions '' ln -sf "$TEXMFDIST"/scripts/texlive/updmap.pl "$out"/bin/updmap + ln -sf "$TEXMFDIST"/scripts/texlive/fmtutil.pl "$out"/bin/fmtutil '' + # now hack to preserve "$0" for mktexfmt '' - cp "$TEXMFDIST"/scripts/texlive/fmtutil.pl "$out/bin/fmtutil" - patchShebangs "$out/bin/fmtutil" - ln -sf fmtutil "$out/bin/mktexfmt" - + cp "$TEXMFDIST"/scripts/texlive/fmtutil.pl "$TEXMFSYSVAR"/scripts/mktexfmt + ln -sf "$TEXMFSYSVAR"/scripts/mktexfmt "$out"/bin/mktexfmt + '' + + # generate formats + '' texlinks "$out/bin" && wrapBin # many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1 @@ -250,7 +279,7 @@ in (buildEnv { # https://salsa.debian.org/live-team/live-build/-/blob/master/examples/hooks/reproducible/2006-reproducible-texlive-binaries-fmt-files.hook.chroot#L52 # note that calling faketime and fmtutil is fragile (faketime uses LD_PRELOAD, fmtutil calls /bin/sh, causing potential glibc issues on non-NixOS) # so we patch fmtutil to use faketime, rather than calling faketime fmtutil - substitute "$out/bin/fmtutil" fmtutil \ + substitute "$TEXMFDIST"/scripts/texlive/fmtutil.pl fmtutil \ --replace 'my $cmdline = "$eng -ini ' 'my $cmdline = "faketime -f '"'"'\@1980-01-01 00:00:00 x0.001'"'"' $eng -ini ' FORCE_SOURCE_DATE=1 TZ= perl fmtutil --sys --all | grep '^fmtutil' # too verbose #texlinks "$out/bin" && wrapBin # do we need to regenerate format links? @@ -280,7 +309,6 @@ in (buildEnv { # * ./bin/repstopdf needs to be a symlink to be processed by wrapBin '' if [[ -e "$out"/bin/epstopdf ]]; then - mkdir -p "$TEXMFSYSVAR/scripts" cp "$out"/bin/epstopdf "$TEXMFSYSVAR"/scripts/repstopdf ln -s "$TEXMFSYSVAR"/scripts/repstopdf "$out"/bin/repstopdf fi diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix index a5cc1eb8e271..972462c1d5db 100644 --- a/pkgs/tools/typesetting/tex/texlive/default.nix +++ b/pkgs/tools/typesetting/tex/texlive/default.nix @@ -23,7 +23,7 @@ let # function for creating a working environment from a set of TL packages combine = import ./combine.nix { - inherit bin combinePkgs buildEnv lib makeWrapper writeText + inherit bin combinePkgs buildEnv lib makeWrapper writeText runCommand stdenv python3 ruby perl gnused gnugrep coreutils libfaketime makeFontsConf; ghostscript = ghostscript_headless; }; @@ -39,9 +39,8 @@ let overridden = orig // { # overrides of texlive.tlpdb - texlive-msg-translations = orig.texlive-msg-translations // { - hasRunfiles = false; # only *.po for tlmgr - }; + # only *.po for tlmgr + texlive-msg-translations = builtins.removeAttrs orig.texlive-msg-translations [ "hasTlpkg" ]; xdvi = orig.xdvi // { # it seems to need it to transform fonts deps = (orig.xdvi.deps or []) ++ [ "metafont" ]; @@ -82,8 +81,6 @@ let }; # overrides in lib.mapAttrs mkTLPkg overridden; - # TODO: texlive.infra for web2c config? - # create a TeX package: an attribute set { pkgs = [ ... ]; ... } where pkgs is a list of derivations mkTLPkg = pname: attrs: @@ -91,12 +88,12 @@ let version = attrs.version or (toString attrs.revision); mkPkgV = tlType: let pkg = attrs // { - sha512 = attrs.sha512.${tlType}; + sha512 = attrs.sha512.${if tlType == "tlpkg" then "run" else tlType}; inherit pname tlType version; }; in mkPkg pkg; in { - # TL pkg contains lists of packages: runtime files, docs, sources, binaries + # TL pkg contains lists of packages: runtime files, docs, sources, tlpkg, binaries pkgs = # tarball of a collection/scheme itself only contains a tlobj file [( if (attrs.hasRunfiles or false) then mkPkgV "run" @@ -111,6 +108,7 @@ let )] ++ lib.optional (attrs.sha512 ? doc) (mkPkgV "doc") ++ lib.optional (attrs.sha512 ? source) (mkPkgV "source") + ++ lib.optional (attrs.hasTlpkg or false) (mkPkgV "tlpkg") ++ lib.optional (bin ? ${pname}) ( bin.${pname} // { tlType = "bin"; } ); }; @@ -161,8 +159,8 @@ let mkPkg = { pname, tlType, revision, version, sha512, postUnpack ? "", stripPrefix ? 1, ... }@args: let # the basename used by upstream (without ".tar.xz" suffix) - urlName = pname + lib.optionalString (tlType != "run") ".${tlType}"; - tlName = urlName + "-${version}"; + urlName = pname + lib.optionalString (tlType != "run" && tlType != "tlpkg") ".${tlType}"; + tlName = urlName + lib.optionalString (tlType == "tlpkg") ".tlpkg" + "-${version}"; fixedHash = fixedHashes.${tlName} or null; # be graceful about missing hashes urls = args.urls or (if args ? url then [ args.url ] else @@ -171,7 +169,7 @@ let in runCommand "texlive-${tlName}" ( { src = fetchurl { inherit urls sha512; }; - inherit stripPrefix; + inherit stripPrefix tlType; # metadata for texlive.combine passthru = { inherit pname tlType version; @@ -180,6 +178,8 @@ let } // lib.optionalAttrs (tlType == "run") { hasFormats = args.hasFormats or false; hasHyphens = args.hasHyphens or false; + } // lib.optionalAttrs (tlType == "tlpkg" && args ? postactionScript) { + postactionScript = args.postactionScript; }; } // lib.optionalAttrs (fixedHash != null) { outputHash = fixedHash; @@ -189,9 +189,16 @@ let ) ( '' mkdir "$out" - tar -xf "$src" \ - --strip-components="$stripPrefix" \ - -C "$out" --anchored --exclude=tlpkg --keep-old-files + if [[ "$tlType" == "tlpkg" ]]; then + tar -xf "$src" \ + --strip-components=1 \ + -C "$out" --anchored --exclude=tlpkg/tlpobj --exclude=tlpkg/installer --exclude=tlpkg/gpg --keep-old-files \ + tlpkg + else + tar -xf "$src" \ + --strip-components="$stripPrefix" \ + -C "$out" --anchored --exclude=tlpkg --keep-old-files + fi '' + postUnpack ); diff --git a/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix b/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix index 266800a03bb6..2236d169cce8 100644 --- a/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix +++ b/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix @@ -1,4 +1,7 @@ { +"texlive.infra-63645"="127ff11k8hamywgvvb4apbg1ra64ig7sghg0qqn8c913mqgxf844"; +"texlive.infra.doc-63645"="1c9xqbbbn2h7v76kp7bhjwk1g3zzykgdrkrslrzrrhs9x7laicl4"; +"texlive.infra.tlpkg-63645"="135cgamyq6dnffa7r8xvyr8krx65gqdgy88v3wwprqwz4dfhvzpi"; "amsfonts-3.04"="0l3ypclhv5qdpcpy29xwda2m3cjfn5l996agas6yhpdr2m58q211"; "amsfonts.doc-3.04"="1v7chx5rvvqmcf7j35qi55wxwxkbfkbv34b15yrgn6bflniziicm"; "amsfonts.source-3.04"="064gndy9lnmsq2srw5hh97sbdk8gk0qv9zzki00ms3c6rzhd9sjl"; @@ -12,6 +15,7 @@ "colorprofiles.doc-20181105"="152vrbm5km4ymj5h41x8cjyypj06g4xq3vyvmgakai9qz270dvyz"; "dvipdfmx-61101"="0i83g2476bp3zfgdvg11kmls969ip36z1d4w592946547ar2akmv"; "dvipdfmx.doc-61101"="04zmlbpiclcd6bsxzq2xcssrbnla9wxvw4fx4p52lkija91qv848"; +"dvipdfmx.tlpkg-61101"="1b9wcx70n7dip0yhp7sh3j4g0rkwg03w6hr2mav07219kp0bw75k"; "glyphlist-54074"="12nmmyh77vr2622lzi11nm1z1k2bxs7jz018yl4rwjlpg0sxg1ja"; "dvips-62387"="0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw"; "dvips.doc-62387"="0cf5rdlg25lvyk7vzhyxnwfbgb5ngm8z4kzvj2y0hhq9jz9szpyj"; @@ -65,8 +69,10 @@ "texlive-en.doc-65770"="05i4ggfi558frkjhxrrkjzd3x8ff1zm2qk056a23v736a5hg9y2m"; "texlive-scripts-66570"="0hl1vjr4hr7q7s2pvizicmabb185df5rl84cjsz0ki7vai5mh7pq"; "texlive-scripts.doc-66570"="0zvji7w8zvykmy97yim0yx0m05pazg0f60bbls0lb3mnx7rx8imj"; +"texlive-scripts.tlpkg-66570"="0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5"; "tlshell-62795"="06zjawsk91jknic542k9gw74pdfb1lv2iil09rpv9fw2i58lxsg9"; "tlshell.doc-62795"="1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz"; +"tlshell.tlpkg-62795"="0zvpmmf9dnjz64adb4dn615qyd1d09hqj2kvm898009697r20lh7"; "aaai-named-52470"="1xs2iki0v1mh0kbqjxnv9r24bcfmgj6myfw7h368h8g0s1n8d5v6"; "aichej-15878"="1pr92pq3yjsrbax6ah01cqg7131fp2rkqqjnxwcrm4119z2ic0gf"; "ajl-34016"="1xkrvy06lw4ngj94zybs14ysal2pg7g71h864gq9bjw0zwq2yjzs"; @@ -847,6 +853,7 @@ "stmaryrd.source-22027"="1wmn7bwahn28lwipkpsla74wn3a018808rmh7yvxdkbxfbzcwqcz"; "xetex-62387"="09124rd2k40dihk4c1pidkd44rvhv1b0ain1bfk5ry1032ky7wly"; "xetex.doc-62387"="1zj2mwi7rlibadwy42f1jkgzni6wvz01rwd5d7w48x00sjxhckxj"; +"xetex.tlpkg-62387"="01xia61wywddd2aa8xv703z1fb6sz4n13gvpbk7kync4dmki8v48"; "xetexconfig-45845"="1253njshiwdayzq0xir9cmbi8syhjb3sc4pyrw9p6kzyqvckkcxm"; "context-account-47085"="1j1rvgcznn8c637dayxpdagpwjq6fbn52sjmrb0wn4gd4b4q3nk8"; "context-account.doc-47085"="0lfx6aa235jx7sz27qh0328n68ra3z2bw3dsh5p2wzkg1wxbaa6g"; @@ -2888,6 +2895,7 @@ "gentombow.doc-64333"="0vqfamrsy4r1wqly1196cq2w69wydzzw09y3jg5llvyh95a6dp0i"; "haranoaji-20230223"="1vfk6bh62pkmf961qlj1f0gv4yggp6sadjr141h8905wf5980m46"; "haranoaji.doc-20230223"="1phy7r81z2wykymzsscvgk0211w1lwjjn946mpzdw97vskx1v2f3"; +"haranoaji.tlpkg-20230223"="0l9jczs7kyml3i79idyzxsmla443zaxl5fm2k7dmg5qpc30kzmaw"; "haranoaji-extra-20230223"="0j34fizmxvalvw4vssx9fm8ik2lg0nhv1saq9xbrd1pymjkavnv8"; "haranoaji-extra.doc-20230223"="0izf929g5fwzgyb9piagjjjn87rq4dj6qy3j873q4cflqd9avdns"; "ieejtran-0.19"="07y254kl5wanv7d2jyzhwlf5z6n542217f5n7gdyrm4jryzhb0ly"; @@ -2935,9 +2943,11 @@ "ptex-fontmaps-20210625.0"="0f6cijbr26jjnba7g5ffyh8pb0aihdfv094yyxhrp2wlf93ca4jg"; "ptex-fontmaps.doc-20210625.0"="00lx6cv5sb039k3wzjsq92q9x6a2q6l96khmj6rc0l06xva4j6am"; "ptex-fontmaps.source-20210625.0"="046jbs402n7g7dyd1akqwx382rkn9m7cs6qr6nz1cpd7c56kfb9n"; +"ptex-fontmaps.tlpkg-20210625.0"="0znid3c8bpw7acfi4hj14gabs44ywfmcz88x8vya1vzs9mzsiqbj"; "ptex-manual.doc-62915"="0zwmig2h7ma853lqnl845mxw6512x663y16q9vdd93ci5k94dlf1"; "ptex2pdf-20200520.0"="0s4b60gc0wg4wgxczzr2h1xlic0rk23a9wvfy76vysqzlsfmh0xl"; "ptex2pdf.doc-20200520.0"="0ky2zh6a5d6w2aq8k9wg7p3cvp8l4wihfjlz3sir3ggj1rx2x6j4"; +"ptex2pdf.tlpkg-20200520.0"="0413ifnbmmp6awmpbfa6vm31lfqzxhli49dfd5gnw8r8ny5k1jhy"; "pxbase-1.4"="0nlnlzpbd2dd397lxxg97pgaagfyb00ygrd6dz0v3gkmpwllnkvf"; "pxbase.doc-1.4"="1kjkqsbrsiwzz6szjm2irz6ijy9q5xnjimdhhv52xk0j46hyiphf"; "pxchfon-1.9a"="1g1xxx5imyhpblbvwpb86fw3as6mfcxq7ay2vjjn8ydixmx30pnz"; diff --git a/pkgs/tools/typesetting/tex/texlive/tl2nix.sed b/pkgs/tools/typesetting/tex/texlive/tl2nix.sed index 31194565cfef..94b10ba6f776 100644 --- a/pkgs/tools/typesetting/tex/texlive/tl2nix.sed +++ b/pkgs/tools/typesetting/tex/texlive/tl2nix.sed @@ -15,10 +15,10 @@ $a} # form an attrmap per package # ignore packages whose name contains "." (such as binaries) -/^name ([^.]+)$/,/^$/{ +:next-package +/^name ([^.]+|texlive\.infra)$/,/^$/{ # quote package names, as some start with a number :-/ s/^name (.*)$/"\1" = {/p - /^$/,1i}; # extract revision s/^revision ([0-9]*)$/ revision = \1;/p @@ -27,7 +27,6 @@ $a} s/^containerchecksum (.*)/ sha512.run = "\1";/p s/^doccontainerchecksum (.*)/ sha512.doc = "\1";/p s/^srccontainerchecksum (.*)/ sha512.source = "\1";/p - /^runfiles /i\ hasRunfiles = true; # number of path components to strip, defaulting to 1 ("texmf-dist/") /^relocated 1/i\ stripPrefix = 0; @@ -44,16 +43,40 @@ $a} # loop through following depend lines :next h ; N # save & read next line - s/\ndepend (.+)\.(.+)$// - s/\ndepend (.+)$/\n "\1"/ + s/\ndepend ([^.]+|texlive\.infra)$/\n "\1"/ + s/\ndepend (.+)$// t next # loop if the previous lines matched x; s/$/\n ];/p ; x # print saved deps s/^.*\n// # remove deps, resume processing } + # detect presence of notable files + /^runfiles /{ + s/^runfiles .*$// # ignore the first line + :next-file + h ; N # save to hold space & read next line + s!\n (.+)$! \1! # save file name + t next-file # loop if the previous lines matched + + x # work on saved lines in hold space + / (RELOC|texmf-dist)\//i\ hasRunfiles = true; + / tlpkg\//i\ hasTlpkg = true; + x # restore pattern space + s/^.*\n// # remove saved lines, resume processing + } + + # extract postaction scripts (right now, at most one per package, so a string suffices) + s/^postaction script file=(.*)$/ postactionScript = "\1";/p + # extract hyphenation patterns and formats # (this may create duplicate lines, use uniq to remove them) /^execute\sAddHyphen/i\ hasHyphens = true; /^execute\sAddFormat/i\ hasFormats = true; + + # close attrmap + /^$/{ + i}; + b next-package + } } diff --git a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix index f5e78a3704a6..2d932c76d1b2 100644 --- a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix +++ b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix @@ -6349,6 +6349,7 @@ "texlive-en" "texlive-msg-translations" "texlive-scripts" + "texlive.infra" "tlshell" "unicode-data" "xdvi" @@ -13965,9 +13966,11 @@ deps = [ "glyphlist" ]; + postactionScript = "tlpkg/tlpostcode/dvipdfmx.pl"; sha512.run = "6dd78f4b5cabb51c3bd9988fa46bf90a5a79b3d3293257a4c563a8a76a5a03eb167ce3ec0d4ce6ed05412a551eb201f2379a50a97ac5355ebe833f7b34cee4b4"; sha512.doc = "00dce9b36eefd1788bbe455b2e5104efd9afc8bd891aeafb2cd9bdee406eeb25ab520e42e614e9d2363eb6a7273232bc3c4805bacd82a22099c5ffc438e852cb"; hasRunfiles = true; + hasTlpkg = true; }; "dvipng" = { revision = 62517; @@ -18804,9 +18807,11 @@ }; "haranoaji" = { revision = 66119; + postactionScript = "tlpkg/tlpostcode/haranoaji-tlpost.pl"; sha512.run = "96100a78ab4292a4dc656fb70e2973f75ece3964f3a0d85d9f9153b7052ea90c14f074b195d31e46465dc52ea0516541a16981239abf552861dbca16fac3ab1d"; sha512.doc = "bb4161c95b760c9c103f086c134d7f7528dafd92f82623dd95322ea644b86c35e2baef05170c3c67a7f1c4905dc8a5fd40108db1c65074b558eec69f0e3c6910"; hasRunfiles = true; + hasTlpkg = true; version = "20230223"; }; "haranoaji-extra" = { @@ -31279,10 +31284,12 @@ }; "ptex-fontmaps" = { revision = 59711; + postactionScript = "tlpkg/tlpostcode/ptex-fontmaps-tlpost.pl"; sha512.run = "16afa97812d830b2b98f657f67ef690da420afe63ccf6f002131101f3ce9a03ff6e5170db1b316e9db521e4cdf89c7aedf26c57be162bf1c5b48fa4226e5e029"; sha512.doc = "affd6dde30276fa680a0d99d0a51650ee95260535dff717801d61ccb8165c5526047e46ad6478367a439e9a84721500128062b8cb6a1f33a25a65fadae4547f1"; sha512.source = "eb450119b3897f9e8374d29a3a9512819a05263d5829c81d56dc00dd35995133d1a3cfcadc59ce2aea52ac8b5bc195d27446f159356e63b433e235d1098e93b5"; hasRunfiles = true; + hasTlpkg = true; version = "20210625.0"; }; "ptex-fonts" = { @@ -31300,9 +31307,11 @@ }; "ptex2pdf" = { revision = 64072; + postactionScript = "tlpkg/tlpostcode/ptex2pdf-tlpost.pl"; sha512.run = "1893a49eb389914d7a9247dece7f67d9d6af05efca77801130726d6422b1a0150b56f29d3f133f433d70989f6ffcc2b44d209cd044c84ee0833c2f77b87f3e46"; sha512.doc = "f193b44004b487d93f025b34b72a17cbaf4111b1a6e1ceb4ac1b69c6c07aa4dce46cde510cbd01fb71fb08c06f7bbb415a4a8051de5861f1f586b756060f386f"; hasRunfiles = true; + hasTlpkg = true; version = "20200520.0"; }; "ptext" = { @@ -32946,6 +32955,7 @@ "hyphen-base" "kpathsea" "texlive-scripts" + "texlive.infra" ]; sha512.run = "f3e449bf0b34deb9ae776685f386245c4ca9644f2175ae51e9c62faa00e3cfac30fa2aa07fbd83b15b21d487ca368c09a18742d2434047783350698ced3b20b9"; }; @@ -36160,7 +36170,7 @@ "texlive-msg-translations" = { revision = 65889; sha512.run = "03c0445d0cb0bb3722a691fd94b93c7fe9d046dbf5945ecadcce17a2333878ffc542f0b7f263ae09bd0537a68c1a59d6c04b873ce8cdc6c8b57f7ded5b6681f9"; - hasRunfiles = true; + hasTlpkg = true; }; "texlive-pl" = { revision = 62841; @@ -36179,6 +36189,7 @@ sha512.run = "3dbb2007ae7b80862265d6196f77a9d796f02f6914871f4dad094f8419040fe7064daf6ecf5dd611b5764dd4148d034a97d82aa22671199e8a3dc79373859c67"; sha512.doc = "6976ba00c8ee50664aaa1f762231f297f01548a94d6a632b386845e7fa43b20b63342d58874e87869a73a9c23bba358f762f5cc3814690f870c6216679471a89"; hasRunfiles = true; + hasTlpkg = true; }; "texlive-scripts-extra" = { revision = 62517; @@ -36198,6 +36209,13 @@ sha512.run = "1a7e43528c2dac5c623943b1b268b99f0db6a4876f50c5386a8ea160b8b5e066604d34c0a53cee25cc3f839eb7f4be177e3d98ed51c83c77df6293c77a02e0ab"; sha512.doc = "534c505455c5f9c73803c140a340df2882a97516e15f52c5b65695b7c626404336a0e4f6190155b5bda1b9a86d7f4d44ac294bccec791ec6701e56d13c00d71d"; }; +"texlive.infra" = { + revision = 63645; + sha512.run = "cbc7e70f3b4d451a51f06ed640b37ce28b8ea32f0dad75b32e54856e1051934d32125f2428b074a69503fb24c943c5eded58d77168d606891ea8209bbf852c65"; + sha512.doc = "37f37bfd17988a8897312581efcf05aff76af6fd2c30867c65e0a4445ddc1f7fb90bb86984999d5fc942159bccf5c2a188e5b552702405405c902c97ae4828ff"; + hasRunfiles = true; + hasTlpkg = true; +}; "texliveonfly" = { revision = 55777; sha512.run = "63353a768b700ea11982e9552046dfd1dc3d844883f03099833cabe2af5ccddecebd7ef737fbcd256c90304174165a4d283d4912f8311508e61c723d751619a7"; @@ -37393,6 +37411,7 @@ sha512.run = "285fffbc63ac1b87b1ad143d043ace7ed1f52f48c4e03a9fc78c9ff6adeb2062af0ce9b5245b77349528ca18c0fe6ee8ad44b794adb24ae62f00e4a18501d7c7"; sha512.doc = "73962fa94f7ca3a78b6149a44b72c39096fb54263660ccb6c0bcc024023dfef665c5132b9cb78953c92ec8b7d161581294e32b0ab26c9e0e2e9eadc16aa9ff72"; hasRunfiles = true; + hasTlpkg = true; }; "to-be-determined" = { revision = 64882; @@ -39914,9 +39933,11 @@ "xetexconfig" ]; hasFormats = true; + postactionScript = "tlpkg/tlpostcode/xetex.pl"; sha512.run = "e9f0aebda0a7fb36e2cbce4dd49e965335438c4ebf2d41eb8e19eabe29617239dd67e7e3433a8c75fd40f072a2c6753a7d0762afd34fca4130929e51888aaabf"; sha512.doc = "31f03ee1ae00bc7883109ab7b7374feedc384d86b491873e90797658eae12299dd60b95edc1c86f1faa61a0b7a952cca23993e991863b37e49c27afd6c21c034"; hasRunfiles = true; + hasTlpkg = true; }; "xetex-devanagari" = { revision = 34296; diff --git a/pkgs/tools/wayland/shikane/default.nix b/pkgs/tools/wayland/shikane/default.nix new file mode 100644 index 000000000000..229217d0ac23 --- /dev/null +++ b/pkgs/tools/wayland/shikane/default.nix @@ -0,0 +1,45 @@ +{ lib +, rustPlatform +, fetchFromGitLab +, installShellFiles +, pandoc +}: + +rustPlatform.buildRustPackage rec { + pname = "shikane"; + version = "0.2.0"; + + src = fetchFromGitLab { + owner = "w0lff"; + repo = "shikane"; + rev = "v${version}"; + hash = "sha256-S55elFZQT234fKlISFi21QJtnf2yB0O2u2vSNFhzgBg="; + }; + + cargoHash = "sha256-4wisXVaZa2GBFKywl48beQgg4c+lawL3L/837ZU1Y94="; + + nativeBuildInputs = [ + installShellFiles + pandoc + ]; + + postBuild = '' + bash ./scripts/build-docs.sh man + ''; + + postInstall = '' + installManPage ./build/shikane.* + ''; + + # upstream has no tests + doCheck = false; + + meta = with lib; { + description = "A dynamic output configuration tool that automatically detects and configures connected outputs based on a set of profiles"; + homepage = "https://gitlab.com/w0lff/shikane"; + changelog = "https://gitlab.com/w0lff/shikane/-/tags/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ michaelpachec0 natsukium ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 89f5f2edc4cc..19f9ced8fc8c 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -641,6 +641,7 @@ mapAliases ({ grafana-mimir = throw "'grafana-mimir' has been renamed to/replaced by 'mimir'"; # Added 2022-06-07 gr-ais = gnuradio3_7.pkgs.ais; # Added 2019-05-27, changed 2020-10-16 grantlee5 = throw "'grantlee5' has been renamed to/replaced by 'libsForQt5.grantlee'"; # Converted to throw 2022-02-22 + graylog = throw "graylog is now available in versions 3.3 up to 5.0. Please mind the upgrade path and choose the appropriate version. Direct upgrading from 3.3 to 4.3 or above is not supported"; # Added 2023-04-24 gr-gsm = gnuradio3_7.pkgs.gsm; # Added 2019-05-27, changed 2020-10-16 grib-api = throw "grib-api has been replaced by ecCodes => https://confluence.ecmwf.int/display/ECC/GRIB-API+migration"; # Added 2022-01-05 gringo = clingo; # added 2022-11-27 @@ -714,6 +715,7 @@ mapAliases ({ imagemagick7_light = imagemagick_light; # Added 2021-02-22 imlib = throw "imlib has been dropped due to the lack of maintenance from upstream since 2004"; # Added 2023-01-04 impressive = throw "impressive has been removed due to lack of released python 2 support and maintainership in nixpkgs"; # Added 2022-01-27 + insync-v3 = throw "insync-v3 has been merged into the insync package; use insync instead"; #Added 2023-05-13 i-score = throw "i-score has been removed: abandoned upstream"; # Added 2020-11-21 inboxer = throw "inboxer has been removed as it is no longer maintained and no longer works as Google shut down the inbox service this package wrapped"; index-fm = libsForQt5.mauiPackages.index; # added 2022-05-17 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f4c862b682e6..8eea39db3800 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -264,6 +264,8 @@ with pkgs; asnmap = callPackage ../tools/security/asnmap { }; + ast-grep = callPackage ../development/tools/misc/ast-grep { }; + astrolog = callPackage ../applications/science/astronomy/astrolog { }; atkinson-hyperlegible = callPackage ../data/fonts/atkinson-hyperlegible { }; @@ -336,6 +338,8 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) CoreServices; }; + bodyclose = callPackage ../development/tools/bodyclose { }; + bootstrap-studio = callPackage ../development/web/bootstrap-studio { }; breakpad = callPackage ../development/misc/breakpad { }; @@ -4284,6 +4288,8 @@ with pkgs; oguri = callPackage ../tools/wayland/oguri { }; + shikane = callPackage ../tools/wayland/shikane { }; + shotman = callPackage ../tools/wayland/shotman { }; slurp = callPackage ../tools/wayland/slurp { }; @@ -7221,7 +7227,7 @@ with pkgs; # The latest version used by elasticsearch, logstash, kibana and the the beats from elastic. # When updating make sure to update all plugins or they will break! - elk7Version = "7.17.4"; + elk7Version = "7.17.9"; elasticsearch7 = callPackage ../servers/search/elasticsearch/7.x.nix { util-linux = util-linuxMinimal; @@ -8106,7 +8112,14 @@ with pkgs; grails = callPackage ../development/web/grails { jdk = null; }; - graylog = callPackage ../tools/misc/graylog { }; + graylog-3_3 = callPackage ../tools/misc/graylog/3.3.nix { }; + + graylog-4_0 = callPackage ../tools/misc/graylog/4.0.nix { }; + + graylog-4_3 = callPackage ../tools/misc/graylog/4.3.nix { }; + + graylog-5_0 = callPackage ../tools/misc/graylog/5.0.nix { }; + graylogPlugins = recurseIntoAttrs ( callPackage ../tools/misc/graylog/plugins.nix { } ); @@ -21331,6 +21344,8 @@ with pkgs; libarchive-qt = libsForQt5.callPackage ../development/libraries/libarchive-qt { }; + libasn1c = callPackage ../servers/osmocom/libasn1c/default.nix { }; + libasr = callPackage ../development/libraries/libasr { }; libass = callPackage ../development/libraries/libass { }; @@ -22226,13 +22241,13 @@ with pkgs; libosmium = callPackage ../development/libraries/libosmium { }; - libosmocore = callPackage ../applications/misc/libosmocore { }; + libosmoabis = callPackage ../servers/osmocom/libosmoabis { }; - libosmo-abis = callPackage ../development/libraries/libosmo-abis { }; + libosmocore = callPackage ../servers/osmocom/libosmocore { }; - libosmo-netif = callPackage ../development/libraries/libosmo-netif { }; + libosmo-netif = callPackage ../servers/osmocom/libosmo-netif { }; - libosmo-sccp = callPackage ../development/libraries/libosmo-sccp { }; + libosmo-sccp = callPackage ../servers/osmocom/libosmo-sccp { }; libosmscout = libsForQt5.callPackage ../development/libraries/libosmscout { }; @@ -23295,6 +23310,8 @@ with pkgs; orcania = callPackage ../development/libraries/orcania { }; + orogene = callPackage ../development/tools/misc/orogene { }; + osm-gps-map = callPackage ../development/libraries/osm-gps-map { }; osmid = callPackage ../applications/audio/osmid { }; @@ -26034,6 +26051,7 @@ with pkgs; restic = callPackage ../tools/backup/restic { }; + restic-integrity = callPackage ../applications/backup/restic-integrity { }; restic-rest-server = callPackage ../tools/backup/restic/rest-server.nix { }; restya-board = callPackage ../servers/web-apps/restya-board { }; @@ -29245,6 +29263,8 @@ with pkgs; jnetmap = callPackage ../applications/networking/jnetmap { }; + jxplorer = callPackage ../applications/networking/jxplorer {}; + join-desktop = callPackage ../applications/misc/join-desktop { }; json-plot = callPackage ../applications/graphics/json-plot { }; @@ -30766,6 +30786,8 @@ with pkgs; inherit (qt6) wrapQtAppsHook qtbase qtcharts; }; + kemai = qt6Packages.callPackage ../applications/misc/kemai { }; + jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains { vmopts = config.jetbrains.vmopts or null; jdk = jetbrains.jdk; @@ -33127,6 +33149,30 @@ with pkgs; osmo = callPackage ../applications/office/osmo { }; + osmo-bsc = callPackage ../servers/osmocom/osmo-bsc { }; + + osmo-bts = callPackage ../servers/osmocom/osmo-bts { }; + + osmo-ggsn = callPackage ../servers/osmocom/osmo-ggsn { }; + + osmo-hlr = callPackage ../servers/osmocom/osmo-hlr { }; + + osmo-hnbgw = callPackage ../servers/osmocom/osmo-hnbgw { }; + + osmo-hnodeb = callPackage ../servers/osmocom/osmo-hnodeb { }; + + osmo-iuh = callPackage ../servers/osmocom/osmo-iuh { }; + + osmo-mgw = callPackage ../servers/osmocom/osmo-mgw { }; + + osmo-msc = callPackage ../servers/osmocom/osmo-msc { }; + + osmo-pcu = callPackage ../servers/osmocom/osmo-pcu { }; + + osmo-sgsn = callPackage ../servers/osmocom/osmo-sgsn { }; + + osmo-sip-connector = callPackage ../servers/osmocom/osmo-sip-connector { }; + osmscout-server = libsForQt5.callPackage ../applications/misc/osmscout-server { }; palemoon = callPackage ../applications/networking/browsers/palemoon { }; @@ -33976,8 +34022,6 @@ with pkgs; insync = callPackage ../applications/networking/insync { }; - insync-v3 = libsForQt5.callPackage ../applications/networking/insync/v3.nix { }; - libstrangle = callPackage ../tools/X11/libstrangle { stdenv = stdenv_32bit; }; @@ -39244,7 +39288,9 @@ with pkgs; rucksack = callPackage ../development/tools/rucksack { }; - ruff = callPackage ../development/tools/ruff { }; + ruff = callPackage ../development/tools/ruff { + inherit (python3.pkgs) ruff-lsp; + }; sam-ba = callPackage ../tools/misc/sam-ba { };