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 <aszlig@redmoonstudios.org>
This commit is contained in:
aszlig 2014-10-22 01:37:32 +02:00
parent 7deadbb55f
commit cb2c34f1bb
No known key found for this signature in database
GPG Key ID: D0EBD0EC8C2DC961
5 changed files with 85 additions and 40 deletions

View File

@ -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 ];

View File

@ -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;
};
}

View File

@ -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 <nixos/tests/blivet.nix> coming soon.
doCheck = false;
meta = {

View File

@ -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;

View File

@ -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 { };