From 905684e02b3e5eb1c4e5fe6200a0e89776bbdf4b Mon Sep 17 00:00:00 2001 From: makefu Date: Fri, 14 Sep 2018 15:11:21 +0200 Subject: ma pkgs.esniper: update to 2.35.0 --- makefu/5pkgs/esniper/default.nix | 32 +++++++++++++++++++++++++++++++ makefu/5pkgs/esniper/find-ca-bundle.patch | 26 +++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 makefu/5pkgs/esniper/default.nix create mode 100644 makefu/5pkgs/esniper/find-ca-bundle.patch (limited to 'makefu/5pkgs') diff --git a/makefu/5pkgs/esniper/default.nix b/makefu/5pkgs/esniper/default.nix new file mode 100644 index 000000000..a6aac5748 --- /dev/null +++ b/makefu/5pkgs/esniper/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl , openssl, curl, coreutils, gawk, bash, which }: + +stdenv.mkDerivation rec { + name = "${pname}-2-35-0"; + pname = "esniper"; + version = "2.35.0"; + src = fetchurl { + url = "mirror://sourceforge/${pname}/${name}.tgz"; + sha256 = "04iwjb42lw90c03125bjdpnm0fp78dmwf2j35r7mah0nwcrlagd9"; + }; + + + buildInputs = [ openssl curl ]; + + # Add support for CURL_CA_BUNDLE variable. + # Fix . + patches = [ ./find-ca-bundle.patch ]; + + postInstall = '' + sed <"frontends/snipe" >"$out/bin/snipe" \ + -e "2i export PATH=\"$out/bin:${stdenv.lib.makeBinPath [ coreutils gawk bash which ]}:\$PATH\"" + chmod 555 "$out/bin/snipe" + ''; + + meta = with stdenv.lib; { + description = "Simple, lightweight tool for sniping eBay auctions"; + homepage = http://esniper.sourceforge.net; + license = licenses.gpl2; + maintainers = with maintainers; [ lovek323 peti ]; + platforms = platforms.all; + }; +} diff --git a/makefu/5pkgs/esniper/find-ca-bundle.patch b/makefu/5pkgs/esniper/find-ca-bundle.patch new file mode 100644 index 000000000..e4df272a0 --- /dev/null +++ b/makefu/5pkgs/esniper/find-ca-bundle.patch @@ -0,0 +1,26 @@ +diff -ubr '--exclude=*.o' esniper-2-27-0-orig/http.c esniper-2-27-0-patched/http.c +--- esniper-2-27-0-orig/http.c 2012-02-06 22:04:06.000000000 +0100 ++++ esniper-2-27-0-patched/http.c 2012-07-27 10:54:20.893054646 +0200 +@@ -200,6 +200,9 @@ + int + initCurlStuff(void) + { ++ /* Path to OpenSSL bundle file. */ ++ const char *ssl_capath=NULL; ++ + /* list for custom headers */ + struct curl_slist *slist=NULL; + +@@ -241,6 +244,12 @@ + if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_COOKIEFILE, ""))) + return initCurlStuffFailed(); + ++ /* If the environment variable CURL_CA_BUNDLE is set, pass through its ++ * contents to curl. */ ++ if ((ssl_capath = getenv("CURL_CA_BUNDLE"))) ++ if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_CAINFO, ssl_capath))) ++ return initCurlStuffFailed(); ++ + slist = curl_slist_append(slist, "Accept: text/*"); + slist = curl_slist_append(slist, "Accept-Language: en"); + slist = curl_slist_append(slist, "Accept-Charset: iso-8859-1,*,utf-8"); -- cgit v1.3.1 From 04ab857228a55ae6627df2bf5714d7ab0b12ebe5 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 17 Sep 2018 00:26:44 +0200 Subject: ma pkgs.cozy-audiobooks: fix description --- makefu/5pkgs/cozy-audiobooks/default.nix | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'makefu/5pkgs') diff --git a/makefu/5pkgs/cozy-audiobooks/default.nix b/makefu/5pkgs/cozy-audiobooks/default.nix index f1d655a0a..870fa8ce2 100644 --- a/makefu/5pkgs/cozy-audiobooks/default.nix +++ b/makefu/5pkgs/cozy-audiobooks/default.nix @@ -85,13 +85,9 @@ stdenv.mkDerivation rec { ninja test ''; - #preInstall = '' - # export MESON_INSTALL_PREFIX=$out - #''; - meta = with stdenv.lib; { description = '' - Eval nix code from python. + A modern audio book player for Linux using GTK+ 3 ''; maintainers = [ maintainers.makefu ]; license = licenses.mit; -- cgit v1.3.1 From 1424c4cdb66848005d84b153cc98d2047bbd30b2 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 17 Sep 2018 00:29:03 +0200 Subject: ma pkgs.quodlibet: add private patches --- .../custom/quodlibet/remove-override-warning.patch | 54 ++++++++++++++++++++++ .../custom/quodlibet/single-digit-discnumber.patch | 13 ++++++ makefu/5pkgs/default.nix | 4 ++ 3 files changed, 71 insertions(+) create mode 100644 makefu/5pkgs/custom/quodlibet/remove-override-warning.patch create mode 100644 makefu/5pkgs/custom/quodlibet/single-digit-discnumber.patch (limited to 'makefu/5pkgs') diff --git a/makefu/5pkgs/custom/quodlibet/remove-override-warning.patch b/makefu/5pkgs/custom/quodlibet/remove-override-warning.patch new file mode 100644 index 000000000..0f9d41024 --- /dev/null +++ b/makefu/5pkgs/custom/quodlibet/remove-override-warning.patch @@ -0,0 +1,54 @@ +diff --git a/quodlibet/qltk/edittags.py b/quodlibet/quodlibet/qltk/edittags.py +index 148866ef7..e741b9c3d 100644 +--- a/quodlibet/qltk/edittags.py ++++ b/quodlibet/qltk/edittags.py +@@ -740,13 +740,6 @@ class EditTags(Gtk.VBox): + win.show() + all_done = False + for song in songs: +- if not song.valid(): +- win.hide() +- dialog = OverwriteWarning(self, song) +- resp = dialog.run() +- win.show() +- if resp != OverwriteWarning.RESPONSE_SAVE: +- break + + changed = False + for key, values in iteritems(updated): +diff --git a/quodlibet/qltk/tagsfrompath.py b/quodlibet/quodlibet/qltk/tagsfrompath.py +index fd3f0709c..cb5b44f20 100644 +--- a/quodlibet/qltk/tagsfrompath.py ++++ b/quodlibet/qltk/tagsfrompath.py +@@ -284,13 +284,6 @@ class TagsFromPath(Gtk.VBox): + for entry in ((model and itervalues(model)) or []): + song = entry.song + changed = False +- if not song.valid(): +- win.hide() +- dialog = OverwriteWarning(self, song) +- resp = dialog.run() +- win.show() +- if resp != OverwriteWarning.RESPONSE_SAVE: +- break + + for i, h in enumerate(pattern.headers): + text = entry.get_match(h) +diff --git a/quodlibet/qltk/tracknumbers.py b/quodlibet/quodlibet/qltk/tracknumbers.py +index 1ab4d0b9a..52f087db4 100644 +--- a/quodlibet/qltk/tracknumbers.py ++++ b/quodlibet/qltk/tracknumbers.py +@@ -160,13 +160,6 @@ class TrackNumbers(Gtk.VBox): + if song.get("tracknumber") == track: + win.step() + continue +- if not song.valid(): +- win.hide() +- dialog = OverwriteWarning(self, song) +- resp = dialog.run() +- win.show() +- if resp != OverwriteWarning.RESPONSE_SAVE: +- break + song["tracknumber"] = track + try: + song.write() diff --git a/makefu/5pkgs/custom/quodlibet/single-digit-discnumber.patch b/makefu/5pkgs/custom/quodlibet/single-digit-discnumber.patch new file mode 100644 index 000000000..05778fde7 --- /dev/null +++ b/makefu/5pkgs/custom/quodlibet/single-digit-discnumber.patch @@ -0,0 +1,13 @@ +diff --git a/quodlibet/pattern/_pattern.py b/quodlibet/pattern/_pattern.py +index fc056d07a..8fb559c6e 100644 +--- a/quodlibet/pattern/_pattern.py ++++ b/quodlibet/pattern/_pattern.py +@@ -387,7 +387,7 @@ def _number(key, value): + elif key == "discnumber": + parts = value.split("/") + try: +- return "%02d" % int(parts[0]) ++ return "%d" % int(parts[0]) + except (TypeError, ValueError): + return value + else: diff --git a/makefu/5pkgs/default.nix b/makefu/5pkgs/default.nix index 390c13ffe..d1aec70cb 100644 --- a/makefu/5pkgs/default.nix +++ b/makefu/5pkgs/default.nix @@ -20,6 +20,10 @@ with super.lib; with builtins; let (filterAttrs (_: eq "directory") (readDir path)); in { + quodlibet = super.pkgs.stdenv.lib.overrideDerivation super.quodlibet (old: { + patches = [ ./custom/quodlibet/single-digit-discnumber.patch + ./custom/quodlibet/remove-override-warning.patch ]; + }); alsa-hdspconf = callPackage ./custom/alsa-tools { alsaToolTarget="hdspconf";}; alsa-hdspmixer = callPackage ./custom/alsa-tools { alsaToolTarget="hdspmixer";}; alsa-hdsploader = callPackage ./custom/alsa-tools { alsaToolTarget="hdsploader";}; -- cgit v1.3.1 From 0823d0cbdc2861defaabc232058d96c8862c0b24 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 17 Sep 2018 01:11:57 +0200 Subject: ma: random cleanup --- makefu/1systems/sdev/config.nix | 14 +++++------ makefu/1systems/tsp/config.nix | 47 +++++++++--------------------------- makefu/2configs/mqtt.nix | 1 + makefu/2configs/share/gum-client.nix | 1 + makefu/2configs/stats/server.nix | 17 +++++++------ makefu/2configs/tinc/retiolum.nix | 3 ++- makefu/2configs/tools/core.nix | 4 ++- makefu/2configs/tools/extra-gui.nix | 1 + makefu/2configs/tools/media.nix | 7 ++++-- makefu/5pkgs/bento4/default.nix | 3 +-- makefu/5pkgs/default.nix | 9 ------- 11 files changed, 41 insertions(+), 66 deletions(-) (limited to 'makefu/5pkgs') diff --git a/makefu/1systems/sdev/config.nix b/makefu/1systems/sdev/config.nix index c2cd23d1e..2f289d500 100644 --- a/makefu/1systems/sdev/config.nix +++ b/makefu/1systems/sdev/config.nix @@ -6,13 +6,13 @@ [ # Include the results of the hardware scan. - # - { # until virtualbox-image is fixed - imports = [ - - ]; - boot.loader.grub.device = "/dev/sda"; - } + + #{ # until virtualbox-image is fixed + # imports = [ + # + # ]; + # boot.loader.grub.device = lib.mkForce "/dev/sda"; + #} # diff --git a/makefu/1systems/tsp/config.nix b/makefu/1systems/tsp/config.nix index 680fa2cbc..2921e2bcf 100644 --- a/makefu/1systems/tsp/config.nix +++ b/makefu/1systems/tsp/config.nix @@ -8,57 +8,32 @@ [ # Include the results of the hardware scan. - - + # + # hardware specifics are in here # imports tp-x2x0.nix - # + + + # + + + { + programs.adb.enable = true; + } ]; - # not working in vm krebs.build.host = config.krebs.hosts.tsp; - boot.initrd.luks.devices = [ { name = "luksroot"; device = "/dev/sda2"; allowDiscards=true; }]; - boot.loader.grub.copyKernels = true; + boot.loader.grub.device = "/dev/sda"; networking.firewall.allowedTCPPorts = [ 25 ]; - # acer aspire - networking.wireless.enable = lib.mkDefault true; - - services.xserver.synaptics.enable = true; - hardware.enableAllFirmware = true; nixpkgs.config.allowUnfree = true; - - hardware.cpu.intel.updateMicrocode = true; - - zramSwap.enable = true; - zramSwap.numDevices = 2; - - services.tlp.enable = true; - services.tlp.extraConfig = '' - # BUG: http://linrunner.de/en/tlp/docs/tlp-faq.html#erratic-battery - START_CHARGE_THRESH_BAT0=67 - STOP_CHARGE_THRESH_BAT0=100 - - - CPU_SCALING_GOVERNOR_ON_AC=performance - CPU_SCALING_GOVERNOR_ON_BAT=ondemand - CPU_MIN_PERF_ON_AC=0 - CPU_MAX_PERF_ON_AC=100 - CPU_MIN_PERF_ON_BAT=0 - CPU_MAX_PERF_ON_BAT=30 - ''; - - powerManagement.resumeCommands = '' - ${pkgs.rfkill}/bin/rfkill unblock all - ''; - } diff --git a/makefu/2configs/mqtt.nix b/makefu/2configs/mqtt.nix index 39c9fdfdd..c56521812 100644 --- a/makefu/2configs/mqtt.nix +++ b/makefu/2configs/mqtt.nix @@ -4,6 +4,7 @@ enable = true; host = "0.0.0.0"; users = {}; + # TODO: secure that shit allowAnonymous = true; }; } diff --git a/makefu/2configs/share/gum-client.nix b/makefu/2configs/share/gum-client.nix index be9ab026b..db2adfb1c 100644 --- a/makefu/2configs/share/gum-client.nix +++ b/makefu/2configs/share/gum-client.nix @@ -17,6 +17,7 @@ in { "file_mode=0775" "dir_mode=0775" "uid=9001" + "vers=3" ]; }; diff --git a/makefu/2configs/stats/server.nix b/makefu/2configs/stats/server.nix index 7548c733e..c8e768c99 100644 --- a/makefu/2configs/stats/server.nix +++ b/makefu/2configs/stats/server.nix @@ -2,11 +2,11 @@ with import ; let - irc-server = "rc.r"; + irc-server = "irc.r"; irc-nick = "m-alarm"; collectd-port = 25826; influx-port = 8086; - grafana-port = 3000; # TODO nginx forward + grafana-port = 3000; db = "collectd_db"; logging-interface = config.makefu.server.primary-itf; in { @@ -72,15 +72,16 @@ in { iptables -A INPUT -i retiolum -p udp --dport ${toString collectd-port} -j ACCEPT iptables -A INPUT -i retiolum -p tcp --dport ${toString influx-port} -j ACCEPT iptables -A INPUT -i retiolum -p tcp --dport ${toString grafana-port} -j ACCEPT - iptables -A INPUT -i ${logging-interface} -p udp --dport ${toString collectd-port} -j ACCEPT - iptables -A INPUT -i ${logging-interface} -p tcp --dport ${toString influx-port} -j ACCEPT - iptables -A INPUT -i ${logging-interface} -p tcp --dport ${toString grafana-port} -j ACCEPT + #iptables -A INPUT -i ${logging-interface} -p udp --dport ${toString collectd-port} -j ACCEPT + #iptables -A INPUT -i ${logging-interface} -p tcp --dport ${toString influx-port} -j ACCEPT + #iptables -A INPUT -i ${logging-interface} -p tcp --dport ${toString grafana-port} -j ACCEPT ip6tables -A INPUT -i retiolum -p udp --dport ${toString collectd-port} -j ACCEPT ip6tables -A INPUT -i retiolum -p tcp --dport ${toString influx-port} -j ACCEPT ip6tables -A INPUT -i retiolum -p tcp --dport ${toString grafana-port} -j ACCEPT - ip6tables -A INPUT -i ${logging-interface} -p udp --dport ${toString collectd-port} -j ACCEPT - ip6tables -A INPUT -i ${logging-interface} -p tcp --dport ${toString influx-port} -j ACCEPT - ip6tables -A INPUT -i ${logging-interface} -p tcp --dport ${toString grafana-port} -j ACCEPT + #ip6tables -A INPUT -i ${logging-interface} -p udp --dport ${toString collectd-port} -j ACCEPT + #ip6tables -A INPUT -i ${logging-interface} -p tcp --dport ${toString influx-port} -j ACCEPT + #ip6tables -A INPUT -i ${logging-interface} -p tcp --dport ${toString grafana-port} -j ACCEPT ''; + state = [ "/var/lib/grafana/data/grafana.db" ]; } diff --git a/makefu/2configs/tinc/retiolum.nix b/makefu/2configs/tinc/retiolum.nix index c55b94466..98abb2406 100644 --- a/makefu/2configs/tinc/retiolum.nix +++ b/makefu/2configs/tinc/retiolum.nix @@ -1,7 +1,8 @@ -_: +{ pkgs, ... }: { imports = [ ../binary-cache/lass.nix ]; krebs.tinc.retiolum.enable = true; + environment.systemPackages = [ pkgs.tinc ]; } diff --git a/makefu/2configs/tools/core.nix b/makefu/2configs/tools/core.nix index 604288904..33e896d4c 100644 --- a/makefu/2configs/tools/core.nix +++ b/makefu/2configs/tools/core.nix @@ -3,9 +3,11 @@ # tools i use when actually working with the host. # package version will now be maintained by nix-rebuild # -# essentially `nix-env -q` of the main user { environment.systemPackages = with pkgs; [ + ( pkgs.writeScriptBin "unknow" ''#!/bin/sh +${gnused}/bin/sed -i "''${1}d" ~/.ssh/known_hosts + '') at_spi2_core acpi bc diff --git a/makefu/2configs/tools/extra-gui.nix b/makefu/2configs/tools/extra-gui.nix index 3d26cc574..1c28eeffd 100644 --- a/makefu/2configs/tools/extra-gui.nix +++ b/makefu/2configs/tools/extra-gui.nix @@ -6,6 +6,7 @@ gimp inkscape libreoffice + quodlibet # skype synergy tdesktop diff --git a/makefu/2configs/tools/media.nix b/makefu/2configs/tools/media.nix index 35faaa29f..a61b6c88e 100644 --- a/makefu/2configs/tools/media.nix +++ b/makefu/2configs/tools/media.nix @@ -3,11 +3,14 @@ { users.users.makefu.packages = with pkgs; [ kodi - streamripper - youtube-dl calibre vlc mumble mplayer + quodlibet + + plowshare + streamripper + youtube-dl ]; } diff --git a/makefu/5pkgs/bento4/default.nix b/makefu/5pkgs/bento4/default.nix index 07c64a101..6f5f1deba 100644 --- a/makefu/5pkgs/bento4/default.nix +++ b/makefu/5pkgs/bento4/default.nix @@ -1,5 +1,4 @@ { stdenv, fetchFromGitHub -, pkgconfig , cmake }: stdenv.mkDerivation rec { @@ -13,7 +12,7 @@ stdenv.mkDerivation rec { sha256 = "1cq6vhrq3n3lc1n454slbc66qdyqam2srxgdhfpyfxbq5c4y06nf"; }; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake ]; installPhase = '' mkdir -p $out/{lib,bin} find -iname '*.so' -exec mv --target-directory="$out/lib" {} \; diff --git a/makefu/5pkgs/default.nix b/makefu/5pkgs/default.nix index d1aec70cb..390aabd73 100644 --- a/makefu/5pkgs/default.nix +++ b/makefu/5pkgs/default.nix @@ -33,15 +33,6 @@ in { inkscape = super.pkgs.stdenv.lib.overrideDerivation super.inkscape (old: { patches = [ ./custom/inkscape/dxf_fix.patch ]; }); - pwqgen-ger = callPackage { - wordset-file = super.pkgs.fetchurl { - urls = [ - https://gist.githubusercontent.com/makefu/b56f5554c9ef03fe6e09878962e6fd8d/raw/1f147efec51325bc9f80c823bad8381d5b7252f6/wordset_4k.c - https://archive.org/download/nixos-stockholm-tarballs/pviar5j1gxiqcf3l34b4n2pil06xc8zf-wordset_4k.c - ]; - sha256 = "18ddzyh11bywrhzdkzvrl7nvgp5gdb4k1s0zxbz2bkhd14vi72bb"; - }; - }; } // (mapAttrs (_: flip callPackage {}) -- cgit v1.3.1 From 7a372f24920354a25773dc1713d65c1387e45500 Mon Sep 17 00:00:00 2001 From: makefu Date: Fri, 21 Sep 2018 15:30:25 +0200 Subject: ma pkgs.pavumeter: init not worth it --- makefu/5pkgs/pavumeter/default.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 makefu/5pkgs/pavumeter/default.nix (limited to 'makefu/5pkgs') diff --git a/makefu/5pkgs/pavumeter/default.nix b/makefu/5pkgs/pavumeter/default.nix new file mode 100644 index 000000000..b1822530a --- /dev/null +++ b/makefu/5pkgs/pavumeter/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, libusb, libtool, autoconf, pkgconfig, git, +gettext, automake, libxml2 +, autoreconfHook +, lynx +, gtkmm2 +, libpulseaudio +, gnome2 +, libsigcxx +}: +stdenv.mkDerivation rec { + pname = "pavumeter"; + name = "${pname}-${version}"; + version = "0.9.3"; + + src = fetchurl { + url = "http://0pointer.de/lennart/projects/${pname}/${name}.tar.gz"; + sha256 = "0yq67w8j8l1xsv8pp37bylax22npd6msbavr6pb25yvyq825i3gx"; + }; + + buildInputs = [ gtkmm2 libpulseaudio gnome2.gnome_icon_theme ]; + nativeBuildInputs = [ pkgconfig autoreconfHook lynx ]; + + meta = { + description = "PulseAudio volumene meter"; + homepage = http://0pointer.de/lennart/projects/pavumeter; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ makefu ]; + }; +} -- cgit v1.3.1 From 806dd39bd14119f17a954540195e4aa835527e21 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Sep 2018 20:17:36 +0200 Subject: ma pkgs.airdcpp-webclient: WIP --- makefu/5pkgs/airdcpp-webclient/default.nix | 63 ++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 makefu/5pkgs/airdcpp-webclient/default.nix (limited to 'makefu/5pkgs') diff --git a/makefu/5pkgs/airdcpp-webclient/default.nix b/makefu/5pkgs/airdcpp-webclient/default.nix new file mode 100644 index 000000000..5e13b2347 --- /dev/null +++ b/makefu/5pkgs/airdcpp-webclient/default.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchFromGitHub +, cmake +, nodejs +, git +, miniupnpc +, boost +, leveldb +, openssl +, geoip +, libmaxminddb +, websocketpp +, libnatpmp +, tbb +, bzip2 +, zlib +, pkgconfig +, python +}: +stdenv.mkDerivation rec { + name = "airdcpp-webclient-${version}"; + version = "2.3.0"; + + src = fetchFromGitHub { + owner = "airdcpp-web"; + repo = "airdcpp-webclient"; + rev = version; + sha256 = "1k07ggfw2vq1cs7smykkgkqd8wayamlw1g1mnijjvza4f3zbvihp"; + }; + + nativeBuildInputs = [ cmake git nodejs pkgconfig python ]; + preConfigure ='' + echo pkgconfig: $PKG_CONFIG_PATH + # sed -i s/find_package/pkg_search_module/ CMakeLists.txt + ''; + buildInput = [ miniupnpc boost leveldb openssl geoip websocketpp libmaxminddb libnatpmp tbb bzip2 zlib]; + cmakeFlags = [ + "-DLIBMAXMINDDB_ROOT_DIR=${libmaxminddb}" + "-DBZIP2_INCLUDE_DIR=${bzip2}/include" + "-DBZIP2_LIBRARIES=${bzip2}/lib" + "-DZLIB_INCLUDE_DIR=${zlib}/include" + "-DZLIB_LIBRARY=${zlib}/lib" + "-DOPENSSL_CRYPTO_LIBRARY=${openssl}/lib" + "-DOPENSSL_INCLUDE_DIR=${openssl}/include" + "-DMINIUPNP_LIBRARY=${miniupnpc}/lib" + "-DMINIUPNP_INCLUDE_DIR=${miniupnpc}/include" + "-DLevelDB_LIBRARY=${leveldb}/lib" + "-DLevelDB_INCLUDE_DIR=${leveldb}/include" + "-DLibNatpmp_INCLUDE_DIR=${libnatpmp}/include" + "-DLibNatpmp_LIBRARY=${libnatpmp}/lib" + "-DBoost_INCLUDE_DIR=${boost.dev}/include" + "-DBoost_LIBRARY=${boost}/lib" + "-DWebsocketpp_INCLUDE_DIR=${websocketpp}/include" + "-DWebsocketpp_LIBRARY=${websocketpp}/lib" + ]; + + meta = with stdenv.lib; { + description = "dcpp client"; + homepage = http://fixme; + license = licenses.gpl3; + maintainers = with maintainers; [ makefu ]; + platforms = with platforms; linux; + }; +} -- cgit v1.3.1 From c7c6b7e504beed811e3d83bda0016412372be670 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Sep 2018 22:32:37 +0200 Subject: ma airdcpp module: init --- makefu/3modules/airdcpp.nix | 118 +++++++++++++++++++++++++++++ makefu/5pkgs/airdcpp-webclient/default.nix | 60 +++------------ 2 files changed, 130 insertions(+), 48 deletions(-) create mode 100644 makefu/3modules/airdcpp.nix (limited to 'makefu/5pkgs') diff --git a/makefu/3modules/airdcpp.nix b/makefu/3modules/airdcpp.nix new file mode 100644 index 000000000..aeb77785e --- /dev/null +++ b/makefu/3modules/airdcpp.nix @@ -0,0 +1,118 @@ +{ config, lib, pkgs, ... }: +with import ; #genid +let + cfg = config.makefu.airdcpp; + + out = { + options.makefu.airdcpp = api; + config = lib.mkIf cfg.enable imp; + }; + + api = with types;{ + enable = mkEnableOption "airdcpp"; + + package = mkOption { + type = package; + default = pkgs.airdcpp-webclient; + }; + + user = mkOption { + description = '' + user which will run udpt. if kept default a new user will be created + ''; + type = str; + default = "airdcpp"; + }; + + stateDir = mkOption { + description = '' + directory for storing state (pid,config) + ''; + type = str; + default = "/var/lib/airdcpp"; + }; + web = mkOption { + type = submodule ( { config, ... }: { + options = { + port = mkOption { + description = ''web-ui port + + NOTE: once the initial config had been written to the state directory it will not be replaced + ''; + type = int; + default = 5600; + }; + # TODO: tlsPort + # TODO: at least one user + users = mkOption { + type = attrsOf (submodule ( { config, ... }: { + options = { + password = mkOption { + description = "password of user"; + type = str; + }; + permissions = mkOption { + description = "user permissions"; + type = str; + default = "admin"; + }; + }; + })); + }; + }; + }); + }; + initialConfigFile = mkOption { + description = '' + path inital configuration if none exists + ''; + type = nullOr path; + default = null; + }; + }; + + imp = let + genUsers = users: concatMapStringsSep "\n" (user: '''' ) + (mapAttrsToList (name: val: val // { inherit name; }) users); + configFile = if (cfg.initialConfigFile == null) then builtins.trace "warning: airdcpp passwords are stored in plain text" pkgs.writeText "initial-config" '' + + + + + + + ${genUsers cfg.web.users} + + + '' else cfg.initialConfigFile; + in { + systemd.services.airdcpp = { + description = "airdcpp webui"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + restartIfChanged = true; + serviceConfig = { + Type = "simple"; + ExecStartPre = pkgs.writeDash "prepare-env" '' + d=${cfg.stateDir}/WebServer.xml + test -e $d || install -m700 -o${cfg.user} ${configFile} $d + ''; + PermissionsStartOnly = true; + ExecStart = "${cfg.package}/bin/airdcppd -c=${cfg.stateDir} -p=${cfg.stateDir}/airdcpp.pid"; + PrivateTmp = true; + WorkingDirectory = cfg.stateDir; + User = "${cfg.user}"; + }; + }; + users = lib.mkIf (cfg.user == "airdcpp") { + users.airdcpp = { + uid = genid "airdcpp"; + home = cfg.stateDir; + createHome = true; + }; + groups.airdcpp.gid = genid "airdcpp"; + }; + }; +in +out + diff --git a/makefu/5pkgs/airdcpp-webclient/default.nix b/makefu/5pkgs/airdcpp-webclient/default.nix index 5e13b2347..361a7da65 100644 --- a/makefu/5pkgs/airdcpp-webclient/default.nix +++ b/makefu/5pkgs/airdcpp-webclient/default.nix @@ -1,60 +1,24 @@ -{ stdenv, fetchFromGitHub -, cmake -, nodejs -, git -, miniupnpc -, boost -, leveldb -, openssl -, geoip -, libmaxminddb -, websocketpp -, libnatpmp -, tbb -, bzip2 -, zlib -, pkgconfig -, python +{ stdenv, fetchurl }: stdenv.mkDerivation rec { name = "airdcpp-webclient-${version}"; version = "2.3.0"; - - src = fetchFromGitHub { - owner = "airdcpp-web"; - repo = "airdcpp-webclient"; - rev = version; - sha256 = "1k07ggfw2vq1cs7smykkgkqd8wayamlw1g1mnijjvza4f3zbvihp"; + + src = fetchurl { + url = http://web-builds.airdcpp.net/stable/airdcpp_2.3.0_webui-2.3.0_64-bit_portable.tar.gz; + sha256 = "0yvcl0nc70fghc7vfsgvbpryi5q97arld8adql4way4qa0mdnyv1"; }; - nativeBuildInputs = [ cmake git nodejs pkgconfig python ]; - preConfigure ='' - echo pkgconfig: $PKG_CONFIG_PATH - # sed -i s/find_package/pkg_search_module/ CMakeLists.txt + phases = [ "unpackPhase" "installPhase" ]; + installPhase = '' + mkdir -p $out/{share,bin} + cp -r * $out/share + ln -s $out/share/airdcppd $out/bin/ ''; - buildInput = [ miniupnpc boost leveldb openssl geoip websocketpp libmaxminddb libnatpmp tbb bzip2 zlib]; - cmakeFlags = [ - "-DLIBMAXMINDDB_ROOT_DIR=${libmaxminddb}" - "-DBZIP2_INCLUDE_DIR=${bzip2}/include" - "-DBZIP2_LIBRARIES=${bzip2}/lib" - "-DZLIB_INCLUDE_DIR=${zlib}/include" - "-DZLIB_LIBRARY=${zlib}/lib" - "-DOPENSSL_CRYPTO_LIBRARY=${openssl}/lib" - "-DOPENSSL_INCLUDE_DIR=${openssl}/include" - "-DMINIUPNP_LIBRARY=${miniupnpc}/lib" - "-DMINIUPNP_INCLUDE_DIR=${miniupnpc}/include" - "-DLevelDB_LIBRARY=${leveldb}/lib" - "-DLevelDB_INCLUDE_DIR=${leveldb}/include" - "-DLibNatpmp_INCLUDE_DIR=${libnatpmp}/include" - "-DLibNatpmp_LIBRARY=${libnatpmp}/lib" - "-DBoost_INCLUDE_DIR=${boost.dev}/include" - "-DBoost_LIBRARY=${boost}/lib" - "-DWebsocketpp_INCLUDE_DIR=${websocketpp}/include" - "-DWebsocketpp_LIBRARY=${websocketpp}/lib" - ]; meta = with stdenv.lib; { - description = "dcpp client"; + # to start it: airdcpp -p= -c= --configure + description = "dcpp client (statically precompiled)"; homepage = http://fixme; license = licenses.gpl3; maintainers = with maintainers; [ makefu ]; -- cgit v1.3.1