Recover the complicated situation after my bad merge

I made a mistake merge.  Reverting it in c778945806 undid the state
on master, but now I realize it crippled the git merge mechanism.
As the merge contained a mix of commits from `master..staging-next`
and other commits from `staging-next..staging`, it got the
`staging-next` branch into a state that was difficult to recover.

I reconstructed the "desired" state of staging-next tree by:
 - checking out the last commit of the problematic range: 4effe769e2
 - `git rebase -i --preserve-merges a8a018ddc0` - dropping the mistaken
   merge commit and its revert from that range (while keeping
   reapplication from 4effe769e2)
 - merging the last unaffected staging-next commit (803ca85c20)
 - fortunately no other commits have been pushed to staging-next yet
 - applying a diff on staging-next to get it into that state
This commit is contained in:
Vladimír Čunát
2020-10-26 09:01:04 +01:00
parent 4bd836b381
commit 89023c38fc
52 changed files with 667 additions and 1750 deletions
@@ -5,6 +5,7 @@
, ps
, isBootstrap ? false
, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
, useOpenSSL ? !isBootstrap, openssl
, useNcurses ? false, ncurses
, useQt4 ? false, qt4
, withQt5 ? false, qtbase
@@ -44,15 +45,17 @@ stdenv.mkDerivation rec {
setupHook = ./setup-hook.sh;
buildInputs =
[ setupHook pkgconfig ]
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ setupHook pkgconfig ];
buildInputs = []
++ lib.optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ]
++ lib.optional useOpenSSL openssl
++ lib.optional useNcurses ncurses
++ lib.optional useQt4 qt4
++ lib.optional withQt5 qtbase;
depsBuildBuild = [ buildPackages.stdenv.cc ];
propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
preConfigure = ''
@@ -91,13 +94,15 @@ stdenv.mkDerivation rec {
"-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar"
"-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib"
"-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip"
]
"-DCMAKE_USE_OPENSSL=${if useOpenSSL then "ON" else "OFF"}"
# Avoid depending on frameworks.
++ lib.optional (!useNcurses) "-DBUILD_CursesDialog=OFF";
"-DBUILD_CursesDialog=${if useNcurses then "ON" else "OFF"}"
];
# make install attempts to use the just-built cmake
preInstall = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ''
sed -i 's|bin/cmake|${buildPackages.cmake}/bin/cmake|g' Makefile
sed -i 's|bin/cmake|${buildPackages.cmakeMinimal}/bin/cmake|g' Makefile
'';
dontUseCmakeConfigure = true;
@@ -0,0 +1,40 @@
From 536108b10271f2f42d41c7d9ddb4ce2ea1851f4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
Date: Sat, 17 Oct 2020 19:27:08 +0200
Subject: [PATCH] boost: Do not add system paths on nix
---
mesonbuild/dependencies/boost.py | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
index 907c0c275..ecaf11b18 100644
--- a/mesonbuild/dependencies/boost.py
+++ b/mesonbuild/dependencies/boost.py
@@ -643,22 +643,7 @@ class BoostDependency(ExternalDependency):
roots += [x for x in candidates if x.name.lower().startswith('boost') and x.is_dir()]
else:
tmp = [] # type: T.List[Path]
-
- # Homebrew
- brew_boost = Path('/usr/local/Cellar/boost')
- if brew_boost.is_dir():
- tmp += [x for x in brew_boost.iterdir()]
-
- # Add some default system paths
- tmp += [Path('/opt/local')]
- tmp += [Path('/usr/local/opt/boost')]
- tmp += [Path('/usr/local')]
- tmp += [Path('/usr')]
-
- # Cleanup paths
- tmp = [x for x in tmp if x.is_dir()]
- tmp = [x.resolve() for x in tmp]
- roots += tmp
+ # Do not add any non-explicit paths on nix
return roots
--
2.25.4
@@ -52,6 +52,11 @@ python3.pkgs.buildPythonApplication rec {
# cut-in-half-by-\0 store path references.
# Lets just clear the whole rpath and hope for the best.
./clear-old-rpath.patch
# Patch out default boost search paths to avoid impure builds on
# unsandboxed non-NixOS builds, see:
# https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
./boost-Do-not-add-system-paths-on-nix.patch
];
setupHook = ./setup-hook.sh;