diff --git a/lib/systems/default.nix b/lib/systems/default.nix index d9d0918c1cc6..25340825c4b5 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -36,6 +36,7 @@ rec { config = parse.tripleFromSystem final.parsed; # Determine whether we can execute binaries built for the provided platform. canExecute = platform: + final.isAndroid == platform.isAndroid && parse.isCompatible final.parsed.cpu platform.parsed.cpu && final.parsed.kernel == platform.parsed.kernel; isCompatible = _: throw "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details"; diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 03bb5ffcdacc..65dc9c07e346 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -57,23 +57,23 @@ rec { armv7a-android-prebuilt = { config = "armv7a-unknown-linux-androideabi"; rustc.config = "armv7-linux-androideabi"; - sdkVer = "29"; - ndkVer = "21"; + sdkVer = "28"; + ndkVer = "24"; useAndroidPrebuilt = true; } // platforms.armv7a-android; aarch64-android-prebuilt = { config = "aarch64-unknown-linux-android"; rustc.config = "aarch64-linux-android"; - sdkVer = "29"; - ndkVer = "21"; + sdkVer = "28"; + ndkVer = "24"; useAndroidPrebuilt = true; }; aarch64-android = { config = "aarch64-unknown-linux-android"; sdkVer = "30"; - ndkVer = "21"; + ndkVer = "24"; libc = "bionic"; useAndroidPrebuilt = false; useLLVM = true; diff --git a/nixos/modules/services/misc/jellyfin.nix b/nixos/modules/services/misc/jellyfin.nix index 789b78702e9b..e2f227b06196 100644 --- a/nixos/modules/services/misc/jellyfin.nix +++ b/nixos/modules/services/misc/jellyfin.nix @@ -49,7 +49,10 @@ in after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + # This is mostly follows: https://github.com/jellyfin/jellyfin/blob/master/fedora/jellyfin.service + # Upstream also disable some hardenings when running in LXC, we do the same with the isContainer option serviceConfig = rec { + Type = "simple"; User = cfg.user; Group = cfg.group; StateDirectory = "jellyfin"; @@ -57,48 +60,50 @@ in CacheDirectory = "jellyfin"; CacheDirectoryMode = "0700"; UMask = "0077"; + WorkingDirectory = "/var/lib/jellyfin"; ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'"; Restart = "on-failure"; + TimeoutSec = 15; + SuccessExitStatus = ["0" "143"]; # Security options: - NoNewPrivileges = true; - - AmbientCapabilities = ""; - CapabilityBoundingSet = ""; - - # ProtectClock= adds DeviceAllow=char-rtc r - DeviceAllow = ""; - - LockPersonality = true; - - PrivateTmp = true; - # Disabled to allow Jellyfin to access hw accel devices endpoints - # PrivateDevices = true; - PrivateUsers = true; - - # Disabled as it does not allow Jellyfin to interface with CUDA devices - # ProtectClock = true; - ProtectControlGroups = true; - ProtectHostname = true; - ProtectKernelLogs = true; - ProtectKernelModules = true; - ProtectKernelTunables = true; - - RemoveIPC = true; - - RestrictNamespaces = true; + SystemCallArchitectures = "native"; # AF_NETLINK needed because Jellyfin monitors the network connection - RestrictAddressFamilies = [ "AF_NETLINK" "AF_INET" "AF_INET6" "AF_UNIX" ]; + RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ]; + RestrictNamespaces = !config.boot.isContainer; RestrictRealtime = true; RestrictSUIDSGID = true; + ProtectControlGroups = !config.boot.isContainer; + ProtectHostname = true; + ProtectKernelLogs = !config.boot.isContainer; + ProtectKernelModules = !config.boot.isContainer; + ProtectKernelTunables = !config.boot.isContainer; + LockPersonality = true; + PrivateTmp = !config.boot.isContainer; + # needed for hardware accelaration + PrivateDevices = false; + PrivateUsers = true; + RemoveIPC = true; - SystemCallArchitectures = "native"; - SystemCallErrorNumber = "EPERM"; SystemCallFilter = [ - "@system-service" - "~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@obsolete" "~@privileged" "~@setuid" + "~@clock" + "~@aio" + "~@chown" + "~@cpu-emulation" + "~@debug" + "~@keyring" + "~@memlock" + "~@module" + "~@mount" + "~@obsolete" + "~@privileged" + "~@raw-io" + "~@reboot" + "~@setuid" + "~@swap" ]; + SystemCallErrorNumber = "EPERM"; }; }; diff --git a/nixos/modules/services/web-apps/atlassian/jira.nix b/nixos/modules/services/web-apps/atlassian/jira.nix index bc0bf43522e0..fd89d763c7fb 100644 --- a/nixos/modules/services/web-apps/atlassian/jira.nix +++ b/nixos/modules/services/web-apps/atlassian/jira.nix @@ -8,21 +8,22 @@ let pkg = cfg.package.override (optionalAttrs cfg.sso.enable { enableSSO = cfg.sso.enable; - crowdProperties = '' - application.name ${cfg.sso.applicationName} - application.password ${cfg.sso.applicationPassword} - application.login.url ${cfg.sso.crowd}/console/ - - crowd.server.url ${cfg.sso.crowd}/services/ - crowd.base.url ${cfg.sso.crowd}/ - - session.isauthenticated session.isauthenticated - session.tokenkey session.tokenkey - session.validationinterval ${toString cfg.sso.validationInterval} - session.lastvalidation session.lastvalidation - ''; }); + crowdProperties = pkgs.writeText "crowd.properties" '' + application.name ${cfg.sso.applicationName} + application.password @NIXOS_JIRA_CROWD_SSO_PWD@ + application.login.url ${cfg.sso.crowd}/console/ + + crowd.server.url ${cfg.sso.crowd}/services/ + crowd.base.url ${cfg.sso.crowd}/ + + session.isauthenticated session.isauthenticated + session.tokenkey session.tokenkey + session.validationinterval ${toString cfg.sso.validationInterval} + session.lastvalidation session.lastvalidation + ''; + in { @@ -112,9 +113,9 @@ in description = "Exact name of this JIRA instance in Crowd"; }; - applicationPassword = mkOption { + applicationPasswordFile = mkOption { type = types.str; - description = "Application password of this JIRA instance in Crowd"; + description = "Path to the file containing the application password of this JIRA instance in Crowd"; }; validationInterval = mkOption { @@ -181,6 +182,7 @@ in JIRA_HOME = cfg.home; JAVA_HOME = "${cfg.jrePackage}"; CATALINA_OPTS = concatStringsSep " " cfg.catalinaOptions; + JAVA_OPTS = mkIf cfg.sso.enable "-Dcrowd.properties=${cfg.home}/crowd.properties"; }; preStart = '' @@ -191,6 +193,14 @@ in -e 's,protocol="HTTP/1.1",protocol="HTTP/1.1" proxyName="${cfg.proxy.name}" proxyPort="${toString cfg.proxy.port}" scheme="${cfg.proxy.scheme}" secure="${toString cfg.proxy.secure}",' \ '') + '' ${pkg}/conf/server.xml.dist > ${cfg.home}/server.xml + + ${optionalString cfg.sso.enable '' + install -m660 ${crowdProperties} ${cfg.home}/crowd.properties + ${pkgs.replace-secret}/bin/replace-secret \ + '@NIXOS_JIRA_CROWD_SSO_PWD@' \ + ${cfg.sso.applicationPasswordFile} \ + ${cfg.home}/crowd.properties + ''} ''; serviceConfig = { @@ -204,4 +214,10 @@ in }; }; }; + + imports = [ + (mkRemovedOptionModule [ "services" "jira" "sso" "applicationPassword" ] '' + Use `applicationPasswordFile` instead! + '') + ]; } diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py index aca6a1ca2cc2..77280a9680e3 100644 --- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py +++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py @@ -264,8 +264,6 @@ def main() -> None: if installed_version < available_version: print("updating systemd-boot from %s to %s" % (installed_version, available_version)) subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"]) - else: - print("leaving systemd-boot %s in place (%s is not newer)" % (installed_version, available_version)) mkdir_p("@efiSysMountPoint@/efi/nixos") mkdir_p("@efiSysMountPoint@/loader/entries") diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix index 4f95efa175e9..025d89e41387 100644 --- a/pkgs/applications/misc/electrum/default.nix +++ b/pkgs/applications/misc/electrum/default.nix @@ -21,7 +21,7 @@ }: let - version = "4.2.1"; + version = "4.2.2"; libsecp256k1_name = if stdenv.isLinux then "libsecp256k1.so.0" @@ -37,7 +37,7 @@ let owner = "spesmilo"; repo = "electrum"; rev = version; - sha256 = "sha256-BoikYSsQZAv8WswIr5nmBsGmjZbTXaLAbdO2QtPvc7c="; + sha256 = "sha256-bFceOu+3SLtD2eY+aSBEn13xJw7a3aVwX39QfAuqVSo="; postFetch = '' mv $out ./all @@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication { src = fetchurl { url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; - sha256 = "sha256-2SxSTH9P380j2KaCbkXjgmQO7K2z81AG6PMA/EMggXA="; + sha256 = "sha256-ucLLfqmTKO5Qpg+PnmcdQwht7cWMWJoFjQWnDecEtVs="; }; postUnpack = '' diff --git a/pkgs/applications/misc/openbangla-keyboard/Cargo.lock b/pkgs/applications/misc/openbangla-keyboard/Cargo.lock new file mode 100644 index 000000000000..6fa93003a60c --- /dev/null +++ b/pkgs/applications/misc/openbangla-keyboard/Cargo.lock @@ -0,0 +1,251 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "crossbeam-channel" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "once_cell", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "edit-distance" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbaaaf38131deb9ca518a274a45bfdb8771f139517b073b16c2d3d32ae5037b" + +[[package]] +name = "either" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" + +[[package]] +name = "hashbrown" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" +dependencies = [ + "ahash", + "autocfg", + "rayon", + "serde", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "itoa" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" + +[[package]] +name = "libc" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" + +[[package]] +name = "rayon" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "riti" +version = "0.1.0" +dependencies = [ + "edit-distance", + "either", + "hashbrown", + "rayon", + "regex", + "rupantor", + "serde_json", + "stringplus", +] + +[[package]] +name = "rupantor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04eb802986005129b0946dbb4baa420bf14cea547c5ee6b57ba081d9e85f6a4b" +dependencies = [ + "serde_json", + "stringplus", +] + +[[package]] +name = "ryu" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "serde" +version = "1.0.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6" + +[[package]] +name = "serde_json" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "stringplus" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9057d3b491a3eee749e52560657c4d93b0badc04fb3fa8dae3c942c5c066f222" diff --git a/pkgs/applications/misc/openbangla-keyboard/default.nix b/pkgs/applications/misc/openbangla-keyboard/default.nix new file mode 100644 index 000000000000..28b730e0b2d8 --- /dev/null +++ b/pkgs/applications/misc/openbangla-keyboard/default.nix @@ -0,0 +1,72 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, rustPlatform +, wrapQtAppsHook +, ibus +, qtbase +, zstd +}: + +stdenv.mkDerivation rec { + pname = "openbangla-keyboard"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "openbangla"; + repo = "openbangla-keyboard"; + rev = version; + hash = "sha256-UoLiysaA0Wob/SLBqm36Txqb8k7bwoQ56h8ZufHR74I="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + cmake + pkg-config + rustPlatform.rust.cargo + rustPlatform.rust.rustc + rustPlatform.cargoSetupHook + wrapQtAppsHook + ]; + + buildInputs = [ + ibus + qtbase + zstd + ]; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + postPatch = '' + cp ${./Cargo.lock} Cargo.lock + ''; + sourceRoot = "source/${cargoRoot}"; + sha256 = "sha256-01MWuUUirsgpoprMArRp3qxKNayPHTkYWk31nXcIC34="; + }; + + cargoRoot = "src/engine/riti"; + postPatch = '' + cp ${./Cargo.lock} ${cargoRoot}/Cargo.lock + + substituteInPlace CMakeLists.txt \ + --replace "/usr" "$out" + + substituteInPlace src/shared/FileSystem.cpp \ + --replace "/usr" "$out" + ''; + + postInstall = '' + mkdir -p $out/bin + ln -s $out/share/openbangla-keyboard/openbangla-gui $out/bin/openbangla-gui + ''; + + meta = with lib; { + description = "An OpenSource, Unicode compliant Bengali Input Method"; + homepage = "https://openbangla.github.io/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ hqurve ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix index 02df4313f7fc..eb677eb00ded 100644 --- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix +++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix @@ -1,5 +1,5 @@ { lib, buildDunePackage, fetchFromGitHub -, ocaml_extlib, ocamlfuse, gapi_ocaml, ocaml_sqlite3 +, ocaml_extlib, ocamlfuse, gapi-ocaml, ocaml_sqlite3 , tiny_httpd , ounit }: @@ -18,7 +18,7 @@ buildDunePackage rec { doCheck = true; checkInputs = [ ounit ]; - buildInputs = [ ocaml_extlib ocamlfuse gapi_ocaml ocaml_sqlite3 tiny_httpd ]; + buildInputs = [ ocaml_extlib ocamlfuse gapi-ocaml ocaml_sqlite3 tiny_httpd ]; meta = { inherit (src.meta) homepage; diff --git a/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix index 736e088454e7..2d5619620417 100644 --- a/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix +++ b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix @@ -1,6 +1,5 @@ -{ lib, stdenv -, makeWrapper -, runCommand, wrapBintoolsWith, wrapCCWith +{ lib, stdenv, makeWrapper +, runCommand, wrapBintoolsWith, wrapCCWith, autoPatchelfHook , buildAndroidndk, androidndk, targetAndroidndkPkgs }: @@ -11,6 +10,9 @@ let # N.B. The Android NDK uses slightly different LLVM-style platform triples # than we do. We don't just use theirs because ours are less ambiguous and # some builds need that clarity. + # + # FIXME: + # There's some dragons here. Build host and target concepts are being mixed up. ndkInfoFun = { config, ... }: { x86_64-apple-darwin = { double = "darwin-x86_64"; @@ -21,65 +23,96 @@ let i686-unknown-linux-android = { triple = "i686-linux-android"; arch = "x86"; - toolchain = "x86"; - gccVer = "4.9"; }; x86_64-unknown-linux-android = { triple = "x86_64-linux-android"; arch = "x86_64"; - toolchain = "x86_64"; - gccVer = "4.9"; }; armv7a-unknown-linux-androideabi = { arch = "arm"; triple = "arm-linux-androideabi"; - toolchain = "arm-linux-androideabi"; - gccVer = "4.9"; }; aarch64-unknown-linux-android = { arch = "arm64"; triple = "aarch64-linux-android"; - toolchain = "aarch64-linux-android"; - gccVer = "4.9"; }; }.${config} or (throw "Android NDK doesn't support ${config}, as far as we know"); + buildInfo = ndkInfoFun stdenv.buildPlatform; hostInfo = ndkInfoFun stdenv.hostPlatform; targetInfo = ndkInfoFun stdenv.targetPlatform; - prefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) (stdenv.targetPlatform.config + "-"); + inherit (stdenv.targetPlatform) sdkVer; + suffixSalt = lib.replaceStrings ["-" "."] ["_" "_"] stdenv.targetPlatform.config; + + # targetInfo.triple is what Google thinks the toolchain should be, this is a little + # different from what we use. We make it four parts to conform with the existing + # standard more properly. + targetConfig = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) (stdenv.targetPlatform.config); in rec { # Misc tools - binaries = runCommand "ndk-toolchain-binutils" { - pname = "ndk-toolchain-binutils"; + binaries = stdenv.mkDerivation { + pname = "${targetConfig}-ndk-toolchain"; inherit (androidndk) version; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; propagatedBuildInputs = [ androidndk ]; passthru = { - targetPrefix = prefix; isClang = true; # clang based cc, but bintools ld }; - } '' - mkdir -p $out/bin + dontUnpack = true; + dontBuild = true; + dontStrip = true; + dontConfigure = true; + dontPatch = true; + autoPatchelfIgnoreMissingDeps = true; + installPhase = '' + # https://developer.android.com/ndk/guides/other_build_systems + mkdir -p $out + cp -r ${androidndk}/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/${buildInfo.double} $out/toolchain + find $out/toolchain -type d -exec chmod 777 {} \; - # llvm toolchain - for prog in ${androidndk}/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/${hostInfo.double}/bin/*; do - ln -s $prog $out/bin/$(basename $prog) - ln -s $prog $out/bin/${prefix}$(basename $prog) - done + if [ ! -d $out/toolchain/sysroot/usr/lib/${targetInfo.triple}/${sdkVer} ]; then + echo "NDK does not contain libraries for SDK version ${sdkVer}"; + exit 1 + fi - # bintools toolchain - for prog in ${androidndk}/libexec/android-sdk/ndk-bundle/toolchains/${targetInfo.toolchain}-${targetInfo.gccVer}/prebuilt/${hostInfo.double}/bin/*; do - prog_suffix=$(basename $prog | sed 's/${targetInfo.triple}-//') - ln -s $prog $out/bin/${stdenv.targetPlatform.config}-$prog_suffix - done + ln -vfs $out/toolchain/sysroot/usr/lib $out/lib + ln -s $out/toolchain/sysroot/usr/lib/${targetInfo.triple}/*.so $out/lib/ + ln -s $out/toolchain/sysroot/usr/lib/${targetInfo.triple}/*.a $out/lib/ + chmod +w $out/lib/* + ln -s $out/toolchain/sysroot/usr/lib/${targetInfo.triple}/${sdkVer}/*.so $out/lib/ + ln -s $out/toolchain/sysroot/usr/lib/${targetInfo.triple}/${sdkVer}/*.o $out/lib/ - # shitty googly wrappers - rm -f $out/bin/${stdenv.targetPlatform.config}-gcc $out/bin/${stdenv.targetPlatform.config}-g++ - ''; + echo "INPUT(-lc++_static)" > $out/lib/libc++.a + + ln -s $out/toolchain/bin $out/bin + ln -s $out/toolchain/${targetInfo.triple}/bin/* $out/bin/ + for f in $out/bin/${targetInfo.triple}-*; do + ln -s $f ''${f/${targetInfo.triple}-/${targetConfig}-} + done + for f in $(find $out/toolchain -type d -name ${targetInfo.triple}); do + ln -s $f ''${f/${targetInfo.triple}/${targetConfig}} + done + + rm -f $out/bin/${targetConfig}-ld + ln -s $out/bin/lld $out/bin/${targetConfig}-ld + + (cd $out/bin; + for tool in llvm-*; do + ln -sf $tool ${targetConfig}-$(echo $tool | sed 's/llvm-//') + ln -sf $tool $(echo $tool | sed 's/llvm-//') + done) + + # handle last, as llvm-as is for llvm bytecode + ln -sf $out/bin/${targetInfo.triple}-as $out/bin/${targetConfig}-as + ln -sf $out/bin/${targetInfo.triple}-as $out/bin/as + + patchShebangs $out/bin + ''; + }; binutils = wrapBintoolsWith { bintools = binaries; @@ -95,9 +128,16 @@ rec { libc = targetAndroidndkPkgs.libraries; extraBuildCommands = '' echo "-D__ANDROID_API__=${stdenv.targetPlatform.sdkVer}" >> $out/nix-support/cc-cflags - echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags - echo "-resource-dir=$(echo ${androidndk}/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/${hostInfo.double}/lib*/clang/*)" >> $out/nix-support/cc-cflags - echo "--gcc-toolchain=${androidndk}/libexec/android-sdk/ndk-bundle/toolchains/${targetInfo.toolchain}-${targetInfo.gccVer}/prebuilt/${hostInfo.double}" >> $out/nix-support/cc-cflags + # Android needs executables linked with -pie since version 5.0 + # Use -fPIC for compilation, and link with -pie if no -shared flag used in ldflags + echo "-target ${targetInfo.triple} -fPIC" >> $out/nix-support/cc-cflags + echo "-z,noexecstack -z,relro -z,now" >> $out/nix-support/cc-ldflags + echo 'if [[ ! " $@ " =~ " -shared " ]]; then NIX_LDFLAGS_${suffixSalt}+=" -pie"; fi' >> $out/nix-support/add-flags.sh + echo "-Xclang -mnoexecstack" >> $out/nix-support/cc-cxxflags + if [ ${targetInfo.triple} == arm-linux-androideabi ]; then + # https://android.googlesource.com/platform/external/android-cmake/+/refs/heads/cmake-master-dev/android.toolchain.cmake + echo "--fix-cortex-a8" >> $out/nix-support/cc-ldflags + fi ''; }; @@ -107,10 +147,14 @@ rec { # cross-compiling packages to wrap incorrectly wrap binaries we don't include # anyways. libraries = runCommand "bionic-prebuilt" {} '' - mkdir -p $out - cp -r ${buildAndroidndk}/libexec/android-sdk/ndk-bundle/sysroot/usr/include $out/include - chmod +w $out/include - cp -r ${buildAndroidndk}/libexec/android-sdk/ndk-bundle/sysroot/usr/include/${targetInfo.triple}/* $out/include - ln -s ${buildAndroidndk}/libexec/android-sdk/ndk-bundle/platforms/android-${stdenv.hostPlatform.sdkVer}/arch-${hostInfo.arch}/usr/${if hostInfo.arch == "x86_64" then "lib64" else "lib"} $out/lib + lpath=${buildAndroidndk}/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/${buildInfo.double}/sysroot/usr/lib/${targetInfo.triple}/${sdkVer} + if [ ! -d $lpath ]; then + echo "NDK does not contain libraries for SDK version ${sdkVer} <$lpath>" + exit 1 + fi + mkdir -p $out/lib + cp $lpath/*.so $lpath/*.a $out/lib + chmod +w $out/lib/* + cp $lpath/* $out/lib ''; } diff --git a/pkgs/development/androidndk-pkgs/default.nix b/pkgs/development/androidndk-pkgs/default.nix index 5f71304d3855..a7001ce1d4a6 100644 --- a/pkgs/development/androidndk-pkgs/default.nix +++ b/pkgs/development/androidndk-pkgs/default.nix @@ -2,36 +2,6 @@ }: { - "18b" = - let - ndkVersion = "18.1.5063045"; - - buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages { - includeNDK = true; - inherit ndkVersion; - }; - - androidComposition = androidenv.composeAndroidPackages { - includeNDK = true; - inherit ndkVersion; - }; - in - import ./androidndk-pkgs.nix { - inherit lib; - inherit (buildPackages) - makeWrapper; - inherit (pkgs) - stdenv - runCommand wrapBintoolsWith wrapCCWith; - # buildPackages.foo rather than buildPackages.buildPackages.foo would work, - # but for splicing messing up on infinite recursion for the variants we - # *dont't* use. Using this workaround, but also making a test to ensure - # these two really are the same. - buildAndroidndk = buildAndroidComposition.ndk-bundle; - androidndk = androidComposition.ndk-bundle; - targetAndroidndkPkgs = targetPackages.androidndkPkgs_18b; - }; - "21" = let ndkVersion = "21.0.6113669"; @@ -49,7 +19,7 @@ import ./androidndk-pkgs.nix { inherit lib; inherit (buildPackages) - makeWrapper; + makeWrapper autoPatchelfHook; inherit (pkgs) stdenv runCommand wrapBintoolsWith wrapCCWith; @@ -62,4 +32,64 @@ targetAndroidndkPkgs = targetPackages.androidndkPkgs_21; }; + "23b" = + let + ndkVersion = "23.1.7779620"; + + buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages { + includeNDK = true; + inherit ndkVersion; + }; + + androidComposition = androidenv.composeAndroidPackages { + includeNDK = true; + inherit ndkVersion; + }; + in + import ./androidndk-pkgs.nix { + inherit lib; + inherit (buildPackages) + makeWrapper autoPatchelfHook; + inherit (pkgs) + stdenv + runCommand wrapBintoolsWith wrapCCWith; + # buildPackages.foo rather than buildPackages.buildPackages.foo would work, + # but for splicing messing up on infinite recursion for the variants we + # *dont't* use. Using this workaround, but also making a test to ensure + # these two really are the same. + buildAndroidndk = buildAndroidComposition.ndk-bundle; + androidndk = androidComposition.ndk-bundle; + targetAndroidndkPkgs = targetPackages.androidndkPkgs_23b; + }; + + "24" = + let + ndkVersion = "24.0.8215888"; + + buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages { + includeNDK = true; + inherit ndkVersion; + }; + + androidComposition = androidenv.composeAndroidPackages { + includeNDK = true; + inherit ndkVersion; + }; + in + import ./androidndk-pkgs.nix { + inherit lib; + inherit (buildPackages) + makeWrapper autoPatchelfHook; + inherit (pkgs) + stdenv + runCommand wrapBintoolsWith wrapCCWith; + # buildPackages.foo rather than buildPackages.buildPackages.foo would work, + # but for splicing messing up on infinite recursion for the variants we + # *dont't* use. Using this workaround, but also making a test to ensure + # these two really are the same. + buildAndroidndk = buildAndroidComposition.ndk-bundle; + androidndk = androidComposition.ndk-bundle; + targetAndroidndkPkgs = targetPackages.androidndkPkgs_24; + }; + } diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix index 8daed0ff7839..f1f97216ef38 100644 --- a/pkgs/development/compilers/purescript/purescript/default.nix +++ b/pkgs/development/compilers/purescript/purescript/default.nix @@ -18,7 +18,7 @@ let in stdenv.mkDerivation rec { pname = "purescript"; - version = "0.15.2"; + version = "0.15.4"; # These hashes can be updated automatically by running the ./update.sh script. src = @@ -26,12 +26,12 @@ in stdenv.mkDerivation rec { then fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz"; - sha256 = "06fsq9ynfvfqn3ac5jxdj81lmzd6bh84p7jz5qib31h27iy5aq4h"; + sha256 = "0rksc6c98pp48lcavair6apjpgq3s1zz0lhkc59vbz67c8zxc26d"; } else fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz"; - sha256 = "1p37k6briczw6gvw04idkx734ms1swgrx9sl4hi6xwvxkfp1nm0m"; + sha256 = "13p6qsba6kmcsppc3z6vcm3v5c7jxhp10nyvxry4nmj9mkdmjaiy"; }; diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix index 8cc763f229d6..a8cf6cec5735 100644 --- a/pkgs/development/libraries/folly/default.nix +++ b/pkgs/development/libraries/folly/default.nix @@ -16,6 +16,7 @@ , xz , zlib , zstd +, jemalloc , follyMobile ? false }: @@ -50,7 +51,10 @@ stdenv.mkDerivation rec { libunwind fmt_8 zstd - ]; + ] ++ lib.optional stdenv.isLinux jemalloc; + + # jemalloc headers are required in include/folly/portability/Malloc.h + propagatedBuildInputs = lib.optional stdenv.isLinux jemalloc; NIX_CFLAGS_COMPILE = [ "-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}" "-fpermissive" ]; cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; diff --git a/pkgs/development/libraries/science/math/p4est/default.nix b/pkgs/development/libraries/science/math/p4est/default.nix index c38b0d623bac..9396a9144423 100644 --- a/pkgs/development/libraries/science/math/p4est/default.nix +++ b/pkgs/development/libraries/science/math/p4est/default.nix @@ -1,5 +1,8 @@ -{ lib, stdenv, fetchFromGitHub -, autoreconfHook, pkg-config +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config , p4est-withMetis ? true, metis , p4est-sc }: @@ -31,9 +34,11 @@ stdenv.mkDerivation { postPatch = '' sed -i -e "s:\(^\s*ACLOCAL_AMFLAGS.*\)\s@P4EST_SC_AMFLAGS@\s*$:\1 -I ${p4est-sc}/share/aclocal:" Makefile.am ''; - preConfigure = '' + preAutoreconf = '' echo "2.8.0" > .tarball-version - ${if mpiSupport then "unset CC" else ""} + ''; + preConfigure = lib.optionalString mpiSupport '' + unset CC ''; configureFlags = p4est-sc.configureFlags diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix index 8270960d9b99..c6d838544e9c 100644 --- a/pkgs/development/mobile/androidenv/compose-android-packages.nix +++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix @@ -3,7 +3,7 @@ }: { toolsVersion ? "26.1.1" -, platformToolsVersion ? "33.0.1" +, platformToolsVersion ? "33.0.2" , buildToolsVersions ? [ "32.0.0" ] , includeEmulator ? false , emulatorVersion ? "31.3.7" @@ -11,7 +11,7 @@ , includeSources ? false , includeSystemImages ? false , systemImageTypes ? [ "google_apis_playstore" ] -, abiVersions ? [ "armeabi-v7a" ] +, abiVersions ? [ "armeabi-v7a" "arm64-v8a" ] , cmakeVersions ? [ ] , includeNDK ? false , ndkVersion ? "24.0.8215888" @@ -181,7 +181,7 @@ rec { makeNdkBundle = ndkVersion: import ./ndk-bundle { inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgsHostHost lib platform-tools stdenv; - package = packages.ndk-bundle.${ndkVersion}; + package = packages.ndk-bundle.${ndkVersion} or packages.ndk.${ndkVersion}; }; # All NDK bundles. diff --git a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix index 58cc8f9d5709..5d0e2c2b171f 100644 --- a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix +++ b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix @@ -12,23 +12,22 @@ deployAndroidPackage { nativeBuildInputs = [ makeWrapper ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; autoPatchelfIgnoreMissingDeps = true; - buildInputs = lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.python2 pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out pkgs.libxml2 ]; + buildInputs = lib.optional (os == "linux") [ pkgs.zlib ]; patchInstructions = lib.optionalString (os == "linux") ('' patchShebangs . - # Fix the shebangs of the auto-generated scripts. - substituteInPlace ./build/tools/make_standalone_toolchain.py \ - --replace '#!/bin/bash' '#!${pkgs.bash}/bin/bash' - - '' + lib.optionalString (builtins.compareVersions (lib.getVersion package) "21" > 0) '' - patch -p1 \ - --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch} || true - wrapProgram ./build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}" - '' + '' - # TODO: allow this stuff rm -rf docs tests + # Ndk now has a prebuilt toolchains inside, the file layout has changed, we do a symlink + # to still support the old standalone toolchains builds. + if [ -d $out/libexec/android-sdk/ndk ] && [ ! -d $out/libexec/android-sdk/ndk-bundle ]; then + ln -sf $out/libexec/android-sdk/ndk/${package.revision} $out/libexec/android-sdk/ndk-bundle + else + echo "The ndk-bundle layout has changed. The nix expressions have to be updated!" + exit 1 + fi + # Patch the executables of the toolchains, but not the libraries -- they are needed for crosscompiling if [ -d $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64 ]; then addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64 diff --git a/pkgs/development/mobile/androidenv/ndk-bundle/make_standalone_toolchain.py_18.patch b/pkgs/development/mobile/androidenv/ndk-bundle/make_standalone_toolchain.py_18.patch deleted file mode 100644 index 7af2d44a0f20..000000000000 --- a/pkgs/development/mobile/androidenv/ndk-bundle/make_standalone_toolchain.py_18.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff -Naur android-ndk-r18b/build/tools/make_standalone_toolchain.py android-ndk-r18b-new/build/tools/make_standalone_toolchain.py ---- android-ndk-r18b/build/tools/make_standalone_toolchain.py 2018-10-11 12:49:38.000000000 +0200 -+++ android-ndk-r18b-new/build/tools/make_standalone_toolchain.py 2018-11-20 21:55:52.689991420 +0100 -@@ -30,7 +30,7 @@ - import sys - import tempfile - import textwrap -- -+import subprocess - - THIS_DIR = os.path.realpath(os.path.dirname(__file__)) - NDK_DIR = os.path.realpath(os.path.join(THIS_DIR, '../..')) -@@ -173,6 +173,7 @@ - logger().debug('Copying %s', src_file) - shutil.copy2(src_file, dst_dir) - -+ subprocess.check_call(["chmod", "-R", "+w", dst]) - - def make_clang_scripts(install_dir, triple, api, windows): - """Creates Clang wrapper scripts. -@@ -365,6 +366,7 @@ - install_headers = os.path.join(install_sysroot, 'usr/include') - os.makedirs(os.path.dirname(install_headers)) - shutil.copytree(headers, install_headers) -+ subprocess.check_call(["chmod", "-R", "+w", install_path]) - - arch_headers = os.path.join(sysroot, 'usr/include', triple) - copy_directory_contents(arch_headers, os.path.join(install_headers)) -@@ -375,6 +377,7 @@ - install_sysroot, 'usr/lib{}'.format(lib_suffix)) - if os.path.exists(lib_path): - shutil.copytree(lib_path, lib_install) -+ subprocess.check_call(["chmod", "-R", "+w", install_path]) - - static_lib_path = os.path.join(sysroot, 'usr/lib', triple) - static_lib_install = os.path.join(install_sysroot, 'usr/lib') -@@ -389,6 +392,7 @@ - NDK_DIR, 'prebuilt', 'android-' + arch, 'gdbserver') - gdbserver_install = os.path.join(install_path, 'share', 'gdbserver') - shutil.copytree(gdbserver_path, gdbserver_install) -+ subprocess.check_call(["chmod", "-R", "+w", install_path]) - - toolchain_lib_dir = os.path.join(gcc_path, 'lib/gcc', triple) - dirs = os.listdir(toolchain_lib_dir) diff --git a/pkgs/development/mobile/androidenv/repo.json b/pkgs/development/mobile/androidenv/repo.json index 5ccbc430fce6..bf69c67820b0 100644 --- a/pkgs/development/mobile/androidenv/repo.json +++ b/pkgs/development/mobile/androidenv/repo.json @@ -1241,6 +1241,21 @@ }, "23": { "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "2d1ae21b1978e202917b7c6a5f49ab8bc87c6417", + "size": 493891214, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-23_r33.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-23-google_apis-arm64-v8a", + "path": "system-images/android-23/google_apis/arm64-v8a", + "revision": "23-google_apis-arm64-v8a" + }, "armeabi-v7a": { "archives": [ { @@ -1663,43 +1678,117 @@ } } }, - "Tiramisu": { + "33": { "google_apis_playstore": { "arm64-v8a": { "archives": [ { "os": "macosx", - "sha1": "2b6d4dc0af98b2b4d3ed4ac82b6d8ee0bfe38383", - "size": 1457296537, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-Tiramisu_r02-darwin.zip" + "sha1": "0b850a4f317d7a6abe854a6845705c9ca4437764", + "size": 1492105537, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r05-darwin.zip" }, { "os": "linux", - "sha1": "2b6d4dc0af98b2b4d3ed4ac82b6d8ee0bfe38383", - "size": 1457296537, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-Tiramisu_r02-linux.zip" + "sha1": "0b850a4f317d7a6abe854a6845705c9ca4437764", + "size": 1492105537, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r05-linux.zip" } ], "displayName": "Google Play ARM 64 v8a System Image", "license": "android-sdk-arm-dbt-license", - "name": "system-image-Tiramisu-google_apis_playstore-arm64-v8a", - "path": "system-images/android-Tiramisu/google_apis_playstore/arm64-v8a", - "revision": "Tiramisu-google_apis_playstore-arm64-v8a" + "name": "system-image-33-google_apis_playstore-arm64-v8a", + "path": "system-images/android-33/google_apis_playstore/arm64-v8a", + "revision": "33-google_apis_playstore-arm64-v8a" }, "x86_64": { "archives": [ { "os": "all", - "sha1": "2d2fb4c36efa836f348d6acbfc588f9eed70934e", - "size": 1438511715, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-Tiramisu_r02.zip" + "sha1": "ed2931ebef4f7bedff8610254748d6496ce5d3c4", + "size": 1496628942, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-33_r05.zip" } ], "displayName": "Google Play Intel x86 Atom_64 System Image", "license": "android-sdk-preview-license", - "name": "system-image-Tiramisu-google_apis_playstore-x86_64", - "path": "system-images/android-Tiramisu/google_apis_playstore/x86_64", - "revision": "Tiramisu-google_apis_playstore-x86_64" + "name": "system-image-33-google_apis_playstore-x86_64", + "path": "system-images/android-33/google_apis_playstore/x86_64", + "revision": "33-google_apis_playstore-x86_64" + } + } + }, + "Tiramisu": { + "android-tv": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "4b70bed5ffb28162cdde7852e0597d957910270d", + "size": 840304267, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/arm64-v8a-Tiramisu_r03.zip" + } + ], + "displayName": "Android TV ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-Tiramisu-android-tv-arm64-v8a", + "path": "system-images/android-Tiramisu/android-tv/arm64-v8a", + "revision": "Tiramisu-android-tv-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "547a24d9dec83e11486ef4ea45848d9fa99f35c2", + "size": 832895525, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-Tiramisu_r03.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-Tiramisu-android-tv-x86", + "path": "system-images/android-Tiramisu/android-tv/x86", + "revision": "Tiramisu-android-tv-x86" + } + } + }, + "TiramisuPrivacySandbox": { + "google_apis_playstore": { + "arm64-v8a": { + "archives": [ + { + "os": "macosx", + "sha1": "4653d7aa2dbd2629c3afc1c700284de0f7791bb2", + "size": 1514681298, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r05-darwin.zip" + }, + { + "os": "linux", + "sha1": "4653d7aa2dbd2629c3afc1c700284de0f7791bb2", + "size": 1514681298, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r05-linux.zip" + } + ], + "displayName": "Google Play ARM 64 v8a System Image", + "license": "android-sdk-arm-dbt-license", + "name": "system-image-TiramisuPrivacySandbox-google_apis_playstore-arm64-v8a", + "path": "system-images/android-TiramisuPrivacySandbox/google_apis_playstore/arm64-v8a", + "revision": "TiramisuPrivacySandbox-google_apis_playstore-arm64-v8a" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "2a4ea6ce714155ea8ddfea26cf61ad219f32c02a", + "size": 1519169526, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-TiramisuPrivacySandbox_r05.zip" + } + ], + "displayName": "Google Play Intel x86 Atom_64 System Image", + "license": "android-sdk-preview-license", + "name": "system-image-TiramisuPrivacySandbox-google_apis_playstore-x86_64", + "path": "system-images/android-TiramisuPrivacySandbox/google_apis_playstore/x86_64", + "revision": "TiramisuPrivacySandbox-google_apis_playstore-x86_64" } } } @@ -3298,32 +3387,32 @@ "path": "build-tools/32.1.0-rc1", "revision": "32.1.0-rc1" }, - "33.0.0-rc2": { + "33.0.0": { "archives": [ - { - "os": "windows", - "sha1": "789aa6dfb2155b81e073108c70982f73c890a95b", - "size": 55466255, - "url": "https://dl.google.com/android/repository/830151c9e0c410f6148390f0de30bd349ba91efd.build-tools_r33-rc2-windows.zip" - }, { "os": "linux", - "sha1": "013f98217b7af4f5677ab1a47e98da18ad57721c", - "size": 57876882, - "url": "https://dl.google.com/android/repository/build-tools_r33-rc2-linux.zip" + "sha1": "c561971600d4ce682b128b0bd5d4ab71c5f2ad35", + "size": 56000182, + "url": "https://dl.google.com/android/repository/build-tools_r33-linux.zip" }, { "os": "macosx", - "sha1": "586f8f77847ba3899b7652d6514e8c6a78ab673a", - "size": 59910819, - "url": "https://dl.google.com/android/repository/f8baa248444f0a5aca1119b48e897908a3da49d5.build-tools_r33-rc2-macosx.zip" + "sha1": "3693851532ba9640710d2dd360d85aa5b04c5151", + "size": 60023096, + "url": "https://dl.google.com/android/repository/build-tools_r33-macosx.zip" + }, + { + "os": "windows", + "sha1": "f4ef853e5e755ea5ffc50de73a9e420fc76c662e", + "size": 55610532, + "url": "https://dl.google.com/android/repository/build-tools_r33-windows.zip" } ], - "displayName": "Android SDK Build-Tools 33-rc2", - "license": "android-sdk-preview-license", + "displayName": "Android SDK Build-Tools 33", + "license": "android-sdk-license", "name": "build-tools", - "path": "build-tools/33.0.0-rc2", - "revision": "33.0.0-rc2" + "path": "build-tools/33.0.0", + "revision": "33.0.0" } }, "cmake": { @@ -3625,62 +3714,116 @@ "name": "cmdline-tools", "path": "cmdline-tools/6.0", "revision": "6.0" - } - }, - "emulator": { - "31.2.9": { + }, + "7.0": { "archives": [ { "os": "linux", - "sha1": "164b759748b3d2ee2616da74173867b11b18f64f", - "size": 276337192, - "url": "https://dl.google.com/android/repository/emulator-linux_x64-8316981.zip" - }, - { - "os": "windows", - "sha1": "2b6768485a8e6492823a9156fa43c55092afd533", - "size": 345298639, - "url": "https://dl.google.com/android/repository/emulator-windows_x64-8316981.zip" + "sha1": "5e7bf2dd563d34917d32f3c5920a85562a795c93", + "size": 114168525, + "url": "https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip" }, { "os": "macosx", - "sha1": "af2d950318d8ae8cc516a1401a94f888f615aca6", - "size": 313877066, - "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8316981.zip" + "sha1": "9a663c49dbd3709fc2b7d49db2814b383d811b4a", + "size": 114168511, + "url": "https://dl.google.com/android/repository/commandlinetools-mac-8512546_latest.zip" + }, + { + "os": "windows", + "sha1": "1bdd32ac4b9fffea04f5bc341108e8b4fea6f32c", + "size": 114147385, + "url": "https://dl.google.com/android/repository/commandlinetools-win-8512546_latest.zip" + } + ], + "displayName": "Android SDK Command-line Tools", + "license": "android-sdk-license", + "name": "cmdline-tools", + "path": "cmdline-tools/7.0", + "revision": "7.0" + } + }, + "emulator": { + "31.2.10": { + "archives": [ + { + "os": "linux", + "sha1": "1f2c3ddeb2c9ac4feef5946098a0a710d08e9c6d", + "size": 276337904, + "url": "https://dl.google.com/android/repository/emulator-linux_x64-8420304.zip" + }, + { + "os": "windows", + "sha1": "206491b5c4e531b2c66dc80402702b9fa1a64c2a", + "size": 345300871, + "url": "https://dl.google.com/android/repository/emulator-windows_x64-8420304.zip" + }, + { + "os": "macosx", + "sha1": "677b6a00c145eb8bf4306daeb2231c8efd507177", + "size": 313876814, + "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8420304.zip" } ], "displayName": "Android Emulator", "license": "android-sdk-license", "name": "emulator", "path": "emulator", - "revision": "31.2.9" + "revision": "31.2.10" }, - "31.3.7": { + "31.3.8": { "archives": [ { "os": "macosx", - "sha1": "0020b44623995a5a9a5b0d114f8fd942e9d3cbed", - "size": 347204784, - "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8408431.zip" + "sha1": "7214e8384c97a7c9875142149d3bf9c940e9b5a0", + "size": 347222379, + "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8598121.zip" }, { "os": "linux", - "sha1": "46ba0c398fcd2704bee015c95e44d8f317b7b720", - "size": 293765376, - "url": "https://dl.google.com/android/repository/emulator-linux_x64-8408431.zip" + "sha1": "0f781977a6cc5377b64444121ff75a513841a4fa", + "size": 293782881, + "url": "https://dl.google.com/android/repository/emulator-linux_x64-8598121.zip" }, { "os": "windows", - "sha1": "c09a35dd8c7eb7d8c53bf89c86019f5dbcd89b9d", - "size": 380137986, - "url": "https://dl.google.com/android/repository/emulator-windows_x64-8408431.zip" + "sha1": "b4f30bad4e68da41cc9bd44965259b2111a011a1", + "size": 380151866, + "url": "https://dl.google.com/android/repository/emulator-windows_x64-8598121.zip" } ], "displayName": "Android Emulator", "license": "android-sdk-preview-license", "name": "emulator", "path": "emulator", - "revision": "31.3.7" + "revision": "31.3.8" + }, + "31.3.9": { + "archives": [ + { + "os": "macosx", + "sha1": "6e7b549113252728cfe0992d58e8cb1790dce9d6", + "size": 347241742, + "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8700579.zip" + }, + { + "os": "linux", + "sha1": "1c1a7ef65476d3de34f19455a0093cb68e8e90f7", + "size": 293801439, + "url": "https://dl.google.com/android/repository/emulator-linux_x64-8700579.zip" + }, + { + "os": "windows", + "sha1": "ea834211b199a7fcf6b6758a53c4594d01b44ab9", + "size": 380168712, + "url": "https://dl.google.com/android/repository/emulator-windows_x64-8700579.zip" + } + ], + "displayName": "Android Emulator", + "license": "android-sdk-license", + "name": "emulator", + "path": "emulator", + "revision": "31.3.9" } }, "extras": { @@ -4523,6 +4666,33 @@ "path": "ndk/23.1.7779620", "revision": "23.1.7779620" }, + "23.2.8568313": { + "archives": [ + { + "os": "macosx", + "sha1": "1fc65d8f6083f3f5cd01e0cf97c6adc10f4f076f", + "size": 982917530, + "url": "https://dl.google.com/android/repository/android-ndk-r23c-darwin.zip" + }, + { + "os": "linux", + "sha1": "e5053c126a47e84726d9f7173a04686a71f9a67a", + "size": 724733960, + "url": "https://dl.google.com/android/repository/android-ndk-r23c-linux.zip" + }, + { + "os": "windows", + "sha1": "f2c5def76a9de371f27d028864fe301ab4fe0cf8", + "size": 788336993, + "url": "https://dl.google.com/android/repository/android-ndk-r23c-windows.zip" + } + ], + "displayName": "NDK (Side by side) 23.2.8568313", + "license": "android-sdk-license", + "name": "ndk", + "path": "ndk/23.2.8568313", + "revision": "23.2.8568313" + }, "24.0.7856742-rc1": { "archives": [ { @@ -4684,6 +4854,60 @@ "name": "ndk", "path": "ndk/25.0.8221429", "revision": "25.0.8221429-rc2" + }, + "25.0.8355429-rc3": { + "archives": [ + { + "os": "macosx", + "sha1": "224594abb41357c20cb4a9f4a732c484b2e743ba", + "size": 748047157, + "url": "https://dl.google.com/android/repository/android-ndk-r25-beta3-darwin.zip" + }, + { + "os": "linux", + "sha1": "79c8db05e20edde0cbb02d2326e7b8405f7eb977", + "size": 510520692, + "url": "https://dl.google.com/android/repository/android-ndk-r25-beta3-linux.zip" + }, + { + "os": "windows", + "sha1": "7d2c398045f6bbad03f6fb2f2ba419a2a48ab1e7", + "size": 506142216, + "url": "https://dl.google.com/android/repository/android-ndk-r25-beta3-windows.zip" + } + ], + "displayName": "NDK (Side by side) 25.0.8355429", + "license": "android-sdk-preview-license", + "name": "ndk", + "path": "ndk/25.0.8355429", + "revision": "25.0.8355429-rc3" + }, + "25.0.8528842-rc4": { + "archives": [ + { + "os": "macosx", + "sha1": "d7f344ecc68518a8178d15b1b80e27bc5c69f00d", + "size": 716633626, + "url": "https://dl.google.com/android/repository/android-ndk-r25-beta4-darwin.zip" + }, + { + "os": "linux", + "sha1": "d13f688fd286709f0d950c75119ec9fcad8a47ff", + "size": 531018178, + "url": "https://dl.google.com/android/repository/android-ndk-r25-beta4-linux.zip" + }, + { + "os": "windows", + "sha1": "668b063c7c535c4f8be52c84acebb5779935203b", + "size": 464031742, + "url": "https://dl.google.com/android/repository/android-ndk-r25-beta4-windows.zip" + } + ], + "displayName": "NDK (Side by side) 25.0.8528842", + "license": "android-sdk-preview-license", + "name": "ndk", + "path": "ndk/25.0.8528842", + "revision": "25.0.8528842-rc4" } }, "ndk-bundle": { @@ -5381,32 +5605,32 @@ } }, "platform-tools": { - "33.0.1": { + "33.0.2": { "archives": [ { "os": "macosx", - "sha1": "82f7c23e9e4acf6c86991bb23cd5d9f861f7819f", - "size": 13131422, - "url": "https://dl.google.com/android/repository/platform-tools_r33.0.1-darwin.zip" + "sha1": "9b5661e0c18a2e5b6935e2b96bcc7be580cd6dcd", + "size": 13038676, + "url": "https://dl.google.com/android/repository/platform-tools_r33.0.2-darwin.zip" }, { "os": "linux", - "sha1": "4792ee4593e8e2395ddb87a3e82d60629eb0e977", - "size": 7449306, - "url": "https://dl.google.com/android/repository/platform-tools_r33.0.1-linux.zip" + "sha1": "6bf4f747ad929b02378b44ce083b4502d26109c7", + "size": 7406632, + "url": "https://dl.google.com/android/repository/platform-tools_r33.0.2-linux.zip" }, { "os": "windows", - "sha1": "e91ab59b5ddc5e387c5171b37c3813eaa2fa3846", - "size": 6331279, - "url": "https://dl.google.com/android/repository/platform-tools_r33.0.1-windows.zip" + "sha1": "2d7599f59b54f02c4ecd33d656091a3c1e55ad9c", + "size": 6304111, + "url": "https://dl.google.com/android/repository/platform-tools_r33.0.2-windows.zip" } ], "displayName": "Android SDK Platform-Tools", "license": "android-sdk-license", "name": "platform-tools", "path": "platform-tools", - "revision": "33.0.1" + "revision": "33.0.2" } }, "platforms": { @@ -5809,6 +6033,21 @@ "path": "platforms/android-32", "revision": "32" }, + "33": { + "archives": [ + { + "os": "all", + "sha1": "298f5800e37f3c089ab0eb58d4f6aef4058b689b", + "size": 67324871, + "url": "https://dl.google.com/android/repository/platform-33_r01.zip" + } + ], + "displayName": "Android SDK Platform 33", + "license": "android-sdk-license", + "name": "platforms", + "path": "platforms/android-33", + "revision": "33" + }, "4": { "archives": [ { @@ -5935,20 +6174,20 @@ "path": "platforms/android-9", "revision": "9" }, - "Tiramisu": { + "TiramisuPrivacySandbox": { "archives": [ { "os": "all", - "sha1": "2ac79862a909392d68d8ad503c45809e725d71f6", - "size": 67290653, - "url": "https://dl.google.com/android/repository/platform-Tiramisu_r02.zip" + "sha1": "8dd74a564f71c8381f5230682c5da291d230cc81", + "size": 67918949, + "url": "https://dl.google.com/android/repository/platform-TiramisuPrivacySandbox_r03.zip" } ], - "displayName": "Android SDK Platform Tiramisu", + "displayName": "Android SDK Platform TiramisuPrivacySandbox", "license": "android-sdk-license", "name": "platforms", - "path": "platforms/android-Tiramisu", - "revision": "Tiramisu" + "path": "platforms/android-TiramisuPrivacySandbox", + "revision": "TiramisuPrivacySandbox" } }, "skiaparser": { @@ -6304,6 +6543,21 @@ "name": "sources", "path": "sources/android-31", "revision": "31" + }, + "32": { + "archives": [ + { + "os": "all", + "sha1": "d7195c6de611b99d7ec3565eabe2fd21268b7f98", + "size": 46933291, + "url": "https://dl.google.com/android/repository/sources-32_r01.zip" + } + ], + "displayName": "Sources for Android 32", + "license": "android-sdk-license", + "name": "sources", + "path": "sources/android-32", + "revision": "32" } }, "tools": { diff --git a/pkgs/development/ocaml-modules/chrome-trace/default.nix b/pkgs/development/ocaml-modules/chrome-trace/default.nix new file mode 100644 index 000000000000..fb6c14b3362e --- /dev/null +++ b/pkgs/development/ocaml-modules/chrome-trace/default.nix @@ -0,0 +1,20 @@ +{ lib, buildDunePackage, dune_3 }: + +buildDunePackage rec { + pname = "chrome-trace"; + inherit (dune_3) src version; + + duneVersion = "3"; + + dontAddPrefix = true; + + preBuild = '' + rm -r vendor/csexp + ''; + + meta = with lib; { + description = "Chrome trace event generation library"; + inherit (dune_3.meta) homepage; + license = licenses.mit; + }; +} diff --git a/pkgs/development/ocaml-modules/gapi-ocaml/default.nix b/pkgs/development/ocaml-modules/gapi-ocaml/default.nix index c417d94e2947..f9e566eb0494 100644 --- a/pkgs/development/ocaml-modules/gapi-ocaml/default.nix +++ b/pkgs/development/ocaml-modules/gapi-ocaml/default.nix @@ -1,31 +1,29 @@ { lib, fetchFromGitHub, buildDunePackage, ocaml , cryptokit, ocamlnet, ocurl, yojson -, ounit +, ounit2 }: buildDunePackage rec { pname = "gapi-ocaml"; - version = "0.4.2"; + version = "0.4.3"; - useDune2 = true; - - minimumOCamlVersion = "4.02"; + minimalOCamlVersion = "4.02"; src = fetchFromGitHub { owner = "astrada"; repo = pname; rev = "v${version}"; - sha256 = "sha256-imicHOlNjPHHW/lcWRJmURafYZFe/6J3efKPJcel8J8="; + sha256 = "sha256-V0GB9Bd06IdcI5PDFHGVZ0Y/qi7tTs/4ITqPXUOxCLs="; }; propagatedBuildInputs = [ cryptokit ocamlnet ocurl yojson ]; doCheck = lib.versionAtLeast ocaml.version "4.04"; - checkInputs = [ ounit ]; + checkInputs = [ ounit2 ]; meta = { description = "OCaml client for google services"; - homepage = "http://gapi-ocaml.forge.ocamlcore.org"; + inherit (src.meta) homepage; license = lib.licenses.mit; maintainers = with lib.maintainers; [ bennofs ]; }; diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix index 2e6802a50426..4e79e0310ac6 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix @@ -12,17 +12,21 @@ let params = if lib.versionAtLeast ocaml.version "4.14" then { - version = "1.11.3"; - sha256 = "sha256-KlMFh05O04I0Xil2B+nL2hUxZw0jaDMUnI23oUwGyhs="; + name = "lsp"; + version = "1.12.4"; + sha256 = "sha256-kZuYAny8VjWdq+ipEdPSTRcGzqjNBOgXOi0dOwb52EY="; } else if lib.versionAtLeast ocaml.version "4.13" then { + name = "jsonrpc"; version = "1.10.5"; sha256 = "sha256-TeJS6t1ruWhWPvWNatrnSUWI6T17XKiosHLYizBDDcw="; } else if lib.versionAtLeast ocaml.version "4.12" then { + name = "jsonrpc"; version = "1.9.0"; sha256 = "sha256:1ac44n6g3rf84gvhcca545avgf9vpkwkkkm0s8ipshfhp4g4jikh"; } else { + name = "jsonrpc"; version = "1.4.1"; sha256 = "1ssyazc0yrdng98cypwa9m3nzfisdzpp7hqnx684rqj8f0g3gs6f"; } @@ -32,7 +36,7 @@ buildDunePackage rec { pname = "jsonrpc"; inherit (params) version; src = fetchurl { - url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/jsonrpc-${version}.tbz"; + url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/${params.name}-${version}.tbz"; inherit (params) sha256; }; diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix index faa149519077..3111d4277c41 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix @@ -13,6 +13,7 @@ , dyn , re , stdune +, chrome-trace , dune_3 , csexp , pp @@ -40,7 +41,22 @@ buildDunePackage rec { ''; buildInputs = - if lib.versionAtLeast version "1.10.0" then + if lib.versionAtLeast version "1.12.0" then + [ + pp + re + ppx_yojson_conv_lib + octavius + dune-build-info + dune-rpc + omd + cmdliner + ocamlformat-rpc-lib + dyn + stdune + chrome-trace + ] + else if lib.versionAtLeast version "1.10.0" then [ pp re diff --git a/pkgs/development/python-modules/django-sampledatahelper/default.nix b/pkgs/development/python-modules/django-sampledatahelper/default.nix deleted file mode 100644 index 4ff2b7ba8539..000000000000 --- a/pkgs/development/python-modules/django-sampledatahelper/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, versiontools -, django -, sampledata -, nose -, pillow -, six -}: - -buildPythonPackage rec { - pname = "django-sampledatahelper"; - version = "0.5"; - - # no tests on PyPI - src = fetchFromGitHub { - owner = "kaleidos"; - repo = "django-sampledatahelper"; - rev = "8576f352ec26a3650f4386a6e1285b723f6aec23"; # no tag - sha256 = "1fx3ql4b9791594zkary19n20x5ra1m1n3pjaya9di1qy64csac4"; - }; - - nativeBuildInputs = [ versiontools ]; - - propagatedBuildInputs = [ django sampledata ]; - - checkInputs = [ nose pillow six ]; - - checkPhase = '' - DJANGO_SETTINGS_MODULE=tests.settings NOSE_EXCLUDE=test_calling_command nosetests -v - ''; - - meta = { - description = "Helper class for generate sample data for django apps development"; - homepage = "https://github.com/kaleidos/django-sampledatahelper"; - license = lib.licenses.bsd3; - }; -} diff --git a/pkgs/development/python-modules/optax/default.nix b/pkgs/development/python-modules/optax/default.nix index b0f896a18ebb..42541d9078cf 100644 --- a/pkgs/development/python-modules/optax/default.nix +++ b/pkgs/development/python-modules/optax/default.nix @@ -1,28 +1,29 @@ { absl-py , buildPythonPackage , chex -, dm-haiku , fetchFromGitHub , jaxlib , lib , numpy -, pytest-xdist -, pytestCheckHook -, tensorflow -, tensorflow-datasets +, callPackage }: buildPythonPackage rec { pname = "optax"; - version = "0.1.1"; + version = "0.1.3"; src = fetchFromGitHub { owner = "deepmind"; repo = pname; rev = "v${version}"; - hash = "sha256-s/BcqzhdfWzR61MStusUPQtuT4+t8NcC5gBGiGggFqw="; + hash = "sha256-XAYztMBQpLBHNuNED/iodbwIMJSN/0GxdmTGQ5jD9Ws="; }; + outputs = [ + "out" + "testsout" + ]; + buildInputs = [ jaxlib ]; propagatedBuildInputs = [ @@ -31,24 +32,21 @@ buildPythonPackage rec { numpy ]; - checkInputs = [ - dm-haiku - pytest-xdist - pytestCheckHook - tensorflow - tensorflow-datasets - ]; + postInstall = '' + mkdir $testsout + cp -R examples $testsout/examples + ''; pythonImportsCheck = [ "optax" ]; - disabledTestPaths = [ - # Requires `flax` which depends on `optax` creating circular dependency. - "optax/_src/equivalence_test.py" - # See https://github.com/deepmind/optax/issues/323. - "examples/lookahead_mnist_test.py" - ]; + # check in passthru.tests.pytest to escape infinite recursion with flax + doCheck = false; + + passthru.tests = { + pytest = callPackage ./tests.nix { }; + }; meta = with lib; { description = "Optax is a gradient processing and optimization library for JAX."; diff --git a/pkgs/development/python-modules/optax/tests.nix b/pkgs/development/python-modules/optax/tests.nix new file mode 100644 index 000000000000..fedff61302d7 --- /dev/null +++ b/pkgs/development/python-modules/optax/tests.nix @@ -0,0 +1,35 @@ +{ stdenv +, buildPythonPackage +, dm-haiku +, pytest-xdist +, pytestCheckHook +, tensorflow +, tensorflow-datasets +, flax +, optax +}: + +buildPythonPackage rec { + pname = "optax-tests"; + inherit (optax) version; + + src = optax.testsout; + + dontBuild = true; + dontInstall = true; + + checkInputs = [ + dm-haiku + pytest-xdist + pytestCheckHook + tensorflow + tensorflow-datasets + flax + ]; + + disabledTestPaths = [ + # See https://github.com/deepmind/optax/issues/323 + "examples/lookahead_mnist_test.py" + ]; + +} diff --git a/pkgs/development/python-modules/plotnine/default.nix b/pkgs/development/python-modules/plotnine/default.nix index 58df795cb3a1..9e0b1c817613 100644 --- a/pkgs/development/python-modules/plotnine/default.nix +++ b/pkgs/development/python-modules/plotnine/default.nix @@ -8,6 +8,8 @@ , statsmodels , pytestCheckHook , geopandas +, scikit-misc +, adjusttext , mizani }: buildPythonPackage rec { @@ -34,8 +36,10 @@ buildPythonPackage rec { ]; checkInputs = [ + adjusttext geopandas pytestCheckHook + scikit-misc ]; preCheck = '' diff --git a/pkgs/development/python-modules/scikit-misc/default.nix b/pkgs/development/python-modules/scikit-misc/default.nix new file mode 100644 index 000000000000..bfe0ab7d5b34 --- /dev/null +++ b/pkgs/development/python-modules/scikit-misc/default.nix @@ -0,0 +1,45 @@ +{ lib +, fetchPypi +, buildPythonPackage +, cython +, gfortran +, pytestCheckHook +, numpy }: + +buildPythonPackage rec { + pname = "scikit-misc"; + version = "0.1.4"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-93RqA0eBEGPh7PkSHflINXhQA5U8OLW6hPY/xQjCKRE="; + }; + + postPatch = '' + substituteInPlace pytest.ini \ + --replace "--cov --cov-report=xml" "" + ''; + + nativeBuildInputs = [ + gfortran + ]; + + buildInputs = [ + cython + numpy + ]; + + # Tests fail because of infinite recursion error + doCheck = false; + + pythonImportsCheck = [ + "skmisc" + ]; + + meta = with lib; { + description = "Miscellaneous tools for scientific computing"; + homepage = "https://github.com/has2k1/scikit-misc"; + license = licenses.bsd3; + maintainers = with maintainers; [ onny ]; + }; +} diff --git a/pkgs/development/tools/ocaml/opam2json/default.nix b/pkgs/development/tools/ocaml/opam2json/default.nix new file mode 100644 index 000000000000..198a5f575eb4 --- /dev/null +++ b/pkgs/development/tools/ocaml/opam2json/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, opam-installer, ocamlPackages }: +stdenv.mkDerivation rec { + pname = "opam2json"; + version = "0.2"; + + src = fetchFromGitHub { + owner = "tweag"; + repo = pname; + rev = "v${version}"; + sha256 = "fe8bm/V/4r2iNxgbitT2sXBqDHQ0GBSnSUSBg/1aXoI="; + }; + + buildInputs = with ocamlPackages; [ yojson opam-file-format cmdliner ]; + nativeBuildInputs = with ocamlPackages; [ ocaml findlib opam-installer ]; + + preInstall = ''export PREFIX="$out"''; + + meta = with lib; { + platforms = platforms.all; + description = "convert opam file syntax to JSON"; + maintainers = [ maintainers.balsoft ]; + license = licenses.gpl3; + homepage = "https://github.com/tweag/opam2json"; + }; +} diff --git a/pkgs/development/tools/zls/default.nix b/pkgs/development/tools/zls/default.nix index a48dbf9e30f9..8cb041b90b2e 100644 --- a/pkgs/development/tools/zls/default.nix +++ b/pkgs/development/tools/zls/default.nix @@ -28,5 +28,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/zigtools/zls"; license = licenses.mit; maintainers = with maintainers; [ fortuneteller2k ]; + platforms = platforms.unix; }; } diff --git a/pkgs/os-specific/linux/adcli/default.nix b/pkgs/os-specific/linux/adcli/default.nix new file mode 100644 index 000000000000..977c1d09dbae --- /dev/null +++ b/pkgs/os-specific/linux/adcli/default.nix @@ -0,0 +1,68 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, openldap +, libkrb5 +, libxslt +, autoreconfHook +, pkg-config +, cyrus_sasl +, util-linux +, xmlto +, docbook_xsl +, docbook_xml_dtd_43 +}: + +stdenv.mkDerivation rec { + pname = "adcli"; + version = "0.9.1"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "realmd"; + repo = pname; + rev = version; + sha256 = "sha256-Zzt4qgLiJNuSrbtDWuxJEfGL7sWSbqN301q3qXZpn9c="; + }; + + # https://bugs.gentoo.org/820224 + # Without this it produces some weird missing symbol error in glibc + patches = [ + (fetchpatch { + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-crypt/adcli/files/adcli-0.9.1-glibc-2.34-resolv.patch?id=01db544de893262e857685e11b33c2a74210181f"; + sha256 = "sha256-dZ6dkzxd+0XjY/X9/2IWMan3syvCDGFHiMbxFxMHGFA="; + }) + ]; + + postPatch = '' + substituteInPlace tools/Makefile.am \ + --replace 'sbin_PROGRAMS' 'bin_PROGRAMS' + + substituteInPlace doc/Makefile.am \ + --replace 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl' \ + '${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl' + + function patch_docbook(){ + substituteInPlace $1 \ + --replace "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" \ + "${docbook_xml_dtd_43}/xml/dtd/docbook/docbookx.dtd" + } + patch_docbook doc/adcli.xml + patch_docbook doc/adcli-devel.xml + patch_docbook doc/adcli-docs.xml + ''; + nativeBuildInputs = [ autoreconfHook pkg-config docbook_xsl ]; + + buildInputs = [ openldap libkrb5 libxslt cyrus_sasl util-linux xmlto docbook_xsl ]; + + configureFlags = [ "--disable-debug" ]; + + meta = with lib; { + homepage = "https://www.freedesktop.org/software/realmd/adcli/adcli.html"; + description = "A helper library and tools for Active Directory client operations."; + license = licenses.lgpl21Only; + maintainers = with maintainers; [ SohamG ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix index 6434a756bcd8..5b4d9d695f50 100644 --- a/pkgs/servers/atlassian/jira.nix +++ b/pkgs/servers/atlassian/jira.nix @@ -3,7 +3,7 @@ , fetchurl , gawk , enableSSO ? false -, crowdProperties ? null +, makeWrapper }: stdenv.mkDerivation rec { @@ -15,6 +15,8 @@ stdenv.mkDerivation rec { sha256 = "sha256-Zog0m8tsx8mDLU1rsW5zhhHgyRmi4JGWuy9DV8yp9nY="; }; + nativeBuildInputs = [ makeWrapper ]; + buildPhase = '' mv conf/server.xml conf/server.xml.dist ln -sf /run/atlassian-jira/server.xml conf/server.xml @@ -27,10 +29,6 @@ stdenv.mkDerivation rec { substituteInPlace atlassian-jira/WEB-INF/classes/seraph-config.xml \ --replace com.atlassian.jira.security.login.JiraSeraphAuthenticator \ com.atlassian.jira.security.login.SSOSeraphAuthenticator - '' + lib.optionalString (crowdProperties != null) '' - cat < atlassian-jira/WEB-INF/classes/crowd.properties - ${crowdProperties} - EOF ''; installPhase = '' @@ -41,6 +39,6 @@ stdenv.mkDerivation rec { description = "Proprietary issue tracking product, also providing project management functions"; homepage = "https://www.atlassian.com/software/jira"; license = licenses.unfree; - maintainers = with maintainers; [ fpletz globin ciil megheaiulian techknowlogick ]; + maintainers = with maintainers; [ fpletz globin ciil megheaiulian techknowlogick ma27 ]; }; } diff --git a/pkgs/servers/etcd/3.4.nix b/pkgs/servers/etcd/3.4.nix index 538b7a7d2308..ad3c1e35204c 100644 --- a/pkgs/servers/etcd/3.4.nix +++ b/pkgs/servers/etcd/3.4.nix @@ -2,9 +2,9 @@ buildGoModule rec { pname = "etcd"; - version = "3.4.18"; + version = "3.4.19"; - vendorSha256 = null; + vendorSha256 = "sha256-ZONIsizxRiwZWRu4y9VzZcCpyBKoa0j3h3JqoMMPGu0="; doCheck = false; @@ -12,7 +12,7 @@ buildGoModule rec { owner = "etcd-io"; repo = "etcd"; rev = "v${version}"; - sha256 = "sha256-/bXcW5g8mNFEjvfg+1loLFi8+IaWdcTE/lUPsHzEaIo="; + sha256 = "sha256-8X7xTZrZ/AjUgrW9XgD8B7eKFfOulj8WBjXoImAtJoM="; }; buildPhase = '' diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix index a720500380e1..05d71c9bad32 100644 --- a/pkgs/servers/mail/rspamd/default.nix +++ b/pkgs/servers/mail/rspamd/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchFromGitHub, cmake, perl -, glib, luajit, openssl, pcre2, pkg-config, sqlite, ragel, icu +, glib, luajit, openssl, pcre, pkg-config, sqlite, ragel, icu , hyperscan, jemalloc, blas, lapack, lua, libsodium , withBlas ? true , withHyperscan ? stdenv.isx86_64 @@ -23,12 +23,14 @@ stdenv.mkDerivation rec { hardeningEnable = [ "pie" ]; nativeBuildInputs = [ cmake pkg-config perl ]; - buildInputs = [ glib openssl pcre2 sqlite ragel icu jemalloc libsodium ] + buildInputs = [ glib openssl pcre sqlite ragel icu jemalloc libsodium ] ++ lib.optional withHyperscan hyperscan ++ lib.optionals withBlas [ blas lapack ] ++ lib.optional withLuaJIT luajit ++ lib.optional (!withLuaJIT) lua; cmakeFlags = [ + # pcre2 jit seems to cause crashes: https://github.com/NixOS/nixpkgs/pull/181908 + "-DENABLE_PCRE2=OFF" "-DDEBIAN_BUILD=ON" "-DRUNDIR=/run/rspamd" "-DDBDIR=/var/lib/rspamd" diff --git a/pkgs/shells/bash/fzf-obc/default.nix b/pkgs/shells/bash/fzf-obc/default.nix new file mode 100644 index 000000000000..7621ae8c73c0 --- /dev/null +++ b/pkgs/shells/bash/fzf-obc/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "fzf-obc"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "rockandska"; + repo = pname; + rev = version; + sha256 = "sha256-KIAlDpt1Udl+RLp3728utgQ9FCjZz/OyoG92MOJmgPI="; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/fzf-obc/{bin,lib/fzf-obc,plugins/{kill,gradle}} + install -m644 bin/* $out/share/fzf-obc/bin + install -m644 lib/fzf-obc/* $out/share/fzf-obc/lib/fzf-obc + install -m644 plugins/kill/* $out/share/fzf-obc/plugins/kill + install -m644 plugins/gradle/* $out/share/fzf-obc/plugins/gradle + ''; + + meta = with lib; { + homepage = "https://fzf-obc.readthedocs.io"; + description = "Completion script adding fzf over all know bash completion functions"; + license = licenses.unfree; + maintainers = with maintainers; [ loicreynier ]; + }; +} diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix index 3f806ea97378..069f4e13aff8 100644 --- a/pkgs/tools/misc/yt-dlp/default.nix +++ b/pkgs/tools/misc/yt-dlp/default.nix @@ -20,12 +20,12 @@ buildPythonPackage rec { # The websites yt-dlp deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported # to the latest stable release. - version = "2022.6.29"; + version = "2022.07.18"; src = fetchPypi { inherit pname; version = builtins.replaceStrings [ ".0" ] [ "." ] version; - sha256 = "sha256-X7+scv0DXRG8JpPl0c1pM7G8BxL3QvUIKiYXA4ELtck="; + sha256 = "sha256-DnuB/GrI0bfT//p5+QRMpBY3hEIlgsmjWTMF2ipp7AI="; }; propagatedBuildInputs = [ brotli certifi mutagen pycryptodomex websockets ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 18c82f113e62..89a5d5442d73 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -214,6 +214,8 @@ with pkgs; quickemu = callPackage ../development/quickemu { }; + adcli = callPackage ../os-specific/linux/adcli { }; + aether = callPackage ../applications/networking/aether { }; alda = callPackage ../development/interpreters/alda { }; @@ -2672,9 +2674,10 @@ with pkgs; pkgs_i686 = pkgsi686Linux; }; - androidndkPkgs = androidndkPkgs_18b; - androidndkPkgs_18b = (callPackage ../development/androidndk-pkgs {})."18b"; + androidndkPkgs = androidndkPkgs_21; androidndkPkgs_21 = (callPackage ../development/androidndk-pkgs {})."21"; + androidndkPkgs_23b = (callPackage ../development/androidndk-pkgs {})."23b"; + androidndkPkgs_24 = (callPackage ../development/androidndk-pkgs {})."24"; androidsdk_9_0 = androidenv.androidPkgs_9_0.androidsdk; @@ -3746,6 +3749,8 @@ with pkgs; fzf = callPackage ../tools/misc/fzf { }; + fzf-obc = callPackage ../shells/bash/fzf-obc { }; + fzf-zsh = callPackage ../shells/zsh/fzf-zsh { }; fzy = callPackage ../tools/misc/fzy { }; @@ -9186,6 +9191,8 @@ with pkgs; openapi-generator-cli = callPackage ../tools/networking/openapi-generator-cli { jre = pkgs.jre_headless; }; openapi-generator-cli-unstable = callPackage ../tools/networking/openapi-generator-cli/unstable.nix { jre = pkgs.jre_headless; }; + openbangla-keyboard = libsForQt5.callPackage ../applications/misc/openbangla-keyboard { }; + openboard = libsForQt5.callPackage ../applications/graphics/openboard { }; opencc = callPackage ../tools/text/opencc { }; @@ -13947,6 +13954,8 @@ with pkgs; opam-installer = callPackage ../development/tools/ocaml/opam/installer.nix { }; + opam2json = callPackage ../development/tools/ocaml/opam2json { }; + wrapWatcom = callPackage ../development/compilers/open-watcom/wrapper.nix { }; open-watcom-v2-unwrapped = callPackage ../development/compilers/open-watcom/v2.nix { }; open-watcom-v2 = wrapWatcom open-watcom-v2-unwrapped { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index d794592461f7..1955f962b7c7 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -181,6 +181,8 @@ let checkseum = callPackage ../development/ocaml-modules/checkseum { }; + chrome-trace = callPackage ../development/ocaml-modules/chrome-trace { }; + cil = callPackage ../development/ocaml-modules/cil { }; cmdliner_1_0 = callPackage ../development/ocaml-modules/cmdliner/1_0.nix { }; @@ -549,7 +551,7 @@ let dypgen = callPackage ../development/ocaml-modules/dypgen { }; - gapi_ocaml = callPackage ../development/ocaml-modules/gapi-ocaml { }; + gapi-ocaml = callPackage ../development/ocaml-modules/gapi-ocaml { }; gen_js_api = callPackage ../development/ocaml-modules/gen_js_api { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 087417c9fb35..58223bafd5ba 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -55,6 +55,7 @@ mapAliases ({ diff_cover = diff-cover; # added 2021-07-02 discogs_client = discogs-client; # added 2021-07-02 djangorestframework-jwt = drf-jwt; # added 2021-07-20 + django-sampledatahelper = throw "django-sampledatahelper was removed because it is no longer compatible to latest Django version"; # added 2022-07-18 django_2 = throw "Django 2 has reached it's projected EOL in 2022/04 and has therefore been removed."; # added 2022-03-05 django_appconf = django-appconf; # added 2022-03-03 django_environ = django-environ; # added 2021-12-25 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 223b190b43e8..4f430c6bb183 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2471,8 +2471,6 @@ in { django-reversion = callPackage ../development/python-modules/django-reversion { }; - django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { }; - django-sesame = callPackage ../development/python-modules/django-sesame { }; django_silk = callPackage ../development/python-modules/django_silk { }; @@ -9577,6 +9575,8 @@ in { scikit-learn-extra = callPackage ../development/python-modules/scikit-learn-extra { }; + scikit-misc = callPackage ../development/python-modules/scikit-misc { }; + scikit-optimize = callPackage ../development/python-modules/scikit-optimize { }; scikits-odes = callPackage ../development/python-modules/scikits-odes { };