Merge branch 'nixpart-1.0-preparations'.
Partially and temporarily addresses NixOS/nixops#228. We now have an up-to-date version of Blivet and a bunch of its dependen- cies as well as the old nixpart 0.4 with all its old and crappy dependencies, which should fix _simple_ partitioning layouts for NixOps. Also, nixpart 1.0 is now marked as broken, because it is not yet released and this branch is more of a preparation and "damage control" in case I shouldn't manage to finish nixpart + nixos-assimilate in time for the next NixOS release.
This commit is contained in:
commit
57aaf3d36e
@ -364,6 +364,7 @@
|
||||
./tasks/filesystems/cifs.nix
|
||||
./tasks/filesystems/ext.nix
|
||||
./tasks/filesystems/f2fs.nix
|
||||
./tasks/filesystems/jfs.nix
|
||||
./tasks/filesystems/nfs.nix
|
||||
./tasks/filesystems/reiserfs.nix
|
||||
./tasks/filesystems/unionfs-fuse.nix
|
||||
|
19
nixos/modules/tasks/filesystems/jfs.nix
Normal file
19
nixos/modules/tasks/filesystems/jfs.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inInitrd = any (fs: fs == "jfs") config.boot.initrd.supportedFilesystems;
|
||||
in
|
||||
{
|
||||
config = mkIf (any (fs: fs == "jfs") config.boot.supportedFilesystems) {
|
||||
|
||||
system.fsPackages = [ pkgs.jfsutils ];
|
||||
|
||||
boot.initrd.kernelModules = mkIf inInitrd [ "jfs" ];
|
||||
|
||||
boot.initrd.extraUtilsCommands = mkIf inInitrd ''
|
||||
cp -v ${pkgs.jfsutils}/sbin/fsck.jfs "$out/bin/"
|
||||
'';
|
||||
};
|
||||
}
|
@ -234,6 +234,7 @@ in rec {
|
||||
# ‘nix-build tests/login.nix -A result’.
|
||||
tests.avahi = callTest tests/avahi.nix {};
|
||||
tests.bittorrent = callTest tests/bittorrent.nix {};
|
||||
tests.blivet = callTest tests/blivet.nix {};
|
||||
tests.containers = callTest tests/containers.nix {};
|
||||
tests.firefox = callTest tests/firefox.nix {};
|
||||
tests.firewall = callTest tests/firewall.nix {};
|
||||
|
85
nixos/tests/blivet.nix
Normal file
85
nixos/tests/blivet.nix
Normal file
@ -0,0 +1,85 @@
|
||||
import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec {
|
||||
name = "blivet";
|
||||
|
||||
machine = {
|
||||
environment.systemPackages = [ pkgs.python blivet mock ];
|
||||
boot.supportedFilesystems = [ "btrfs" "jfs" "reiserfs" "xfs" ];
|
||||
virtualisation.memorySize = 768;
|
||||
};
|
||||
|
||||
debugBlivet = false;
|
||||
debugProgramCalls = false;
|
||||
|
||||
pythonTestRunner = pkgs.writeText "run-blivet-tests.py" ''
|
||||
import sys
|
||||
import logging
|
||||
|
||||
from unittest import TestLoader
|
||||
from unittest.runner import TextTestRunner
|
||||
|
||||
${pkgs.lib.optionalString debugProgramCalls ''
|
||||
blivet_program_log = logging.getLogger("program")
|
||||
blivet_program_log.setLevel(logging.DEBUG)
|
||||
blivet_program_log.addHandler(logging.StreamHandler(sys.stderr))
|
||||
''}
|
||||
|
||||
${pkgs.lib.optionalString debugBlivet ''
|
||||
blivet_log = logging.getLogger("blivet")
|
||||
blivet_log.setLevel(logging.DEBUG)
|
||||
blivet_log.addHandler(logging.StreamHandler(sys.stderr))
|
||||
''}
|
||||
|
||||
runner = TextTestRunner(verbosity=2, failfast=False, buffer=False)
|
||||
result = runner.run(TestLoader().discover('tests/', pattern='*_test.py'))
|
||||
sys.exit(not result.wasSuccessful())
|
||||
'';
|
||||
|
||||
blivetTest = pkgs.writeScript "blivet-test.sh" ''
|
||||
#!${pkgs.stdenv.shell} -e
|
||||
|
||||
# Use the hosts temporary directory, because we have a tmpfs within the VM
|
||||
# and we don't want to increase the memory size of the VM for no reason.
|
||||
mkdir -p /tmp/xchg/bigtmp
|
||||
TMPDIR=/tmp/xchg/bigtmp
|
||||
export TMPDIR
|
||||
|
||||
mkPythonPath() {
|
||||
nix-store -qR "$@" \
|
||||
| sed -e 's|$|/lib/${pkgs.python.libPrefix}/site-packages|'
|
||||
}
|
||||
|
||||
cp -Rd "${blivet.src}/tests" .
|
||||
|
||||
# Skip SELinux tests
|
||||
rm -f tests/formats_test/selinux_test.py
|
||||
|
||||
# Race conditions in growing/shrinking during resync
|
||||
rm -f tests/devicelibs_test/mdraid_*
|
||||
|
||||
# Deactivate small BTRFS device test, because it fails with newer btrfsprogs
|
||||
sed -i -e '/^class *BTRFSAsRootTestCase3(/,/^[^ ]/ {
|
||||
/^class *BTRFSAsRootTestCase3(/d
|
||||
/^$/d
|
||||
/^ /d
|
||||
}' tests/devicelibs_test/btrfs_test.py
|
||||
|
||||
# How on earth can these tests ever work even upstream? O_o
|
||||
sed -i -e '/def testDiskChunk[12]/,/^ *[^ ]/{n; s/^ */&return # /}' \
|
||||
tests/partitioning_test.py
|
||||
|
||||
# fix hardcoded temporary directory
|
||||
sed -i \
|
||||
-e '1i import tempfile' \
|
||||
-e 's|_STORE_FILE_PATH = .*|_STORE_FILE_PATH = tempfile.gettempdir()|' \
|
||||
tests/loopbackedtestcase.py
|
||||
|
||||
PYTHONPATH=".:$(mkPythonPath "${blivet}" "${mock}" | paste -sd :)" \
|
||||
python "${pythonTestRunner}"
|
||||
'';
|
||||
|
||||
testScript = ''
|
||||
$machine->waitForUnit("multi-user.target");
|
||||
$machine->succeed("${blivetTest}");
|
||||
$machine->execute("rm -rf /tmp/xchg/bigtmp");
|
||||
'';
|
||||
})
|
@ -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 ];
|
||||
@ -209,7 +209,7 @@ in {
|
||||
ensurePartition("swap", "swap");
|
||||
ensurePartition("boot", "f2fs");
|
||||
ensurePartition("root", "f2fs");
|
||||
remoteAndCheck;
|
||||
remountAndCheck;
|
||||
ensureMountPoint("/mnt/boot", "f2fs");
|
||||
};
|
||||
|
||||
|
@ -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 are in <nixos/tests/blivet.nix>.
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchurl, attr, acl, zlib, libuuid, e2fsprogs, lzo
|
||||
, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt }:
|
||||
|
||||
let version = "3.16.2"; in
|
||||
let version = "3.17"; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "btrfs-progs-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
|
||||
sha256 = "0avk8x0k91zrqvlbk8r067aw49byr8hvvr4niy48d3ib1jz2mmnl";
|
||||
sha256 = "187hdfh10hrabvldqmhg88wdv0s9r7hc5264v83ykir9wxqvzbzc";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
54
pkgs/tools/filesystems/nixpart/0.4/blivet.nix
Normal file
54
pkgs/tools/filesystems/nixpart/0.4/blivet.nix
Normal file
@ -0,0 +1,54 @@
|
||||
{ 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;
|
||||
|
||||
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 libselinux cryptsetup
|
||||
] ++ 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;
|
||||
};
|
||||
}
|
28
pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix
Normal file
28
pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt
|
||||
, enablePython ? true, python ? null
|
||||
}:
|
||||
|
||||
assert enablePython -> python != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cryptsetup-1.6.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
|
||||
sha256 = "1n1qk5chyjspbiianrdb55fhb4wl0vfyqz2br05vfb24v4qlgbx2";
|
||||
};
|
||||
|
||||
configureFlags = [ "--enable-cryptsetup-reencrypt" ]
|
||||
++ stdenv.lib.optional enablePython "--enable-python";
|
||||
|
||||
buildInputs = [ devicemapper libgcrypt libuuid pkgconfig popt ]
|
||||
++ stdenv.lib.optional enablePython python;
|
||||
|
||||
meta = {
|
||||
homepage = http://code.google.com/p/cryptsetup/;
|
||||
description = "LUKS for dm-crypt";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = with stdenv.lib.maintainers; [ viric chaoflow ];
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
};
|
||||
}
|
76
pkgs/tools/filesystems/nixpart/0.4/default.nix
Normal file
76
pkgs/tools/filesystems/nixpart/0.4/default.nix
Normal file
@ -0,0 +1,76 @@
|
||||
{ stdenv, fetchurl, python, buildPythonPackage
|
||||
# Propagated to blivet
|
||||
, useNixUdev ? true, udevSoMajor ? null
|
||||
# Propagated dependencies
|
||||
, pkgs, urlgrabber
|
||||
}:
|
||||
|
||||
let
|
||||
blivet = import ./blivet.nix {
|
||||
inherit stdenv fetchurl buildPythonPackage;
|
||||
inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
|
||||
inherit useNixUdev udevSoMajor;
|
||||
inherit (pkgs) lsof utillinux udev;
|
||||
libselinux = pkgs.libselinux.override { enablePython = true; };
|
||||
};
|
||||
|
||||
cryptsetup = import ./cryptsetup.nix {
|
||||
inherit stdenv fetchurl python;
|
||||
inherit (pkgs) pkgconfig libgcrypt libuuid popt;
|
||||
devicemapper = lvm2;
|
||||
};
|
||||
|
||||
dmraid = import ./dmraid.nix {
|
||||
inherit stdenv fetchurl;
|
||||
devicemapper = lvm2;
|
||||
};
|
||||
|
||||
lvm2 = import ./lvm2.nix {
|
||||
inherit stdenv fetchurl;
|
||||
inherit (pkgs) pkgconfig utillinux udev coreutils;
|
||||
};
|
||||
|
||||
multipath_tools = import ./multipath-tools.nix {
|
||||
inherit stdenv fetchurl lvm2;
|
||||
inherit (pkgs) readline udev libaio gzip;
|
||||
};
|
||||
|
||||
parted = import ./parted.nix {
|
||||
inherit stdenv fetchurl;
|
||||
inherit (pkgs) utillinux readline libuuid gettext check;
|
||||
devicemapper = lvm2;
|
||||
};
|
||||
|
||||
pyblock = import ./pyblock.nix {
|
||||
inherit stdenv fetchurl python lvm2 dmraid;
|
||||
};
|
||||
|
||||
pykickstart = import ./pykickstart.nix {
|
||||
inherit stdenv fetchurl python buildPythonPackage urlgrabber;
|
||||
};
|
||||
|
||||
pyparted = import ./pyparted.nix {
|
||||
inherit stdenv fetchurl python buildPythonPackage parted;
|
||||
inherit (pkgs) pkgconfig e2fsprogs;
|
||||
};
|
||||
|
||||
in buildPythonPackage rec {
|
||||
name = "nixpart-${version}";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/aszlig/nixpart/archive/v${version}.tar.gz";
|
||||
sha256 = "0avwd8p47xy9cydlbjxk8pj8q75zyl68gw2w6fnkk78dcb1a3swp";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ blivet ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "NixOS storage manager/partitioner";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
maintainers = [ stdenv.lib.maintainers.aszlig ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
26
pkgs/tools/filesystems/nixpart/0.4/dmraid.nix
Normal file
26
pkgs/tools/filesystems/nixpart/0.4/dmraid.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ stdenv, fetchurl, devicemapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dmraid-1.0.0.rc15";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://people.redhat.com/~heinzm/sw/dmraid/src/old/${name}.tar.bz2";
|
||||
sha256 = "01bcaq0sc329ghgj7f182xws7jgjpdc41bvris8fsiprnxc7511h";
|
||||
};
|
||||
|
||||
preConfigure = "cd */";
|
||||
|
||||
buildInputs = [ devicemapper ];
|
||||
|
||||
meta = {
|
||||
description = "Old-style RAID configuration utility";
|
||||
longDescritipn = ''
|
||||
Old RAID configuration utility (still under development, though).
|
||||
It is fully compatible with modern kernels and mdadm recognizes
|
||||
its volumes. May be needed for rescuing an older system or nuking
|
||||
the metadata when reformatting.
|
||||
'';
|
||||
maintainers = [ stdenv.lib.maintainers.raskin ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
58
pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
Normal file
58
pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
Normal file
@ -0,0 +1,58 @@
|
||||
{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }:
|
||||
|
||||
let
|
||||
v = "2.02.106";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "lvm2-${v}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${v}.tgz";
|
||||
sha256 = "0nr833bl0q4zq52drjxmmpf7bs6kqxwa5kahwwxm9411khkxz0vc";
|
||||
};
|
||||
|
||||
configureFlags =
|
||||
"--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
|
||||
|
||||
buildInputs = [ pkgconfig udev ];
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
substituteInPlace scripts/lvmdump.sh \
|
||||
--replace /usr/bin/tr ${coreutils}/bin/tr
|
||||
substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
|
||||
--replace /usr/sbin/lvm $out/sbin/lvm \
|
||||
--replace /usr/bin/udevadm ${udev}/bin/udevadm
|
||||
|
||||
sed -i /DEFAULT_SYS_DIR/d Makefile.in
|
||||
sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
#patches = [ ./purity.patch ];
|
||||
|
||||
# To prevent make install from failing.
|
||||
preInstall = "installFlags=\"OWNER= GROUP= confdir=$out/etc\"";
|
||||
|
||||
# Install systemd stuff.
|
||||
#installTargets = "install install_systemd_generators install_systemd_units install_tmpfiles_configuration";
|
||||
|
||||
postInstall =
|
||||
''
|
||||
substituteInPlace $out/lib/udev/rules.d/13-dm-disk.rules \
|
||||
--replace $out/sbin/blkid ${utillinux}/sbin/blkid
|
||||
|
||||
# Systemd stuff
|
||||
mkdir -p $out/etc/systemd/system $out/lib/systemd/system-generators
|
||||
cp scripts/blk_availability_systemd_red_hat.service $out/etc/systemd/system
|
||||
cp scripts/lvm2_activation_generator_systemd_red_hat $out/lib/systemd/system-generators
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://sourceware.org/lvm2/;
|
||||
descriptions = "Tools to support Logical Volume Management (LVM) on Linux";
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
34
pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
Normal file
34
pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ stdenv, fetchurl, lvm2, libaio, gzip, readline, udev }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "multipath-tools-0.4.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://christophe.varoqui.free.fr/multipath-tools/${name}.tar.bz2";
|
||||
sha256 = "04n7kazp1zrlqfza32phmqla0xkcq4zwn176qff5ida4a60whi4d";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
buildInputs = [ lvm2 libaio readline ];
|
||||
|
||||
preBuild =
|
||||
''
|
||||
makeFlagsArray=(GZIP="${gzip}/bin/gzip -9 -c" prefix=$out mandir=$out/share/man/man8 man5dir=$out/share/man/man5 LIB=lib)
|
||||
|
||||
substituteInPlace multipath/Makefile --replace /etc $out/etc
|
||||
substituteInPlace kpartx/Makefile --replace /etc $out/etc
|
||||
|
||||
substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
|
||||
substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
|
||||
|
||||
substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
|
||||
substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Tools for the Linux multipathing driver";
|
||||
homepage = http://christophe.varoqui.free.fr/;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
57
pkgs/tools/filesystems/nixpart/0.4/parted.nix
Normal file
57
pkgs/tools/filesystems/nixpart/0.4/parted.nix
Normal file
@ -0,0 +1,57 @@
|
||||
{ stdenv, fetchurl, devicemapper, libuuid, gettext, readline
|
||||
, utillinux, check, enableStatic ? false, hurd ? null }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "parted-3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/parted/${name}.tar.xz";
|
||||
sha256 = "05fa4m1bky9d13hqv91jlnngzlyn7y4rnnyq6d86w0dg3vww372y";
|
||||
};
|
||||
|
||||
buildInputs = [ libuuid ]
|
||||
++ stdenv.lib.optional (readline != null) readline
|
||||
++ stdenv.lib.optional (gettext != null) gettext
|
||||
++ stdenv.lib.optional (devicemapper != null) devicemapper
|
||||
++ stdenv.lib.optional (hurd != null) hurd
|
||||
++ stdenv.lib.optional doCheck check;
|
||||
|
||||
configureFlags =
|
||||
(if (readline != null)
|
||||
then [ "--with-readline" ]
|
||||
else [ "--without-readline" ])
|
||||
++ stdenv.lib.optional (devicemapper == null) "--disable-device-mapper"
|
||||
++ stdenv.lib.optional enableStatic "--enable-static";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
preCheck =
|
||||
stdenv.lib.optionalString doCheck
|
||||
# The `t0400-loop-clobber-infloop.sh' test wants `mkswap'.
|
||||
"export PATH=\"${utillinux}/sbin:$PATH\"";
|
||||
|
||||
meta = {
|
||||
description = "Create, destroy, resize, check, and copy partitions";
|
||||
|
||||
longDescription = ''
|
||||
GNU Parted is an industrial-strength package for creating, destroying,
|
||||
resizing, checking and copying partitions, and the file systems on
|
||||
them. This is useful for creating space for new operating systems,
|
||||
reorganising disk usage, copying data on hard disks and disk imaging.
|
||||
|
||||
It contains a library, libparted, and a command-line frontend, parted,
|
||||
which also serves as a sample implementation and script backend.
|
||||
'';
|
||||
|
||||
homepage = http://www.gnu.org/software/parted/;
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
|
||||
maintainers = [
|
||||
# Add your name here!
|
||||
stdenv.lib.maintainers.ludo
|
||||
];
|
||||
|
||||
# GNU Parted requires libuuid, which is part of util-linux-ng.
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
29
pkgs/tools/filesystems/nixpart/0.4/pyblock.nix
Normal file
29
pkgs/tools/filesystems/nixpart/0.4/pyblock.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ stdenv, fetchurl, python, lvm2, dmraid }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pyblock-${version}";
|
||||
version = "0.53";
|
||||
|
||||
src = fetchurl rec {
|
||||
url = "http://pkgs.fedoraproject.org/repo/pkgs/python-pyblock/"
|
||||
+ "${name}.tar.bz2/${md5}/${name}.tar.bz2";
|
||||
md5 = "f6d33a8362dee358517d0a9e2ebdd044";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|/usr/include/python|${python}/include/python|' \
|
||||
-e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
|
||||
'';
|
||||
|
||||
buildInputs = [ python lvm2 dmraid ];
|
||||
|
||||
makeFlags = [
|
||||
"USESELINUX=0"
|
||||
"SITELIB=$(out)/lib/${python.libPrefix}/site-packages"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Interface for working with block devices";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
30
pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix
Normal file
30
pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, python, buildPythonPackage, fetchurl, urlgrabber }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "pykickstart-${version}";
|
||||
version = "1.99.39";
|
||||
|
||||
src = fetchurl rec {
|
||||
url = "http://pkgs.fedoraproject.org/repo/pkgs/pykickstart/"
|
||||
+ "${name}.tar.gz/${md5}/${name}.tar.gz";
|
||||
md5 = "d249f60aa89b1b4facd63f776925116d";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e "s/for tst in tstList/for tst in sorted(tstList, \
|
||||
key=lambda m: m.__name__)/" tests/baseclass.py
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ urlgrabber ];
|
||||
|
||||
checkPhase = ''
|
||||
export PYTHONPATH="$PYTHONPATH:."
|
||||
${python}/bin/${python.executable} tests/baseclass.py -vv
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://fedoraproject.org/wiki/Pykickstart";
|
||||
description = "Read and write Fedora kickstart files";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
42
pkgs/tools/filesystems/nixpart/0.4/pyparted.nix
Normal file
42
pkgs/tools/filesystems/nixpart/0.4/pyparted.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ stdenv, fetchurl, pkgconfig, python, buildPythonPackage, parted, e2fsprogs }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "pyparted-${version}";
|
||||
version = "3.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://fedorahosted.org/releases/p/y/pyparted/${name}.tar.gz";
|
||||
sha256 = "17wq4invmv1nfazaksf59ymqyvgv3i8h4q03ry2az0s9lldyg3dv";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|/sbin/mke2fs|${e2fsprogs}&|' tests/baseclass.py
|
||||
sed -i -e '
|
||||
s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
|
||||
' tests/test__ped_ped.py
|
||||
'' + stdenv.lib.optionalString stdenv.isi686 ''
|
||||
# remove some integers in this test case which overflow on 32bit systems
|
||||
sed -i -r -e '/class *UnitGetSizeTestCase/,/^$/{/[0-9]{11}/d}' \
|
||||
tests/test__ped_ped.py
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
PATH="${parted}/sbin:$PATH"
|
||||
'';
|
||||
|
||||
buildInputs = [ pkgconfig ];
|
||||
|
||||
propagatedBuildInputs = [ parted ];
|
||||
|
||||
checkPhase = ''
|
||||
patchShebangs Makefile
|
||||
make test PYTHON=${python.executable}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://fedorahosted.org/pyparted/";
|
||||
description = "Python interface for libparted";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -1,29 +1,21 @@
|
||||
{ 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";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/aszlig/nixpart/archive/v${version}.tar.gz";
|
||||
sha256 = "0avwd8p47xy9cydlbjxk8pj8q75zyl68gw2w6fnkk78dcb1a3swp";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ (blivet.override blivetOverrides) ];
|
||||
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = [ blivet ];
|
||||
|
||||
meta = {
|
||||
description = "NixOS storage manager/partitioner";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
maintainers = [ stdenv.lib.maintainers.aszlig ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
@ -1,20 +1,26 @@
|
||||
{ stdenv, fetchurl, devicemapper, libuuid, gettext, readline
|
||||
{ stdenv, fetchurl, devicemapper, libuuid, gettext, readline, perl, python
|
||||
, utillinux, check, enableStatic ? false, hurd ? null }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "parted-3.1";
|
||||
name = "parted-3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/parted/${name}.tar.xz";
|
||||
sha256 = "05fa4m1bky9d13hqv91jlnngzlyn7y4rnnyq6d86w0dg3vww372y";
|
||||
sha256 = "1r3qpg3bhz37mgvp9chsaa3k0csby3vayfvz8ggsqz194af5i2w5";
|
||||
};
|
||||
|
||||
patches = stdenv.lib.optional doCheck ./gpt-unicode-test-fix.patch;
|
||||
|
||||
postPatch = stdenv.lib.optionalString doCheck ''
|
||||
patchShebangs tests
|
||||
'';
|
||||
|
||||
buildInputs = [ libuuid ]
|
||||
++ stdenv.lib.optional (readline != null) readline
|
||||
++ stdenv.lib.optional (gettext != null) gettext
|
||||
++ stdenv.lib.optional (devicemapper != null) devicemapper
|
||||
++ stdenv.lib.optional (hurd != null) hurd
|
||||
++ stdenv.lib.optional doCheck check;
|
||||
++ stdenv.lib.optionals doCheck [ check perl python ];
|
||||
|
||||
configureFlags =
|
||||
(if (readline != null)
|
||||
|
38
pkgs/tools/misc/parted/gpt-unicode-test-fix.patch
Normal file
38
pkgs/tools/misc/parted/gpt-unicode-test-fix.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From Ludo's suggestion at:
|
||||
|
||||
http://debbugs.gnu.org/cgi/bugreport.cgi?msg=8;bug=18258
|
||||
|
||||
diff --git a/tests/.t0251-gpt-unicode.sh.swp b/tests/.t0251-gpt-unicode.sh.swp
|
||||
deleted file mode 100644
|
||||
index b41c337..0000000
|
||||
Binary files a/tests/.t0251-gpt-unicode.sh.swp and /dev/null differ
|
||||
diff --git a/tests/t0251-gpt-unicode.sh b/tests/t0251-gpt-unicode.sh
|
||||
index c845950..fa63a72 100755
|
||||
--- a/tests/t0251-gpt-unicode.sh
|
||||
+++ b/tests/t0251-gpt-unicode.sh
|
||||
@@ -22,7 +22,24 @@ dev=loop-file
|
||||
# create zeroed device
|
||||
truncate -s 10m $dev || fail=1
|
||||
|
||||
-export LC_ALL=C.UTF-8
|
||||
+found_locale=no
|
||||
+for locale in en_US de_DE fr_FR es_ES
|
||||
+do
|
||||
+ LC_ALL="$locale.UTF-8"
|
||||
+ export LC_ALL
|
||||
+
|
||||
+ # In a UTF-8 locale, the string below prints as 4 characters.
|
||||
+ if [ `printf 'foo\341\264\244' | wc -m` -eq 4 ]; then
|
||||
+ found_locale=yes
|
||||
+ break
|
||||
+ fi
|
||||
+done
|
||||
+
|
||||
+if [ "$found_locale" != "yes" ]; then
|
||||
+ echo "no valid UTF-8 locale found; skipping" >&2
|
||||
+ exit 77
|
||||
+fi
|
||||
+
|
||||
# create gpt label with named partition
|
||||
part_name=$(printf 'foo\341\264\244')
|
||||
parted -s $dev mklabel gpt mkpart primary ext2 1MiB 2MiB name 1 $part_name > empty 2>&1 || fail=1
|
@ -123,7 +123,7 @@ let
|
||||
|
||||
# This is used for NixOps to make sure we won't break it with the next major
|
||||
# version of nixpart.
|
||||
nixpart0 = self.nixpart;
|
||||
nixpart0 = callPackage ../tools/filesystems/nixpart/0.4 { };
|
||||
|
||||
pitz = callPackage ../applications/misc/pitz { };
|
||||
|
||||
@ -6518,6 +6518,7 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
pycapnp = buildPythonPackage rec {
|
||||
name = "pycapnp-0.4.4";
|
||||
disabled = isPyPy || isPy3k;
|
||||
@ -6857,6 +6858,17 @@ let
|
||||
sha256 = "17wq4invmv1nfazaksf59ymqyvgv3i8h4q03ry2az0s9lldyg3dv";
|
||||
};
|
||||
|
||||
patches = singleton (pkgs.fetchurl {
|
||||
url = "https://www.redhat.com/archives/pyparted-devel/"
|
||||
+ "2014-April/msg00000.html";
|
||||
postFetch = ''
|
||||
sed -i -ne '/<!--X-Body-of-Message-->/,/<!--X-Body-of-Message-End-->/ {
|
||||
s/^<[^>]*>//; /^$/!p
|
||||
}' "$downloadedFile"
|
||||
'';
|
||||
sha256 = "1lakhz3nvx0qacn90bj1nq13zqxphiw4d9dsc44gwa8nj24j2zws";
|
||||
});
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|/sbin/mke2fs|${pkgs.e2fsprogs}&|' tests/baseclass.py
|
||||
sed -i -e '
|
||||
@ -8481,11 +8493,11 @@ let
|
||||
|
||||
|
||||
six = buildPythonPackage rec {
|
||||
name = "six-1.7.3";
|
||||
name = "six-1.8.0";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "http://pypi.python.org/packages/source/s/six/${name}.tar.gz";
|
||||
md5 = "784c6e5541c3c4952de9c0a966a0a80b";
|
||||
md5 = "1626eb24cc889110c38f7e786ec69885";
|
||||
};
|
||||
|
||||
# error: invalid command 'test'
|
||||
|
Loading…
Reference in New Issue
Block a user