From d7b4a0e115bb46309706285e6005a64eae122568 Mon Sep 17 00:00:00 2001 From: aszlig Date: Mon, 14 Jul 2014 14:46:18 +0200 Subject: Move new packages from overrides/ into pkgs/. Those packages aren't actually overrides and thus it doesn't make sense to categorize them into "overrides". Signed-off-by: aszlig --- pkgs/axbo/default.nix | 77 +++++++++++++++++++++++++++++ pkgs/blop/default.nix | 16 ++++++ pkgs/default.nix | 25 ++++++++++ pkgs/fish/default.nix | 43 ++++++++++++++++ pkgs/gajim/0.16-pre.nix | 89 ++++++++++++++++++++++++++++++++++ pkgs/gajim/config.patch | 80 ++++++++++++++++++++++++++++++ pkgs/kpatches/bfqsched.nix | 46 ++++++++++++++++++ pkgs/kpatches/bfqsched.patch | 13 +++++ pkgs/libcmt/default.nix | 25 ++++++++++ pkgs/librxtx-java/default.nix | 29 +++++++++++ pkgs/lockdev/default.nix | 23 +++++++++ pkgs/nbxmpp/default.nix | 17 +++++++ pkgs/pvolctrl/default.nix | 35 +++++++++++++ pkgs/tkabber-urgent-plugin/default.nix | 26 ++++++++++ 14 files changed, 544 insertions(+) create mode 100644 pkgs/axbo/default.nix create mode 100644 pkgs/blop/default.nix create mode 100644 pkgs/default.nix create mode 100644 pkgs/fish/default.nix create mode 100644 pkgs/gajim/0.16-pre.nix create mode 100644 pkgs/gajim/config.patch create mode 100644 pkgs/kpatches/bfqsched.nix create mode 100644 pkgs/kpatches/bfqsched.patch create mode 100644 pkgs/libcmt/default.nix create mode 100644 pkgs/librxtx-java/default.nix create mode 100644 pkgs/lockdev/default.nix create mode 100644 pkgs/nbxmpp/default.nix create mode 100644 pkgs/pvolctrl/default.nix create mode 100644 pkgs/tkabber-urgent-plugin/default.nix (limited to 'pkgs') diff --git a/pkgs/axbo/default.nix b/pkgs/axbo/default.nix new file mode 100644 index 00000000..d83e891d --- /dev/null +++ b/pkgs/axbo/default.nix @@ -0,0 +1,77 @@ +{ stdenv, fetchurl, oraclejre, librxtx_java, makeFontsConf, dejavu_fonts }: + +stdenv.mkDerivation rec { + name = "axbo-research-${version}"; + version = "2.0.18"; + + src = fetchurl { + url = let + urlversion = stdenv.lib.replaceChars ["."] ["_"] version; + in "https://www.dropbox.com/s/shy0yqcyivonobi/aXbo_unix_${urlversion}.sh"; + sha256 = "1zc3bpqfa5pdpl7masigvv98mi5phl04p80fyd2ink33xbmik70z"; + }; + + buildInputs = [ oraclejre librxtx_java ]; + + unpackCmd = let + fontconfigFile = makeFontsConf { + fontDirectories = stdenv.lib.singleton dejavu_fonts; + }; + in '' + datalen="$(sed -n 's/^.*totalDataLength=\([0-9]\+\).*$/\1/p' "$src")" + installer_offset="$(sed -n 's/^ *tail *-c *\([0-9]\+\).*$/\1/p' "$src")" + + installer_dir="$(mktemp -d)" + mkdir -p "$installer_dir" + tail -c "$installer_offset" "$src" | tar xz -C "$installer_dir" + + cat > "$installer_dir/responses" < "$out/bin/axbo-research" < {} +}: + +let + callPackage = pkgs.lib.callPackageWith (pkgs // self); + + self = { + axbo = callPackage ./axbo { }; + blop = callPackage ./blop { }; + fish = callPackage ./fish { }; + gajim = callPackage ./gajim/0.16-pre.nix { + inherit (pkgs.xlibs) libX11; + }; + libCMT = callPackage ./libcmt { }; + librxtx_java = callPackage ./librxtx-java { }; + lockdev = callPackage ./lockdev { }; + nbxmpp = callPackage ./nbxmpp { }; + pvolctrl = callPackage ./pvolctrl { }; + tkabber_urgent_plugin = callPackage ./tkabber-urgent-plugin { }; + + aszligKernelPatches = { + bfqsched = callPackage ./kpatches/bfqsched.nix { }; + }; + }; +in { aszlig = self; } diff --git a/pkgs/fish/default.nix b/pkgs/fish/default.nix new file mode 100644 index 00000000..bc37837b --- /dev/null +++ b/pkgs/fish/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, autoconf, ncurses, groff, pythonPackages }: + +stdenv.mkDerivation rec { + name = "fish-${version}"; + version = "2.0.0"; + + buildInputs = [ autoconf ncurses pythonPackages.python ]; + + pythonPath = [ pythonPackages.curses ]; + + enableParallelBuilding = true; + + preConfigure = '' + autoconf + sed -i 's/\/type -P/g' configure + ''; + + postFixup = '' + gen_inserts() { + for i in $pythonPath; do + echo -n "; sys.path.insert(0, '$(toPythonPath "$i")')" + done + } + + find "$out/share/fish/tools" -type f -perm +0100 -name '*.py' | + xargs sed -i -r \ + -e '1 { /^#!/c #!${pythonPackages.python}/bin/python + }' \ + -e '0,/^(from|import)/{/^(from|import)/a import sys'"$(gen_inserts)"' + }' + + sed -i -e "/Popen/s/'manpath'/'man', '-w'/p" \ + "$out/share/fish/tools/create_manpage_completions.py" + + sed -i -e 's|nroff|${groff}/bin/nroff|g' \ + "$out/share/fish/functions/__fish_print_help.fish" + ''; + + src = fetchurl { + url = "http://fishshell.com/files/${version}/fish.tar.gz"; + sha1 = "2d28553e2ff975f8e5fed6b266f7a940493b6636"; + }; +} diff --git a/pkgs/gajim/0.16-pre.nix b/pkgs/gajim/0.16-pre.nix new file mode 100644 index 00000000..c11e0284 --- /dev/null +++ b/pkgs/gajim/0.16-pre.nix @@ -0,0 +1,89 @@ +{ stdenv, fetchurl, fetchhg, python, intltool, pkgconfig, libX11, gtk +, host, pyopenssl, pythonDBus, pythonPackages, nbxmpp + +, enableJingle ? true, farstream ? null, gst_plugins_bad ? null +, libnice ? null +, enableE2E ? true +, enableRST ? true +, enableSpelling ? true, gtkspell ? null +, enableNotifications ? false +, enableLaTeX ? false, texLive ? null + +# FIXME: Remove after final release. +, autoconf, automake, libtool +}: + +assert enableJingle -> farstream != null && gst_plugins_bad != null + && libnice != null; +assert enableE2E -> pythonPackages.pycrypto != null; +assert enableRST -> pythonPackages.docutils != null; +assert enableSpelling -> gtkspell != null; +assert enableNotifications -> pythonPackages.notify != null; +assert enableLaTeX -> texLive != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "gajim-${version}"; + version = "0.16"; + + src = fetchhg { + url = "http://hg.gajim.org/gajim"; + rev = "f38e5fd4f8e3"; + sha256 = "17wmy355znfkv4fbwa4hzicr17k8if75mh3b14yphszfw3bh3mfw"; + }; + + preConfigure = '' + sed -e 's/\/type -P/' autogen.sh | sh + ''; + + postPatch = '' + sed -i -e '0,/^[^#]/ { + /^[^#]/i export \\\ + PYTHONPATH="'"$PYTHONPATH\''${PYTHONPATH:+:}\$PYTHONPATH"'" \\\ + GST_PLUGIN_PATH="'"\$GST_PLUGIN_PATH''${GST_PLUGIN_PATH:+:}${"" + }$GST_PLUGIN_PATH"'" + }' scripts/gajim.in + + sed -i -e 's/return helpers.is_in_path('"'"'nslookup.*/return True/' \ + src/features_window.py + sed -i -e '/is_in_path\|return \[.host/'"s|'host'|'${host}/bin/host'|" \ + src/common/resolver.py + '' + optionalString enableSpelling '' + sed -i -e 's|=.*find_lib.*|= "${gtkspell}/lib/libgtkspell.so"|' \ + src/gtkspell.py + '' + optionalString enableLaTeX '' + sed -i -e "s|try_run(.'dvipng'|try_run(['${texLive}/bin/dvipng'|" \ + -e "s|try_run(.'latex'|try_run(['${texLive}/bin/latex'|" \ + -e 's/tmpfd.close()/os.close(tmpfd)/' \ + src/common/latex.py + ''; + + buildInputs = [ + python intltool pkgconfig libX11 + pythonPackages.pygobject pythonPackages.pyGtkGlade + pythonPackages.sqlite3 pythonPackages.pyasn1 + pythonPackages.pyxdg nbxmpp + pyopenssl pythonDBus + # FIXME: Remove after final release. + autoconf automake libtool + ] ++ optionals enableJingle [ farstream gst_plugins_bad libnice ] + ++ optional enableE2E pythonPackages.pycrypto + ++ optional enableRST pythonPackages.docutils + ++ optional enableNotifications pythonPackages.notify + ++ optional enableLaTeX texLive; + + postInstall = '' + install -m 644 -t "$out/share/gajim/icons/hicolor" \ + "icons/hicolor/index.theme" + ''; + + enableParallelBuilding = true; + + meta = { + homepage = "http://gajim.org/"; + description = "Jabber client written in PyGTK"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.raskin maintainers.aszlig ]; + }; +} diff --git a/pkgs/gajim/config.patch b/pkgs/gajim/config.patch new file mode 100644 index 00000000..ef40284f --- /dev/null +++ b/pkgs/gajim/config.patch @@ -0,0 +1,80 @@ +diff --git a/src/common/optparser.py b/src/common/optparser.py +index f84b18a..0078317 100644 +--- a/src/common/optparser.py ++++ b/src/common/optparser.py +@@ -30,6 +30,7 @@ import os + import sys + import locale + import re ++from itertools import chain + from time import time + from common import gajim + from common import helpers +@@ -46,19 +47,25 @@ class OptionsParser: + + def read(self): + try: +- fd = open(self.__filename) ++ cfg = nixfd = open("@nix_config@", 'r') + except Exception: + if os.path.exists(self.__filename): + #we talk about a file + print _('Error: cannot open %s for reading') % self.__filename + return False + ++ try: ++ fd = open(self.__filename) ++ cfg = chain(cfg, fd) ++ except Exception: ++ fd = None ++ + new_version = gajim.config.get('version') + new_version = new_version.split('-', 1)[0] + seen = set() + regex = re.compile(r"(?P[^.]+)(?:(?:\.(?P.+))?\.(?P[^.]+))?\s=\s(?P.*)") + +- for line in fd: ++ for line in cfg: + try: + line = line.decode('utf-8') + except UnicodeDecodeError: +@@ -79,10 +86,13 @@ class OptionsParser: + self.update_config(old_version, new_version) + self.old_values = {} # clean mem + +- fd.close() ++ if fd is not None: ++ fd.close() ++ ++ nixfd.close() + return True + +- def write_line(self, fd, opt, parents, value): ++ def write_line(self, (fd, nixcfg), opt, parents, value): + if value is None: + return + value = value[1] +@@ -102,17 +112,21 @@ class OptionsParser: + p = p.encode('utf-8') + s += p + '.' + s += opt +- fd.write(s + ' = ' + value + '\n') ++ line = s + ' = ' + value + '\n' ++ if not nixcfg.startswith(line) and not ('\n' + line) in nixcfg: ++ fd.write(line) + + def write(self): + (base_dir, filename) = os.path.split(self.__filename) + self.__tempfile = os.path.join(base_dir, '.' + filename) ++ + try: ++ nixcfg = open("@nix_config@", 'r').read() + f = open(self.__tempfile, 'w') + except IOError, e: + return str(e) + try: +- gajim.config.foreach(self.write_line, f) ++ gajim.config.foreach(self.write_line, (f, nixcfg)) + except IOError, e: + return str(e) + f.flush() diff --git a/pkgs/kpatches/bfqsched.nix b/pkgs/kpatches/bfqsched.nix new file mode 100644 index 00000000..3ba7310f --- /dev/null +++ b/pkgs/kpatches/bfqsched.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchurl }: + +let + bfqVersion = "v7r5"; + kernelVersion = "3.15"; + version = "${kernelVersion}.0-${bfqVersion}"; + + baseURL = "http://algo.ing.unimo.it/people/paolo/disk_sched/patches"; + + fetchPatch = { name, sha256 }: fetchurl { + url = "${baseURL}/${version}/${name}.patch"; + inherit sha256; + }; + + allPatches = [ + (fetchPatch { + name = "0001-block-cgroups-kconfig-build-bits-for-BFQ-" + + "${bfqVersion}-${kernelVersion}"; + sha256 = "16vrdg9ky7q89sb7gp8as7qslqg1zy1n28cnyshm91qnf49wfh7g"; + }) + (fetchPatch { + name = "0002-block-introduce-the-BFQ-" + + "${bfqVersion}-I-O-sched-for-${kernelVersion}"; + sha256 = "1gf4y5i9prhg9ls2g8apaiygm538khhpp35dahgv59hr3sfwsghs"; + }) + (fetchPatch { + name = "0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-" + + "${bfqVersion}-for-${kernelVersion}.0"; + sha256 = "1q3fn6gl3lhvbqfhaarpv399id9sa32zx6ygqx4x98zmixwrsn9z"; + }) + ./bfqsched.patch + ]; + + patch = stdenv.mkDerivation { + name = "bfqsched-${version}.patch"; + inherit allPatches; + buildCommand = '' + sed -e 's/IS_SUBSYS_ENABLED/IS_ENABLED/' \ + -e '/SUBSYS/s/perf/&_event/' $allPatches > "$out" + ''; + }; + +in { + name = "bfqsched-${version}"; + inherit version patch; +} diff --git a/pkgs/kpatches/bfqsched.patch b/pkgs/kpatches/bfqsched.patch new file mode 100644 index 00000000..ae400155 --- /dev/null +++ b/pkgs/kpatches/bfqsched.patch @@ -0,0 +1,13 @@ +diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c +index 4579c6dd..d1d8e67 100644 +--- a/block/bfq-iosched.c ++++ b/block/bfq-iosched.c +@@ -199,7 +199,7 @@ static inline void bfq_schedule_dispatch(struct bfq_data *bfqd) + { + if (bfqd->queued != 0) { + bfq_log(bfqd, "schedule dispatch"); +- kblockd_schedule_work(bfqd->queue, &bfqd->unplug_work); ++ kblockd_schedule_work(&bfqd->unplug_work); + } + } + diff --git a/pkgs/libcmt/default.nix b/pkgs/libcmt/default.nix new file mode 100644 index 00000000..e255ef25 --- /dev/null +++ b/pkgs/libcmt/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, ladspaH }: + +stdenv.mkDerivation rec { + name = "libcmt-${version}"; + version = "1.16"; + + buildInputs = [ ladspaH ]; + + setSourceRoot = '' + sourceRoot=cmt/src + ''; + + makeFlags = [ + "INSTALL_PLUGINS_DIR=$(out)/lib/ladspa" + ]; + + preInstall = '' + mkdir -p "$out/lib/ladspa" + ''; + + src = fetchurl { + url = "http://www.ladspa.org/download/cmt_src_${version}.tgz"; + sha256 = "0dan83pvljij3972bv214balc26p9fgw40i2d5y0x7lbd5z1saji"; + }; +} diff --git a/pkgs/librxtx-java/default.nix b/pkgs/librxtx-java/default.nix new file mode 100644 index 00000000..861dc43b --- /dev/null +++ b/pkgs/librxtx-java/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, unzip, jdk, lockdev }: + +stdenv.mkDerivation rec { + name = "rxtx-${version}"; + version = "2.2pre2"; + + src = fetchurl { + urls = [ + "http://rxtx.qbang.org/pub/rxtx/${name}.zip" + "ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/${name}.zip" + ]; + sha256 = "00sv9604hkq81mshih0fhqfzn4mf01d6rish6vplsi0gfqz3fc1w"; + }; + + buildInputs = [ unzip jdk lockdev ]; + + NIX_CFLAGS_COMPILE = "-DUTS_RELEASE=\"3.8.0\""; + + configureFlags = [ "--enable-liblock" ]; + + makeFlags = [ + "JHOME=$(out)/lib/java" + "RXTX_PATH=$(out)/lib" + ]; + + preInstall = '' + mkdir -p "$out/lib/java" + ''; +} diff --git a/pkgs/lockdev/default.nix b/pkgs/lockdev/default.nix new file mode 100644 index 00000000..52e78eb5 --- /dev/null +++ b/pkgs/lockdev/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, perl }: + +let + baseurl = "ftp://ftp.debian.org/debian/pool/main/l/lockdev/"; +in stdenv.mkDerivation rec { + name = "lockdev-${version}"; + version = "1.0.3"; + + buildInputs = [ perl ]; + + patches = stdenv.lib.singleton (fetchurl { + url = baseurl + "lockdev_1.0.3-1.5.diff.gz"; + sha256 = "1l3pq1nfb5qx3i91cjaiz3c53368gw6m28a5mv9391n5gmsdmi3r"; + }); + + NIX_CFLAGS_COMPILE = "-fPIC -D_PATH_LOCK=\"/tmp\""; + installFlags = [ "basedir=$(out)" ]; + + src = fetchurl { + url = baseurl + "lockdev_${version}.orig.tar.gz"; + sha256 = "10lzhq6r2dn8y3ki7wlqsa8s3ndkf842bszcjw4dbzf3g9fn7bnc"; + }; +} diff --git a/pkgs/nbxmpp/default.nix b/pkgs/nbxmpp/default.nix new file mode 100644 index 00000000..fa306432 --- /dev/null +++ b/pkgs/nbxmpp/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, buildPythonPackage }: + +buildPythonPackage rec { + name = "nbxmpp-0.4"; + + src = fetchurl { + name = "${name}.tar.gz"; + url = "https://python-nbxmpp.gajim.org/downloads/4"; + sha256 = "073qhz6vgsym4rkgwj801girl8xqhlbr37xn5lg0za9c61vmwayh"; + }; + + meta = { + homepage = "https://python-nbxmpp.gajim.org/"; + description = "Non-blocking Jabber/XMPP module"; + license = stdenv.lib.licenses.gpl3; + }; +} diff --git a/pkgs/pvolctrl/default.nix b/pkgs/pvolctrl/default.nix new file mode 100644 index 00000000..25edb27f --- /dev/null +++ b/pkgs/pvolctrl/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, pkgconfig, pulseaudio }: + +stdenv.mkDerivation rec { + name = "pvolctrl-0.23"; + + unpackPhase = let + baseurl = "https://sites.google.com/site/guenterbartsch/blog/" + + "volumecontrolutilityforpulseaudio/"; + makefile = fetchurl { + url = baseurl + "Makefile"; + sha256 = "0l2ffvb617csk6h29y64v6ywhpcp7la6vvcip1w4nq0yry6jhrqz"; + }; + source = fetchurl { + url = baseurl + "pvolctrl.c"; + sha256 = "0vcd5dlw9l47jpabwmmzdvlkn67fz55dr3sryyh56sl263mibjda"; + }; + in '' + mkdir -p "${name}" + sed -e 's|/usr/bin/||' "${makefile}" > "${name}/Makefile" + sed -e 's/PA_VOLUME_MAX/PA_VOLUME_NORM/ + /avg_vol += (avg_vol \* vol_mod) \/ 100;/ { + s/(avg_vol/((int)PA_VOLUME_NORM/ + } + /if (vol_mod)/i \ + if (info->name == NULL || strncmp(info->name, "combined", 8) != 0) \ + return;' "${source}" > "${name}/pvolctrl.c" + sourceRoot="${name}" + ''; + + installPhase = '' + install -D -T pvolctrl "$out/bin/pvolctrl" + ''; + + buildInputs = [ pkgconfig pulseaudio ]; +} diff --git a/pkgs/tkabber-urgent-plugin/default.nix b/pkgs/tkabber-urgent-plugin/default.nix new file mode 100644 index 00000000..b39e5ea8 --- /dev/null +++ b/pkgs/tkabber-urgent-plugin/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchsvn, xlibs }: + +stdenv.mkDerivation { + name = "tkabber-urgent-plugin"; + + src = fetchsvn { + url = "http://svn.xmpp.ru/repos/tkabber-3rd-party/trunk/plugins/urgent"; + rev = 528; + sha256 = "1qr7i0559ad5y1l5h2gp8aix4nsfgm0bx7jqb030hgbxaw1xnbp5"; + }; + + buildInputs = [ xlibs.libX11 ]; + + patchPhase = '' + sed -i -e 's|exec xwininfo|exec ${xlibs.xwininfo}/bin/xwininfo|' urgent.tcl + ''; + + buildPhase = '' + gcc -lX11 -o urgent urgent.c + ''; + + installPhase = '' + install -vd "$out/share/tkabber-plugins/urgent" + cp -vpt "$out/share/tkabber-plugins/urgent" urgent urgent.tcl + ''; +} -- cgit 1.4.1