Use patches for my pull requests
This commit is contained in:
parent
bfc1702f36
commit
0a55457b38
8 changed files with 321 additions and 32 deletions
22
flake.lock
generated
22
flake.lock
generated
|
@ -53,16 +53,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1618560353,
|
||||
"narHash": "sha256-8I2frsJ7raO0k4tl49D31DgaRKd/bZ4LP7pBmgR7/1g=",
|
||||
"owner": "chvp",
|
||||
"lastModified": 1618586781,
|
||||
"narHash": "sha256-zGtzzoN4dJ73WLQsvHm7d4260X4BifDm+1r6nxJBY2Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c4a1855ef2ee48298d9a55e7e040c8abebd6f6b2",
|
||||
"rev": "b77c77debbc6d0f7ce96196748ebd647d0fae5db",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chvp",
|
||||
"ref": "nixos-rebuild-remote-flakes",
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -80,15 +80,15 @@
|
|||
"flake-utils": "flake-utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1618507051,
|
||||
"narHash": "sha256-+e3AuL7BxxHyRfLiEsDnm5kwZk3EvKntqMYS3jtvEPw=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"lastModified": 1618618037,
|
||||
"narHash": "sha256-i9gV2CnBb/2c7a9z05THwaMozbimcygdo5qAz4aP8ow=",
|
||||
"owner": "chvp",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "c87df35ff6a925ea88a0cb98662c91b451bf1cfc",
|
||||
"rev": "23d3f12d6e34faa935646110d8af51ed1bc7a23d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"owner": "chvp",
|
||||
"ref": "staging",
|
||||
"repo": "flake-utils-plus",
|
||||
"type": "github"
|
||||
|
|
16
flake.nix
16
flake.nix
|
@ -7,17 +7,17 @@
|
|||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixpkgs.url = "github:chvp/nixpkgs/nixos-rebuild-remote-flakes";
|
||||
utils.url = "github:gytis-ivaskevicius/flake-utils-plus/staging";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
||||
utils.url = "github:chvp/flake-utils-plus/staging";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, emacs-overlay, home-manager, utils }: utils.lib.systemFlake {
|
||||
inherit self inputs;
|
||||
channels.nixpkgs = {
|
||||
input = nixpkgs;
|
||||
patches = [ ];
|
||||
patches = map (patch: ./patches + "/${patch}") (builtins.attrNames (builtins.readDir ./patches));
|
||||
overlaysBuilder = _: [ emacs-overlay.overlay ];
|
||||
};
|
||||
sharedOverlays = [ emacs-overlay.overlay ];
|
||||
hostDefaults = {
|
||||
modules = [
|
||||
({ lib, ... }: {
|
||||
|
@ -36,6 +36,12 @@
|
|||
urithiru.modules = [ ./machines/urithiru ];
|
||||
};
|
||||
devShellBuilder = channels:
|
||||
let pkgs = channels.nixpkgs; in pkgs.mkShell { buildInputs = [ pkgs.nixpkgs-fmt ]; };
|
||||
let pkgs = channels.nixpkgs; in
|
||||
pkgs.mkShell {
|
||||
buildInputs = [
|
||||
pkgs.nixpkgs-fmt
|
||||
(pkgs.writeShellScriptBin "fetchpatch" "curl -L https://github.com/NixOS/nixpkgs/pull/$1.patch -o patches/$1.patch")
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,10 +8,7 @@
|
|||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
networking = {
|
||||
hostId = "e718389d";
|
||||
hostName = "kharbranth";
|
||||
};
|
||||
networking.hostId = "e718389d";
|
||||
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
||||
|
|
|
@ -20,10 +20,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostId = "3cc1a4b2";
|
||||
hostName = "kholinar";
|
||||
};
|
||||
networking.hostId = "3cc1a4b2";
|
||||
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
||||
|
|
|
@ -8,10 +8,7 @@
|
|||
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
networking = {
|
||||
hostName = "lasting-integrity";
|
||||
hostId = "b352adfe";
|
||||
};
|
||||
networking.hostId = "b352adfe";
|
||||
|
||||
chvp = {
|
||||
stateVersion = "20.09";
|
||||
|
|
|
@ -9,10 +9,7 @@
|
|||
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
networking = {
|
||||
hostName = "urithiru";
|
||||
hostId = "079e60ba";
|
||||
};
|
||||
networking.hostId = "079e60ba";
|
||||
|
||||
chvp = {
|
||||
stateVersion = "20.09";
|
||||
|
|
159
patches/119540.patch
Normal file
159
patches/119540.patch
Normal file
|
@ -0,0 +1,159 @@
|
|||
From 456aa2db499409ab500d98c464b3321d4b7cecc3 Mon Sep 17 00:00:00 2001
|
||||
From: Charlotte Van Petegem <charlotte@vanpetegem.me>
|
||||
Date: Thu, 15 Apr 2021 15:40:20 +0200
|
||||
Subject: [PATCH 1/2] nixos-rebuild: Allow remote building when using flakes
|
||||
|
||||
---
|
||||
.../linux/nixos-rebuild/nixos-rebuild.sh | 65 +++++++++++++++----
|
||||
1 file changed, 53 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
|
||||
index 5874f334fedb9..6e31e174c849a 100644
|
||||
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
|
||||
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
|
||||
@@ -214,6 +214,49 @@ nixBuild() {
|
||||
fi
|
||||
}
|
||||
|
||||
+nixFlakeBuild() {
|
||||
+ if [ -z "$buildHost" ]; then
|
||||
+ nix build "$@" --out-link "${tmpDir}/result"
|
||||
+ readlink -f "${tmpDir}/result"
|
||||
+ else
|
||||
+ local attr="$1"
|
||||
+ shift 1
|
||||
+ local evalArgs=()
|
||||
+ local buildArgs=()
|
||||
+ while [ "$#" -gt 0 ]; do
|
||||
+ local i="$1"; shift 1
|
||||
+ case "$i" in
|
||||
+ --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
|
||||
+ evalArgs+=("$i")
|
||||
+ ;;
|
||||
+ --update-input)
|
||||
+ local j="$1"; shift 1
|
||||
+ evalArgs+=("$i" "$j")
|
||||
+ ;;
|
||||
+ --override-input)
|
||||
+ local j="$1"; shift 1
|
||||
+ local k="$1"; shift 1
|
||||
+ evalArgs+=("$i" "$j" "$k")
|
||||
+ ;;
|
||||
+ *)
|
||||
+ buildArgs+=("$i")
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+
|
||||
+ local drv="$(nix "${flakeFlags[@]}" eval --raw "${attr}.drvPath" "${evalArgs[@]}" "${extraBuildArgs[@]}")"
|
||||
+ if [ -a "$drv" ]; then
|
||||
+ NIX_SSHOPTS=$SSHOPTS nix "${flakeFlags[@]}" copy --derivation --to "ssh://$buildHost" "$drv"
|
||||
+ # The 'nix-command flakes' part in "${flakeFlags[@]}" is seen as two separate args over SSH
|
||||
+ buildHostCmd nix --experimental-features "'nix-command flakes'" build "${buildArgs[@]}" --out-link "${tmpDir}/result" "$drv"
|
||||
+ buildHostCmd readlink -f "${tmpDir}/result"
|
||||
+ else
|
||||
+ echo "nix eval failed"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
|
||||
if [ -z "$action" ]; then showSyntax; fi
|
||||
|
||||
@@ -315,8 +358,14 @@ fi
|
||||
|
||||
tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX)
|
||||
SSHOPTS="$NIX_SSHOPTS -o ControlMaster=auto -o ControlPath=$tmpDir/ssh-%n -o ControlPersist=60"
|
||||
+if [ -n "$buildHost" -a -n "$flake" ]; then
|
||||
+ buildHostCmd mkdir -p "$tmpDir"
|
||||
+fi
|
||||
|
||||
cleanup() {
|
||||
+ if [ -n "$buildHost" -a -n "$flake" ]; then
|
||||
+ buildHostCmd rm -rf "$tmpDir"
|
||||
+ fi
|
||||
for ctrl in "$tmpDir"/ssh-*; do
|
||||
ssh -o ControlPath="$ctrl" -O exit dummyhost 2>/dev/null || true
|
||||
done
|
||||
@@ -418,10 +467,7 @@ if [ -z "$rollback" ]; then
|
||||
if [[ -z $flake ]]; then
|
||||
pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")"
|
||||
else
|
||||
- outLink=$tmpDir/result
|
||||
- nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
|
||||
- "${extraBuildFlags[@]}" "${lockFlags[@]}" --out-link $outLink
|
||||
- pathToConfig="$(readlink -f $outLink)"
|
||||
+ pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
|
||||
fi
|
||||
copyToTarget "$pathToConfig"
|
||||
targetHostCmd nix-env -p "$profile" --set "$pathToConfig"
|
||||
@@ -429,24 +475,19 @@ if [ -z "$rollback" ]; then
|
||||
if [[ -z $flake ]]; then
|
||||
pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}")"
|
||||
else
|
||||
- nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
|
||||
- pathToConfig="$(readlink -f ./result)"
|
||||
+ pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
|
||||
fi
|
||||
elif [ "$action" = build-vm ]; then
|
||||
if [[ -z $flake ]]; then
|
||||
pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vm -k "${extraBuildFlags[@]}")"
|
||||
else
|
||||
- nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vm" \
|
||||
- "${extraBuildFlags[@]}" "${lockFlags[@]}"
|
||||
- pathToConfig="$(readlink -f ./result)"
|
||||
+ pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.vm" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
|
||||
fi
|
||||
elif [ "$action" = build-vm-with-bootloader ]; then
|
||||
if [[ -z $flake ]]; then
|
||||
pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vmWithBootLoader -k "${extraBuildFlags[@]}")"
|
||||
else
|
||||
- nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vmWithBootLoader" \
|
||||
- "${extraBuildFlags[@]}" "${lockFlags[@]}"
|
||||
- pathToConfig="$(readlink -f ./result)"
|
||||
+ pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.vmWithBootLoader" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
|
||||
fi
|
||||
else
|
||||
showSyntax
|
||||
|
||||
From fa827f3f624659d822666bc79d36534d6d3ea9d1 Mon Sep 17 00:00:00 2001
|
||||
From: Charlotte Van Petegem <charlotte@vanpetegem.me>
|
||||
Date: Fri, 16 Apr 2021 12:42:26 +0200
|
||||
Subject: [PATCH 2/2] nixos-rebuild: Use old-style nix command when building
|
||||
flake on a remote host
|
||||
|
||||
---
|
||||
pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh | 10 +---------
|
||||
1 file changed, 1 insertion(+), 9 deletions(-)
|
||||
|
||||
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
|
||||
index 6e31e174c849a..01d0fa823b9b5 100644
|
||||
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
|
||||
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
|
||||
@@ -247,9 +247,7 @@ nixFlakeBuild() {
|
||||
local drv="$(nix "${flakeFlags[@]}" eval --raw "${attr}.drvPath" "${evalArgs[@]}" "${extraBuildArgs[@]}")"
|
||||
if [ -a "$drv" ]; then
|
||||
NIX_SSHOPTS=$SSHOPTS nix "${flakeFlags[@]}" copy --derivation --to "ssh://$buildHost" "$drv"
|
||||
- # The 'nix-command flakes' part in "${flakeFlags[@]}" is seen as two separate args over SSH
|
||||
- buildHostCmd nix --experimental-features "'nix-command flakes'" build "${buildArgs[@]}" --out-link "${tmpDir}/result" "$drv"
|
||||
- buildHostCmd readlink -f "${tmpDir}/result"
|
||||
+ buildHostCmd nix-store -r "$drv" "${buildArgs[@]}"
|
||||
else
|
||||
echo "nix eval failed"
|
||||
exit 1
|
||||
@@ -358,14 +356,8 @@ fi
|
||||
|
||||
tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX)
|
||||
SSHOPTS="$NIX_SSHOPTS -o ControlMaster=auto -o ControlPath=$tmpDir/ssh-%n -o ControlPersist=60"
|
||||
-if [ -n "$buildHost" -a -n "$flake" ]; then
|
||||
- buildHostCmd mkdir -p "$tmpDir"
|
||||
-fi
|
||||
|
||||
cleanup() {
|
||||
- if [ -n "$buildHost" -a -n "$flake" ]; then
|
||||
- buildHostCmd rm -rf "$tmpDir"
|
||||
- fi
|
||||
for ctrl in "$tmpDir"/ssh-*; do
|
||||
ssh -o ControlPath="$ctrl" -O exit dummyhost 2>/dev/null || true
|
||||
done
|
136
patches/119643.patch
Normal file
136
patches/119643.patch
Normal file
|
@ -0,0 +1,136 @@
|
|||
From 66f9ad192710d18d44322f49c87bba64d2beec11 Mon Sep 17 00:00:00 2001
|
||||
From: Charlotte Van Petegem <charlotte@vanpetegem.me>
|
||||
Date: Fri, 16 Apr 2021 18:40:48 +0200
|
||||
Subject: [PATCH 1/2] zeroad: Split data from binaries again
|
||||
|
||||
The rootdir patch was lost in the update to 0.0.24b. Adding it allows
|
||||
hydra to build the game. It can't when the binaries depend on the data
|
||||
since the data is too big for hydra.
|
||||
---
|
||||
pkgs/games/0ad/game.nix | 10 +++-----
|
||||
pkgs/games/0ad/rootdir_env.patch | 39 ++++++++++++++++++++++++++++++++
|
||||
2 files changed, 42 insertions(+), 7 deletions(-)
|
||||
create mode 100644 pkgs/games/0ad/rootdir_env.patch
|
||||
|
||||
diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix
|
||||
index bb3b7c0138aff..81965b116be67 100644
|
||||
--- a/pkgs/games/0ad/game.nix
|
||||
+++ b/pkgs/games/0ad/game.nix
|
||||
@@ -2,7 +2,7 @@
|
||||
, pkg-config, spidermonkey_78, boost, icu, libxml2, libpng, libsodium
|
||||
, libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc
|
||||
, openal, libGLU, libGL, xorgproto, libX11, libXcursor, nspr, SDL2
|
||||
-, gloox, nvidia-texture-tools, zeroad-data
|
||||
+, gloox, nvidia-texture-tools
|
||||
, withEditor ? true, wxGTK
|
||||
}:
|
||||
|
||||
@@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
|
||||
"-I${fmt.dev}/include"
|
||||
];
|
||||
|
||||
+ patches = [ ./rootdir_env.patch ];
|
||||
+
|
||||
configurePhase = ''
|
||||
# Delete shipped libraries which we don't need.
|
||||
rm -rf libraries/source/{enet,miniupnpc,nvtt,spidermonkey}
|
||||
@@ -62,7 +64,6 @@ stdenv.mkDerivation rec {
|
||||
${lib.optionalString withEditor "--enable-atlas"} \
|
||||
--bindir="$out"/bin \
|
||||
--libdir="$out"/lib/0ad \
|
||||
- --datadir="$out"/share/0ad/data \
|
||||
--without-tests \
|
||||
-j $NIX_BUILD_CORES
|
||||
popd
|
||||
@@ -85,11 +86,6 @@ stdenv.mkDerivation rec {
|
||||
# Copy l10n data.
|
||||
install -Dm755 -t $out/share/0ad/data/l10n binaries/data/l10n/*
|
||||
|
||||
- # Link in game data from package
|
||||
- ln -s ${zeroad-data}/share/0ad/data/config $out/share/0ad/data/config
|
||||
- ln -s ${zeroad-data}/share/0ad/data/mods $out/share/0ad/data/mods
|
||||
- ln -s ${zeroad-data}/share/0ad/data/tools $out/share/0ad/data/tools
|
||||
-
|
||||
# Copy libraries.
|
||||
install -Dm644 -t $out/lib/0ad binaries/system/*.so
|
||||
|
||||
diff --git a/pkgs/games/0ad/rootdir_env.patch b/pkgs/games/0ad/rootdir_env.patch
|
||||
new file mode 100644
|
||||
index 0000000000000..95463c7e2df46
|
||||
--- /dev/null
|
||||
+++ b/pkgs/games/0ad/rootdir_env.patch
|
||||
@@ -0,0 +1,39 @@
|
||||
+diff --git a/source/ps/GameSetup/Paths.cpp b/source/ps/GameSetup/Paths.cpp
|
||||
+index 474364e..bf084b4 100644
|
||||
+--- a/source/ps/GameSetup/Paths.cpp
|
||||
++++ b/source/ps/GameSetup/Paths.cpp
|
||||
+@@ -155,32 +155,8 @@ Paths::Paths(const CmdLineArgs& args)
|
||||
+
|
||||
+ /*static*/ OsPath Paths::Root(const OsPath& argv0)
|
||||
+ {
|
||||
+-#if OS_ANDROID
|
||||
+- return OsPath("/sdcard/0ad"); // TODO: this is kind of bogus
|
||||
+-#else
|
||||
+-
|
||||
+- // get full path to executable
|
||||
+- OsPath pathname = sys_ExecutablePathname(); // safe, but requires OS-specific implementation
|
||||
+- if(pathname.empty()) // failed, use argv[0] instead
|
||||
+- {
|
||||
+- errno = 0;
|
||||
+- pathname = wrealpath(argv0);
|
||||
+- if(pathname.empty())
|
||||
+- WARN_IF_ERR(StatusFromErrno());
|
||||
+- }
|
||||
+-
|
||||
+- // make sure it's valid
|
||||
+- if(!FileExists(pathname))
|
||||
+- {
|
||||
+- LOGERROR("Cannot find executable (expected at '%s')", pathname.string8());
|
||||
+- WARN_IF_ERR(StatusFromErrno());
|
||||
+- }
|
||||
+-
|
||||
+- for(size_t i = 0; i < 2; i++) // remove "system/name.exe"
|
||||
+- pathname = pathname.Parent();
|
||||
+- return pathname;
|
||||
+-
|
||||
+-#endif
|
||||
++ UNUSED2(argv0);
|
||||
++ return OsPath(getenv("ZEROAD_ROOTDIR"));
|
||||
+ }
|
||||
+
|
||||
+ /*static*/ OsPath Paths::RootData(const OsPath& argv0)
|
||||
|
||||
From 8d6375ba029851c053388ff95ed445d2ae0a56cc Mon Sep 17 00:00:00 2001
|
||||
From: Charlotte Van Petegem <charlotte@vanpetegem.me>
|
||||
Date: Fri, 16 Apr 2021 18:42:32 +0200
|
||||
Subject: [PATCH 2/2] zeroad: Add myself as a maintainer
|
||||
|
||||
---
|
||||
pkgs/games/0ad/data.nix | 1 +
|
||||
pkgs/games/0ad/game.nix | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/pkgs/games/0ad/data.nix b/pkgs/games/0ad/data.nix
|
||||
index 5cb28b3f3bd63..9533af21b15d1 100644
|
||||
--- a/pkgs/games/0ad/data.nix
|
||||
+++ b/pkgs/games/0ad/data.nix
|
||||
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
|
||||
description = "A free, open-source game of ancient warfare -- data files";
|
||||
homepage = "https://play0ad.com/";
|
||||
license = licenses.cc-by-sa-30;
|
||||
+ maintainers = with maintainers; [ chvp ];
|
||||
platforms = platforms.linux;
|
||||
hydraPlatforms = [];
|
||||
};
|
||||
diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix
|
||||
index 81965b116be67..feaf4347329c4 100644
|
||||
--- a/pkgs/games/0ad/game.nix
|
||||
+++ b/pkgs/games/0ad/game.nix
|
||||
@@ -101,6 +101,7 @@ stdenv.mkDerivation rec {
|
||||
gpl2 lgpl21 mit cc-by-sa-30
|
||||
licenses.zlib # otherwise masked by pkgs.zlib
|
||||
];
|
||||
+ maintainers = with maintainers; [ chvp ];
|
||||
platforms = subtractLists platforms.i686 platforms.linux;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue