diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 5da0bc2b5881..c3b9390e584c 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -20443,6 +20443,16 @@ githubId = 13489144; name = "Calle Rosenquist"; }; + xddxdd = { + email = "b980120@hotmail.com"; + github = "xddxdd"; + githubId = 5778879; + keys = [ + { fingerprint = "2306 7C13 B6AE BDD7 C0BB 5673 27F3 1700 E751 EC22"; } + { fingerprint = "B195 E8FB 873E 6020 DCD1 C0C6 B50E C319 385F CB0D"; } + ]; + name = "Yuhui Xu"; + }; xdhampus = { name = "Hampus"; github = "xdHampus"; diff --git a/maintainers/scripts/bootstrap-files/README.md b/maintainers/scripts/bootstrap-files/README.md new file mode 100644 index 000000000000..ae385cbd6ce8 --- /dev/null +++ b/maintainers/scripts/bootstrap-files/README.md @@ -0,0 +1,85 @@ +# Bootstrap files + +Currently `nixpkgs` builds most of it's packages using bootstrap seed +binaries (without the reliance on external inputs): + +- `bootstrap-tools`: an archive with the compiler toolchain and other + helper tools enough to build the rest of the `nixpkgs`. +- initial binaries needed to unpack `bootstrap-tools.*`. On `linux` + it's just `busybox`, on `darwin` it's `sh`, `bzip2`, `mkdir` and + `cpio`. These binaries can be executed directly from the store. + +These are called "bootstrap files". + +Bootstrap files should always be fetched from hydra and uploaded to +`tarballs.nixos.org` to guarantee that all the binaries were built from +the code committed into `nixpkgs` repository. + +The uploads to `tarballs.nixos.org` are done by `@lovesegfault` today. + +This document describes the procedure of updating bootstrap files in +`nixpkgs`. + +## How to request the bootstrap seed update + +To get the tarballs updated let's use an example `i686-unknown-linux-gnu` +target: + +1. Create a local update: + + ``` + $ maintainers/scripts/bootstrap-files/refresh-tarballs.bash --commit --targets=i686-unknown-linux-gnu + ``` + +2. Test the update locally. I'll build local `hello` derivation with + the result: + + ``` + $ nix-build -A hello --argstr system i686-linux + ``` + + To validate cross-targets `binfmt` `NixOS` helper can be useful. + For `riscv64-unknown-linux-gnu` the `/etc/nixox/configuraqtion.nix` + entry would be `boot.binfmt.emulatedSystems = [ "riscv64-linux" ]`. + +3. Propose the commit as a PR to update bootstrap tarballs, tag people + who can help you test the updated architecture and once reviewed tag + `@lovesegfault` to upload the tarballs. + +## Bootstrap files job definitions + +There are two types of bootstrap files: + +- natively built `stdenvBootstrapTools.build` hydra jobs in + [`nixpkgs:trunk`](https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs) + jobset. Incomplete list of examples is: + + * `aarch64-unknown-linux-musl.nix` + * `i686-unknown-linux-gnu.nix` + + These are Tier 1 hydra platforms. + +- cross-built by `bootstrapTools.build` hydra jobs in + [`nixpkgs:cross-trunk`](https://hydra.nixos.org/jobset/nixpkgs/cross-trunk#tabs-jobs) + jobset. Incomplete list of examples is: + + * `mips64el-unknown-linux-gnuabi64.nix` + * `mips64el-unknown-linux-gnuabin32.nix` + * `mipsel-unknown-linux-gnu.nix` + * `powerpc64le-unknown-linux-gnu.nix` + * `riscv64-unknown-linux-gnu.nix` + + These are usually Tier 2 and lower targets. + +The `.build` job contains `/on-server/` subdirectory with binaries to +be uploaded to `tarballs.nixos.org`. +The files are uploaded to `tarballs.nixos.org` by writers to `S3` store. + +## TODOs + +- `pkgs/stdenv/darwin` file layout is slightly different from + `pkgs/stdenv/linux`. Once `linux` seed update becomes a routine we can + bring `darwin` in sync if it's feasible. +- `darwin` definition of `.build` `on-server/` directory layout differs + and should be updated. + diff --git a/maintainers/scripts/bootstrap-files/refresh-tarballs.bash b/maintainers/scripts/bootstrap-files/refresh-tarballs.bash new file mode 100755 index 000000000000..21c43ade27f1 --- /dev/null +++ b/maintainers/scripts/bootstrap-files/refresh-tarballs.bash @@ -0,0 +1,282 @@ +#!/usr/bin/env nix-shell +#! nix-shell --pure +#! nix-shell -i bash +#! nix-shell -p curl cacert +#! nix-shell -p git +#! nix-shell -p nix +#! nix-shell -p jq + +# How the refresher works: +# +# For a given list of : +# 1. fetch latest successful '.build` job +# 2. fetch oldest evaluation that contained that '.build', extract nixpkgs commit +# 3. fetch all the `.build` artifacts from '$out/on-server/' directory +# 4. calculate hashes and craft the commit message with the details on +# how to upload the result to 'tarballs.nixos.org' + +usage() { + cat >&2 <[,,...] + + The tool must be ran from the root directory of 'nixpkgs' repository. + +Synopsis: + 'refresh-tarballs.bash' script fetches latest bootstrapFiles built + by hydra, registers them in 'nixpkgs' and provides commands to + upload seed files to 'tarballs.nixos.org'. + + This is usually done in the following cases: + + 1. Single target fix: current bootstrap files for a single target + are problematic for some reason (target-specific bug). In this + case we can refresh just that target as: + + \$ $0 --commit --targets=i686-unknown-linux-gnu + + 2. Routine refresh: all bootstrap files should be refreshed to avoid + debugging problems that only occur on very old binaries. + + \$ $0 --commit --all-targets + +To get help on uploading refreshed binaries to 'tarballs.nixos.org' +please have a look at . +EOF + exit 1 +} + +# log helpers + +die() { + echo "ERROR: $*" >&2 + exit 1 +} + +info() { + echo "INFO: $*" >&2 +} + +[[ ${#@} -eq 0 ]] && usage + +# known targets + +NATIVE_TARGETS=( + aarch64-unknown-linux-gnu + aarch64-unknown-linux-musl + i686-unknown-linux-gnu + x86_64-unknown-linux-gnu + x86_64-unknown-linux-musl + + # TODO: add darwin here once a few prerequisites are satisfied: + # - bootstrap-files are factored out into a separate file + # - the build artifacts are factored out into an `on-server` + # directory. Right onw if does not match `linux` layout. + # + #aarch64-apple-darwin + #x86_64-apple-darwin +) + +is_native() { + local t target=$1 + for t in "${NATIVE_TARGETS[@]}"; do + [[ $t == $target ]] && return 0 + done + return 1 +} + +CROSS_TARGETS=( + armv5tel-unknown-linux-gnueabi + armv6l-unknown-linux-gnueabihf + armv6l-unknown-linux-musleabihf + armv7l-unknown-linux-gnueabihf + mips64el-unknown-linux-gnuabi64 + mips64el-unknown-linux-gnuabin32 + mipsel-unknown-linux-gnu + powerpc64le-unknown-linux-gnu + riscv64-unknown-linux-gnu +) + +is_cross() { + local t target=$1 + for t in "${CROSS_TARGETS[@]}"; do + [[ $t == $target ]] && return 0 + done + return 1 +} + +# collect passed options + +targets=() +commit=no + +for arg in "$@"; do + case "$arg" in + --all-targets) + targets+=( + ${CROSS_TARGETS[@]} + ${NATIVE_TARGETS[@]} + ) + ;; + --targets=*) + # Convert "--targets=a,b,c" to targets=(a b c) bash array. + comma_targets=${arg#--targets=} + targets+=(${comma_targets//,/ }) + ;; + --commit) + commit=yes + ;; + *) + usage + ;; + esac +done + +for target in "${targets[@]}"; do + # Native and cross jobsets differ a bit. We'll have to pick the + # one based on target name: + if is_native $target; then + jobset=nixpkgs/trunk + job="stdenvBootstrapTools.${target}.build" + elif is_cross $target; then + jobset=nixpkgs/cross-trunk + job="bootstrapTools.${target}.build" + else + die "'$target' is not present in either of 'NATIVE_TARGETS' or 'CROSS_TARGETS'. Please add one." + fi + + # 'nixpkgs' prefix where we will write new tarball hashes + case "$target" in + *linux*) nixpkgs_prefix="pkgs/stdenv/linux" ;; + *darwin*) nixpkgs_prefix="pkgs/stdenv/darwin" ;; + *) die "don't know where to put '$target'" ;; + esac + + # We enforce s3 prefix for all targets here. This slightly differs + # from manual uploads targets where names were chosen inconsistently. + s3_prefix="stdenv/$target" + + # resolve 'latest' build to the build 'id', construct the link. + latest_build_uri="https://hydra.nixos.org/job/$jobset/$job/latest" + latest_build="$target.latest-build" + info "Fetching latest successful build from '${latest_build_uri}'" + curl -s -H "Content-Type: application/json" -L "$latest_build_uri" > "$latest_build" + [[ $? -ne 0 ]] && die "Failed to fetch latest successful build" + latest_build_id=$(jq '.id' < "$latest_build") + [[ $? -ne 0 ]] && die "Did not find 'id' in latest build" + build_uri="https://hydra.nixos.org/build/${latest_build_id}" + + # We pick oldest jobset evaluation and extract the 'nicpkgs' commit. + # + # We use oldest instead of latest to make the result more stable + # across unrelated 'nixpkgs' updates. Ideally two subsequent runs of + # this refresher should produce the same output (provided there are + # no bootstrapTools updates committed between the two runs). + oldest_eval_id=$(jq '.jobsetevals|min' < "$latest_build") + [[ $? -ne 0 ]] && die "Did not find 'jobsetevals' in latest build" + eval_uri="https://hydra.nixos.org/eval/${oldest_eval_id}" + eval_meta="$target.eval-meta" + info "Fetching oldest eval details from '${eval_uri}' (can take a minute)" + curl -s -H "Content-Type: application/json" -L "${eval_uri}" > "$eval_meta" + [[ $? -ne 0 ]] && die "Failed to fetch eval metadata" + nixpkgs_revision=$(jq --raw-output ".jobsetevalinputs.nixpkgs.revision" < "$eval_meta") + [[ $? -ne 0 ]] && die "Failed to fetch revision" + + # Extract the build paths out of the build metadata + drvpath=$(jq --raw-output '.drvpath' < "${latest_build}") + [[ $? -ne 0 ]] && die "Did not find 'drvpath' in latest build" + outpath=$(jq --raw-output '.buildoutputs.out.path' < "${latest_build}") + [[ $? -ne 0 ]] && die "Did not find 'buildoutputs' in latest build" + build_timestamp=$(jq --raw-output '.timestamp' < "${latest_build}") + [[ $? -ne 0 ]] && die "Did not find 'timestamp' in latest build" + build_time=$(TZ=UTC LANG=C date --date="@${build_timestamp}" --rfc-email) + [[ $? -ne 0 ]] && die "Failed to format timestamp" + + info "Fetching bootstrap tools to calculate hashes from '${outpath}'" + nix-store --realize "$outpath" + [[ $? -ne 0 ]] && die "Failed to fetch '${outpath}' from hydra" + + fnames=() + + target_file="${nixpkgs_prefix}/bootstrap-files/${target}.nix" + info "Writing '${target_file}'" + { + # header + cat < { + url = "http://tarballs.nixos.org/${s3_prefix}/${nixpkgs_revision}/$fname"; + hash = "${sri}";$(printf "\n%s" "${executable_nix}") + }; +EOF + done + # footer + cat < "${target_file}" + + target_file_commit_msg=${target}.commit_message + cat > "$target_file_commit_msg" < /tmp/data.json.tmp + + mv -f /tmp/data.json.tmp /tmp/data.json + + # final config + ${lib.getExe cfg.package} config directory 0 + ${lib.getExe cfg.package} config ldap.password --secretfile ${cfg.secrets.ldap} + ''; + serviceConfig = { Type = "oneshot"; User = "${cfg.user}"; PrivateTmp = true; - preStart = '' - set -eo pipefail - - # create the config file - ${lib.getExe cfg.package} data-file - touch /tmp/data.json.tmp - chmod 600 /tmp/data.json{,.tmp} - - ${lib.getExe cfg.package} config server ${cfg.domain} - - # now login to set credentials - export BW_CLIENTID="$(< ${escapeShellArg cfg.secrets.bitwarden.client_path_id})" - export BW_CLIENTSECRET="$(< ${escapeShellArg cfg.secrets.bitwarden.client_path_secret})" - ${lib.getExe cfg.package} login - - jq '.authenticatedAccounts[0] as $account - | .[$account].directoryConfigurations.ldap |= $ldap_data - | .[$account].directorySettings.organizationId |= $orgID - | .[$account].directorySettings.sync |= $sync_data' \ - --argjson ldap_data ${escapeShellArg cfg.ldap.finalJSON} \ - --arg orgID "''${BW_CLIENTID//organization.}" \ - --argjson sync_data ${escapeShellArg cfg.sync.finalJSON} \ - /tmp/data.json \ - > /tmp/data.json.tmp - - mv -f /tmp/data.json.tmp /tmp/data.json - - # final config - ${lib.getExe cfg.package} config directory 0 - ${lib.getExe cfg.package} config ldap.password --secretfile ${cfg.secrets.ldap} - ''; - ExecStart = "${lib.getExe cfg.package} sync"; }; }; diff --git a/nixos/modules/services/web-servers/zope2.nix b/nixos/modules/services/web-servers/zope2.nix index a17fe6bc2082..29731b29eea4 100644 --- a/nixos/modules/services/web-servers/zope2.nix +++ b/nixos/modules/services/web-servers/zope2.nix @@ -147,7 +147,7 @@ in name = "zope2-${name}-env"; paths = [ pkgs.python27 - pkgs.python27Packages.recursivePthLoader + pkgs.python27Packages.recursive-pth-loader pkgs.python27Packages."plone.recipe.zope2instance" ] ++ attrValues pkgs.python27.modules ++ opts.packages; diff --git a/pkgs/applications/emulators/craftos-pc/default.nix b/pkgs/applications/emulators/craftos-pc/default.nix index 9c1c31c689ca..12c86c3680f8 100644 --- a/pkgs/applications/emulators/craftos-pc/default.nix +++ b/pkgs/applications/emulators/craftos-pc/default.nix @@ -16,18 +16,18 @@ }: let - version = "2.8"; + version = "2.8.1"; craftos2-lua = fetchFromGitHub { owner = "MCJack123"; repo = "craftos2-lua"; rev = "v${version}"; - hash = "sha256-xuNcWt3Wnh3WlYe6pB4dvP3PY9S5ghL9QQombGn8iyY="; + hash = "sha256-8bl83AOIWtUQ06F2unYEF08VT13o9EGo9YDZpdNxd8w="; }; craftos2-rom = fetchFromGitHub { owner = "McJack123"; repo = "craftos2-rom"; rev = "v${version}"; - hash = "sha256-WZs/KIdpqLLzvpH2hiJpe/AehluoQMtewBbAb4htz8k="; + hash = "sha256-aCRJ3idSrRM8ydt8hP8nA1RR0etPnWpQKphXcOGgTfk="; }; in @@ -39,18 +39,9 @@ stdenv.mkDerivation rec { owner = "MCJack123"; repo = "craftos2"; rev = "v${version}"; - hash = "sha256-nT/oN2XRU1Du1/IHlkRCzLqFwQ5s9Sr4FQs3ES+aPFs="; + hash = "sha256-iQCv4EDdqmnU0fYxMwpCZ2Z5p43P0MGBNIG/dZrWndg="; }; - patches = [ - ( # Fixes CCEmuX. This is a one-character change that did not make it into the release. - fetchpatch { - url = "https://github.com/MCJack123/craftos2/commit/9ef7e16b69ead69b5fe076724842a1e24b3de058.patch"; - hash = "sha256-SjNnsooDFt3JoVOO0xf6scrGXEQQmrQf91GY7VWaTOw="; - } - ) - ]; - buildInputs = [ patchelf poco openssl SDL2 SDL2_mixer ncurses libpng pngpp libwebp ]; preBuild = '' diff --git a/pkgs/applications/misc/nwg-displays/default.nix b/pkgs/applications/misc/nwg-displays/default.nix index 804198d5a641..b73df6de31ee 100644 --- a/pkgs/applications/misc/nwg-displays/default.nix +++ b/pkgs/applications/misc/nwg-displays/default.nix @@ -14,13 +14,13 @@ python310Packages.buildPythonApplication rec { pname = "nwg-displays"; - version = "0.3.12"; + version = "0.3.13"; src = fetchFromGitHub { owner = "nwg-piotr"; repo = "nwg-displays"; rev = "refs/tags/v${version}"; - hash = "sha256-cr+2ejpXEOg0e86tT37o9400J299DQSkOrQUZE5+V2s="; + hash = "sha256-ZXEnlcifwJTnpSKVET/ThIA0NHLP9fQTIM2bQbJ7qZ8="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/browsers/librewolf/src.json b/pkgs/applications/networking/browsers/librewolf/src.json index 1c40bc81703a..357868b665fb 100644 --- a/pkgs/applications/networking/browsers/librewolf/src.json +++ b/pkgs/applications/networking/browsers/librewolf/src.json @@ -1,12 +1,12 @@ { - "packageVersion": "122.0-1", + "packageVersion": "122.0-2", "source": { - "rev": "122.0-1", - "sha256": "18b2pfh61cxkl7ww0fi5wjv580ca7i5sshviqym8w0w38lhp7rsv" + "rev": "122.0-2", + "sha256": "139vqa0czhbsg8naz75pcf5d8dql30slwrn4l8hkr4r1s1mslyq1" }, "settings": { - "rev": "41623492f2b6970972014f6ce196015d3d7f1b59", - "sha256": "0ayyyw44q0gh668bzlv6cfl7baa0818bnz83g53l5j2f10xd52by" + "rev": "fe568fa26d52fa917c89d735468a17b990a23e2c", + "sha256": "1gska84ib386a1021r1n54mb1a47bqn459v5n26g4wqx3xrma48n" }, "firefox": { "version": "122.0", diff --git a/pkgs/applications/science/biology/samtools/default.nix b/pkgs/applications/science/biology/samtools/default.nix index 7db1edcbe9e9..70f436a088e1 100644 --- a/pkgs/applications/science/biology/samtools/default.nix +++ b/pkgs/applications/science/biology/samtools/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "samtools"; - version = "1.19"; + version = "1.19.2"; src = fetchurl { url = "https://github.com/samtools/samtools/releases/download/${version}/${pname}-${version}.tar.bz2"; - sha256 = "sha256-+ms7GOIIUbbzy1WvrzIF0C/LedrjuEn89S6PwQ/wi4M="; + hash = "sha256-cfYEmWaOTAjn10X7/yTBXMigl3q6sazV0rtBm9sGXpY="; }; # tests require `bgzip` from the htslib package diff --git a/pkgs/applications/science/electronics/dsview/default.nix b/pkgs/applications/science/electronics/dsview/default.nix index 98c35c37e8d5..ec53e976aec5 100644 --- a/pkgs/applications/science/electronics/dsview/default.nix +++ b/pkgs/applications/science/electronics/dsview/default.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchFromGitHub, pkg-config, cmake, wrapQtAppsHook , libzip, boost, fftw, qtbase, qtwayland, qtsvg, libusb1 -, python3, fetchpatch +, python3, fetchpatch, desktopToDarwinBundle }: stdenv.mkDerivation rec { @@ -20,18 +20,19 @@ stdenv.mkDerivation rec { ./install.patch ]; - nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ]; + nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ] + ++ lib.optional stdenv.isDarwin desktopToDarwinBundle; buildInputs = [ - boost fftw qtbase qtwayland qtsvg libusb1 libzip + boost fftw qtbase qtsvg libusb1 libzip python3 - ]; + ] ++ lib.optional stdenv.isLinux qtwayland; meta = with lib; { description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc"; homepage = "https://www.dreamsourcelab.com/"; license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ bachp ]; + platforms = platforms.unix; + maintainers = with maintainers; [ bachp carlossless ]; }; } diff --git a/pkgs/applications/science/electronics/dsview/install.patch b/pkgs/applications/science/electronics/dsview/install.patch index 9fd9133e2795..9fc660bf8148 100644 --- a/pkgs/applications/science/electronics/dsview/install.patch +++ b/pkgs/applications/science/electronics/dsview/install.patch @@ -16,8 +16,8 @@ index eb9be42..220817c 100644 - install(FILES DSView/DreamSourceLab.rules DESTINATION /etc/udev/rules.d RENAME 60-dreamsourcelab.rules) - endif() - -+ install(FILES DSView/DSView.desktop DESTINATION share/applications RENAME dsview.desktop) + install(FILES DSView/DreamSourceLab.rules DESTINATION etc/udev/rules.d RENAME 60-dreamsourcelab.rules) endif() ++install(FILES DSView/DSView.desktop DESTINATION share/applications RENAME dsview.desktop) install(FILES NEWS25 DESTINATION share/DSView RENAME NEWS25) diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix index 46307a133de3..efe70f125d04 100644 --- a/pkgs/applications/science/electronics/fritzing/default.nix +++ b/pkgs/applications/science/electronics/fritzing/default.nix @@ -1,7 +1,6 @@ { stdenv , lib , fetchFromGitHub -, fetchpatch , wrapQtAppsHook , qmake , pkg-config @@ -15,6 +14,7 @@ , libngspice , libgit2 , quazip +, clipper }: let @@ -38,25 +38,17 @@ let }; in -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "fritzing"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { - owner = pname; + owner = "fritzing"; repo = "fritzing-app"; - rev = "8f5f1373835050ce014299c78d91c24beea9b633"; - hash = "sha256-jLVNzSh2KwXpi3begtp/53sdBmQQbCnKMCm2p770etg="; + rev = "dbdbe34c843677df721c7b3fc3e32c0f737e7e95"; + hash = "sha256-Xi5sPU2RGkqh7T+EOvwxJJKKYDhJfccyEZ8LBBTb2s4="; }; - patches = [ - # Fix error caused by implicit call - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/0003-ParseResult-operator-bool-in-explicit.patch?h=fritzing&id=b2c79b55f0a2811e80bb1136b1e021fbc56937c9"; - hash = "sha256-9HdcNqLHEB0HQbF7AaTdUIJUbafwsRKPA+wfF4g8veU="; - }) - ]; - nativeBuildInputs = [ qmake pkg-config qttools wrapQtAppsHook ]; buildInputs = [ qtbase @@ -68,6 +60,7 @@ stdenv.mkDerivation rec { libgit2 quazip libngspice + clipper ]; postPatch = '' @@ -81,13 +74,17 @@ stdenv.mkDerivation rec { substituteInPlace src/fapplication.cpp \ --replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";' + substituteInPlace phoenix.pro \ + --replace "6.5.10" "${qtbase.version}" + mkdir parts cp -a ${parts}/* parts/ ''; env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [ - "-I${lib.getDev quazip}/include/QuaZip-Qt${lib.versions.major qtbase.version}-${quazip.version}/quazip" + "-I${lib.getDev quazip}/include/QuaZip-Qt${lib.versions.major qtbase.version}-${quazip.version}" "-I${svgpp}/include" + "-I${clipper}/include/polyclipping" ]; env.NIX_LDFLAGS = "-lquazip1-qt${lib.versions.major qtbase.version}"; diff --git a/pkgs/applications/video/kodi/addons/netflix/default.nix b/pkgs/applications/video/kodi/addons/netflix/default.nix index ce66665ee73b..2bff3b6d19b3 100644 --- a/pkgs/applications/video/kodi/addons/netflix/default.nix +++ b/pkgs/applications/video/kodi/addons/netflix/default.nix @@ -3,13 +3,13 @@ buildKodiAddon rec { pname = "netflix"; namespace = "plugin.video.netflix"; - version = "1.23.1"; + version = "1.23.2"; src = fetchFromGitHub { owner = "CastagnaIT"; repo = namespace; rev = "v${version}"; - sha256 = "sha256-ZY59I3RR/gl24XqZiBkenHM/D4tW/5ZyE4UngtvODYQ="; + hash = "sha256-/wHKwFZbuxK0iwlqvZpyfi0lnRkjm/HSn221IgCN7VQ="; }; propagatedBuildInputs = [ diff --git a/pkgs/by-name/bl/bluez/package.nix b/pkgs/by-name/bl/bluez/package.nix index b04ef6fbba80..c6a54a7d7678 100644 --- a/pkgs/by-name/bl/bluez/package.nix +++ b/pkgs/by-name/bl/bluez/package.nix @@ -104,7 +104,7 @@ stdenv.mkDerivation (finalAttrs: { pythonPath = with python3.pkgs; [ dbus-python pygobject3 - recursivePthLoader + recursive-pth-loader ]; in '' diff --git a/pkgs/by-name/c-/c-periphery/package.nix b/pkgs/by-name/c-/c-periphery/package.nix new file mode 100644 index 000000000000..7e033a1a3327 --- /dev/null +++ b/pkgs/by-name/c-/c-periphery/package.nix @@ -0,0 +1,35 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "c-periphery"; + version = "2.4.2"; + + src = fetchFromGitHub { + owner = "vsergeev"; + repo = "c-periphery"; + rev = "v${finalAttrs.version}"; + hash = "sha256-uUSXvMQcntUqD412UWkMif0wLxPhpPdnMb96Pqqh/B4="; + }; + + outputs = [ "dev" "lib" "out" ]; + + postPatch = '' + substituteInPlace src/libperiphery.pc.in \ + --replace '=''${prefix}/' '=' \ + --replace '=''${exec_prefix}/' '=' + ''; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "A C library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux"; + homepage = "https://github.com/vsergeev/c-periphery"; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/co/cosmic-comp/package.nix b/pkgs/by-name/co/cosmic-comp/package.nix index 29864f1cd8d0..bd7d147cfeb0 100644 --- a/pkgs/by-name/co/cosmic-comp/package.nix +++ b/pkgs/by-name/co/cosmic-comp/package.nix @@ -1,4 +1,5 @@ { lib +, stdenv , rustPlatform , fetchFromGitHub , makeBinaryWrapper @@ -12,6 +13,9 @@ , xwayland , wayland , xorg +, useXWayland ? true +, systemd +, useSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd }: rustPlatform.buildRustPackage { @@ -41,7 +45,18 @@ rustPlatform.buildRustPackage { separateDebugInfo = true; nativeBuildInputs = [ makeBinaryWrapper pkg-config ]; - buildInputs = [ libglvnd libinput libxkbcommon mesa seatd udev wayland ]; + buildInputs = [ + libglvnd + libinput + libxkbcommon + mesa + seatd + udev + wayland + ] ++ lib.optional useSystemd systemd; + + # Only default feature is systemd + buildNoDefaultFeatures = !useSystemd; # Force linking to libEGL, which is always dlopen()ed, and to # libwayland-client, which is always dlopen()ed except by the @@ -56,11 +71,13 @@ rustPlatform.buildRustPackage { # These libraries are only used by the X11 backend, which will not # be the common case, so just make them available, don't link them. postInstall = '' - wrapProgram $out/bin/cosmic-comp \ - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ + wrapProgramArgs=(--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr - ]} \ - --prefix PATH : ${lib.makeBinPath [ xwayland ]} + ]}) + '' + lib.optionalString useXWayland '' + wrapProgramArgs+=(--prefix PATH : ${lib.makeBinPath [ xwayland ]}) + '' + '' + wrapProgram $out/bin/cosmic-comp "''${wrapProgramArgs[@]}" ''; meta = with lib; { diff --git a/pkgs/by-name/fu/fuchsia-cursor/package.nix b/pkgs/by-name/fu/fuchsia-cursor/package.nix new file mode 100644 index 000000000000..96fd659e47e7 --- /dev/null +++ b/pkgs/by-name/fu/fuchsia-cursor/package.nix @@ -0,0 +1,60 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, clickgen +, python3 +, themeVariants ? [] +, sizeVariants ? [] +, platformVariants ? [] +}: + +let + pname = "fuchsia-cursor"; +in +lib.checkListOfEnum "${pname}: theme variants" [ "Fuchsia" "Fuchsia-Pop" "Fuchsia-Red" ] themeVariants +lib.checkListOfEnum "${pname}: size variants" [ "16" "24" "32" "48" ] sizeVariants +lib.checkListOfEnum "${pname}: platform variants" [ "x11" "windows" ] platformVariants + +stdenvNoCC.mkDerivation rec { + inherit pname; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "ful1e5"; + repo = pname; + rev = "v${version}"; + hash = "sha256-WnDtUsjRXT7bMppgwU5BIDqphP69DmPzQM/0qXES5tM="; + }; + + nativeBuildInputs = [ + clickgen + python3.pkgs.attrs + ]; + + installPhase = '' + runHook preInstall + + ${if themeVariants != [] then '' + name= ctgen build.toml \ + ${lib.optionalString (themeVariants != []) "-d bitmaps/" + toString themeVariants + " -n " + toString themeVariants} \ + ${lib.optionalString (sizeVariants != []) "-s " + toString sizeVariants} \ + ${lib.optionalString (platformVariants != []) "-p " + toString platformVariants} \ + -o $out/share/icons + '' else '' + name= ctgen build.toml -d bitmaps/Fuchsia -n Fuchsia \ + ${lib.optionalString (sizeVariants != []) "-s " + toString sizeVariants} \ + ${lib.optionalString (platformVariants != []) "-p " + toString platformVariants} \ + -o $out/share/icons + ''} + + runHook postInstall + ''; + + meta = with lib; { + description = "First OpenSource port of FuchsiaOS's cursors for Linux and Windows"; + homepage = "https://github.com/ful1e5/fuchsia-cursor"; + maintainers = with maintainers; [ d3vil0p3r ]; + platforms = platforms.all; + license = licenses.gpl3Plus; + }; +} diff --git a/pkgs/by-name/he/helix-gpt/package.nix b/pkgs/by-name/he/helix-gpt/package.nix new file mode 100644 index 000000000000..4c39a7b357cf --- /dev/null +++ b/pkgs/by-name/he/helix-gpt/package.nix @@ -0,0 +1,63 @@ +{ stdenv, lib, fetchFromGitHub, bun, makeBinaryWrapper }: +let + pin = lib.importJSON ./pin.json; + src = fetchFromGitHub { + owner = "leona"; + repo = "helix-gpt"; + rev = pin.version; + hash = pin.srcHash; + }; + node_modules = stdenv.mkDerivation { + pname = "helix-gpt-node_modules"; + inherit src; + version = pin.version; + impureEnvVars = lib.fetchers.proxyImpureEnvVars + ++ [ "GIT_PROXY_COMMAND" "SOCKS_SERVER" ]; + nativeBuildInputs = [ bun ]; + dontConfigure = true; + buildPhase = '' + bun install --no-progress --frozen-lockfile + ''; + installPhase = '' + mkdir -p $out/node_modules + + cp -R ./node_modules $out + ''; + outputHash = pin."${stdenv.system}"; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + }; +in +stdenv.mkDerivation { + pname = "helix-gpt"; + version = pin.version; + inherit src; + nativeBuildInputs = [ makeBinaryWrapper ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + + ln -s ${node_modules}/node_modules $out + cp -R ./* $out + + # bun is referenced naked in the package.json generated script + makeBinaryWrapper ${bun}/bin/bun $out/bin/helix-gpt \ + --prefix PATH : ${lib.makeBinPath [ bun ]} \ + --add-flags "run --prefer-offline --no-install --cwd $out ./src/app.ts" + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/leona/helix-gpt"; + description = "Code completion LSP for Helix with support for Copilot + OpenAI"; + maintainers = with maintainers; [ happysalada ]; + license = with licenses; [ mit ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; +} diff --git a/pkgs/by-name/he/helix-gpt/pin.json b/pkgs/by-name/he/helix-gpt/pin.json new file mode 100644 index 000000000000..ab2a52bb0968 --- /dev/null +++ b/pkgs/by-name/he/helix-gpt/pin.json @@ -0,0 +1,6 @@ +{ + "version": "0.15", + "srcHash": "sha256-95NnV//DesXQB1ttvOylu1DAnmRcvTUpZzK1NTZtuVE=", + "x86_64-linux": "sha256-h6wGkOfSbB8Rwm7eFvcowDdH1RdS6eFaxgf+SdYvYt8=", + "x86_64-darwin": "sha256-45RFY4Kqt5ooMOY75oJcSUZdkERzpyIMQkni4NJ/s1Y=" +} diff --git a/pkgs/by-name/ia/ianny/package.nix b/pkgs/by-name/ia/ianny/package.nix new file mode 100644 index 000000000000..6b7c3ca940e5 --- /dev/null +++ b/pkgs/by-name/ia/ianny/package.nix @@ -0,0 +1,43 @@ +{ lib +, fetchFromGitHub +, rustPlatform +, dbus +, pkg-config +}: + +rustPlatform.buildRustPackage rec { + pname = "ianny"; + version = "1.0.0beta.1"; + + src = fetchFromGitHub { + owner = "zefr0x"; + repo = "ianny"; + rev = "v${version}"; + hash = "sha256-Bnr+wtusvTM690IISBs0wKj0ChBoIrMHyVZ8wdGgK08="; + }; + + cargoHash = "sha256-/8C+hDq/z+h1uxO9prLbKHgyfMGrMODAs5/yUrutaAM="; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ dbus.dev ]; + + postPatch = '' + substituteInPlace src/main.rs \ + --replace-fail '/usr/share/locale' $out/share/locale + ''; + + preFixup = '' + mkdir -p $out/etc/xdg/autostart + mkdir -p $out/usr/share/local + cp io.github.zefr0x.ianny.desktop $out/etc/xdg/autostart/ + ''; + + meta = with lib; { + description = "Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks."; + homepage = "https://github.com/zefr0x/ianny"; + license = licenses.gpl3; + mainProgram = "ianny"; + maintainers = with maintainers; [ max-amb ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/ni/nightfox-gtk-theme/package.nix b/pkgs/by-name/ni/nightfox-gtk-theme/package.nix new file mode 100644 index 000000000000..2e19c9ea50e2 --- /dev/null +++ b/pkgs/by-name/ni/nightfox-gtk-theme/package.nix @@ -0,0 +1,43 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, gnome-themes-extra +, gtk-engine-murrine +}: + +stdenvNoCC.mkDerivation { + pname = "nightfox-gtk-theme"; + version = "unstable-2023-05-28"; + + src = fetchFromGitHub { + owner = "Fausto-Korpsvart"; + repo = "Nightfox-GTK-Theme"; + rev = "a8b01a28f2d1d9dd57d98d3708602b0d72340338"; + hash = "sha256-GrlKYCqO9vgRbPdPhugPBg2rYtDxzbQwRPtTBIyIyx4="; + }; + + propagatedUserEnvPkgs = [ + gtk-engine-murrine + ]; + + buildInputs = [ + gnome-themes-extra + ]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/themes + cp -a themes/* $out/share/themes + runHook postInstall + ''; + + meta = with lib; { + description = "A GTK theme based on the Nightfox colour palette"; + homepage = "https://github.com/Fausto-Korpsvart/Nightfox-GTK-Theme"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ d3vil0p3r ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/pm/pm2/package.nix b/pkgs/by-name/pm/pm2/package.nix new file mode 100644 index 000000000000..1b29f2fa52dc --- /dev/null +++ b/pkgs/by-name/pm/pm2/package.nix @@ -0,0 +1,29 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +}: + +buildNpmPackage rec { + pname = "pm2"; + version = "5.3.1"; + + src = fetchFromGitHub { + owner = "Unitech"; + repo = "pm2"; + rev = "v${version}"; + hash = "sha256-thShqrnM5S3/IImEm+2vHVRLCsLJN5NGaSRYubtULW0="; + }; + + npmDepsHash = "sha256-6M8kwiCHaQzcFyUUx7Yax/dobATWXG0Di7enEzlO8YE="; + + dontNpmBuild = true; + + meta = { + changelog = "https://github.com/Unitech/pm2/blob/${src.rev}/CHANGELOG.md"; + description = "Node.js production process manager with a built-in load balancer"; + homepage = "https://github.com/Unitech/pm2"; + license = lib.licenses.agpl3Only; + mainProgram = "pm2"; + maintainers = with lib.maintainers; [ jeremyschlatter ]; + }; +} diff --git a/pkgs/by-name/rm/rmg/package.nix b/pkgs/by-name/rm/rmg/package.nix index 09a774b1f482..50436f36b928 100644 --- a/pkgs/by-name/rm/rmg/package.nix +++ b/pkgs/by-name/rm/rmg/package.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , boost , cmake , discord-rpc @@ -19,6 +20,8 @@ , which , xdg-user-dirs , zlib +# Affects final license +, withAngrylionRdpPlus ? false }: let @@ -26,15 +29,25 @@ let in stdenv.mkDerivation rec { pname = "rmg"; - version = "0.5.5"; + version = "0.5.7"; src = fetchFromGitHub { owner = "Rosalie241"; repo = "RMG"; rev = "v${version}"; - hash = "sha256-au5GDyfW9+drkDNBWNbPY5Bgbow/hQmvP5pWJsYKbYs="; + hash = "sha256-j3OVhcTGUXPC0+AqvAJ7+mc+IFqJeBITU99pvfXIunQ="; }; + patches = [ + # Fix bad concatenation of CMake GNUInstallDirs variables, causing broken asset lookup paths + # Remove when version > 0.5.7 + (fetchpatch { + name = "0001-rmg-Fix-GNUInstallDirs-usage.patch"; + url = "https://github.com/Rosalie241/RMG/commit/685aa597c7ee7ad7cfd4dd782f40d21863b75899.patch"; + hash = "sha256-HnaxUAX+3Z/VTtYYuhoXOtsDtV61nskgyzEcp8fdBsU="; + }) + ]; + nativeBuildInputs = [ cmake nasm @@ -66,6 +79,7 @@ stdenv.mkDerivation rec { # mupen64plus-input-gca is written in Rust, so we can't build it with # everything else. "-DNO_RUST=ON" + "-DUSE_ANGRYLION=${lib.boolToString withAngrylionRdpPlus}" ]; qtWrapperArgs = lib.optionals stdenv.isLinux [ @@ -79,7 +93,7 @@ stdenv.mkDerivation rec { Rosalie's Mupen GUI is a free and open-source mupen64plus front-end written in C++. It offers a simple-to-use user interface. ''; - license = licenses.gpl3; + license = if withAngrylionRdpPlus then licenses.unfree else licenses.gpl3Only; platforms = platforms.linux; mainProgram = "RMG"; maintainers = with maintainers; [ slam-bert ]; diff --git a/pkgs/by-name/su/supersonic/package.nix b/pkgs/by-name/su/supersonic/package.nix index 20d126a92a26..9feb440c8087 100644 --- a/pkgs/by-name/su/supersonic/package.nix +++ b/pkgs/by-name/su/supersonic/package.nix @@ -20,16 +20,16 @@ assert waylandSupport -> stdenv.isLinux; buildGoModule rec { pname = "supersonic" + lib.optionalString waylandSupport "-wayland"; - version = "0.8.2"; + version = "0.9.0"; src = fetchFromGitHub { owner = "dweymouth"; repo = "supersonic"; rev = "v${version}"; - hash = "sha256-hhFnOxWXR91WpB51c4fvIENoAtqPj+VmPImGcXwTH0o="; + hash = "sha256-QHDTbcWSEFleMsjt4BR4xt6DlqPSowUbHmi4+83c0kc="; }; - vendorHash = "sha256-oAp3paXWXtTB+1UU/KGewCDQWye16rxNnNWQMdrhgP0="; + vendorHash = "sha256-ANVkQpCnPsRueHyxRJMY5cqMZ5Q/QMVW4KS+TFYMpUQ="; nativeBuildInputs = [ copyDesktopItems diff --git a/pkgs/by-name/sv/svp/mpv.nix b/pkgs/by-name/sv/svp/mpv.nix new file mode 100644 index 000000000000..752d76baf794 --- /dev/null +++ b/pkgs/by-name/sv/svp/mpv.nix @@ -0,0 +1,24 @@ +{ lib +, mpv-unwrapped +, wrapMpv +, ocl-icd +, ... +}: +let + libraries = [ + ocl-icd + ]; +in +wrapMpv + (mpv-unwrapped.override { + vapoursynthSupport = true; + }) +{ + extraMakeWrapperArgs = [ + # Add paths to required libraries + "--prefix" + "LD_LIBRARY_PATH" + ":" + "/run/opengl-driver/lib:${lib.makeLibraryPath libraries}" + ]; +} diff --git a/pkgs/by-name/sv/svp/package.nix b/pkgs/by-name/sv/svp/package.nix new file mode 100644 index 000000000000..639c67d8cd11 --- /dev/null +++ b/pkgs/by-name/sv/svp/package.nix @@ -0,0 +1,147 @@ +{ stdenv +, buildFHSEnv +, writeShellScriptBin +, fetchurl +, callPackage +, makeDesktopItem +, copyDesktopItems +, ffmpeg +, glibc +, gnome +, jq +, lib +, libmediainfo +, libsForQt5 +, libusb1 +, ocl-icd +, p7zip +, patchelf +, socat +, vapoursynth +, xdg-utils +, xorg +}: +let + mpvForSVP = callPackage ./mpv.nix { }; + + # Script provided by GitHub user @xrun1 + # https://github.com/xddxdd/nur-packages/issues/31#issuecomment-1812591688 + fakeLsof = writeShellScriptBin "lsof" '' + for arg in "$@"; do + if [ -S "$arg" ]; then + printf %s p + echo '{"command": ["get_property", "pid"]}' | + ${socat}/bin/socat - "UNIX-CONNECT:$arg" | + ${jq}/bin/jq -Mr .data + printf '\n' + fi + done + ''; + + libraries = [ + fakeLsof + ffmpeg.bin + glibc + gnome.zenity + libmediainfo + libsForQt5.qtbase + libsForQt5.qtwayland + libsForQt5.qtdeclarative + libsForQt5.qtscript + libsForQt5.qtsvg + libusb1 + mpvForSVP + ocl-icd + stdenv.cc.cc.lib + vapoursynth + xdg-utils + xorg.libX11 + ]; + + svp-dist = stdenv.mkDerivation rec { + pname = "svp-dist"; + version = "4.5.210-2"; + src = fetchurl { + url = "https://www.svp-team.com/files/svp4-linux.${version}.tar.bz2"; + hash = "sha256-dY9uQ9jzTHiN2XSnOrXtHD11IIJW6t9BUzGGQFfZ+yg="; + }; + + nativeBuildInputs = [ p7zip patchelf ]; + dontFixup = true; + + unpackPhase = '' + tar xf ${src} + ''; + + buildPhase = '' + mkdir installer + LANG=C grep --only-matching --byte-offset --binary --text $'7z\xBC\xAF\x27\x1C' "svp4-linux-64.run" | + cut -f1 -d: | + while read ofs; do dd if="svp4-linux-64.run" bs=1M iflag=skip_bytes status=none skip=$ofs of="installer/bin-$ofs.7z"; done + ''; + + installPhase = '' + mkdir -p $out/opt + for f in "installer/"*.7z; do + 7z -bd -bb0 -y x -o"$out/opt/" "$f" || true + done + + for SIZE in 32 48 64 128; do + mkdir -p "$out/share/icons/hicolor/''${SIZE}x''${SIZE}/apps" + mv "$out/opt/svp-manager4-''${SIZE}.png" "$out/share/icons/hicolor/''${SIZE}x''${SIZE}/apps/svp-manager4.png" + done + rm -f $out/opt/{add,remove}-menuitem.sh + ''; + }; + + fhs = buildFHSEnv { + name = "SVPManager"; + targetPkgs = pkgs: libraries; + runScript = "${svp-dist}/opt/SVPManager"; + unshareUser = false; + unshareIpc = false; + unsharePid = false; + unshareNet = false; + unshareUts = false; + unshareCgroup = false; + }; +in +stdenv.mkDerivation { + pname = "svp"; + inherit (svp-dist) version; + + dontUnpack = true; + + nativeBuildInputs = [ copyDesktopItems ]; + + postInstall = '' + mkdir -p $out/bin $out/share + ln -s ${fhs}/bin/SVPManager $out/bin/SVPManager + ln -s ${svp-dist}/share/icons $out/share/icons + ''; + + passthru.mpv = mpvForSVP; + + desktopItems = [ + (makeDesktopItem { + name = "svp-manager4"; + exec = "${fhs}/bin/SVPManager %f"; + desktopName = "SVP 4 Linux"; + genericName = "Real time frame interpolation"; + icon = "svp-manager4"; + categories = [ "AudioVideo" "Player" "Video" ]; + mimeTypes = [ "video/x-msvideo" "video/x-matroska" "video/webm" "video/mpeg" "video/mp4" ]; + terminal = false; + startupNotify = true; + }) + ]; + + meta = with lib; { + description = "SmoothVideo Project 4 (SVP4) converts any video to 60 fps (and even higher) and performs this in real time right in your favorite video player."; + homepage = "https://www.svp-team.com/wiki/SVP:Linux"; + platforms = [ "x86_64-linux" ]; + license = licenses.unfree; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + maintainers = with lib.maintainers; [ xddxdd ]; + }; +} diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 6e63cca2c154..cc5262f81f53 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -492,9 +492,6 @@ self: super: builtins.intersectAttrs super { # Uses OpenGL in testing caramia = dontCheck super.caramia; - # requires llvm 9 specifically https://github.com/llvm-hs/llvm-hs/#building-from-source - llvm-hs = super.llvm-hs.override { llvm-config = pkgs.llvm_9; }; - # llvm-ffi needs a specific version of LLVM which we hard code here. Since we # can't use pkg-config (LLVM has no official .pc files), we need to pass the # `dev` and `lib` output in, or Cabal will have trouble finding the library. diff --git a/pkgs/development/interpreters/python/python-packages-base.nix b/pkgs/development/interpreters/python/python-packages-base.nix index 2126b796ca9d..e2bd6cd5a5ab 100644 --- a/pkgs/development/interpreters/python/python-packages-base.nix +++ b/pkgs/development/interpreters/python/python-packages-base.nix @@ -98,8 +98,4 @@ in { python = toPythonModule python; # Dont take pythonPackages from "global" pkgs scope to avoid mixing python versions pythonPackages = self; - - # Remove? - recursivePthLoader = toPythonModule (callPackage ../../../development/python-modules/recursive-pth-loader { }); - } diff --git a/pkgs/development/libraries/science/chemistry/simple-dftd3/python.nix b/pkgs/development/libraries/science/chemistry/simple-dftd3/python.nix new file mode 100644 index 000000000000..74f24e10f55f --- /dev/null +++ b/pkgs/development/libraries/science/chemistry/simple-dftd3/python.nix @@ -0,0 +1,42 @@ +{ buildPythonPackage +, pkg-config +, meson +, simple-dftd3 +, cffi +, numpy +, toml +, qcengine +, pyscf +, ase +, pytestCheckHook +}: + +buildPythonPackage { + inherit (simple-dftd3) pname version src meta; + + # pytest is also required for installation, not only testing + nativeBuildInputs = [ pytestCheckHook ]; + + buildInputs = [ simple-dftd3 ]; + + propagatedBuildInputs = [ + cffi + numpy + toml + ]; + + checkInputs = [ + ase + qcengine + pyscf + ]; + + preConfigure = '' + cd python + ''; + + # The compiled CFFI is not placed correctly before pytest invocation + preCheck = '' + find . -name "_libdftd3*" -exec cp {} ./dftd3/. \; + ''; +} diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix index ffe26a735d97..62e6e1b77230 100644 --- a/pkgs/development/node-packages/aliases.nix +++ b/pkgs/development/node-packages/aliases.nix @@ -111,6 +111,7 @@ mapAliases { ocaml-language-server = throw "ocaml-language-server was removed because it was abandoned upstream"; # added 2023-09-04 parcel-bundler = parcel; # added 2023-09-04 pkg = pkgs.vercel-pkg; # added 2023-10-04 + inherit (pkgs) pm2; # added 2024-01-22 prettier_d_slim = pkgs.prettier-d-slim; # added 2023-09-14 inherit (pkgs) pxder; # added 2023-09-26 inherit (pkgs) quicktype; # added 2023-09-09 diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json index d4a420320c64..de3c8f7f560f 100644 --- a/pkgs/development/node-packages/node-packages.json +++ b/pkgs/development/node-packages/node-packages.json @@ -186,7 +186,6 @@ , "peerflix" , "peerflix-server" , {"pgrok-build-deps": "../../tools/networking/pgrok/build-deps"} -, "pm2" , "pnpm" , "poor-mans-t-sql-formatter-cli" , "postcss" diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix index c03c1506797d..81080a64e23c 100644 --- a/pkgs/development/node-packages/node-packages.nix +++ b/pkgs/development/node-packages/node-packages.nix @@ -92027,225 +92027,6 @@ in bypassCache = true; reconstructLock = true; }; - pm2 = nodeEnv.buildNodePackage { - name = "pm2"; - packageName = "pm2"; - version = "5.3.0"; - src = fetchurl { - url = "https://registry.npmjs.org/pm2/-/pm2-5.3.0.tgz"; - sha512 = "xscmQiAAf6ArVmKhjKTeeN8+Td7ZKnuZFFPw1DGkdFPR/0Iyx+m+1+OpCdf9+HQopX3VPc9/wqPQHqVOfHum9w=="; - }; - dependencies = [ - (sources."@opencensus/core-0.0.9" // { - dependencies = [ - sources."semver-5.7.2" - ]; - }) - (sources."@opencensus/propagation-b3-0.0.8" // { - dependencies = [ - sources."@opencensus/core-0.0.8" - sources."semver-5.7.2" - ]; - }) - (sources."@pm2/agent-2.0.3" // { - dependencies = [ - sources."dayjs-1.8.36" - ]; - }) - (sources."@pm2/io-5.0.2" // { - dependencies = [ - sources."async-2.6.4" - sources."eventemitter2-6.4.9" - sources."tslib-1.9.3" - ]; - }) - (sources."@pm2/js-api-0.6.7" // { - dependencies = [ - sources."async-2.6.4" - sources."eventemitter2-6.4.9" - ]; - }) - sources."@pm2/pm2-version-check-1.0.4" - sources."@tootallnate/quickjs-emscripten-0.23.0" - sources."agent-base-7.1.0" - sources."amp-0.3.1" - sources."amp-message-0.1.2" - sources."ansi-colors-4.1.3" - sources."ansi-styles-4.3.0" - sources."anymatch-3.1.3" - (sources."argparse-1.0.10" // { - dependencies = [ - sources."sprintf-js-1.0.3" - ]; - }) - sources."ast-types-0.13.4" - sources."async-3.2.5" - (sources."async-listener-0.6.10" // { - dependencies = [ - sources."semver-5.7.2" - ]; - }) - sources."axios-0.21.4" - sources."balanced-match-1.0.2" - sources."basic-ftp-5.0.4" - sources."binary-extensions-2.2.0" - sources."blessed-0.1.81" - sources."bodec-0.1.0" - sources."brace-expansion-1.1.11" - sources."braces-3.0.2" - sources."buffer-from-1.1.2" - sources."bufferutil-4.0.8" - sources."chalk-3.0.0" - sources."charm-0.1.2" - sources."chokidar-3.5.3" - sources."cli-tableau-2.0.1" - sources."color-convert-2.0.1" - sources."color-name-1.1.4" - sources."commander-2.15.1" - sources."concat-map-0.0.1" - sources."continuation-local-storage-3.2.1" - sources."croner-4.1.97" - sources."culvert-0.1.2" - sources."data-uri-to-buffer-6.0.1" - sources."dayjs-1.11.10" - sources."debug-4.3.4" - sources."degenerator-5.0.1" - sources."emitter-listener-1.1.2" - sources."enquirer-2.3.6" - sources."escape-string-regexp-4.0.0" - sources."escodegen-2.1.0" - sources."esprima-4.0.1" - sources."estraverse-5.3.0" - sources."esutils-2.0.3" - sources."eventemitter2-5.0.1" - sources."fast-json-patch-3.1.1" - sources."fclone-1.0.11" - sources."fill-range-7.0.1" - sources."follow-redirects-1.15.4" - sources."fs-extra-8.1.0" - sources."fs.realpath-1.0.0" - sources."fsevents-2.3.3" - sources."function-bind-1.1.2" - sources."get-uri-6.0.2" - sources."git-node-fs-1.0.0" - sources."git-sha1-0.1.2" - sources."glob-7.2.3" - sources."glob-parent-5.1.2" - sources."graceful-fs-4.2.11" - sources."has-flag-4.0.0" - sources."hasown-2.0.0" - sources."http-proxy-agent-7.0.0" - sources."https-proxy-agent-7.0.2" - sources."iconv-lite-0.4.24" - sources."inflight-1.0.6" - sources."inherits-2.0.4" - sources."ini-1.3.8" - sources."ip-1.1.8" - sources."is-binary-path-2.1.0" - sources."is-core-module-2.13.1" - sources."is-extglob-2.1.1" - sources."is-glob-4.0.3" - sources."is-number-7.0.0" - sources."js-git-0.7.8" - sources."json-stringify-safe-5.0.1" - sources."jsonfile-4.0.0" - sources."lazy-1.0.11" - sources."lodash-4.17.21" - sources."log-driver-1.2.7" - sources."lru-cache-7.18.3" - sources."minimatch-3.1.2" - sources."mkdirp-1.0.4" - sources."module-details-from-path-1.0.3" - sources."ms-2.1.2" - sources."mute-stream-0.0.8" - (sources."needle-2.4.0" // { - dependencies = [ - sources."debug-3.2.7" - ]; - }) - sources."netmask-2.0.2" - sources."node-gyp-build-4.8.0" - sources."normalize-path-3.0.0" - (sources."nssocket-0.6.0" // { - dependencies = [ - sources."eventemitter2-0.4.14" - ]; - }) - sources."once-1.4.0" - sources."pac-proxy-agent-7.0.1" - sources."pac-resolver-7.0.0" - sources."pako-0.2.9" - sources."path-is-absolute-1.0.1" - sources."path-parse-1.0.7" - sources."picomatch-2.3.1" - sources."pidusage-3.0.2" - sources."pm2-axon-4.0.1" - sources."pm2-axon-rpc-0.7.1" - sources."pm2-deploy-1.0.2" - sources."pm2-multimeter-0.1.2" - (sources."pm2-sysmonit-1.2.8" // { - dependencies = [ - sources."pidusage-2.0.21" - ]; - }) - sources."promptly-2.2.0" - sources."proxy-agent-6.3.1" - sources."proxy-from-env-1.1.0" - sources."read-1.0.7" - sources."readdirp-3.6.0" - sources."require-in-the-middle-5.2.0" - sources."resolve-1.22.8" - sources."run-series-1.1.9" - sources."safe-buffer-5.2.1" - sources."safer-buffer-2.1.2" - sources."sax-1.3.0" - (sources."semver-7.5.4" // { - dependencies = [ - sources."lru-cache-6.0.0" - ]; - }) - sources."shimmer-1.2.1" - sources."signal-exit-3.0.7" - sources."smart-buffer-4.2.0" - (sources."socks-2.7.1" // { - dependencies = [ - sources."ip-2.0.0" - ]; - }) - sources."socks-proxy-agent-8.0.2" - sources."source-map-0.6.1" - sources."source-map-support-0.5.21" - sources."sprintf-js-1.1.2" - sources."supports-color-7.2.0" - sources."supports-preserve-symlinks-flag-1.0.0" - sources."systeminformation-5.21.22" - sources."to-regex-range-5.0.1" - sources."tslib-2.6.2" - sources."tv4-1.3.0" - sources."tx2-1.0.5" - sources."universalify-0.1.2" - sources."utf-8-validate-5.0.10" - sources."uuid-3.4.0" - (sources."vizion-2.2.1" // { - dependencies = [ - sources."async-2.6.4" - ]; - }) - sources."wrappy-1.0.2" - sources."ws-7.4.6" - sources."yallist-4.0.0" - sources."yamljs-0.3.0" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "Production process manager for Node.JS applications with a built-in load balancer."; - homepage = "http://pm2.keymetrics.io/"; - license = "AGPL-3.0"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; pnpm = nodeEnv.buildNodePackage { name = "pnpm"; packageName = "pnpm"; diff --git a/pkgs/development/python-modules/blebox-uniapi/default.nix b/pkgs/development/python-modules/blebox-uniapi/default.nix index f93ef838751f..7436f6309152 100644 --- a/pkgs/development/python-modules/blebox-uniapi/default.nix +++ b/pkgs/development/python-modules/blebox-uniapi/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "blebox-uniapi"; - version = "2.2.0"; + version = "2.2.1"; format = "setuptools"; disabled = pythonOlder "3.9"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "blebox"; repo = "blebox_uniapi"; rev = "refs/tags/v${version}"; - hash = "sha256-cLSI6wa3gHE0QkSVVWMNpb5fyQy0TLDNSqOuGlDJGJc="; + hash = "sha256-aVYk/N8dH0jc9BLQ2nZXulMCUqwEWpSX/JTiAxdn2sM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix index 7c22634f2a3c..fa7ebb248adb 100644 --- a/pkgs/development/python-modules/celery/default.nix +++ b/pkgs/development/python-modules/celery/default.nix @@ -18,6 +18,7 @@ , pytest-click , pytest-subtests , pytest-timeout +, pytest-xdist , pytestCheckHook , python-dateutil , pythonOlder @@ -63,6 +64,7 @@ buildPythonPackage rec { pytest-click pytest-subtests pytest-timeout + pytest-xdist pytestCheckHook ]; @@ -77,6 +79,10 @@ buildPythonPackage rec { disabledTests = [ "msgpack" "test_check_privileges_no_fchown" + # fails with pytest-xdist + "test_itercapture_limit" + "test_stamping_headers_in_options" + "test_stamping_with_replace" ] ++ lib.optionals stdenv.isDarwin [ # too many open files on hydra "test_cleanup" diff --git a/pkgs/development/python-modules/jupyter-book/default.nix b/pkgs/development/python-modules/jupyter-book/default.nix index 69d0734bfa00..bdb7b5772941 100644 --- a/pkgs/development/python-modules/jupyter-book/default.nix +++ b/pkgs/development/python-modules/jupyter-book/default.nix @@ -3,13 +3,12 @@ , fetchPypi , pythonOlder , flit-core -, pythonRelaxDepsHook , click -, docutils , jinja2 , jsonschema , linkify-it-py , myst-nb +, myst-parser , pyyaml , sphinx , sphinx-comments @@ -26,29 +25,28 @@ buildPythonPackage rec { pname = "jupyter-book"; - version = "0.15.1"; + version = "1.0.0"; + pyproject = true; - format = "pyproject"; - - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.9"; src = fetchPypi { - inherit pname version; - hash = "sha256-ihY07Bb37t7g0Rbx5ft8SCAyia2S2kLglRnccdlWwBA="; + inherit version; + pname = "jupyter_book"; + hash = "sha256-U5xdBJNUYgDZ3ie9S1936uoDEV+JN/gl1P+Cs4AamH4="; }; nativeBuildInputs = [ flit-core - pythonRelaxDepsHook ]; propagatedBuildInputs = [ click - docutils jinja2 jsonschema linkify-it-py myst-nb + myst-parser pyyaml sphinx sphinx-comments @@ -63,16 +61,9 @@ buildPythonPackage rec { sphinx-multitoc-numbering ]; - pythonRelaxDeps = [ - "docutils" - "myst-nb" - "sphinx" - "sphinx-thebe" - "sphinxcontrib-bibtex" - ]; - pythonImportsCheck = [ "jupyter_book" + "jupyter_book.cli.main" ]; meta = with lib; { @@ -81,5 +72,6 @@ buildPythonPackage rec { changelog = "https://github.com/executablebooks/jupyter-book/blob/v${version}/CHANGELOG.md"; license = licenses.bsd3; maintainers = with maintainers; [ marsam ]; + mainProgram = "jupyter-book"; }; } diff --git a/pkgs/development/python-modules/posthog/default.nix b/pkgs/development/python-modules/posthog/default.nix index 8606a9834a25..993427596d40 100644 --- a/pkgs/development/python-modules/posthog/default.nix +++ b/pkgs/development/python-modules/posthog/default.nix @@ -14,7 +14,7 @@ }: let pname = "posthog"; - version = "3.3.2"; + version = "3.3.3"; in buildPythonPackage { inherit pname version; @@ -24,7 +24,7 @@ buildPythonPackage { owner = "PostHog"; repo = "posthog-python"; rev = "refs/tags/v${version}"; - hash = "sha256-7Bs0KDa799qt8sKwmj6oO0L/nWzczI+UXGWNXGv7B7s="; + hash = "sha256-60SnWjxgTZrN6H/LQg2Oj9Es6YluAyladLHqrNL2dQY="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/sharp-aquos-rc/default.nix b/pkgs/development/python-modules/sharp-aquos-rc/default.nix new file mode 100644 index 000000000000..5dc7580467e8 --- /dev/null +++ b/pkgs/development/python-modules/sharp-aquos-rc/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, pyyaml +}: + +buildPythonPackage rec { + pname = "sharp-aquos-rc"; + version = "0.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jmoore987"; + repo = "sharp_aquos_rc"; + rev = "refs/tags/${version}"; + hash = "sha256-w/XA58iT/pmNCy9up5fayjxBsevzgr8ImKgPiNtYHAM="; + }; + + nativeBuildInputs = [ setuptools ]; + + propagatedBuildInputs = [ pyyaml ]; + + # No tests + doCheck = false; + + pythonImportsCheck = [ "sharp_aquos_rc" ]; + + meta = with lib; { + homepage = "https://github.com/jmoore987/sharp_aquos_rc"; + description = "Control Sharp Aquos SmartTVs through the IP interface"; + changelog = "https://github.com/jmoore987/sharp_aquos_rc/releases/tag/${version}"; + maintainers = with maintainers; [ jamiemagee ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/tools/api-linter/default.nix b/pkgs/development/tools/api-linter/default.nix index d1ce3fde4464..97bda5410596 100644 --- a/pkgs/development/tools/api-linter/default.nix +++ b/pkgs/development/tools/api-linter/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "api-linter"; - version = "1.63.2"; + version = "1.63.3"; src = fetchFromGitHub { owner = "googleapis"; repo = "api-linter"; rev = "v${version}"; - hash = "sha256-xbYu/5E3rkH5VUuH0fCs2gfpWysDVABxY+pA4JkU5WY="; + hash = "sha256-mcmp3M9KhZp3j18jh+3v5fwPPLRs2hkrRUN3RM/zCmo="; }; - vendorHash = "sha256-SDfErsM9wC1bGgBwcMRvjTOzqGNQ3kIQM7XeL4sLTC8="; + vendorHash = "sha256-/z2FqMyZnn2A5aajimTS2zw3A1v5v0uYZY81acuQOnw="; subPackages = [ "cmd/api-linter" ]; @@ -23,14 +23,6 @@ buildGoModule rec { "-w" ]; - # reference: https://github.com/googleapis/api-linter/blob/v1.63.2/.github/workflows/release.yaml#L76 - preBuild = '' - cat > cmd/api-linter/version.go <