From cb2c34f1bb8245a4460cef9f82301a76ab60441c Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 22 Oct 2014 01:37:32 +0200 Subject: [PATCH] blivet: Update to new upstream version 0.67. Put a copy of old version 0.17 expression into 0.17.nix and update the pointers from nixpart0 accordingly. This also means, that plain nixpart is now way more broken than nixpart0 (we might want to temporarily fix 0.4 anyway). Signed-off-by: aszlig --- nixos/tests/partition.nix | 2 +- .../python-modules/blivet/0.17.nix | 58 +++++++++++++++++++ .../python-modules/blivet/default.nix | 46 ++++++--------- pkgs/tools/filesystems/nixpart/default.nix | 13 +---- pkgs/top-level/python-packages.nix | 6 +- 5 files changed, 85 insertions(+), 40 deletions(-) create mode 100644 pkgs/development/python-modules/blivet/0.17.nix diff --git a/nixos/tests/partition.nix b/nixos/tests/partition.nix index 72fd37e041e5..afe6b8d4a0dd 100644 --- a/nixos/tests/partition.nix +++ b/nixos/tests/partition.nix @@ -67,7 +67,7 @@ in { machine = { config, pkgs, ... }: { environment.systemPackages = [ - pkgs.pythonPackages.nixpart + pkgs.pythonPackages.nixpart0 pkgs.file pkgs.btrfsProgs pkgs.xfsprogs pkgs.lvm2 ]; virtualisation.emptyDiskImages = [ 4096 4096 ]; diff --git a/pkgs/development/python-modules/blivet/0.17.nix b/pkgs/development/python-modules/blivet/0.17.nix new file mode 100644 index 000000000000..c1b36bf909de --- /dev/null +++ b/pkgs/development/python-modules/blivet/0.17.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchurl, buildPythonPackage, pykickstart, pyparted, pyblock +, libselinux, cryptsetup, multipath_tools, lsof, utillinux +, useNixUdev ? true, udev ? null +# This is only used when useNixUdev is false +, udevSoMajor ? 1 +}: + +assert useNixUdev -> udev != null; + +let + pyenable = { enablePython = true; }; + selinuxWithPython = libselinux.override pyenable; + cryptsetupWithPython = cryptsetup.override pyenable; +in buildPythonPackage rec { + name = "blivet-${version}"; + version = "0.17-1"; + + src = fetchurl { + url = "https://git.fedorahosted.org/cgit/blivet.git/snapshot/" + + "${name}.tar.bz2"; + sha256 = "1k3mws2q0ryb7422mml6idmaasz2i2v6ngyvg6d976dx090qnmci"; + }; + + postPatch = '' + sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \ + blivet/devicelibs/mpath.py blivet/devices.py + sed -i -e '/"wipefs"/ { + s|wipefs|${utillinux}/sbin/wipefs| + s/-f/--force/ + }' blivet/formats/__init__.py + sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py + sed -i -r -e 's|"(u?mount)"|"${utillinux}/bin/\1"|' blivet/util.py + sed -i '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py + '' + (if useNixUdev then '' + sed -i -e '/find_library/,/find_library/ { + c libudev = "${udev}/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 selinuxWithPython cryptsetupWithPython + ] ++ stdenv.lib.optional useNixUdev udev; + + # tests are currently _heavily_ broken upstream + doCheck = false; + + meta = { + homepage = "https://fedoraproject.org/wiki/Blivet"; + description = "Module for management of a system's storage configuration"; + license = [ "GPLv2+" "LGPLv2.1+" ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/development/python-modules/blivet/default.nix b/pkgs/development/python-modules/blivet/default.nix index c1b36bf909de..9942c092d75f 100644 --- a/pkgs/development/python-modules/blivet/default.nix +++ b/pkgs/development/python-modules/blivet/default.nix @@ -1,52 +1,42 @@ -{ stdenv, fetchurl, buildPythonPackage, pykickstart, pyparted, pyblock -, libselinux, cryptsetup, multipath_tools, lsof, utillinux -, useNixUdev ? true, udev ? null -# This is only used when useNixUdev is false -, udevSoMajor ? 1 +{ stdenv, fetchFromGitHub, buildPythonPackage, pykickstart, pyparted, pyblock +, pyudev, six, libselinux, cryptsetup, multipath_tools, lsof, utillinux }: -assert useNixUdev -> udev != null; - let pyenable = { enablePython = true; }; selinuxWithPython = libselinux.override pyenable; cryptsetupWithPython = cryptsetup.override pyenable; in buildPythonPackage rec { name = "blivet-${version}"; - version = "0.17-1"; + version = "0.67"; - src = fetchurl { - url = "https://git.fedorahosted.org/cgit/blivet.git/snapshot/" - + "${name}.tar.bz2"; - sha256 = "1k3mws2q0ryb7422mml6idmaasz2i2v6ngyvg6d976dx090qnmci"; + src = fetchFromGitHub { + owner = "dwlehman"; + repo = "blivet"; + rev = name; + sha256 = "1gk94ghjrxfqnx53hph1j2s7qcv86fjz48is7l099q9c24rjv8ky"; }; postPatch = '' - sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \ - blivet/devicelibs/mpath.py blivet/devices.py + sed -i \ + -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \ + -e '/^def set_friendly_names/a \ return False' \ + blivet/devicelibs/mpath.py sed -i -e '/"wipefs"/ { s|wipefs|${utillinux}/sbin/wipefs| s/-f/--force/ }' blivet/formats/__init__.py sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py sed -i -r -e 's|"(u?mount)"|"${utillinux}/bin/\1"|' blivet/util.py - sed -i '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py - '' + (if useNixUdev then '' - sed -i -e '/find_library/,/find_library/ { - c libudev = "${udev}/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 - ''); + sed -i -e '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py + ''; propagatedBuildInputs = [ - pykickstart pyparted pyblock selinuxWithPython cryptsetupWithPython - ] ++ stdenv.lib.optional useNixUdev udev; + pykickstart pyparted pyblock pyudev selinuxWithPython cryptsetupWithPython + six + ]; - # tests are currently _heavily_ broken upstream + # Tests in coming soon. doCheck = false; meta = { diff --git a/pkgs/tools/filesystems/nixpart/default.nix b/pkgs/tools/filesystems/nixpart/default.nix index 633f04320c37..f0c580b7990f 100644 --- a/pkgs/tools/filesystems/nixpart/default.nix +++ b/pkgs/tools/filesystems/nixpart/default.nix @@ -1,13 +1,6 @@ -{ stdenv, fetchurl, buildPythonPackage, blivet -# Propagated to blivet -, useNixUdev ? null, udevSoMajor ? null -}: +{ stdenv, fetchurl, buildPythonPackage, blivet }: -let - blivetOverrides = stdenv.lib.filterAttrs (k: v: v != null) { - inherit useNixUdev udevSoMajor; - }; -in buildPythonPackage rec { +buildPythonPackage rec { name = "nixpart-${version}"; version = "0.4.1"; @@ -16,7 +9,7 @@ in buildPythonPackage rec { sha256 = "0avwd8p47xy9cydlbjxk8pj8q75zyl68gw2w6fnkk78dcb1a3swp"; }; - propagatedBuildInputs = [ (blivet.override blivetOverrides) ]; + propagatedBuildInputs = [ blivet ]; doCheck = false; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index acaad0804eaa..fea5f8d6e5ba 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -65,6 +65,8 @@ let blivet = callPackage ../development/python-modules/blivet { }; + blivet_0_17 = callPackage ../development/python-modules/blivet/0.17.nix { }; + dbus = callPackage ../development/python-modules/dbus { dbus = pkgs.dbus; }; @@ -123,7 +125,9 @@ let # This is used for NixOps to make sure we won't break it with the next major # version of nixpart. - nixpart0 = callPackage ../tools/filesystems/nixpart/0.4.nix { }; + nixpart0 = callPackage ../tools/filesystems/nixpart/0.4.nix { + blivet = self.blivet_0_17; + }; pitz = callPackage ../applications/misc/pitz { };