summaryrefslogtreecommitdiffstats
path: root/pkgs/tools/filesystems/nixpart
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2015-11-20 14:32:58 +0100
committerVladimír Čunát <vcunat@gmail.com>2015-11-20 14:32:58 +0100
commit333d69a5f0e7ccfe7b8c0bdb14ebd3934b3f77fb (patch)
tree0f4757ddd2bb3d73b438eea85828d8e01c049583 /pkgs/tools/filesystems/nixpart
parentbdbbfa0d4247e203ffe3171621b614374da05f70 (diff)
parentb809f886c0bdbd4665fc65a4c308d38a30c368d8 (diff)
Merge staging into closure-size
The most complex problems were from dealing with switches reverted in the meantime (gcc5, gmp6, ncurses6). It's likely that darwin is (still) broken nontrivially.
Diffstat (limited to 'pkgs/tools/filesystems/nixpart')
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/blivet.nix13
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/blivet.patch39
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/default.nix6
3 files changed, 47 insertions, 11 deletions
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index 0995a8bfd23e..1776c30ecae0 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -1,8 +1,6 @@
{ stdenv, fetchurl, buildPythonPackage, pykickstart, pyparted, pyblock
, libselinux, cryptsetup, multipath_tools, lsof, utillinux
, useNixUdev ? true, libudev ? null
-# This is only used when useNixUdev is false
-, udevSoMajor ? 1
}:
assert useNixUdev -> libudev != null;
@@ -17,6 +15,8 @@ buildPythonPackage rec {
sha256 = "1k3mws2q0ryb7422mml6idmaasz2i2v6ngyvg6d976dx090qnmci";
};
+ patches = [ ./blivet.patch ];
+
postPatch = ''
sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \
blivet/devicelibs/mpath.py blivet/devices.py
@@ -27,16 +27,11 @@ buildPythonPackage rec {
sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py
sed -i -r -e 's|"(u?mount)"|"${utillinux.bin}/bin/\1"|' blivet/util.py
sed -i '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py
- '' + (if useNixUdev then ''
+ '' + stdenv.lib.optionalString useNixUdev ''
sed -i -e '/find_library/,/find_library/ {
c libudev = "${libudev.out}/lib/libudev.so.1"
}' blivet/pyudev.py
- '' else ''
- sed -i \
- -e '/^somajor *=/s/=.*/= ${toString udevSoMajor}/p' \
- -e 's|common =.*|& + ["/lib/x86_64-linux-gnu", "/lib/i686-linux-gnu"]|' \
- blivet/pyudev.py
- '');
+ '';
propagatedBuildInputs = [
pykickstart pyparted pyblock libselinux cryptsetup
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.patch b/pkgs/tools/filesystems/nixpart/0.4/blivet.patch
new file mode 100644
index 000000000000..1758d18442d2
--- /dev/null
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.patch
@@ -0,0 +1,39 @@
+diff --git a/blivet/pyudev.py b/blivet/pyudev.py
+index 705b93d..7268d71 100644
+--- a/blivet/pyudev.py
++++ b/blivet/pyudev.py
+@@ -7,9 +7,9 @@ from ctypes import *
+
+
+ # XXX this one may need some tweaking...
+-def find_library(name, somajor=0):
++def find_library(name):
+ env = os.environ.get("LD_LIBRARY_PATH")
+- common = ["/lib64", "/lib"]
++ common = ["/lib64", "/lib", "/lib/x86_64-linux-gnu", "/lib/i686-linux-gnu"]
+
+ if env:
+ libdirs = env.split(":") + common
+@@ -19,7 +19,7 @@ def find_library(name, somajor=0):
+ libdirs = filter(os.path.isdir, libdirs)
+
+ for dir in libdirs:
+- files = fnmatch.filter(os.listdir(dir), "lib%s.so.%d" % (name, somajor))
++ files = fnmatch.filter(os.listdir(dir), "lib%s.so.*" % name)
+ files = [os.path.join(dir, file) for file in files]
+
+ if files:
+@@ -32,11 +32,10 @@ def find_library(name, somajor=0):
+
+ # find the udev library
+ name = "udev"
+-somajor = 1
+-libudev = find_library(name=name, somajor=somajor)
++libudev = find_library(name)
+
+ if not libudev or not os.path.exists(libudev):
+- raise ImportError, "No library named %s.%d" % (name, somajor)
++ raise ImportError, "No library named lib%s.so" % name
+
+ # load the udev library
+ libudev = CDLL(libudev)
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 1ac8083c2594..cbedf6a70a5d 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -1,6 +1,8 @@
{ stdenv, fetchurl, python, buildPythonPackage
# Propagated to blivet
-, useNixUdev ? true, udevSoMajor ? null
+, useNixUdev ? true
+# No longer needed, but kept for backwards-compatibility with older NixOps.
+, udevSoMajor ? null
# Propagated dependencies
, pkgs, urlgrabber
}:
@@ -9,7 +11,7 @@ let
blivet = import ./blivet.nix {
inherit stdenv fetchurl buildPythonPackage;
inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
- inherit useNixUdev udevSoMajor;
+ inherit useNixUdev;
inherit (pkgs) lsof utillinux libudev;
libselinux = pkgs.libselinux.override { enablePython = true; };
};