X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=default.nix;h=38d7e0beb9fb3cf740db6876216bb004c3173336;hb=8c4f6e37479002818bcfe7381cd4e4b47fd2d1fb;hp=c8a3c939e4e739a6a8e217eb2e756d4f839833f1;hpb=e229e6f2a411b9c03ee80bfb53b6b77e8f2ccb0b;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/default.nix b/default.nix index c8a3c93..38d7e0b 100644 --- a/default.nix +++ b/default.nix @@ -1,27 +1,7 @@ -with import ./libs.nix; with import {}; +with import ./libs.nix { nixpkgs = import {}; }; let mypkgs = {}; - postHook = '' - header() { - echo -ne "\033[1;36m" - echo -n "$1" - echo -e "\033[0m" - } - - echoCmd() { - printf "\033[1;34m%s:\033[0m" "$1" - shift - printf ' %q' "$@" - echo - } - ''; - - mypkgs.ledger = (ledger.override { boost = boost166; }).overrideAttrs (_old: - fetchedGithub ./fetched/ledger.json // { - postInstall = ""; - } - ); mypkgs.taskwarrior = taskwarrior.overrideAttrs (old: rec { postInstall = ''${old.postInstall} @@ -40,11 +20,18 @@ let } ); - mypkgs.weboob = pythonPackages.weboob.overrideAttrs (old: rec { - postInstall = ''${old.postInstall or ""} - mkdir -p $out/share/bash-completion/completions/ - cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob - ''; + mypkgs.weboob = (pythonPackages.weboob.overridePythonAttrs { + setupPyBuildFlags = [ "--no-qt" "--xdg" ]; + }).overrideAttrs (old: rec { + version = "1.5"; + src = fetchurl { + url = "https://git.weboob.org/weboob/weboob/-/archive/${version}/${old.pname}-${version}.tar.gz"; + sha256 = "0l6q5nm5g0zn6gmf809059kddrbds27wgygxsfkqja9blks5vq7z"; + }; + postInstall = ''${old.postInstall or ""} + mkdir -p $out/share/bash-completion/completions/ + cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob + ''; }); mypkgs.slrn = slrn.overrideAttrs (old: rec { @@ -75,97 +62,28 @@ let configureFlags = old.configureFlags ++ [ "--enable-plugins" ]; }); - mypkgs.weechat = nixpkgs_unstable.weechat.override { + mypkgs.weechat = weechat.override { configure = { availablePlugins, ... }: { plugins = with availablePlugins; [ + # Make sure websocket_client is not 0.55.0, it provokes + # regular crashes (python.withPackages (ps: with ps; [websocket_client emoji])) perl + ruby ]; }; }; - buildPerlPackage = perlPackages.buildPerlPackage; - mypkgs.note = buildPerlPackage rec { - name = "note-1.3.26"; - src = fetchurl { - url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz"; - sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq"; - }; - outputs = ["out" "man"]; - propagatedBuildInputs = [ perlPackages.YAML ]; - meta = with stdenv.lib; { - description = "A perl script for maintaining notes"; - homepage = http://www.daemon.de/NOTE; - license = licenses.gpl3; - maintainers = with maintainers; [ { name = "T.v.Dein"; email = "tlinden@cpan.org"; } ]; - platforms = platforms.unix; - }; - }; - - mypkgs.terminal_velocity = with python2Packages; buildPythonApplication rec { - pname = "terminal-velocity-git"; - version = "0.2.0"; - - patches = [ - # FIXME: update this patch when version changes - ./patches/terminal_velocity_fix_build.patch - ./patches/terminal_velocity_sort_found_notes.patch - ]; - - propagatedBuildInputs = [ chardet urwid nixpkgs_unstable.python2Packages.sh pyyaml ]; - buildInputs = [ m2r restructuredtext_lint pygments ]; - - src = fetchPypi { - inherit pname version; - sha256 = "13yrkcmvh5h5fwnai61sbmqkrjyisz08n62pq0ada2lyyqf7g6b9"; - }; - }; - - mypkgs.mtop = buildPerlPackage rec { - name = "mtop-${version}"; - version = "0.6.6"; - src = fetchurl { - url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz"; - sha256 = "0x0x5300b1j9i0xxk8rsrki0pspyzj2vylhzv8qg3l6j26aw0zrf"; - }; - outputs = ["out"]; - buildInputs = [ perlPackages.DBI perlPackages.DBDmysql perlPackages.Curses ]; - - postInstall = '' - cd "$out" - preConfigure || true - ''; - meta = with stdenv.lib; { - description = "MySQL top (monitor and examine slow queries)"; - homepage = http://mtop.sourceforge.net/; - license = licenses.gpl3; - maintainers = with maintainers; [ { name = "Marc Prewitt"; email = "mprewitt@chelsea.net"; } ]; - platforms = platforms.unix; - }; - }; - - mypkgs.tiv = buildPerlPackage rec { - name = "tiv-${version}"; - version = "2015"; - src = fetchurl { - url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz"; - sha256 = "1vq073v7z7vmcd57lhs4rf4jasji69cpjgkz4dykp94a77p1qq90"; - }; - outputs = ["out"]; - buildInputs = [ perlPackages.PerlMagick ]; - perlPreHookScript = ./hooks/tiv_builder.sh; - perlPreHook = '' - source ${perlPreHookScript} - ''; - installPhase = '' - install -Dm755 tiv "$out/bin/tiv" - ''; - }; + mypkgs.mtop = callPackage ./pkgs/mtop {}; + mypkgs.note = callPackage ./pkgs/note {}; + mypkgs.terminal-velocity = callPackage ./pkgs/terminal-velocity {}; + mypkgs.tiv = callPackage ./pkgs/tiv {}; mypkgs.cnagios = stdenv.mkDerivation (fetchedGithub ./fetched/cnagios.json // rec { configureFlags = [ "--with-etc-dir=/etc/cnagios" "--with-var-dir=/var/lib/naemon" + "--with-status-file=/var/lib/naemon/status.dat" "--with-nagios-data=4" ]; @@ -315,6 +233,7 @@ let done sed -i "$out/bin/muttprint" -e "s|^#\!\(.*[ /]perl.*\)$|#\!\1$perlFlags|" + sed -i "$out/bin/muttprint" -e "s|ENV{HOME}/.muttprintrc|ENV{XDG_CONFIG_HOME}/muttprint/muttprintrc|" wrapProgram $out/bin/muttprint \ --prefix PATH : ${lib.makeBinPath [ psutils dialog @@ -324,6 +243,345 @@ let (with perlPackages; [ TimeDate FileWhich TextIconv ]); }; + mypkgs.yarn2nix = yarn2nixPackage.yarn2nix; + + mypkgs.cardano = let + daedalusOrig = (import (fetchedGithub ./fetched/daedalus.json).src {}).daedalus; + cfg = stdenv.mkDerivation rec { + name = "launcher-config-custom"; + src = daedalusOrig.cfg; + installPhase = '' + cp -a $src $out + chmod -R u+w $out + cd $out/etc + sed -e "/^walletPath/d" -e "/^walletArgs/d" launcher-config.yaml > launcher-config-server-only.yaml + ''; + }; + daedalus = stdenv.mkDerivation rec { + name = "daedalus-custom"; + src = daedalusOrig; + installPhase = '' + cp -a $src $out + chmod -R u+w $out + cd $out/bin + sed -i -e "s@${builtins.storeDir}/[0-9a-z]*-daedalus-config@${cfg}/etc@" daedalus + sed -e "s@${cfg}/etc/launcher-config.yaml@${cfg}/etc/launcher-config-server-only.yaml@" daedalus > daedalus-server-only + chmod a+x daedalus-server-only + ''; + }; + in + daedalus; + + mypkgs.sia = stdenv.mkDerivation rec { + version = "v1.3.7"; + name = "Sia-${version}"; + src = fetchzip { + url = "https://sia.tech/static/releases/${name}-linux-amd64.zip"; + sha256 = "1ljzwrlkx4hc16r8siiyakn039afipp95dyr83c8yfq3r3bfasqd"; + }; + phases = "installPhase"; + installPhase = '' + mkdir -p $out/share/doc + mkdir -p $out/bin + mkdir -p $out/share/sia + cp -a $src/doc $out/share/doc/sia + cp -a $src/LICENSE $src/README.md $out/share/sia + cp -a $src/{siac,siad} $out/bin + cp -a $src/{siac,siad}.sig $out/share/sia/ + ''; + }; + + mypkgs.iota-cli-app = let + nodeEnv = pkgs.callPackage "${nodePackages.node2nix}/lib/node_modules/node2nix/nix/node-env.nix" { + nodejs = nodejs-8_x; + }; + # built using node2nix -8 -l package-lock.json + # and changing "./." to "src" + packageEnv = import ./fetched/iota-cli-app-node-packages.nix { + src = stdenv.mkDerivation (fetchedGithub ./fetched/iota-cli-app.json // { + phases = "installPhase"; + installPhase = '' + cp -a $src $out + chmod u+w -R $out + cd $out + sed -i -e "s@host: 'http://localhost',@host: 'https://iri.trytes.eu',@" index.js + sed -i -e "s@port: 14265@port: 443@" index.js + ''; + }); + inherit (pkgs) fetchurl fetchgit; + inherit nodeEnv; + }; + in + packageEnv.package; + + mypkgs.duply = stdenv.mkDerivation rec { + name = "duply-${version}"; + version = "2.1"; + + src = fetchurl { + url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/2.1.x/duply_${version}.tgz"; + sha256 = "0i5j7h7h6ssrwhll0sfhymisshg54kx7j45zcqffzjxa0ylvzlm8"; + }; + + buildInputs = [ txt2man makeWrapper ]; + + postPatch = "patchShebangs ."; + + installPhase = '' + mkdir -p "$out/bin" + mkdir -p "$out/share/man/man1" + install -vD duply "$out/bin" + sed -i $out/bin/duply -e "1a \ + export PATH='${stdenv.lib.makeBinPath [ coreutils python2 duplicity gawk gnupg1 bash gnugrep txt2man which ]}' + " -e "1a \ + export DUPL_PYTHON_BIN=$(basename ${duplicity}/lib/python*) + " + "$out/bin/duply" txt2man > "$out/share/man/man1/duply.1" + ''; + + meta = with stdenv.lib; { + description = "Shell front end for the duplicity backup tool"; + longDescription = '' + Duply is a shell front end for the duplicity backup tool + http://duplicity.nongnu.org/. It greatly simplifies it's usage by + implementing backup job profiles, batch commands and more. Who says + secure backups on non-trusted spaces are no child's play? + ''; + homepage = http://duply.net/; + license = licenses.gpl2; + maintainers = [ maintainers.bjornfor ]; + platforms = stdenv.lib.platforms.unix; + }; + }; + + mypkgs.boinctui = stdenv.mkDerivation rec { + name = "boinctui-${version}"; + version = "2.5.0"; + src = fetchurl { + url = "http://sourceforge.net/projects/boinctui/files/boinctui_${version}.tar.gz"; + sha256 = "16zxp8r4z6pllacdacg681y56cg2phnn3pm5gwszbsi93cix2g8p"; + }; + + configureFlags = [ "--without-gnutls" ]; + preConfigure = '' + autoconf + ''; + + preBuild = '' + sed -i -e 's/"HOME"/"XDG_CONFIG_HOME"/' src/cfg.cpp + sed -i -e 's@\.boinctui\.cfg@boinctui/boinctui.cfg@' src/mainprog.cpp + ''; + buildInputs = [ expat openssl autoconf ncurses ]; + }; + + mypkgs.sc-im = sc-im.overrideAttrs (old: { + buildPhase = '' + cd src + sed -i Makefile -e 's@\...name.info@.local/state/$(name)info@' + cd .. + '' + old.buildPhase; + }); + + mypkgs.notmuch-vim = stdenv.mkDerivation rec { + name = "notmuch-vim-${version}"; + version = notmuch.version; + outputs = [ "out" ]; + src = notmuch.src; + phases = [ "unpackPhase" "installPhase" ]; + installPhase = '' + make -C vim DESTDIR=$out prefix="/share/vim/vimfiles" install + ''; + }; + + mypkgs.notmuch-python2 = stdenv.mkDerivation rec { + name = "notmuch-python2-${version}"; + version = notmuch.version; + outputs = [ "out" ]; + buildInputs = [ python2Packages.sphinx python2Packages.python ]; + src = notmuch.src; + phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ]; + buildPhase = '' + cd bindings/python + python setup.py build + ''; + installPhase = '' + python setup.py install --prefix=$out --optimize=1 + ''; + }; + + mypkgs.notmuch-python3 = stdenv.mkDerivation rec { + name = "notmuch-python3-${version}"; + version = notmuch.version; + outputs = [ "out" ]; + buildInputs = [ python3Packages.sphinx python3Packages.python ]; + src = notmuch.src; + phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ]; + buildPhase = '' + cd bindings/python + python setup.py build + ''; + installPhase = '' + python setup.py install --prefix=$out --optimize=1 + ''; + }; + + mypkgs.telegramircd = with python3Packages; let + telethon = buildPythonPackage rec { + pname = "Telethon-sync"; + version = "1.1.1"; + + src = fetchPypi { + inherit pname version; + sha256 = + "01z8fzqn0qs5pxhvzq891r3mwffq1ga3f8xvm7qdn6kvmxjni9fy"; + }; + + propagatedBuildInputs = with self; [ + rsa pyaes async_generator + ]; + doCheck = false; + + meta = with lib; { + homepage = https://github.com/LonamiWebs/Telethon; + description = "Full-featured Telegram client library for Python 3"; + license = licenses.mit; + }; + }; + in + buildPythonApplication rec { + format = "other"; + pname = "telegramircd"; + version = "master"; + propagatedBuildInputs = [ telethon aiohttp ConfigArgParse openssl ]; + src = (fetchedGithub ./fetched/telegramircd.json).src; + LD_LIBRARY_PATH = "${openssl.out}/lib"; + installPhase = '' + install -D $src/telegramircd.py $out/bin/telegramircd + wrapProgram "$out/bin/telegramircd" \ + --prefix LD_LIBRARY_PATH : "${openssl.out}/lib" + install -Dm644 "$src/config" -t "$out/etc/telegramircd/" + ''; + }; + + mypkgs.lesspipe = lesspipe.overrideAttrs(old: { + configureFlags = (old.configureFlags or []) ++ [ "--yes" ]; + }); + + mypkgs.genius = stdenv.mkDerivation rec { + name = "genius-${version}"; + version = "1.0.24"; + src = fetchurl { + url = "https://download.gnome.org/sources/genius/1.0/${name}.tar.xz"; + sha256 = "772f95f6ae4716d39bb180cd50e8b6b9b074107bee0cd083b825e1e6e55916b6"; + }; + buildInputs = [ + mpfr glib hicolor-icon-theme gtk2 intltool gnome-doc-utils python3 gnome2.gtksourceview + autoconf automake libtool ncurses readline pkg-config + ]; + preConfigure = '' + autoreconf -fi + ''; + preBuild = '' + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + ''; + }; + + mypkgs.unicode = let + version = "12.0"; + version-full = "${version}.0"; + files = { + emoji-data = fetchurl { + url = "http://www.unicode.org/Public/emoji/${version}/emoji-data.txt"; + sha256 = "03sf7h1d6kb9m5s02lif88jsi5kjszpkfvcymaqxj8ds70ar9pgv"; + }; + emoji-sequences = fetchurl { + url = "http://www.unicode.org/Public/emoji/${version}/emoji-sequences.txt"; + sha256 = "1hghki2rn3n7m4lwpwi2a5wrsf2nij4bxga9ldabx4g0g2k23svs"; + }; + emoji-test = fetchurl { + url = "http://www.unicode.org/Public/emoji/${version}/emoji-test.txt"; + sha256 = "1dqd0fh999mh6naj816ni113m9dimfy3ih9nffjq2lrv9mmlgdck"; + }; + emoji-variation-sequences = fetchurl { + url = "http://www.unicode.org/Public/emoji/${version}/emoji-variation-sequences.txt"; + sha256 = "1cccwx5bl79w4c19vi5dhjqxrph92s8hihp9y8s2cqvdzmgbln7a"; + }; + emoji-zwj-sequences = fetchurl { + url = "http://www.unicode.org/Public/emoji/${version}/emoji-zwj-sequences.txt"; + sha256 = "1l791nbijmmhwa7kmvfn8gp26ban512l6mgqpz1mnbq3xm19181n"; + }; + }; + zippedFiles = { + UCD = fetchurl { + url = "http://www.unicode.org/Public/zipped/${version-full}/UCD.zip"; + sha256 = "1ighy39cjkmqnv1797wrxjz76mv1fdw7zp5j04q55bkwxsdkvrmh"; + }; + Unihan = fetchurl { + url = "http://www.unicode.org/Public/zipped/${version-full}/Unihan.zip"; + sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"; + }; + }; + in + pkgs.runCommand "unicode" { + buildInputs = [ libarchive ]; + } '' + mkdir -p $out/share/unicode + ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: u: "install -Dm644 ${u} $out/share/unicode/emoji/${n}.txt") files)} + ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: u: '' + install -Dm644 ${u} $out/share/unicode/${n}.zip + bsdtar -C "$out/share/unicode" -x -f "$out/share/unicode/${n}.zip" + '') zippedFiles)} + ''; + + mypkgs.dwm = dwm.overrideAttrs(old: rec { + postPatch = '' + cp ${./patches/dwm_config.h} ./config.h + ''; + }); + + mypkgs.nixops = nixops.overrideAttrs (old: { + preConfigure = (old.preConfigure or "") + '' + sed -i -e "/'keyFile'/s/'path'/'string'/" nixops/backends/__init__.py + ''; + }); + mypkgs.flrn = let + slang = stdenv.mkDerivation rec { + name = "slang-debian-patched-${version}"; + version = "1.4.9"; + src = fetchurl { + url = "ftp://space.mit.edu/pub/davis/slang/v1.4/slang-1.4.9.tar.gz"; + sha256 = "1y2mg0whqh4b3acd0k17i4biz55bimxg8aaxhmwd165cvspxns9r"; + }; + debianPatches = fetchurl { + url = "http://archive.debian.org/debian-archive/debian-amd64/pool/main/s/slang/slang_1.4.9dbs-8.diff.gz"; + sha256 = "0xdq14k5ynqfwpmis1rcggs7m4n921i3bs27icbmbhfg5gb2hap2"; + }; + preConfigure = '' + cp $debianPatches ./slang.diff.gz + gunzip slang.diff.gz + patch -p1 < slang.diff + for i in debian/patches/*; do + patch -p1 < $i + done + makeFlagsArray=(CFLAGS=" -g -O2 -fno-strength-reduce -DUTF8 -D_REENTRANT -D_XOPEN_SOURCE=500") + ''; + postBuild = '' + sed -i "1i#ifndef UTF8\n#define UTF8\n#endif" src/slang.h + ''; + }; + in + stdenv.mkDerivation (fetchedGithub ./fetched/flrn.json // rec { + buildInputs = [ libetpan openssl autoconf groff slang yacc ]; + preConfigure = '' + sed -i -e "s/test -e configure/false/" configure.in + autoconf + sed -i -e '/define CHECK_MAIL/d' src/flrn_config.h + sed -i -e '/DEFAULT_DIR_FILE/s@".flrn"@".config/flrn"@' src/flrn_config.h + sed -i -e '/DEFAULT_CONFIG_FILE/s@".flrnrc"@"flrnrc"@' src/flrn_config.h + sed -i -e '/DEFAULT_FLNEWS_FILE/s@".flnewsrc"@"flnewsrc"@' src/flrn_config.h + sed -i -e '/flrn_char chaine/s@18@20@' src/flrn_command.c + ''; + }); # https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks in @@ -331,12 +589,11 @@ in inherit nix-prefetch-scripts; inherit nix-generate-from-cpan; inherit timewarrior; - inherit sc-im; inherit pal; inherit pdftk; inherit googler; inherit jrnl; - inherit apg; + inherit apg pwgen; inherit newsboat; inherit vcsh; inherit xmr-stak; @@ -362,28 +619,34 @@ in inherit keybase; inherit bogofilter; inherit mtr; - inherit nixops; inherit urlview; - stgit = gitAndTools.stgit; - # todo: lx* ?, unrar, unzip, zeromq? - #inherit nextcloud-client; - #inherit nixos; - } // (with nixpkgs_unstable; { - inherit googler; - inherit khal; - inherit newsboat; - inherit xmr-stak; - inherit urlwatch; - inherit graphicsmagick; - inherit ncmpc; - inherit solc; - inherit w3m lynx links; - inherit valgrind; - inherit ranger; - inherit strace; - inherit notmuch; + inherit rr; + inherit nix-zsh-completions; + inherit browsh; + inherit monero; + inherit nextcloud-client; + inherit feh imagemagick; + inherit lftp; stgit = gitAndTools.stgit; inherit bundix; - inherit yarn2nix; bower2nix = nodePackages.bower2nix; - }) + inherit firefox; + inherit jq; + inherit lzo unzip bzip2 p7zip xz; + # unrar is unfree + inherit tig; + #inherit nixos; + inherit emacs26-nox; + inherit highlight sourceHighlight; + pygmentize = python3Packages.pygments; + inherit iftop htop; + inherit fetchmail; + inherit bc; + inherit cpulimit; + inherit dmenu st; + inherit poppler_utils; + inherit tmux; + inherit netcat-gnu; + inherit ledger; + inherit ffmpeg libxslt; + }