···18 runs-on: ubuntu-latest
19 steps:
20 - name: Resolving the merge commit
0021 run: |
22- if result=$(git ls-remote --exit-code ${{ github.event.pull_request.base.repo.clone_url }} refs/pull/${{ github.event.pull_request.number }}/merge 2>&1); then
23- mergedSha=$(cut -f1 <<< "$result")
24- echo "The PR appears to not have any conflicts, checking the merge commit $mergedSha"
0000000000000000000025 else
26- echo "The PR may have a merge conflict"
27- echo "'git ls-remote' output was:"
28- echo "$result"
29 exit 1
30 fi
31 echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
···18 runs-on: ubuntu-latest
19 steps:
20 - name: Resolving the merge commit
21+ env:
22+ GH_TOKEN: ${{ github.token }}
23 run: |
24+ # This checks for mergeability of a pull request as recommended in
25+ # https://docs.github.com/en/rest/guides/using-the-rest-api-to-interact-with-your-git-database?apiVersion=2022-11-28#checking-mergeability-of-pull-requests
26+ while true; do
27+ echo "Checking whether the pull request can be merged"
28+ prInfo=$(gh api \
29+ -H "Accept: application/vnd.github+json" \
30+ -H "X-GitHub-Api-Version: 2022-11-28" \
31+ /repos/"$GITHUB_REPOSITORY"/pulls/${{ github.event.pull_request.number }})
32+ mergeable=$(jq -r .mergeable <<< "$prInfo")
33+ mergedSha=$(jq -r .merge_commit_sha <<< "$prInfo")
34+35+ if [[ "$mergeable" == "null" ]]; then
36+ # null indicates that GitHub is still computing whether it's mergeable
37+ # Wait a couple seconds before trying again
38+ echo "GitHub is still computing whether this PR can be merged, waiting 5 seconds before trying again"
39+ sleep 5
40+ else
41+ break
42+ fi
43+ done
44+45+ if [[ "$mergeable" == "true" ]]; then
46+ echo "The PR can be merged, checking the merge commit $mergedSha"
47 else
48+ echo "The PR cannot be merged, it has a merge conflict"
0049 exit 1
50 fi
51 echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
···243244***
245```
246+## `fetchFromBittorrent` {#fetchfrombittorrent}
247+248+`fetchFromBittorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options)
249+250+```
251+{ fetchFromBittorrent }:
252+253+fetchFromBittorrent {
254+ config = { peer-limit-global = 100; };
255+ url = "magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c";
256+ sha256 = "";
257+}
258+```
259+260+### Parameters {#fetchfrombittorrent-parameters}
261+262+- `url`: Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file.
263+264+- `backend`: Which bittorrent program to use. Default: `"transmission"`. Valid values are `"rqbit"` or `"transmission"`. These are the two most suitable torrent clients for fetching in a fixed-output derivation at the time of writing, as they can be easily exited after usage. `rqbit` is written in Rust and has a smaller closure size than `transmission`, and the performance and peer discovery properties differs between these clients, requiring experimentation to decide upon which is the best.
265+266+- `config`: When using `transmission` as the `backend`, a json configuration can
267+ be supplied to transmission. Refer to the [upstream documentation](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md) for information on how to configure.
268+
+2
nixos/doc/manual/release-notes/rl-2311.section.md
···250251- The binary of the package `cloud-sql-proxy` has changed from `cloud_sql_proxy` to `cloud-sql-proxy`.
25200253- The `woodpecker-*` CI packages have been updated to 1.0.0. This release is wildly incompatible with the 0.15.X versions that were previously packaged. Please read [upstream's documentation](https://woodpecker-ci.org/docs/next/migrations#100) to learn how to update your CI configurations.
254255- The Caddy module gained a new option named `services.caddy.enableReload` which is enabled by default. It allows reloading the service instead of restarting it, if only a config file has changed. This option must be disabled if you have turned off the [Caddy admin API](https://caddyserver.com/docs/caddyfile/options#admin). If you keep this option enabled, you should consider setting [`grace_period`](https://caddyserver.com/docs/caddyfile/options#grace-period) to a non-infinite value to prevent Caddy from delaying the reload indefinitely.
···250251- The binary of the package `cloud-sql-proxy` has changed from `cloud_sql_proxy` to `cloud-sql-proxy`.
252253+- Garage has been upgraded to 0.9.x. `services.garage.package` now needs to be explicitly set, so version upgrades can be done in a controlled fashion. For this, we expose `garage_x_y` attributes which can be set here.
254+255- The `woodpecker-*` CI packages have been updated to 1.0.0. This release is wildly incompatible with the 0.15.X versions that were previously packaged. Please read [upstream's documentation](https://woodpecker-ci.org/docs/next/migrations#100) to learn how to update your CI configurations.
256257- The Caddy module gained a new option named `services.caddy.enableReload` which is enabled by default. It allows reloading the service instead of restarting it, if only a config file has changed. This option must be disabled if you have turned off the [Caddy admin API](https://caddyserver.com/docs/caddyfile/options#admin). If you keep this option enabled, you should consider setting [`grace_period`](https://caddyserver.com/docs/caddyfile/options#grace-period) to a non-infinite value to prevent Caddy from delaying the reload indefinitely.
···331 # Link to our own Node.js and Java (required during the build):
332 mkdir -p third_party/node/linux/node-linux-x64/bin
333 ln -s "${pkgsBuildHost.nodejs}/bin/node" third_party/node/linux/node-linux-x64/bin/node
334- ln -s "${pkgsBuildHost.jre8_headless}/bin/java" third_party/jdk/current/bin/
335336 # Allow building against system libraries in official builds
337 sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py
···331 # Link to our own Node.js and Java (required during the build):
332 mkdir -p third_party/node/linux/node-linux-x64/bin
333 ln -s "${pkgsBuildHost.nodejs}/bin/node" third_party/node/linux/node-linux-x64/bin/node
334+ ln -s "${pkgsBuildHost.jdk17_headless}/bin/java" third_party/jdk/current/bin/
335336 # Allow building against system libraries in official builds
337 sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py
···1+{ config
2+, lib
3, stdenv
4, fetchFromGitHub
5, pkg-config
···69 sourceRoot = "${finalAttrs.src.name}/llvm";
7071 cmakeFlags = [
72+ "-DLLVM_TARGETS_TO_BUILD=${
73+ let
74+ # Targets can be found in
75+ # https://github.com/llvm/llvm-project/tree/f28c006a5895fc0e329fe15fead81e37457cb1d1/clang/lib/Basic/Targets
76+ # NOTE: Unsure of how "host" would function, especially given that we might be cross-compiling.
77+ llvmTargets = [ "AMDGPU" "NVPTX" ]
78+ ++ lib.optionals stdenv.isAarch64 [ "AArch64" ]
79+ ++ lib.optionals stdenv.isx86_64 [ "X86" ];
80+ in
81+ lib.concatStringsSep ";" llvmTargets
82+ }"
83 "-DLLVM_ENABLE_PROJECTS=llvm;mlir"
84 "-DLLVM_INSTALL_UTILS=ON"
85 ] ++ lib.optionals (buildDocs || buildMan) [
···118 license = with licenses; [ ncsa ];
119 maintainers = with maintainers; [ SomeoneSerge Madouura ];
120 platforms = platforms.linux;
121+ # Consider the derivation broken if we're not building for CUDA or ROCm, or if we're building for aarch64
122+ # and ROCm is enabled. See https://github.com/RadeonOpenCompute/ROCm/issues/1831#issuecomment-1278205344.
123+ broken = stdenv.isAarch64 && !config.cudaSupport;
124 };
125})
···1-{ fetchurl, fetchpatch, lib, stdenv, libX11, xorgproto, libXext, libXtst
2-, gtk2, libXi, pkg-config, texinfo }:
00000000000034-stdenv.mkDerivation rec {
5 version = "3.19";
6 pname = "xnee";
78 src = fetchurl {
9- url = "mirror://gnu/xnee/${pname}-${version}.tar.gz";
10- sha256 = "04n2lac0vgpv8zsn7nmb50hf3qb56pmj90dmwnivg09gyrf1x92j";
11 };
1213 patches = [
···16 (fetchpatch {
17 name = "fno-common.patch";
18 url = "https://savannah.gnu.org/bugs/download.php?file_id=49534";
19- sha256 = "04j2cjy2yaiigg31a6k01vw0fq19yj3zpriikkjcz9q4ab4m5gh2";
20 })
21 ];
2223- postPatch =
24- '' for i in `find cnee/test -name \*.sh`
25- do
26- sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g'
27- done
00000002829- # Fix for glibc-2.34. For some reason, `LIBSEMA="CCC"` is added
30- # if `sem_init` is part of libc which causes errors like
31- # `gcc: error: CCC: No such file or directory` during the build.
32- substituteInPlace configure \
33- --replace 'LIBSEMA="CCC"' 'LIBSEMA=""'
34- '';
3536- nativeBuildInputs = [ pkg-config ];
37- buildInputs =
38- [ libX11 xorgproto libXext libXtst gtk2
39- libXi
40- texinfo
41- ];
000000004243- configureFlags =
044 # Do a static build because `libxnee' doesn't get installed anyway.
45- [ "--disable-gnome-applet" "--enable-static" ];
04647- # `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
48- # lacks libXi.
49- makeFlags = [ "LDFLAGS=-lXi" ];
005051 # XXX: Actually tests require an X server.
52 doCheck = true;
5354 meta = {
55 description = "X11 event recording and replay tool";
56-57- longDescription =
58- '' Xnee is a suite of programs that can record, replay and distribute
59- user actions under the X11 environment. Think of it as a robot that
60- can imitate the job you just did. Xnee can be used to automate
61- tests, demonstrate programs, distribute actions, record & replay
62- "macros", retype a file.
63- '';
64-65 license = lib.licenses.gpl3Plus;
66-67- homepage = "https://www.gnu.org/software/xnee/";
68-69- maintainers = with lib.maintainers; [ ];
70- platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
71 };
72-}
···1+{ lib
2+, stdenv
3+, fetchurl
4+, fetchpatch
5+, autoreconfHook
6+, pkg-config
7+, gtk2
8+, libX11
9+, libXext
10+, libXi
11+, libXtst
12+, texinfo
13+, xorgproto
14+}:
1516+stdenv.mkDerivation (finalAttrs: {
17 version = "3.19";
18 pname = "xnee";
1920 src = fetchurl {
21+ url = "mirror://gnu/xnee/xnee-${finalAttrs.version}.tar.gz";
22+ hash = "sha256-UqQeXPYvgbej5bWBJOs1ZeHhICir2mP1R/u+DZiiwhI=";
23 };
2425 patches = [
···28 (fetchpatch {
29 name = "fno-common.patch";
30 url = "https://savannah.gnu.org/bugs/download.php?file_id=49534";
31+ hash = "sha256-Ar5SyVIEp8/knDHm+4f0KWAH+A5gGhXGezEqL7xkQhI=";
32 })
33 ];
3435+ postPatch = ''
36+ for i in `find cnee/test -name \*.sh`; do
37+ sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g'
38+ done
39+ ''
40+ # Fix for glibc-2.34. For some reason, `LIBSEMA="CCC"` is added
41+ # if `sem_init` is part of libc which causes errors like
42+ # `gcc: error: CCC: No such file or directory` during the build.
43+ + ''
44+ substituteInPlace configure* \
45+ --replace 'LIBSEMA="CCC"' 'LIBSEMA=""'
46+ '';
4748+ strictDeps = true;
000004950+ nativeBuildInputs = [
51+ autoreconfHook
52+ pkg-config
53+ ];
54+55+ buildInputs = [
56+ gtk2
57+ libX11
58+ libXext
59+ libXi
60+ libXtst
61+ texinfo
62+ xorgproto
63+ ];
6465+ configureFlags = [
66+ "--disable-gnome-applet"
67 # Do a static build because `libxnee' doesn't get installed anyway.
68+ "--enable-static"
69+ ];
7071+ makeFlags = [
72+ # `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
73+ # lacks libXi.
74+ "LDFLAGS=-lXi"
75+ ];
7677 # XXX: Actually tests require an X server.
78 doCheck = true;
7980 meta = {
81 description = "X11 event recording and replay tool";
82+ longDescription = ''
83+ Xnee is a suite of programs that can record, replay and distribute
84+ user actions under the X11 environment. Think of it as a robot that
85+ can imitate the job you just did. Xnee can be used to automate
86+ tests, demonstrate programs, distribute actions, record & replay
87+ "macros", retype a file.
88+ '';
89+ homepage = "https://www.gnu.org/software/xnee/";
090 license = lib.licenses.gpl3Plus;
91+ maintainers = with lib.maintainers; [ wegank ];
92+ platforms = lib.platforms.unix;
00093 };
94+})
···187 };
188189 nix_2_17 = common {
190- version = "2.17.0";
191- hash = "sha256-QMYAkdtU+g9HlZKtoJ+AI6TbWzzovKGnPZJHfZdclc8=";
192 };
193194 nix_2_18 = common {
···187 };
188189 nix_2_17 = common {
190+ version = "2.17.1";
191+ hash = "sha256-Q5L+rHzjp0bYuR2ogg+YPCn6isjmlQ4CJVT0zpn/hFc=";
192 };
193194 nix_2_18 = common {
+2
pkgs/top-level/aliases.nix
···263 ### G ###
264265 g4py = python3Packages.geant4; # Added 2020-06-06
00266 garmindev = throw "'garmindev' has been removed as the dependent software 'qlandkartegt' has been removed"; # Added 2023-04-17
267 geekbench4 = throw "'geekbench4' has been renamed to 'geekbench_4'"; # Added 2023-03-10
268 geekbench5 = throw "'geekbench5' has been renamed to 'geekbench_5'"; # Added 2023-03-10
···263 ### G ###
264265 g4py = python3Packages.geant4; # Added 2020-06-06
266+ garage_0_7 = throw "garage 0.7.x has been removed as it is EOL. Please upgrade to 0.8 series."; # Added 2023-10-10
267+ garage_0_7_3 = throw "garage 0.7.x has been removed as it is EOL. Please upgrade to 0.8 series."; # Added 2023-10-10
268 garmindev = throw "'garmindev' has been removed as the dependent software 'qlandkartegt' has been removed"; # Added 2023-04-17
269 geekbench4 = throw "'geekbench4' has been renamed to 'geekbench_4'"; # Added 2023-03-10
270 geekbench5 = throw "'geekbench5' has been renamed to 'geekbench_5'"; # Added 2023-03-10