Merge 'staging' into closure-size

- there were many easy merge conflicts
- cc-wrapper needed nontrivial changes

Many other problems might've been created by interaction of the branches,
but stdenv and a few other packages build fine now.
This commit is contained in:
Vladimír Čunát
2015-04-18 11:22:20 +02:00
6303 changed files with 375444 additions and 91358 deletions
+25
View File
@@ -0,0 +1,25 @@
{ stdenv, fetchurl, pkgconfig, fuse, xz }:
stdenv.mkDerivation rec {
name = "avfs-${version}";
version = "1.0.2";
src = fetchurl {
url = "mirror://sourceforge/avf/${version}/${name}.tar.bz2";
sha1 = "e4f8377ea2565c1ac59f7b66893905b778ddf849";
};
buildInputs = [ pkgconfig fuse xz ];
configureFlags = [
"--enable-library"
"--enable-fuse"
"--disable-static"
];
meta = {
homepage = http://avf.sourceforge.net/;
description = "Virtual filesystem that allows browsing of compressed files";
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.gpl2;
};
}
@@ -0,0 +1,36 @@
{stdenv, fetchFromGitHub}:
stdenv.mkDerivation rec {
name = "bashmount-${version}";
version = "3.2.0";
src = fetchFromGitHub {
owner = "jamielinux";
repo = "bashmount";
rev = version;
sha256 = "0rki4s0jgz6vkywc6hcx9qa551r5bnjs7sw0rdh93k64l32kh644";
};
installPhase = ''
mkdir -p $out/bin
cp bashmount $out/bin
mkdir -p $out/etc
cp bashmount.conf $out/etc
mkdir -p $out/share/man/man1
gzip -c -9 bashmount.1 > bashmount.1.gz
cp bashmount.1.gz $out/share/man/man1
mkdir -p $out/share/doc/bashmount
cp COPYING $out/share/doc/bashmount
cp NEWS $out/share/doc/bashmount
'';
meta = with stdenv.lib; {
homepage = https://github.com/jamielinux/bashmount;
description = "A menu-driven bash script for the management of removable media with udisks";
maintainers = [ maintainers.koral ];
platforms = platforms.all;
};
}
@@ -0,0 +1,52 @@
This patch does two things:
1) Drops probe-bcache, so now new util-linux detecting functionality is used.
2) Drops bcache-register, using kmod (built in udev) and moving registering device
into rule using 'sh'.
This reduces things that need to be present in initrd, replacing them with already
existing functionality and reducing overall initrd size.
diff --git a/69-bcache.rules b/69-bcache.rules
index 5d28e70..6a52893 100644
--- a/69-bcache.rules
+++ b/69-bcache.rules
@@ -10,15 +10,11 @@ KERNEL=="fd*|sr*", GOTO="bcache_end"
# It recognised bcache (util-linux 2.24+)
ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found"
# It recognised something else; bail
-ENV{ID_FS_TYPE}=="?*", GOTO="bcache_backing_end"
-
-# Backing devices: scan, symlink, register
-IMPORT{program}="probe-bcache -o udev $tempnode"
-ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end"
-ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+GOTO="bcache_backing_end"
LABEL="bcache_backing_found"
-RUN+="bcache-register $tempnode"
+RUN{builtin}+="kmod load bcache"
+RUN+="/bin/sh -c 'echo $tempnode > /sys/fs/bcache/register_quiet'"
LABEL="bcache_backing_end"
# Cached devices: symlink
diff --git a/Makefile b/Makefile
index 3f8d87b..15638a7 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@ all: make-bcache probe-bcache bcache-super-show
install: make-bcache probe-bcache bcache-super-show
$(INSTALL) -m0755 make-bcache bcache-super-show $(DESTDIR)${PREFIX}/sbin/
- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
+# $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
$(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
$(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
$(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
diff --git a/bcache-register b/bcache-register
index 9b592bc..75b4faf 100755
--- a/bcache-register
+++ b/bcache-register
@@ -1,4 +1,3 @@
#!/bin/sh
-/sbin/modprobe -qba bcache
test -f /sys/fs/bcache/register_quiet && echo "$1" > /sys/fs/bcache/register_quiet
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
-e "/INSTALL.*initcpio\/install/d" \
-e "/INSTALL.*dracut\/module-setup.sh/d" \
-i Makefile
sed -e "s|/sbin/modprobe|${kmod}/sbin/modprobe|" -i bcache-register
'';
patches = [ ./bcache-udev-modern.patch ];
preBuild = ''
export makeFlags="$makeFlags PREFIX=\"$out\" UDEVLIBDIR=\"$out/lib/udev/\"";
'';
+58
View File
@@ -0,0 +1,58 @@
{ stdenv, fetchFromGitHub, curl, fuse, libxml2, pkgconfig }:
let
version = "2-20150109";
srcs = {
boxfs2 = fetchFromGitHub {
sha256 = "10af1l3sjnh25shmq5gdnpyqk4vrq7i1zklv4csf1n2nrahln8j8";
rev = "d7018b0546d2dae956ae3da3fb95d2f63fa6d3ff";
repo = "boxfs2";
owner = "drotiro";
};
libapp = fetchFromGitHub {
sha256 = "1p2sbxiranan2n2xsfjkp3c6r2vcs57ds6qvjv4crs1yhxr7cp00";
rev = "febebe2bc0fb88d57bdf4eb4a2a54c9eeda3f3d8";
repo = "libapp";
owner = "drotiro";
};
libjson = fetchFromGitHub {
sha256 = "1vhss3gq44nl61fbnh1l3qzwvz623gwhfgykf1lf1p31rjr7273w";
rev = "75a7f50fca2c667bc5f32cdd6dd98f2b673f6657";
repo = "libjson";
owner = "vincenthz";
};
};
in stdenv.mkDerivation {
name = "boxfs-${version}";
src = srcs.boxfs2;
prePatch = with srcs; ''
substituteInPlace Makefile --replace "git pull" "true"
cp -a --no-preserve=mode ${libapp} libapp
cp -a --no-preserve=mode ${libjson} libjson
'';
buildInputs = [ curl fuse libxml2 pkgconfig ];
buildFlags = "static";
installPhase = ''
mkdir -p $out/bin
install boxfs boxfs-init $out/bin
'';
meta = with stdenv.lib; {
description = "FUSE file system for box.com accounts";
longDescription = ''
Store files on box.com (an account is required). The first time you run
boxfs, you will need to complete the authentication (oauth2) process and
grant access to your box.com account. Just follow the instructions on
the terminal and in your browser. When you've done using your files,
unmount the file system with `fusermount -u mountpoint`.
'';
homepage = https://github.com/drotiro/boxfs2;
license = with licenses; gpl3;
platforms = with platforms; linux;
maintainers = with maintainers; [ nckx ];
};
}
@@ -1,18 +1,18 @@
{ stdenv, fetchurl, attr, acl, zlib, libuuid, e2fsprogs, lzo
{ stdenv, fetchurl, pkgconfig, attr, acl, zlib, libuuid, e2fsprogs, lzo
, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt }:
let version = "3.14.2"; in
let version = "3.19.1"; in
stdenv.mkDerivation rec {
name = "btrfs-progs-${version}";
src = fetchurl {
url = "mirror://kernel/linux/kernel/people/mason/btrfs-progs/btrfs-progs-v${version}.tar.xz";
sha256 = "14vpj6f2v076v9zabgrz8l4dp6n1ar2mvk3lvii51ykvi35d1qbh";
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
sha256 = "1nw8rsc0dc5k6hrg03m1c65n4d0f7rfs1fjv96xqhqg0wykn5214";
};
buildInputs = [
attr acl zlib libuuid e2fsprogs lzo
pkgconfig attr acl zlib libuuid e2fsprogs lzo
asciidoc xmlto docbook_xml_dtd_45 docbook_xsl libxslt
];
@@ -21,10 +21,11 @@ stdenv.mkDerivation rec {
makeFlags = "prefix=$(out)";
meta = {
meta = with stdenv.lib; {
description = "Utilities for the btrfs filesystem";
homepage = https://btrfs.wiki.kernel.org/;
maintainers = [ stdenv.lib.maintainers.raskin ];
platforms = stdenv.lib.platforms.linux;
license = licenses.gpl2;
maintainers = with maintainers; [ raskin wkennington ];
platforms = platforms.linux;
};
}
@@ -0,0 +1,42 @@
From 2507ab33236f0da12899fbcdd36535f7c7b68a06 Mon Sep 17 00:00:00 2001
From: "William A. Kennington III" <william@wkennington.com>
Date: Sat, 20 Sep 2014 22:52:31 -0700
Subject: [PATCH] Cleanup boost optionals
---
src/osd/ECBackend.cc | 2 +-
src/osd/ReplicatedPG.cc | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc
index a87b5b4..c386900 100644
--- a/src/osd/ECBackend.cc
+++ b/src/osd/ECBackend.cc
@@ -81,7 +81,7 @@ ostream &operator<<(ostream &lhs, const ECBackend::read_result_t &rhs)
lhs << "read_result_t(r=" << rhs.r
<< ", errors=" << rhs.errors;
if (rhs.attrs) {
- lhs << ", attrs=" << rhs.attrs;
+ lhs << ", attrs=" << rhs.attrs.get();
} else {
lhs << ", noattrs";
}
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index 5e5510d..79e8616 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -5259,7 +5259,10 @@ void ReplicatedPG::do_osd_op_effects(OpContext *ctx)
for (list<OpContext::NotifyAck>::iterator p = ctx->notify_acks.begin();
p != ctx->notify_acks.end();
++p) {
- dout(10) << "notify_ack " << make_pair(p->watch_cookie, p->notify_id) << dendl;
+ if (p->watch_cookie)
+ dout(10) << "notify_ack " << make_pair(p->watch_cookie.get(), p->notify_id) << dendl;
+ else
+ dout(10) << "notify_ack " << make_pair("NULL", p->notify_id) << dendl;
for (map<pair<uint64_t, entity_name_t>, WatchRef>::iterator i =
ctx->obc->watchers.begin();
i != ctx->obc->watchers.end();
--
2.1.0
@@ -0,0 +1,25 @@
From 34c27f66210570adf5aba624d7da3c0382d5493f Mon Sep 17 00:00:00 2001
From: "William A. Kennington III" <william@wkennington.com>
Date: Sun, 21 Sep 2014 12:19:30 -0700
Subject: [PATCH] Makefile-env: Don't force /sbin
---
src/Makefile-env.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile-env.am b/src/Makefile-env.am
index f2ab655..bf8876e 100644
--- a/src/Makefile-env.am
+++ b/src/Makefile-env.am
@@ -27,7 +27,7 @@ bin_DEBUGPROGRAMS =
ceph_sbindir = $(sbindir)
# certain things go straight into /sbin, though!
-su_sbindir = /sbin
+su_sbindir = $(sbindir)
# C/C++ tests to build will be appended to this
check_PROGRAMS =
--
2.1.0
+45 -21
View File
@@ -1,37 +1,61 @@
{stdenv, fetchgit, libatomic_ops, autoconf, automake, boost, btrfsProgs, cryptopp, curl, expat,
fcgi, fuse, gperftools, keyutils, leveldb, libaio, libedit, libtool,
libuuid, linuxHeaders, openssl, pkgconfig, python, snappy, which, xfsprogs, xz}:
{ stdenv, fetchgit, autoconf, automake, makeWrapper, pkgconfig, libtool, which
, boost, btrfsProgs, cryptopp, curl, expat, fcgi, fuse, gperftools, keyutils
, leveldb, libaio, libatomic_ops, libedit, libuuid, linuxHeaders, openssl
, python, snappy, udev, xfsprogs, xz
, zfs ? null
}:
with stdenv.lib;
let
wrapArgs = "--prefix PYTHONPATH : \"$(toPythonPath $out)\""
+ " --prefix PYTHONPATH : \"$(toPythonPath ${python.modules.readline})\""
+ " --prefix PATH : \"$out/bin\""
+ " --prefix LD_LIBRARY_PATH : \"$out/lib\"";
in
stdenv.mkDerivation rec {
baseName="ceph";
version="0.79";
name="${baseName}-${version}";
name="ceph-${version}";
version="0.94";
src = fetchgit {
url = "git://github.com/ceph/ceph.git";
rev = "refs/tags/v${version}";
sha256 = "0xqfmfg34w8yngv2qg4kwbpv9xhc8rn9hzsrgpw68f5hrs3dfimz";
};
patches = [
./0001-Makefile-env-Don-t-force-sbin.patch
];
nativeBuildInputs = [ autoconf automake makeWrapper pkgconfig libtool which ];
buildInputs = [
fuse linuxHeaders pkgconfig libatomic_ops autoconf automake boost btrfsProgs cryptopp expat
fcgi fuse gperftools keyutils leveldb libaio libedit libtool libuuid openssl pkgconfig
python snappy which xfsprogs.lib xz
boost btrfsProgs cryptopp curl expat fcgi fuse gperftools keyutils
libatomic_ops leveldb libaio libedit libuuid linuxHeaders openssl python
snappy udev xfsprogs.lib xz zfs
];
preConfigure = ''
./autogen.sh
'';
installFlags = "DESTDIR=\${out}";
configureFlags = [
"--exec_prefix=$(out)"
] ++ optional (zfs != null) "--with-zfs=${zfs}";
postInstall = ''
wrapProgram $out/bin/ceph ${wrapArgs}
wrapProgram $out/bin/ceph-brag ${wrapArgs}
wrapProgram $out/bin/ceph-rest-api ${wrapArgs}
wrapProgram $out/sbin/ceph-create-keys ${wrapArgs}
wrapProgram $out/sbin/ceph-disk ${wrapArgs}
'';
enableParallelBuilding = true;
src = fetchgit {
url = "https://github.com/ceph/ceph";
rev = "4c2d73a5095f527c3a2168deb5fa54b3c8991a6e";
sha256 = "0850m817wqqmw2qdnwm5jvbdgifzlc7kcd05jv526pdvmq1x92rf";
};
meta = {
inherit version;
homepage = http://ceph.com/;
description = "Distributed storage system";
maintainers = [
stdenv.lib.maintainers.ak
];
platforms = with stdenv.lib.platforms;
linux;
license = licenses.lgpl21;
maintainers = with maintainers; [ ak wkennington ];
platforms = with platforms; linux;
};
}
+43
View File
@@ -0,0 +1,43 @@
{ stdenv, fetchFromGitHub, autoreconfHook, gettext }:
let version = "0.5.2"; in
stdenv.mkDerivation rec {
name = "duff-${version}";
src = fetchFromGitHub {
sha256 = "0yfm910wjj6z0f0cg68x59ykf4ql5m49apzy8sra00f8kv4lpn53";
rev = version;
repo = "duff";
owner = "elmindreda";
};
buildInputs = [ autoreconfHook gettext ];
preAutoreconf = ''
# duff is currently badly packaged, requiring us to do extra work here that
# should be done upstream. If that is ever fixed, this entire phase can be
# removed along with all buildInputs.
# gettexttize rightly refuses to run non-interactively:
cp ${gettext}/bin/gettextize .
substituteInPlace gettextize \
--replace "read dummy" "echo '(Automatically acknowledged)' #"
./gettextize
sed 's@po/Makefile.in\( .*\)po/Makefile.in@po/Makefile.in \1@' \
-i configure.ac
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Quickly find duplicate files.";
homepage = http://duff.dreda.org/;
license = with licenses; zlib;
longDescription = ''
Duff is a Unix command-line utility for quickly finding duplicates in
a given set of files.
'';
maintainers = with maintainers; [ nckx ];
platforms = with platforms; all;
};
}
@@ -0,0 +1,24 @@
{ lib, stdenv, fetchurl, libgcrypt, pkgconfig, glib, linuxHeaders }:
stdenv.mkDerivation rec {
name = "duperemove-${version}";
version = "0.09.beta2";
src = fetchurl {
url = "https://github.com/markfasheh/duperemove/archive/v${version}.tar.gz";
sha256 = "0rn7lf9rjf4ypgfwms2y7b459rri4rfn809h6wx8xl9nbm5niil4";
};
buildInputs = [ libgcrypt pkgconfig glib linuxHeaders ];
makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
meta = {
description = "A simple tool for finding duplicated extents and submitting them for deduplication";
homepage = https://github.com/markfasheh/duperemove;
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.bluescreen303 ];
platforms = lib.platforms.all;
};
}
+21 -10
View File
@@ -1,19 +1,30 @@
{ stdenv, fetchurl, openssl, fuse, boost, rlog }:
{ stdenv, fetchFromGitHub, autoreconfHook, boost, fuse, openssl, perl
, pkgconfig, rlog }:
stdenv.mkDerivation {
name = "encfs-1.7.4";
let version = "1.8.1"; in
stdenv.mkDerivation rec {
name = "encfs-${version}";
src = fetchurl {
url = "http://encfs.googlecode.com/files/encfs-1.7.4.tgz";
sha256 = "1a3h47f4h0qdc0bf3vic1i8wrdw5nkx22mml4wsvmmrd9zqg0bi8";
src = fetchFromGitHub {
sha256 = "1cxihqwpnqbzy8qz0134199pwfnd7ikr2835p5p1yzqnl203wcdb";
rev = "v${version}";
repo = "encfs";
owner = "vgough";
};
buildInputs = [ boost fuse openssl rlog ];
buildInputs = [ autoreconfHook boost fuse openssl perl pkgconfig rlog ];
configureFlags = "--with-boost-serialization=boost_wserialization --with-boost-filesystem=boost_filesystem";
configureFlags = [
"--with-boost-serialization=boost_wserialization"
"--with-boost-filesystem=boost_filesystem"
];
meta = {
homepage = http://www.arg0.net/encfs;
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://vgough.github.io/encfs;
description = "Provides an encrypted filesystem in user-space via FUSE";
license = with licenses; lgpl2;
maintainers = with maintainers; [ nckx ];
};
}
@@ -0,0 +1,34 @@
{ stdenv, fetchurl, scons }:
let version = "1.1.1"; in
stdenv.mkDerivation rec {
name = "exfat-utils-${version}";
src = fetchurl {
sha256 = "0ck2snhlhp965bb9a4y1g2lpl979sw1yznm79wbavyv174458i66";
url = "https://docs.google.com/uc?export=download&id=0B7CLI-REKbE3UzNtSkRvdHBpdjQ";
name = "${name}.tar.gz";
};
meta = with stdenv.lib; {
description = "Free exFAT file system utilities";
longDescription = ''
Full-featured exFAT file system implementation for GNU/Linux and other
Unix-like systems.
'';
homepage = https://code.google.com/p/exfat;
license = with licenses; gpl2Plus;
platforms = with platforms; linux;
maintainers = with maintainers; [ nckx ];
};
buildInputs = [ scons ];
buildPhase = ''
export CCFLAGS="-std=c99"
mkdir -pv $out/sbin
scons DESTDIR=$out/sbin install
'';
installPhase = ":";
}
@@ -0,0 +1,23 @@
{stdenv, fetchurl, help2man}:
stdenv.mkDerivation rec {
version = "1.3.365";
name = "fatsort-${version}";
src = fetchurl {
url = "mirror://sourceforge/fatsort/${name}.tar.gz";
sha256 = "0g9zn2ns86g7zmy0y8hw1w1zhnd51hy8yl6kflyhxs49n5sc7b3p";
};
patches = [ ./fatsort-Makefiles.patch ];
buildInputs = [ help2man ];
meta = with stdenv.lib; {
homepage = http://fatsort.sourceforge.net/;
description = "Sorts FAT partition table, for devices that don't do sorting of files";
maintainers = [ maintainers.kovirobi ];
license = licenses.gpl2;
inherit version;
};
}
@@ -0,0 +1,31 @@
diff -uNr fatsort-1.3.365-a/Makefile fatsort-1.3.365-b/Makefile
--- fatsort-1.3.365-a/Makefile 2014-04-08 19:19:36.000000000 +0100
+++ fatsort-1.3.365-b/Makefile 2014-12-14 18:31:55.982857720 +0000
@@ -1,4 +1,5 @@
-MANDIR=/usr/local/share/man/man1
+PREFIX=$(out)
+MANDIR=$(PREFIX)/share/man/man1
INSTALL_FLAGS=-m 0755 -p -D
diff -uNr fatsort-1.3.365-a/src/Makefile fatsort-1.3.365-b/src/Makefile
--- fatsort-1.3.365-a/src/Makefile 2014-04-08 19:19:36.000000000 +0100
+++ fatsort-1.3.365-b/src/Makefile 2014-12-14 18:32:08.282870461 +0000
@@ -1,3 +1,5 @@
+PREFIX=$(out)
+
CC=gcc
LD=gcc
@@ -33,9 +35,9 @@
# Mac OS X does not have a "/usr/local/sbin"
ifeq ($(UNAME),Darwin)
-SBINDIR=/usr/local/bin
+SBINDIR=$(PREFIX)/bin
else
-SBINDIR=/usr/local/sbin
+SBINDIR=$(PREFIX)/sbin
endif
OBJ=fatsort.o FAT_fs.o fileio.o endianness.o signal.o entrylist.o errors.o options.o clusterchain.o sort.o misc.o natstrcmp.o stringlist.o
@@ -1,11 +1,12 @@
{ stdenv, fetchurl, pkgconfig, fuse, scons }:
stdenv.mkDerivation rec {
name = "fuse-exfat-1.0.1";
name = "fuse-exfat-1.1.0";
src = fetchurl {
url = "http://exfat.googlecode.com/files/${name}.tar.gz";
sha256 = "0n27hpi45lj9hpi7k8d7npiwyhasf1v832g7ckpknd6lnyhipb0j";
sha256 = "0glmgwrf0nv09am54i6s35ksbvrywrwc51w6q32mv5by8475530r";
url = "https://docs.google.com/uc?export=download&id=0B7CLI-REKbE3VTdaa0EzTkhYdU0";
name = "${name}.tar.gz";
};
buildInputs = [ pkgconfig fuse scons ];
@@ -19,11 +20,12 @@ stdenv.mkDerivation rec {
installPhase = ":";
meta = {
meta = with stdenv.lib; {
homepage = http://code.google.com/p/exfat/;
description = "A FUSE-based filesystem that allows read and write access to exFAT devices";
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.gpl2;
platforms = with platforms; linux;
license = with licenses; gpl2Plus;
maintainers = with maintainers; [ nckx ];
};
}
+4 -1
View File
@@ -8,8 +8,11 @@ stdenv.mkDerivation {
sha256 = "1z7czvsf3ircvz2cw1cf53yifsq29ljxmj15hbgc79l6gbxbnka0";
};
meta = {
meta = with stdenv.lib; {
homepage = http://genext2fs.sourceforge.net/;
description = "A tool to generate ext2 filesystem images without requiring root privileges";
license = licenses.gpl2;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}
+18 -7
View File
@@ -1,30 +1,35 @@
{stdenv, fetchurl, fuse, bison, flex_2_5_35, openssl, python, ncurses, readline,
autoconf, automake, libtool, pkgconfig, zlib, libaio}:
autoconf, automake, libtool, pkgconfig, zlib, libaio, libxml2}:
let
s = # Generated upstream information
rec {
baseName="glusterfs";
version="3.5.2";
version="3.6.2";
name="${baseName}-${version}";
hash="1hvns9islr5jcy0r1cw5890ra246y12pl5nlhl3bvmhglrkv8n7g";
url="http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.2/glusterfs-3.5.2.tar.gz";
sha256="1hvns9islr5jcy0r1cw5890ra246y12pl5nlhl3bvmhglrkv8n7g";
hash="1kz0kmj0apkhkmw1zy72bsx06b1ii6z8y3fq365cy5l3xnjibdaa";
url="http://download.gluster.org/pub/gluster/glusterfs/3.6/3.6.2/glusterfs-3.6.2.tar.gz";
sha256="1kz0kmj0apkhkmw1zy72bsx06b1ii6z8y3fq365cy5l3xnjibdaa";
};
buildInputs = [
fuse bison flex_2_5_35 openssl python ncurses readline
autoconf automake libtool pkgconfig zlib libaio
autoconf automake libtool pkgconfig zlib libaio libxml2
];
in
stdenv.mkDerivation
rec {
inherit (s) name version;
inherit buildInputs;
preConfigure = ''
./autogen.sh
'';
configureFlags = [
''--with-mountutildir="$out/sbin"''
''--with-mountutildir="$out/sbin" --localstatedir=/var''
];
makeFlags = "DESTDIR=$(out)";
preInstall = ''
substituteInPlace api/examples/Makefile --replace '$(DESTDIR)' $out
substituteInPlace geo-replication/syncdaemon/Makefile --replace '$(DESTDIR)' $out
@@ -32,6 +37,12 @@ rec {
substituteInPlace xlators/features/glupy/examples/Makefile --replace '$(DESTDIR)' $out
substituteInPlace xlators/features/glupy/src/Makefile --replace '$(DESTDIR)' $out
'';
postInstall = ''
cp -r $out/$out/* $out
rm -r $out/nix
'';
src = fetchurl {
inherit (s) url sha256;
};
@@ -0,0 +1,29 @@
{ lib, goPackages, pkgconfig, libmtp, fetchFromGitHub }:
with goPackages;
buildGoPackage rec {
rev = "9c2b46050e8ea8574eaec2124867ac7b11e6471d";
name = "go-mtpfs-${lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/hanwen/go-mtpfs";
src = fetchFromGitHub {
inherit rev;
owner = "hanwen";
repo = "go-mtpfs";
sha256 = "0kxi18cb078q4wikfajp3yvp802wzfsfdp431j0dg2jdw8y7gfii";
};
buildInputs = [ go-fuse libmtp usb ];
subPackages = [ "./" ];
dontInstallSrc = true;
meta = with lib; {
description = "A simple FUSE filesystem for mounting Android devices as a MTP device";
homepage = https://github.com/hanwen/go-mtpfs;
maintainers = with maintainers; [ bennofs ];
platforms = platforms.linux;
license = licenses.bsd3;
};
}
+25
View File
@@ -0,0 +1,25 @@
{ stdenv, fetchurl, pkgconfig, usbmuxd, fuse, gnutls, libgcrypt,
libplist, libimobiledevice }:
stdenv.mkDerivation rec {
name = "ifuse-1.1.3";
nativeBuildInputs = [ pkgconfig fuse libplist usbmuxd gnutls libgcrypt libimobiledevice ];
src = fetchurl {
url = "${meta.homepage}/downloads/${name}.tar.bz2";
sha256 = "1p9a4n36jb194cnp6v57cz2bggwbywaz8pbpb95ch83pzdkdx257";
};
meta = {
homepage = http://www.libimobiledevice.org;
license = stdenv.lib.licenses.lgpl21Plus;
description = "A fuse filesystem implementation to access the contents of iOS devices";
longDescription = ''
Mount directories of an iOS device locally using fuse. By default the media
directory is mounted, options allow to also mount the sandbox container of an
app, an app's documents folder or even the root filesystem on jailbroken
devices.'';
inherit (usbmuxd.meta) platforms maintainers;
};
}
-23
View File
@@ -1,23 +0,0 @@
{ stdenv, fetchurl, boost }:
stdenv.mkDerivation {
name = "jfsrec-0-pre-svn-7";
src = fetchurl {
url = mirror://sourceforge/jfsrec/jfsrec-svn-7.tar.gz;
sha256 = "163z6ljr05vw2k5mj4fim2nlg4khjyibrii95370pvn474mg28vg";
};
patches = [ ./jfsrec-gcc-4.3.patch ];
buildInputs = [ boost ];
preConfigure =
''
sed -e '/[#]include [<]config.h[>]/a\#include <string.h>' -i src/unicode_to_utf8.cpp
'';
meta = {
description = "JFS recovery tool";
homepage = http://jfsrec.sourceforge.net/;
};
}
@@ -1,24 +0,0 @@
Taken from Archlinux, although this solves the build in gcc 4.4, not 4.3.
http://aur.archlinux.org/packages/jfsrec-svn/jfsrec-svn/jfsrec-gcc-4.3.patch
diff -uBdr jfsrec/src/device.cpp jfsrec-build/src/device.cpp
--- jfsrec/src/device.cpp 2009-12-01 18:34:03.860437077 +0100
+++ jfsrec-build/src/device.cpp 2009-12-01 18:39:48.297067088 +0100
@@ -20,6 +20,7 @@
//Parts of the code in this file was originally taken from JFS's xpeek (debugfs_jfs)
#include "device.h"
+#include <stdio.h>
#ifdef __linux__
#include <linux/fs.h>
#include <sys/ioctl.h>
diff -uBdr jfsrec/src/unicode_to_utf8.cpp jfsrec-build/src/unicode_to_utf8.cpp
--- jfsrec/src/unicode_to_utf8.cpp 2009-12-01 18:34:03.860437077 +0100
+++ jfsrec-build/src/unicode_to_utf8.cpp 2009-12-01 18:39:43.501626737 +0100
@@ -8,6 +8,7 @@
*/
#include <config.h>
#include "unicode_to_utf8.h"
+#include <string.h>
#define JFS_PATH_MAX 4096
/*
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
meta = {
description = "IBM JFS utilities";
platforms = stdenv.lib.platforms.linux;
};
}
+1 -1
View File
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
buildInputs = [ autoconf automake file fuse libmtp pkgconfig unzip ];
meta = {
description = "A FUSE filesystem for MTP devices like Android phones.";
description = "A FUSE filesystem for MTP devices like Android phones";
homepage = https://github.com/JasonFerrara/jmtpfs;
license = stdenv.lib.licenses.gpl3;
maintainers = [ stdenv.lib.maintainers.coconnor ];
+30
View File
@@ -0,0 +1,30 @@
{ stdenv, fetchurl, flac, fuse, lame, libid3tag, pkgconfig }:
let version = "0.91"; in
stdenv.mkDerivation rec {
name = "mp3fs-${version}";
src = fetchurl {
url = "https://github.com/khenriks/mp3fs/releases/download/v${version}/${name}.tar.gz";
sha256 = "14ngiqg24p3a0s6hp33zjl4i46d8qn4v9id36psycq3n3csmwyx4";
};
buildInputs = [ flac fuse lame libid3tag pkgconfig ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "FUSE file system that transparently transcodes to MP3";
longDescription = ''
A read-only FUSE filesystem which transcodes between audio formats
(currently only FLAC to MP3) on the fly when files are opened and read.
It can let you use a FLAC collection with software and/or hardware
which only understands the MP3 format, or transcode files through
simple drag-and-drop in a file browser.
'';
homepage = http://khenriks.github.com/mp3fs/;
license = with licenses; gpl3Plus;
platforms = with platforms; linux;
maintainers = with maintainers; [ nckx ];
};
}
+3 -5
View File
@@ -1,15 +1,13 @@
{stdenv, fetchgit, libuuid, lzo, zlib, acl}:
let
version = "1.5.0";
in
stdenv.mkDerivation {
stdenv.mkDerivation rec {
name = "mtd-utils-${version}";
version = "1.5.1";
src = fetchgit {
url = git://git.infradead.org/mtd-utils.git;
rev = "refs/tags/v" + version;
sha256 = "cc645c0ec28083431b11f3b38f9f7759378d89e11047a883529f703e1b6c1cce";
sha256 = "1bjx42pwl789ara63c672chvgvmqhkj4y132gajqih6naq71f8g7";
};
patchPhase = ''
+1 -1
View File
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "1d8dc8ysslkis4yl1xab1w9p0pz7a1kg0i6fds4wxsp4fhb6wqhq";
};
buildInputs = [ pkgconfig db libgcrypt avahi libiconv pam openssl ];
buildInputs = [ pkgconfig db libgcrypt avahi pam openssl libiconv ];
configureFlags = [
"--with-bdb=${db}"
+19 -33
View File
@@ -1,52 +1,38 @@
x@{builderDefsPackage
, libuuid
, ...}:
builderDefsPackage
(a :
{ stdenv, fetchurl, libuuid, libselinux }:
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
version = "2.0.19";
url = "http://www.nilfs.org/download/nilfs-utils-${version}.tar.bz2";
hash = "0q9cb6ny0ah1s9rz1rgqka1pxdm3xvg0ywcqyhzcz4yhamfhg100";
version = "2.2.3";
url = "http://nilfs.sourceforge.net/download/nilfs-utils-${version}.tar.bz2";
sha256 = "1sv0p5d9ivik7lhrdynf6brma66llcvn11zhzasws12n4sfk6k6q";
baseName = "nilfs-utils";
name = "${baseName}-${version}";
};
in
rec {
src = a.fetchurl {
stdenv.mkDerivation rec {
src = fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
sha256 = sourceInfo.sha256;
};
inherit (sourceInfo) name version;
inherit buildInputs;
buildInputs = [libuuid libselinux];
/* doConfigure should be removed if not needed */
phaseNames = ["doFixPaths" "doConfigure" "doMakeInstall"];
doFixPaths = a.fullDepEntry (''
sed -e '/sysconfdir=\/etc/d; /sbindir=\/sbin/d' -i configure
sed -e 's@/sbin/@'"$out"'/sbin/@' -i ./sbin/mount/cleaner_ctl.c
'') ["doUnpack" "minInit"];
preConfigure = ''
sed -e '/sysconfdir=\/etc/d; ' -i configure
sed -e "s@sbindir=/sbin@sbindir=$out/sbin@" -i configure
sed -e 's@/sbin/@'"$out"'/sbin/@' -i ./lib/cleaner*.c
'';
meta = {
description = "NILFS utilities";
maintainers = with a.lib.maintainers;
maintainers = with stdenv.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
platforms = with stdenv.lib.platforms;
linux;
downloadPage = "http://nilfs.sourceforge.net/en/download.html";
updateWalker = true;
inherit version;
};
passthru = {
updateInfo = {
downloadPage = "http://www.nilfs.org/download/?C=M;O=D";
};
};
}) x
}
@@ -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;
};
}
@@ -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;
};
}
@@ -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;
};
}
@@ -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;
};
}
@@ -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;
};
}
@@ -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;
};
}
@@ -0,0 +1,56 @@
{ 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!
];
# GNU Parted requires libuuid, which is part of util-linux-ng.
platforms = stdenv.lib.platforms.linux;
};
}
@@ -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;
};
}
@@ -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;
};
}
@@ -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;
};
}
+5 -13
View File
@@ -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;
};
}
+21
View File
@@ -0,0 +1,21 @@
{ stdenv, fetchurl, nettle }:
stdenv.mkDerivation rec {
name = "rdfind-${version}";
version = "1.3.4";
src = fetchurl {
url = "http://rdfind.pauldreik.se/${name}.tar.gz";
sha256 = "0zfc5whh6j5xfbxr6wvznk62qs1mkd3r7jcq72wjgnck43vv7w55";
};
buildInputs = [ nettle ];
meta = {
homepage = http://rdfind.pauldreik.se/;
description = "Removes or hardlinks duplicate files very swiftly";
license = with stdenv.lib.licenses; gpl2;
maintainers = with stdenv.lib.maintainers; [ wmertens ];
platforms = with stdenv.lib.platforms; all;
};
}
+16
View File
@@ -0,0 +1,16 @@
{stdenv, fetchurl, autoconf, automake, pkgconfig, curl, openssl, libxml2, fuse}:
stdenv.mkDerivation {
name = "sshfs-fuse-1.78";
src = fetchurl {
url = https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.78.tar.gz;
sha256 = "1xcp0bqa4a2ynjn5phb1pj70wm322czhqp4qcb27d5jd545b1h1n";
};
preConfigure = "./autogen.sh";
buildInputs = [ autoconf automake pkgconfig curl openssl libxml2 fuse ];
meta = {
description = "Mount an S3 bucket as filesystem through FUSE";
license = "GPLv2";
};
}
+6 -9
View File
@@ -1,5 +1,5 @@
x@{builderDefsPackage
, fuse, samba, pkgconfig
, fuse, samba, pkgconfig, glib
, ...}:
builderDefsPackage
(a :
@@ -12,17 +12,16 @@ let
sourceInfo = rec {
baseName="smbnetfs";
dirBaseName="SMBNetFS";
version="0.5.3a";
version = "0.6.0";
name="${baseName}-${version}";
project="${baseName}";
url="mirror://sourceforge/project/${project}/${baseName}/${dirBaseName}-${version}/${name}.tar.bz2";
hash="0fzlw11y2vkxmjzz3qcypqlvz074v6a3pl4pyffbniqal64qgrsw";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
sha256 = "16sikr81ipn8v1a1zrqgnsy2as3zcaxbzkr0bm5vxy012bq0plkd";
};
inherit (sourceInfo) name version;
@@ -40,11 +39,9 @@ rec {
platforms = with a.lib.platforms;
linux;
license = a.lib.licenses.gpl2;
};
passthru = {
updateInfo = {
downloadPage = "http://sourceforge.net/projects/smbnetfs/files/smbnetfs";
};
downloadPage = "http://sourceforge.net/projects/smbnetfs/files/smbnetfs";
updateWalker = true;
inherit version;
};
}) x
@@ -0,0 +1,6 @@
url http://sourceforge.net/projects/smbnetfs/files/smbnetfs/
version_link '[-][0-9.]+[a-z]*/$'
version_link '[.]tar[.][a-z0-9]+/download$'
SF_redirect
version '.*[-]([0-9.]+[a-z]*)[.]tar[.].*' '\1'
do_overwrite () { do_overwrite_just_version; }
+7 -7
View File
@@ -1,19 +1,18 @@
{ stdenv, fetchurl, zlib, xz }:
{ stdenv, fetchgit, zlib, xz }:
stdenv.mkDerivation rec {
name = "squashfs-4.2";
name = "squashfs-4.4dev";
src = fetchurl {
url = mirror://sourceforge/squashfs/squashfs4.2.tar.gz;
sha256 = "15if08j0pl5hmnz9pwshwrp4fjp0jsm9larjxmjvdnr2m5d1kq6r";
src = fetchgit {
url = https://github.com/plougher/squashfs-tools.git;
sha256 = "059pa2shdysr3zfmwrhq28s12zbi5nyzbpzyaf5lmspgfh1493ks";
rev = "9c1db6d13a51a2e009f0027ef336ce03624eac0d";
};
buildInputs = [ zlib xz ];
preBuild = "cd squashfs-tools";
NIX_LDFLAGS = "-lgcc_s"; # for pthread_cancel
installFlags = "INSTALL_DIR=\${out}/bin";
makeFlags = "XZ_SUPPORT=1";
@@ -21,5 +20,6 @@ stdenv.mkDerivation rec {
meta = {
homepage = http://squashfs.sourceforge.net/;
description = "Tool for creating and unpacking squashfs filesystems";
platforms = stdenv.lib.platforms.linux;
};
}
+59
View File
@@ -0,0 +1,59 @@
{ stdenv, fetchgit, fetchFromGitHub, go, fuse }:
stdenv.mkDerivation rec {
name = "tmsu-${version}";
version = "0.5.2";
go-sqlite3 = fetchgit {
url = "git://github.com/mattn/go-sqlite3";
rev = "c9a0db5d8951646743317f0756da0339fe144dd5";
sha256 = "0j01nr3q89qs9n9zzp8gsr94hl9v0gnis6hmndl9ms554bhlv99p";
};
go-fuse = fetchgit {
url = "git://github.com/hanwen/go-fuse";
rev = "8c85ded140ac1889372a0e22d8d21e3d10a303bd";
sha256 = "1kssndvrbcxvf85x6c6lgn5kpcl7d788z3sxrv1szik4acb6n2sa";
};
src = fetchFromGitHub {
owner = "oniony";
repo = "tmsu";
rev = "v${version}";
sha256 = "090wzhcd4sr3358p1f640psy42r4kd3kkhgnf8196qsh2vcx8arc";
};
buildInputs = [ go fuse ];
preBuild = ''
mkdir -p src/github.com/mattn/go-sqlite3/
ln -s ${go-sqlite3}/* src/github.com/mattn/go-sqlite3
mkdir -p src/github.com/hanwen/go-fuse
ln -s ${go-fuse}/* src/github.com/hanwen/go-fuse
mkdir -p src/github.com/oniony/tmsu
ln -s ${src}/* src/github.com/oniony/tmsu
export GOPATH=$PWD
'';
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/sbin
mkdir -p $out/share/man
mkdir -p $out/share/zsh/site-functions
make install INSTALL_DIR=$out/bin \
MOUNT_INSTALL_DIR=$out/sbin \
MAN_INSTALL_DIR=$out/share/man \
ZSH_COMP_INSTALL_DIR=$out/share/zsh/site-functions
'';
meta = with stdenv.lib; {
homepage = http://www.tmsu.org;
description = "A tool for tagging your files using a virtual filesystem";
maintainers = with maintainers; [ pSub ];
license = licenses.gpl3;
platforms = platforms.all;
};
}
+42 -25
View File
@@ -1,41 +1,58 @@
{ stdenv, fetchurl, libtool, gettext, libuuid }:
{ stdenv, fetchurl, gettext, libuuid, readline }:
stdenv.mkDerivation rec {
name = "xfsprogs-3.1.11";
name = "xfsprogs-3.2.2";
src = fetchurl {
urls = [ "ftp://oss.sgi.com/projects/xfs/cmd_tars/${name}.tar.gz" "ftp://oss.sgi.com/projects/xfs/previous/${name}.tar.gz" ];
sha256 = "1gnnyhy3khl08a24c5y0pyakz6nnwkiw1fc6rb0r1j5mfw0rix5d";
urls = map (dir: "ftp://oss.sgi.com/projects/xfs/${dir}/${name}.tar.gz")
[ "cmd_tars" "previous" ];
sha256 = "1aszsqz7gkqdagads18ybslbfkyxq893rykmsz9lm7f33pi5qlhs";
};
patchPhase = ''
sed -i s,/bin/bash,`type -P bash`, install-sh
prePatch = ''
sed -i s,/bin/bash,`type -P bash`,g install-sh
sed -i s,ldconfig,`type -P ldconfig`,g configure m4/libtool.m4
# Fixes from gentoo 3.2.1 ebuild
sed -i "/^PKG_DOC_DIR/s:@pkg_name@:${name}:" include/builddefs.in
sed -i '1iLLDFLAGS = -static' {estimate,fsr}/Makefile
sed -i "/LLDFLAGS/s:-static::" $(find -name Makefile)
sed -i '/LIB_SUBDIRS/s:libdisk::' Makefile
'';
outputs = ["out" "lib"];
patches = [
# This patch fixes shared libs installation, still not fixed in 3.2.2
./xfsprogs-3.2.2-sharedlibs.patch
];
postInstall = ''
(cd include; make install-dev)
# The make install-dev target is broken when --disable-shared
mkdir -p $lib/lib $lib/include
cp ./libhandle/.libs/libhandle.a \
./libxcmd/.libs/libxcmd.a \
./libxlog/.libs/libxlog.a \
./libxfs/.libs/libxfs.a $lib/lib
mv $out/include/* $lib/include
buildInputs = [ gettext libuuid readline ];
outputs = [ "out" "lib" ];
preConfigure = ''
NIX_LDFLAGS="$(echo $NIX_LDFLAGS | sed "s,$out,$lib,g")"
'';
configureFlags = [
"MAKE=make"
"MSGFMT=msgfmt"
"MSGMERGE=msgmerge"
"XGETTEXT=xgettext"
"--disable-lib64"
"--enable-readline"
"--includedir=$(lib)/include"
"--libdir=$(lib)/lib"
];
installFlags = [ "install-dev" ];
enableParallelBuilding = true;
buildInputs = [ libtool gettext libuuid ];
configureFlags = "MAKE=make MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ZIP=gzip AWK=gawk --disable-shared";
preConfigure = ''
configureFlags="$configureFlags root_sbindir=$out/sbin root_libdir=$lib/lib"
'';
disableStatic = false;
meta = {
meta = with stdenv.lib; {
homepage = http://xfs.org/;
description = "SGI XFS utilities";
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = with maintainers; [ wkennington ];
};
}
@@ -0,0 +1,108 @@
use libtool to do all installing. do not use the manual file install as
that'll copy files directly from the .libs/ subdir which might have rpaths
that we do not want.
--- xfsprogs-3.2.2/include/buildmacros
+++ xfsprogs-3.2.2/include/buildmacros
@@ -70,18 +70,9 @@
# /usr/lib.
ifeq ($(ENABLE_SHARED),yes)
INSTALL_LTLIB_DEV = \
- cd $(TOPDIR)/$(LIBNAME)/.libs; \
- ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
- ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \
- ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \
- ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \
- ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \
- if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \
- "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))"; ]; then \
- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
- ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \
- fi
+ set -e; cd $(TOPDIR)/$(LIBNAME); \
+ $(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
+ env -uDIST_ROOT $(LTINSTALL) $(TOPDIR)/$(LIBNAME)/$(LIBNAME).la $(DIST_ROOT)$(PKG_LIB_DIR)/$(LIBNAME).la
else
INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)
endif
--- xfsprogs-3.2.2/libdisk/Makefile
+++ xfsprogs-3.2.2/libdisk/Makefile
@@ -31,6 +31,7 @@
install: default
install-dev: default
+ $(INSTALL_LTLIB_DEV)
install-qa: install-dev
--- xfsprogs-3.2.2/libhandle/Makefile
+++ xfsprogs-3.2.2/libhandle/Makefile
@@ -20,7 +20,6 @@
include $(BUILDRULES)
install: default
- $(INSTALL_LTLIB)
install-dev: default
$(INSTALL_LTLIB_DEV)
--- xfsprogs-3.2.2/libxcmd/Makefile
+++ xfsprogs-3.2.2/libxcmd/Makefile
@@ -34,6 +34,11 @@
include $(BUILDRULES)
-install install-dev install-qa: default
+install: default
+
+ install-dev: default
+ $(INSTALL_LTLIB_DEV)
+
+install-qa: default
-include .ltdep
--- xfsprogs-3.2.2/libxfs/Makefile
+++ xfsprogs-3.2.2/libxfs/Makefile
@@ -86,6 +86,7 @@
install: default
install-dev: default
+ $(INSTALL_LTLIB_DEV)
install-qa: default
--- xfsprogs-3.2.2/libxlog/Makefile
+++ xfsprogs-3.2.2/libxlog/Makefile
@@ -12,6 +12,8 @@
CFILES = xfs_log_recover.c util.c
+LTLIBS = $(LIBUUID) $(LIBXFS)
+
# don't want to link xfs_repair with a debug libxlog.
DEBUG = -DNDEBUG
@@ -19,6 +21,11 @@
include $(BUILDRULES)
-install install-dev install-qa: default
+install: default
+
+install-dev: default
+ $(INSTALL_LTLIB_DEV)
+
+install-qa: default
-include .ltdep
--- xfsprogs-3.2.2/Makefile
+++ xfsprogs-3.2.2/Makefile
@@ -63,6 +63,8 @@
mkfs: libxfs
quota: libxcmd
repair: libxfs libxlog
+libxlog: libxfs
+libxlog-install-dev: libxfs-install-dev
ifneq ($(ENABLE_BLKID), yes)
mkfs: libdisk
@@ -1,22 +1,23 @@
{ stdenv, fetchurl, writeText, zlib, rpm, cpio, patchelf, which }:
{ stdenv, fetchurl, writeText, zlib, rpmextract, patchelf, which }:
assert stdenv.isLinux;
let
p = if stdenv.is64bit then {
arch = "x86_64";
gcclib = "${stdenv.gcc.gcc}/lib64";
sha256 = "1fmmlvvh97d60n9k08bn4k6ghwr3yhs8sib82025nwpw1sq08vim";
gcclib = "${stdenv.cc.cc}/lib64";
sha256 = "061kl186vllqhl1443d9cwvp4qdhqc42yf3x72a1w0bjvn0i3z1i";
}
else {
arch = "i386";
gcclib = "${stdenv.gcc.gcc}/lib";
sha256 = "3940420bd9d1fe1ecec1a117bfd9d21d545bca59f5e0a4364304ab808c976f7f";
gcclib = "${stdenv.cc.cc}/lib";
sha256 = "1l9mxlin41w83dn70cvdk1n1vn1dll3d8r120jkqn5jfhicrgvv3";
};
in
stdenv.mkDerivation rec {
name = "yandex-disk-0.1.2.481";
name = "yandex-disk-${version}";
version = "0.1.5.870";
src = fetchurl {
url = "http://repo.yandex.ru/yandex-disk/rpm/stable/${p.arch}/${name}-1.fedora.${p.arch}.rpm";
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
mkdir -pv unpacked
cd unpacked
${rpm}/bin/rpm2cpio $src | ${cpio}/bin/cpio -imd
${rpmextract}/bin/rpmextract $src
cp -r -t $out/bin usr/bin/*
cp -r -t $out/share usr/share/*
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
$out/etc/bash_completion.d/yandex-disk-completion.bash
${patchelf}/bin/patchelf \
--set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${zlib}/lib:${p.gcclib}" \
$out/bin/yandex-disk
'';
@@ -0,0 +1,24 @@
{ stdenv, fetchurl, e2fsprogs }:
stdenv.mkDerivation rec {
name = "zerofree-1.0.3";
src = fetchurl {
url = "http://intgat.tigress.co.uk/rmy/uml/zerofree-1.0.3.tgz";
sha256 = "3acfda860be0f0ddcb5c982ff3b4475b1ee8cc35a90ae2a910e93261dbe0ccf6";
};
buildInputs = [ e2fsprogs ];
installPhase = ''
mkdir -p $out/bin
cp zerofree $out/bin
'';
meta = {
homepage = http://intgat.tigress.co.uk/rmy/uml/index.html;
description = "zero free blocks from ext2, ext3 and ext4 file-systems";
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.theuni ];
};
}