diff options
author | aszlig <aszlig@redmoonstudios.org> | 2014-10-22 08:15:30 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2014-10-22 08:22:59 +0200 |
commit | 78ef5f9c14785d99a9670c65c2735610735a0bc4 (patch) | |
tree | b22c099ad0b3bbc7e7b262685fac0f3852aab26b /pkgs/tools/filesystems/nixpart | |
parent | 7676ff5973edf14292d4de94a5c5353a5ebb5fae (diff) | |
download | nixlib-78ef5f9c14785d99a9670c65c2735610735a0bc4.tar nixlib-78ef5f9c14785d99a9670c65c2735610735a0bc4.tar.gz nixlib-78ef5f9c14785d99a9670c65c2735610735a0bc4.tar.bz2 nixlib-78ef5f9c14785d99a9670c65c2735610735a0bc4.tar.lz nixlib-78ef5f9c14785d99a9670c65c2735610735a0bc4.tar.xz nixlib-78ef5f9c14785d99a9670c65c2735610735a0bc4.tar.zst nixlib-78ef5f9c14785d99a9670c65c2735610735a0bc4.zip |
nixpart: Move all 0.4 dependencies into one dir.
Once nixpart 1.0 is released we then only need to delete one single directory rather than searching for needles in a haystack, that is, all of <nixpkgs>. Also, it keeps my sanity at an almost healthy level. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/tools/filesystems/nixpart')
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4.nix | 29 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/blivet.nix | 54 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix | 28 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/default.nix | 76 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/dmraid.nix | 26 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/lvm2.nix | 58 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix | 34 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/parted.nix | 57 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/pyblock.nix | 29 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix | 30 | ||||
-rw-r--r-- | pkgs/tools/filesystems/nixpart/0.4/pyparted.nix | 42 |
11 files changed, 434 insertions, 29 deletions
diff --git a/pkgs/tools/filesystems/nixpart/0.4.nix b/pkgs/tools/filesystems/nixpart/0.4.nix deleted file mode 100644 index 633f04320c37..000000000000 --- a/pkgs/tools/filesystems/nixpart/0.4.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchurl, buildPythonPackage, blivet -# Propagated to blivet -, useNixUdev ? null, udevSoMajor ? null -}: - -let - blivetOverrides = stdenv.lib.filterAttrs (k: v: v != null) { - inherit useNixUdev udevSoMajor; - }; -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.override blivetOverrides) ]; - - doCheck = false; - - meta = { - description = "NixOS storage manager/partitioner"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = [ stdenv.lib.maintainers.aszlig ]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix new file mode 100644 index 000000000000..44333b519cbe --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix b/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix new file mode 100644 index 000000000000..c612512b8cc9 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix new file mode 100644 index 000000000000..9ea2f9bfdc77 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/dmraid.nix b/pkgs/tools/filesystems/nixpart/0.4/dmraid.nix new file mode 100644 index 000000000000..35efa8533ab1 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/dmraid.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix new file mode 100644 index 000000000000..9e2b0c900794 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix new file mode 100644 index 000000000000..90722d74ace1 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/parted.nix b/pkgs/tools/filesystems/nixpart/0.4/parted.nix new file mode 100644 index 000000000000..01b9f391a443 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/parted.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix b/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix new file mode 100644 index 000000000000..2ce126d7169f --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix b/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix new file mode 100644 index 000000000000..7bc3f54c2363 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix @@ -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; + }; +} diff --git a/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix b/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix new file mode 100644 index 000000000000..67f318c863e1 --- /dev/null +++ b/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix @@ -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; + }; +} |