--- /dev/null
+{
+ "nodes": {
+ "flake-utils": {
+ "locked": {
+ "lastModified": 1629481132,
+ "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "997f7efcb746a9c140ce1f13c72263189225f482",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1629925853,
+ "narHash": "sha256-gK2Q0o3Ov5/xT7XhCPbtfoFQ0Ty1Mu2aeWcNX6+XzjQ=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "9e98c9db932a19bbd8fd4d3f879cd94f66270a43",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
--- /dev/null
+{
+ description = "Backported packages";
+
+ inputs.nixpkgs.url = "github:NixOS/nixpkgs";
+ inputs.flake-utils.url = "github:numtide/flake-utils";
+
+ outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system:
+ let
+ pkgs = import nixpkgs { inherit system; overlays = []; };
+ in rec {
+ packages = {
+ apprise = pkgs.apprise;
+ bitlbee-mastodon = pkgs.bitlbee-mastodon;
+ cointop = pkgs.cointop;
+ cryptpad = pkgs.cryptpad;
+ dovecot_fts-xapian = pkgs.dovecot_fts_xapian;
+ duply = pkgs.duply;
+ fiche = pkgs.fiche;
+ influxdb2 = pkgs.influxdb2;
+ mpd = pkgs.mpd;
+ mpd-small = pkgs.mpd-small;
+ pg_activity = pkgs.pg_activity;
+ signald = pkgs.signald;
+ stgit = pkgs.stgit;
+ telegram-cli = pkgs.telegram-cli;
+ woob = pkgs.python3Packages.woob;
+ zrepl = pkgs.zrepl;
+ };
+ legacyPackages = packages;
+ apps = {
+ apprise = flake-utils.lib.mkApp { drv = packages.apprise; name = "apprise"; };
+ cointop = flake-utils.lib.mkApp { drv = packages.cointop; name = "cointop"; };
+ cryptpad = flake-utils.lib.mkApp { drv = packages.cryptpad; name = "cryptpad"; };
+ duply = flake-utils.lib.mkApp { drv = packages.duply; name = "duply"; };
+ fiche = flake-utils.lib.mkApp { drv = packages.fiche; name = "fiche"; };
+ influxd = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influxd"; };
+ influx = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influx"; };
+ mpd = flake-utils.lib.mkApp { drv = packages.mpd; name = "mpd"; };
+ mpd-small = flake-utils.lib.mkApp { drv = packages.mpd-small; name = "mpd"; };
+ pg_activity = flake-utils.lib.mkApp { drv = packages.pg_activity; name = "pg_activity"; };
+ signald = flake-utils.lib.mkApp { drv = packages.signald; name = "signald"; };
+ stgit = flake-utils.lib.mkApp { drv = packages.stgit; name = "stgit"; };
+ telegram-cli = flake-utils.lib.mkApp { drv = packages.telegram-cli; name = "telegram-cli"; };
+ woob = flake-utils.lib.mkApp { drv = packages.woob; name = "woob"; };
+ zrepl = flake-utils.lib.mkApp { drv = packages.zrepl; name = "zrepl"; };
+ };
+ }
+ ) // rec {
+ lib = {
+ overrideDeps = pkgs: package: let
+ packageDeps = builtins.attrNames package.override.__functionArgs;
+ in package.override (pkgs.lib.genAttrs packageDeps (n: pkgs."${n}"));
+ };
+ overlays = {
+ apprise = final: prev: { apprise = self.packages."${final.system}".apprise; };
+ bitlbee-mastodon = final: prev: {
+ bitlbee-mastodon = lib.overrideDeps final self.packages."${final.system}".bitlbee-mastodon;
+ };
+ cointop = final: prev: { cointop = self.packages."${final.system}".cointop; };
+ cryptpad = final: prev: { cryptpad = self.packages."${final.system}".cryptpad; };
+ dovecot_fts-xapian = final: prev: {
+ dovecot_fts-xapian = lib.overrideDeps final self.packages."${final.system}".dovecot_fts-xapian;
+ };
+ duply = final: prev: { duply = self.packages."${final.system}".duply; };
+ fiche = final: prev: { fiche = self.packages."${final.system}".fiche; };
+ influxdb2 = final: prev: { influxdb2 = self.packages."${final.system}".influxdb2; };
+ mpd = final: prev: { mpd = self.packages."${final.system}".mpd; };
+ pg_activity = final: prev: { pg_activity = self.packages."${final.system}".pg_activity; };
+ signald = final: prev: { signald = self.packages."${final.system}".signald; };
+ stgit = final: prev: { stgit = self.packages."${final.system}".stgit; };
+ telegram-cli = final: prev: { telegram-cli = self.packages."${final.system}".telegram-cli; };
+ woob = final: prev: { woob = self.packages."${final.system}".woob; };
+ zrepl = final: prev: { zrepl = self.packages."${final.system}".zrepl; };
+ };
+ overlay = final: prev: ({}
+ // overlays.apprise final prev
+ // overlays.bitlbee-mastodon final prev
+ // overlays.cointop final prev
+ // overlays.cryptpad final prev
+ // overlays.dovecot_fts-xapian final prev
+ // overlays.duply final prev
+ // overlays.fiche final prev
+ // overlays.influxdb2 final prev
+ // overlays.mpd final prev
+ // overlays.pg_activity final prev
+ // overlays.signald final prev
+ // overlays.stgit final prev
+ // overlays.telegram-cli final prev
+ // overlays.woob final prev
+ // overlays.zrepl final prev
+ );
+
+ nixosModules = {
+ influxdb2 = import (nixpkgs + "/nixos/modules/services/databases/influxdb2.nix");
+ mpd = import (nixpkgs + "/nixos/modules/services/audio/mpd.nix");
+ zrepl = import (nixpkgs + "/nixos/modules/services/backup/zrepl.nix");
+ };
+ };
+}
+
let
flakeCompat = import ../lib/flake-compat.nix;
flakes = builtins.foldl' (a: b: a // b) {} (map (n: (flakeCompat n).overlays) [
+ ../flakes/backports
../flakes/libspf2
../flakes/openarc
../flakes/opendmarc
sudo = import ./sudo;
taskwarrior = import ./taskwarrior;
vcsh = import ./vcsh;
- weboob = import ./weboob;
weechat = import ./weechat;
ympd = import ./ympd;
doing = import ./doing;
} // super.lib.attrsets.listToAttrs overriddenPythons;
- apprise = fromMyPythonPackages "apprise";
blivet3 = fromMyPythonPackages "blivet3";
buildbot = import ./buildbot.nix;
wokkel = fromMyPythonPackages "wokkel";
+++ /dev/null
-self: super: {
- weboob = self.callPackage ./weboob.nix {
- inherit (super.python3Packages) buildPythonPackage fetchPypi nose
- pillow prettytable pyyaml dateutil gdata requests feedparser lxml
- pyqt5 simplejson cssselect pdfminer termcolor
- google_api_python_client unidecode Babel html5lib html2text;
- };
-}
+++ /dev/null
-{ buildPythonPackage, fetchurl, fetchPypi, stdenv
-, nose, pillow, prettytable, pyyaml, dateutil, gdata
-, requests, feedparser, lxml, gnupg, pyqt5
-, libyaml, simplejson, cssselect, pdfminer
-, termcolor, google_api_python_client, html2text
-, unidecode, html5lib, Babel
-}:
-let
- mechanize = buildPythonPackage rec {
- pname = "mechanize";
- version = "0.4.4";
- src = fetchPypi {
- inherit version pname;
- sha256 = "9fff89e973bdf1aee75a351bd4dde53ca51a7e76944ddeae3ea3b6ad6c46045c";
- };
- propagatedBuildInputs = [ html5lib ];
- doCheck = false;
- };
-in
-
-buildPythonPackage rec {
- pname = "weboob";
- version = "2.0";
-
- src = fetchurl {
- url = "https://symlink.me/attachments/download/356/${pname}-${version}.tar.gz";
- sha256 = "1p0wd6k28s0cdxkrj5s6vmi120w6v5vfxxyddqg7s2xjxv6mbbbm";
- };
-
- postPatch = ''
- # Disable doctests that require networking:
- sed -i -n -e '/^ *def \+pagination *(.*: *$/ {
- p; n; p; /"""\|'\'\'\'''/!b
-
- :loop
- n; /^ *\(>>>\|\.\.\.\)/ { h; bloop }
- x; /^ *\(>>>\|\.\.\.\)/bloop; x
- p; /"""\|'\'\'\'''/b
- bloop
- }; p' weboob/browser/browsers.py weboob/browser/pages.py
- '';
-
- postInstall = ''
- mkdir -p $out/share/bash-completion/completions/
- cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
- '';
-
- checkInputs = [ nose ];
-
- nativeBuildInputs = [ pyqt5 ];
-
- propagatedBuildInputs = [ pillow prettytable pyyaml dateutil
- gdata requests feedparser lxml gnupg pyqt5 libyaml
- simplejson cssselect mechanize pdfminer termcolor
- google_api_python_client html2text unidecode Babel ];
-
- checkPhase = ''
- nosetests
- '';
-
- meta = {
- homepage = http://weboob.org;
- description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
- license = stdenv.lib.licenses.agpl3;
- };
-}
-
+++ /dev/null
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, bitlbee, glib, lib }:
-stdenv.mkDerivation rec {
- name = "bitlbee-mastodon-${version}";
- version = "v1.4.4";
-
- src = fetchFromGitHub {
- rev = version;
- owner = "kensanata";
- repo = "bitlbee-mastodon";
- sha256 = "0a8196pyr6bjnqg82zn7jdhiv7xsg4npbpzalla1i2h99j30q8pk";
- };
-
- nativeBuildInputs = [ autoreconfHook pkgconfig ];
- buildInputs = [ bitlbee glib ];
-
- preConfigure = ''
- export BITLBEE_PLUGINDIR=$out/lib/bitlbee
- export BITLBEE_DATADIR=$out/share/bitlbee
- chmod +x autogen.sh
- ./autogen.sh
- '';
-
- meta = {
- description = "Bitlbee plugin for Mastodon";
-
- homepage = https://github.com/kensanata/bitlbee-mastodon;
- license = lib.licenses.gpl2Plus;
- platforms = lib.platforms.linux;
- };
-}
+++ /dev/null
-# Generated by bower2nix v3.2.0 (https://github.com/rvl/bower2nix)
-{ fetchbower, buildEnv }:
-buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
- (fetchbower "jquery" "2.1.0" "~2.1.0" "02kwvz93vzpv10qnp7s0dz3al0jh77awwrizb6wadsvgifxssnlr")
- (fetchbower "jquery" "2.2.4" "2.2.4" "0kaln93pzjlr4vqf2zvsm9dwgjkrii9xlsqg48hc1vs16cl109rn")
- (fetchbower "tweetnacl" "0.12.2" "0.12.2" "1lfzbfrdaly3zyzbcp1p53yhxlrx56k8x04q924kg7l52gblm65g")
- (fetchbower "components-font-awesome" "4.7.0" "^4.6.3" "1w27im6ayjrbgjqa0i49ml5d3wy4ld40h9b29hz9myv77bpx4lg1")
- (fetchbower "ckeditor" "4.14.0" "4.14.0" "0lw9q0k8c0jlxvf35vrccab9c3c8rgpc6x66czj9si8yy2lyliyp")
- (fetchbower "codemirror" "5.56.0+components1" "^5.19.0" "0fv8rxw6dspyv4bl6p2aka57544f45527rallnhnm5scv77qnakm")
- (fetchbower "requirejs" "2.3.5" "2.3.5" "05lyvgz914h2w08r24rk0vkk3yxmqrvlg7j3i5av9ffkg9lpzsli")
- (fetchbower "marked" "1.1.0" "1.1.0" "1sdgqw9iki9c1pfm4c5h6c956mchbip2jywjrcmrlb75k53flsjz")
- (fetchbower "rangy" "rangy-release#1.3.0" "rangy-release#~1.3.0" "13x3wci003p8jyv2ncir0k23bxckx99b3555r0zvgmlwycg7w0zv")
- (fetchbower "json.sortify" "2.1.0" "~2.1.0" "1rz9xz0gnm4ak31n10vhslqsw8fw493gjylwj8xsy3bxqq1ygpnh")
- (fetchbower "secure-fabric.js" "secure-v1.7.9" "secure-v1.7.9" "1l56mk7hbnsm9cdg5zdcmg95p7a9w96dq0bbl8fp11vs0awjil7a")
- (fetchbower "hyperjson" "1.4.0" "~1.4.0" "1n68ls3x4lyhg1yy8i4q3xkgh5xqpyakf45sny4x91mkr68x4bd9")
- (fetchbower "chainpad-crypto" "0.2.4" "^0.2.0" "0sqqc2j0pc34ig6319n18i85j03hibqkhz3cbr70vbd8x43vfzby")
- (fetchbower "chainpad-listmap" "0.10.0" "^0.10.0" "0qh9pv33v5aqfir9mvm4wqdgryj90b78dl0shn9cxfy9xlc0m8w5")
- (fetchbower "chainpad" "5.2.2" "^5.2.0" "1rmh039bqk11xnnh99sqrqksr4idly75y5q4f5wyl9cg4slsqrdp")
- (fetchbower "file-saver" "1.3.1" "1.3.1" "065nzkvdiicxnw06z1sjz1sbp9nyis8z839hv6ng1fk25dc5kvkg")
- (fetchbower "alertifyjs" "1.0.11" "1.0.11" "0v7323bzq90k35shm3h6azj4wd9la3kbi1va1pw4qyvndkwma69l")
- (fetchbower "scrypt-async" "1.2.0" "1.2.0" "0d076ax708p9b8hcmk4f82j925nlnm0hmp0ni45ql37g7iirfpyv")
- (fetchbower "require-css" "0.1.10" "0.1.10" "106gz9i76v71q9zx2pnqkkj342m630lvssnw54023a0ljc0gqcwq")
- (fetchbower "less" "3.7.1" "3.7.1" "1n7ps4xlbrc9m63b3q62mg3p6i7d5hwchhpjshb0drzj5crvz556")
- (fetchbower "bootstrap" "3.1.1" "~3.1.1" "06bhjwa8p7mzbpr3jkgydd804z1nwrkdql66h7jkfml99psv9811")
- (fetchbower "bootstrap" "4.5.0" "^v4.0.0" "0cfdn6z8jwx6y8lbbq6xpkfhq2vra0i84nkj9ji2bil1fzgzi40f")
- (fetchbower "diff-dom" "2.1.1" "2.1.1" "0nrn6xqlhp0p5ixjxdk8qg3939crkggh1l8swd20d7bsz186l5f1")
- (fetchbower "nthen" "0.1.7" "0.1.7" "03yap5ildigaw4rwxmxs37pcwhq415iham8w39zd56ka98gpfxa5")
- (fetchbower "open-sans-fontface" "1.4.2" "^1.4.2" "0ksav1fcq640fmdz49ra4prwsrrfj35y2p4shx1jh1j7zxd044nf")
- (fetchbower "bootstrap-tokenfield" "0.12.1" "^0.12.1" "0ib1v5k8h360sp19yiy7q92rfaz2554fvwwg2ixmxn01ydqlprw6")
- (fetchbower "localforage" "1.8.1" "^1.5.2" "0ci265385racnxvn4g1n672yaxi47msw6k042nxdb5vlpf5g327j")
- (fetchbower "html2canvas" "0.4.1" "^0.4.1" "0yg7y90nav068q0i5afc2c221zkddpf28hi0hwc46cawx4180c69")
- (fetchbower "croppie" "2.6.5" "^2.5.0" "1j1v5620zi13ad42r358i4ay891abwn6nz357484kgq2bgjj6ccx")
- (fetchbower "sortablejs" "1.10.2" "^1.6.0" "10q4gyblhjy7w51clr0k9j7h722l4ybzn5535givwpmp6xagv11v")
- (fetchbower "saferphore" "0.0.1" "^0.0.1" "1wfr9wpbm3lswmvy2p0247ydb108h4qh5s286py89k871qh6jwdi")
- (fetchbower "jszip" "Stuk/jszip#3.5.0" "Stuk/jszip#^3.1.5" "1ra19d82cq1hrnbw88l8c61bs12kpgxvbfiiwpfi8fhy0l8hcsvk")
- (fetchbower "requirejs-plugins" "1.0.3" "^1.0.3" "00s3sdz1ykygx5shldwhhhybwgw7c99vkqd94i5i5x0gl97ifxf5")
- (fetchbower "dragula.js" "3.7.2" "3.7.2" "0dbkmrl8bcxiplprmmp9fj96ri5nahb2ql8cc7zwawncv0drvlh0")
- (fetchbower "MathJax" "3.0.5" "3.0.5" "087a9av15qj43m8pr3b9g59ncmydhmg40m6dfzsac62ykianh2a0")
- (fetchbower "chainpad-netflux" "0.12.0" "^0.12.0" "1miym3fiyi0mxmrkb3c96fgr2zbcbmmb38sg0jr4d3inxf6r00zp")
- (fetchbower "netflux-websocket" "0.1.20" "^0.1.20" "1xwqq7nw7fmhglndbplarkdzxfmkq831aqs8nm6qj0hz2ggbibhz")
- (fetchbower "es6-promise" "3.3.1" "^3.2.2" "0ai6z5admfs84fdx6663ips49kqgz4x68ays78cic0xfb7pp6vcz")
-]; }
+++ /dev/null
-# taken from nixpkgs to upgrade to latest version
-{ stdenv
-, pkgs
-, lib
-, buildBowerComponents
-, fetchurl
-, nodejs
-}:
-
-let
- nodePackages = import ./node-packages.nix {
- inherit pkgs nodejs;
- inherit (stdenv.hostPlatform) system;
- };
-
- bowerPackages = buildBowerComponents {
- name = "${cryptpad.name}-bower-packages";
- # this list had to be tweaked by hand:
- # * add the second jquery ~2.1.0 entry
- # * add the second bootstrap ~3.1.1 entry
- generated = ./bower-packages.nix;
- src = cryptpad.src;
- };
-
- # find an element in an attribute set
- findValue = pred: default: set:
- let
- list =
- lib.concatMap
- (name:
- let v = set.${name}; in
- if pred name v then [v] else []
- )
- (lib.attrNames set)
- ;
- in
- if list == [] then default
- else lib.head list
- ;
-
- # The cryptpad package attribute key changes for each release. Get it out
- # programatically instead.
- cryptpad = findValue
- (k: v: v.packageName == "cryptpad")
- (throw "cryptpad not found")
- nodePackages
- ;
-
- combined = cryptpad.override {
- postInstall = ''
- out_cryptpad=$out/lib/node_modules/cryptpad
-
- substituteInPlace $out_cryptpad/lib/workers/index.js --replace "lib/workers/db-worker" "$out_cryptpad/lib/workers/db-worker"
-
- # add the bower components
- ln -sv \
- ${bowerPackages}/bower_components \
- $out_cryptpad/www/bower_components
-
- # add executable
- mkdir $out/bin
- cat <<EOF > $out/bin/cryptpad
- #!${stdenv.shell}
- exec ${nodejs}/bin/node $out_cryptpad/server.js
- EOF
- chmod +x $out/bin/cryptpad
- '';
- };
-in
- combined
+++ /dev/null
-#!/usr/bin/env nix-shell
-#! nix-shell -i bash -I nixpkgs=../../../.. -p nodePackages.node2nix nodePackages.bower2nix
-set -euo pipefail
-
-node2nix --nodejs-12 \
- --input node-packages.json \
- --output node-packages-generated.nix \
- --composition node-packages.nix \
- --node-env ../../../development/node-packages/node-env.nix \
-
-# TODO: bower2nix > bower-packages.nix
+++ /dev/null
-# This file originates from node2nix
-
-{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}:
-
-let
- # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
- utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
-
- python = if nodejs ? python then nodejs.python else python2;
-
- # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
- tarWrapper = runCommand "tarWrapper" {} ''
- mkdir -p $out/bin
-
- cat > $out/bin/tar <<EOF
- #! ${stdenv.shell} -e
- $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
- EOF
-
- chmod +x $out/bin/tar
- '';
-
- # Function that generates a TGZ file from a NPM project
- buildNodeSourceDist =
- { name, version, src, ... }:
-
- stdenv.mkDerivation {
- name = "node-tarball-${name}-${version}";
- inherit src;
- buildInputs = [ nodejs ];
- buildPhase = ''
- export HOME=$TMPDIR
- tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
- '';
- installPhase = ''
- mkdir -p $out/tarballs
- mv $tgzFile $out/tarballs
- mkdir -p $out/nix-support
- echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
- '';
- };
-
- includeDependencies = {dependencies}:
- lib.optionalString (dependencies != [])
- (lib.concatMapStrings (dependency:
- ''
- # Bundle the dependencies of the package
- mkdir -p node_modules
- cd node_modules
-
- # Only include dependencies if they don't exist. They may also be bundled in the package.
- if [ ! -e "${dependency.name}" ]
- then
- ${composePackage dependency}
- fi
-
- cd ..
- ''
- ) dependencies);
-
- # Recursively composes the dependencies of a package
- composePackage = { name, packageName, src, dependencies ? [], ... }@args:
- builtins.addErrorContext "while evaluating node package '${packageName}'" ''
- DIR=$(pwd)
- cd $TMPDIR
-
- unpackFile ${src}
-
- # Make the base dir in which the target dependency resides first
- mkdir -p "$(dirname "$DIR/${packageName}")"
-
- if [ -f "${src}" ]
- then
- # Figure out what directory has been unpacked
- packageDir="$(find . -maxdepth 1 -type d | tail -1)"
-
- # Restore write permissions to make building work
- find "$packageDir" -type d -exec chmod u+x {} \;
- chmod -R u+w "$packageDir"
-
- # Move the extracted tarball into the output folder
- mv "$packageDir" "$DIR/${packageName}"
- elif [ -d "${src}" ]
- then
- # Get a stripped name (without hash) of the source directory.
- # On old nixpkgs it's already set internally.
- if [ -z "$strippedName" ]
- then
- strippedName="$(stripHash ${src})"
- fi
-
- # Restore write permissions to make building work
- chmod -R u+w "$strippedName"
-
- # Move the extracted directory into the output folder
- mv "$strippedName" "$DIR/${packageName}"
- fi
-
- # Unset the stripped name to not confuse the next unpack step
- unset strippedName
-
- # Include the dependencies of the package
- cd "$DIR/${packageName}"
- ${includeDependencies { inherit dependencies; }}
- cd ..
- ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
- '';
-
- pinpointDependencies = {dependencies, production}:
- let
- pinpointDependenciesFromPackageJSON = writeTextFile {
- name = "pinpointDependencies.js";
- text = ''
- var fs = require('fs');
- var path = require('path');
-
- function resolveDependencyVersion(location, name) {
- if(location == process.env['NIX_STORE']) {
- return null;
- } else {
- var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
-
- if(fs.existsSync(dependencyPackageJSON)) {
- var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
-
- if(dependencyPackageObj.name == name) {
- return dependencyPackageObj.version;
- }
- } else {
- return resolveDependencyVersion(path.resolve(location, ".."), name);
- }
- }
- }
-
- function replaceDependencies(dependencies) {
- if(typeof dependencies == "object" && dependencies !== null) {
- for(var dependency in dependencies) {
- var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
-
- if(resolvedVersion === null) {
- process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
- } else {
- dependencies[dependency] = resolvedVersion;
- }
- }
- }
- }
-
- /* Read the package.json configuration */
- var packageObj = JSON.parse(fs.readFileSync('./package.json'));
-
- /* Pinpoint all dependencies */
- replaceDependencies(packageObj.dependencies);
- if(process.argv[2] == "development") {
- replaceDependencies(packageObj.devDependencies);
- }
- replaceDependencies(packageObj.optionalDependencies);
-
- /* Write the fixed package.json file */
- fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
- '';
- };
- in
- ''
- node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
-
- ${lib.optionalString (dependencies != [])
- ''
- if [ -d node_modules ]
- then
- cd node_modules
- ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
- cd ..
- fi
- ''}
- '';
-
- # Recursively traverses all dependencies of a package and pinpoints all
- # dependencies in the package.json file to the versions that are actually
- # being used.
-
- pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
- ''
- if [ -d "${packageName}" ]
- then
- cd "${packageName}"
- ${pinpointDependencies { inherit dependencies production; }}
- cd ..
- ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
- fi
- '';
-
- # Extract the Node.js source code which is used to compile packages with
- # native bindings
- nodeSources = runCommand "node-sources" {} ''
- tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
- mv node-* $out
- '';
-
- # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
- addIntegrityFieldsScript = writeTextFile {
- name = "addintegrityfields.js";
- text = ''
- var fs = require('fs');
- var path = require('path');
-
- function augmentDependencies(baseDir, dependencies) {
- for(var dependencyName in dependencies) {
- var dependency = dependencies[dependencyName];
-
- // Open package.json and augment metadata fields
- var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
- var packageJSONPath = path.join(packageJSONDir, "package.json");
-
- if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
- console.log("Adding metadata fields to: "+packageJSONPath);
- var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
-
- if(dependency.integrity) {
- packageObj["_integrity"] = dependency.integrity;
- } else {
- packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
- }
-
- if(dependency.resolved) {
- packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
- } else {
- packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
- }
-
- if(dependency.from !== undefined) { // Adopt from property if one has been provided
- packageObj["_from"] = dependency.from;
- }
-
- fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
- }
-
- // Augment transitive dependencies
- if(dependency.dependencies !== undefined) {
- augmentDependencies(packageJSONDir, dependency.dependencies);
- }
- }
- }
-
- if(fs.existsSync("./package-lock.json")) {
- var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
-
- if(![1, 2].includes(packageLock.lockfileVersion)) {
- process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
- process.exit(1);
- }
-
- if(packageLock.dependencies !== undefined) {
- augmentDependencies(".", packageLock.dependencies);
- }
- }
- '';
- };
-
- # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
- reconstructPackageLock = writeTextFile {
- name = "addintegrityfields.js";
- text = ''
- var fs = require('fs');
- var path = require('path');
-
- var packageObj = JSON.parse(fs.readFileSync("package.json"));
-
- var lockObj = {
- name: packageObj.name,
- version: packageObj.version,
- lockfileVersion: 1,
- requires: true,
- dependencies: {}
- };
-
- function augmentPackageJSON(filePath, dependencies) {
- var packageJSON = path.join(filePath, "package.json");
- if(fs.existsSync(packageJSON)) {
- var packageObj = JSON.parse(fs.readFileSync(packageJSON));
- dependencies[packageObj.name] = {
- version: packageObj.version,
- integrity: "sha1-000000000000000000000000000=",
- dependencies: {}
- };
- processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
- }
- }
-
- function processDependencies(dir, dependencies) {
- if(fs.existsSync(dir)) {
- var files = fs.readdirSync(dir);
-
- files.forEach(function(entry) {
- var filePath = path.join(dir, entry);
- var stats = fs.statSync(filePath);
-
- if(stats.isDirectory()) {
- if(entry.substr(0, 1) == "@") {
- // When we encounter a namespace folder, augment all packages belonging to the scope
- var pkgFiles = fs.readdirSync(filePath);
-
- pkgFiles.forEach(function(entry) {
- if(stats.isDirectory()) {
- var pkgFilePath = path.join(filePath, entry);
- augmentPackageJSON(pkgFilePath, dependencies);
- }
- });
- } else {
- augmentPackageJSON(filePath, dependencies);
- }
- }
- });
- }
- }
-
- processDependencies("node_modules", lockObj.dependencies);
-
- fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
- '';
- };
-
- prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
- let
- forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
- in
- ''
- # Pinpoint the versions of all dependencies to the ones that are actually being used
- echo "pinpointing versions of dependencies..."
- source $pinpointDependenciesScriptPath
-
- # Patch the shebangs of the bundled modules to prevent them from
- # calling executables outside the Nix store as much as possible
- patchShebangs .
-
- # Deploy the Node.js package by running npm install. Since the
- # dependencies have been provided already by ourselves, it should not
- # attempt to install them again, which is good, because we want to make
- # it Nix's responsibility. If it needs to install any dependencies
- # anyway (e.g. because the dependency parameters are
- # incomplete/incorrect), it fails.
- #
- # The other responsibilities of NPM are kept -- version checks, build
- # steps, postprocessing etc.
-
- export HOME=$TMPDIR
- cd "${packageName}"
- runHook preRebuild
-
- ${lib.optionalString bypassCache ''
- ${lib.optionalString reconstructLock ''
- if [ -f package-lock.json ]
- then
- echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
- echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
- rm package-lock.json
- else
- echo "No package-lock.json file found, reconstructing..."
- fi
-
- node ${reconstructPackageLock}
- ''}
-
- node ${addIntegrityFieldsScript}
- ''}
-
- npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
-
- if [ "''${dontNpmInstall-}" != "1" ]
- then
- # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
- rm -f npm-shrinkwrap.json
-
- npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
- fi
- '';
-
- # Builds and composes an NPM package including all its dependencies
- buildNodePackage =
- { name
- , packageName
- , version
- , dependencies ? []
- , buildInputs ? []
- , production ? true
- , npmFlags ? ""
- , dontNpmInstall ? false
- , bypassCache ? false
- , reconstructLock ? false
- , preRebuild ? ""
- , dontStrip ? true
- , unpackPhase ? "true"
- , buildPhase ? "true"
- , ... }@args:
-
- let
- extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
- in
- stdenv.mkDerivation ({
- name = "node_${name}-${version}";
- buildInputs = [ tarWrapper python nodejs ]
- ++ lib.optional (stdenv.isLinux) utillinux
- ++ lib.optional (stdenv.isDarwin) libtool
- ++ buildInputs;
-
- inherit nodejs;
-
- inherit dontStrip; # Stripping may fail a build for some package deployments
- inherit dontNpmInstall preRebuild unpackPhase buildPhase;
-
- compositionScript = composePackage args;
- pinpointDependenciesScript = pinpointDependenciesOfPackage args;
-
- passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
-
- installPhase = ''
- # Create and enter a root node_modules/ folder
- mkdir -p $out/lib/node_modules
- cd $out/lib/node_modules
-
- # Compose the package and all its dependencies
- source $compositionScriptPath
-
- ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
-
- # Create symlink to the deployed executable folder, if applicable
- if [ -d "$out/lib/node_modules/.bin" ]
- then
- ln -s $out/lib/node_modules/.bin $out/bin
- fi
-
- # Create symlinks to the deployed manual page folders, if applicable
- if [ -d "$out/lib/node_modules/${packageName}/man" ]
- then
- mkdir -p $out/share
- for dir in "$out/lib/node_modules/${packageName}/man/"*
- do
- mkdir -p $out/share/man/$(basename "$dir")
- for page in "$dir"/*
- do
- ln -s $page $out/share/man/$(basename "$dir")
- done
- done
- fi
-
- # Run post install hook, if provided
- runHook postInstall
- '';
- } // extraArgs);
-
- # Builds a node environment (a node_modules folder and a set of binaries)
- buildNodeDependencies =
- { name
- , packageName
- , version
- , src
- , dependencies ? []
- , buildInputs ? []
- , production ? true
- , npmFlags ? ""
- , dontNpmInstall ? false
- , bypassCache ? false
- , reconstructLock ? false
- , dontStrip ? true
- , unpackPhase ? "true"
- , buildPhase ? "true"
- , ... }@args:
-
- let
- extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
- in
- stdenv.mkDerivation ({
- name = "node-dependencies-${name}-${version}";
-
- buildInputs = [ tarWrapper python nodejs ]
- ++ lib.optional (stdenv.isLinux) utillinux
- ++ lib.optional (stdenv.isDarwin) libtool
- ++ buildInputs;
-
- inherit dontStrip; # Stripping may fail a build for some package deployments
- inherit dontNpmInstall unpackPhase buildPhase;
-
- includeScript = includeDependencies { inherit dependencies; };
- pinpointDependenciesScript = pinpointDependenciesOfPackage args;
-
- passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
-
- installPhase = ''
- mkdir -p $out/${packageName}
- cd $out/${packageName}
-
- source $includeScriptPath
-
- # Create fake package.json to make the npm commands work properly
- cp ${src}/package.json .
- chmod 644 package.json
- ${lib.optionalString bypassCache ''
- if [ -f ${src}/package-lock.json ]
- then
- cp ${src}/package-lock.json .
- fi
- ''}
-
- # Go to the parent folder to make sure that all packages are pinpointed
- cd ..
- ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-
- ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
-
- # Expose the executables that were installed
- cd ..
- ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-
- mv ${packageName} lib
- ln -s $out/lib/node_modules/.bin $out/bin
- '';
- } // extraArgs);
-
- # Builds a development shell
- buildNodeShell =
- { name
- , packageName
- , version
- , src
- , dependencies ? []
- , buildInputs ? []
- , production ? true
- , npmFlags ? ""
- , dontNpmInstall ? false
- , bypassCache ? false
- , reconstructLock ? false
- , dontStrip ? true
- , unpackPhase ? "true"
- , buildPhase ? "true"
- , ... }@args:
-
- let
- nodeDependencies = buildNodeDependencies args;
- in
- stdenv.mkDerivation {
- name = "node-shell-${name}-${version}";
-
- buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
- buildCommand = ''
- mkdir -p $out/bin
- cat > $out/bin/shell <<EOF
- #! ${stdenv.shell} -e
- $shellHook
- exec ${stdenv.shell}
- EOF
- chmod +x $out/bin/shell
- '';
-
- # Provide the dependencies in a development shell through the NODE_PATH environment variable
- inherit nodeDependencies;
- shellHook = lib.optionalString (dependencies != []) ''
- export NODE_PATH=${nodeDependencies}/lib/node_modules
- export PATH="${nodeDependencies}/bin:$PATH"
- '';
- };
-in
-{
- buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
- buildNodePackage = lib.makeOverridable buildNodePackage;
- buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
- buildNodeShell = lib.makeOverridable buildNodeShell;
-}
+++ /dev/null
-# This file has been generated by node2nix 1.9.0. Do not edit!
-
-{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
-
-let
- sources = {
- "@mcrowe/minibloom-0.2.0" = {
- name = "_at_mcrowe_slash_minibloom";
- packageName = "@mcrowe/minibloom";
- version = "0.2.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/@mcrowe/minibloom/-/minibloom-0.2.0.tgz";
- sha1 = "1bed96aec18388198da37443899b2c3ff5948053";
- };
- };
- "accepts-1.3.7" = {
- name = "accepts";
- packageName = "accepts";
- version = "1.3.7";
- src = fetchurl {
- url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
- sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
- };
- };
- "array-flatten-1.1.1" = {
- name = "array-flatten";
- packageName = "array-flatten";
- version = "1.1.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
- sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
- };
- };
- "async-limiter-1.0.1" = {
- name = "async-limiter";
- packageName = "async-limiter";
- version = "1.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
- sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
- };
- };
- "body-parser-1.18.3" = {
- name = "body-parser";
- packageName = "body-parser";
- version = "1.18.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz";
- sha1 = "5b292198ffdd553b3a0f20ded0592b956955c8b4";
- };
- };
- "bytes-3.0.0" = {
- name = "bytes";
- packageName = "bytes";
- version = "3.0.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
- sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
- };
- };
- "chainpad-crypto-0.2.5" = {
- name = "chainpad-crypto";
- packageName = "chainpad-crypto";
- version = "0.2.5";
- src = fetchurl {
- url = "https://registry.npmjs.org/chainpad-crypto/-/chainpad-crypto-0.2.5.tgz";
- sha512 = "K9vRsAspuX+uU1goXPz0CawpLIaOHq+1JP3WfDLqaz67LbCX/MLIUt9aMcSeIJcwZ9uMpqnbMGRktyVPoz6MCA==";
- };
- };
- "chainpad-server-5.1.0" = {
- name = "chainpad-server";
- packageName = "chainpad-server";
- version = "5.1.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-5.1.0.tgz";
- sha512 = "BdjgOOLTXXo1EjQ7lURDe7oqsqfQISNvwhILfp3K3diY2K1hxpPLbjYzOSgxNOTADeOAff0xnInR5eUCESVWaQ==";
- };
- };
- "content-disposition-0.5.2" = {
- name = "content-disposition";
- packageName = "content-disposition";
- version = "0.5.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz";
- sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
- };
- };
- "content-type-1.0.4" = {
- name = "content-type";
- packageName = "content-type";
- version = "1.0.4";
- src = fetchurl {
- url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
- sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
- };
- };
- "cookie-0.3.1" = {
- name = "cookie";
- packageName = "cookie";
- version = "0.3.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz";
- sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
- };
- };
- "cookie-signature-1.0.6" = {
- name = "cookie-signature";
- packageName = "cookie-signature";
- version = "1.0.6";
- src = fetchurl {
- url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
- sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
- };
- };
- "debug-2.6.9" = {
- name = "debug";
- packageName = "debug";
- version = "2.6.9";
- src = fetchurl {
- url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
- sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
- };
- };
- "depd-1.1.2" = {
- name = "depd";
- packageName = "depd";
- version = "1.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
- sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
- };
- };
- "destroy-1.0.4" = {
- name = "destroy";
- packageName = "destroy";
- version = "1.0.4";
- src = fetchurl {
- url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
- sha1 = "978857442c44749e4206613e37946205826abd80";
- };
- };
- "ee-first-1.1.1" = {
- name = "ee-first";
- packageName = "ee-first";
- version = "1.1.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
- sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
- };
- };
- "encodeurl-1.0.2" = {
- name = "encodeurl";
- packageName = "encodeurl";
- version = "1.0.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
- sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
- };
- };
- "escape-html-1.0.3" = {
- name = "escape-html";
- packageName = "escape-html";
- version = "1.0.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
- sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
- };
- };
- "etag-1.8.1" = {
- name = "etag";
- packageName = "etag";
- version = "1.8.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
- sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
- };
- };
- "express-4.16.4" = {
- name = "express";
- packageName = "express";
- version = "4.16.4";
- src = fetchurl {
- url = "https://registry.npmjs.org/express/-/express-4.16.4.tgz";
- sha512 = "j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==";
- };
- };
- "finalhandler-1.1.1" = {
- name = "finalhandler";
- packageName = "finalhandler";
- version = "1.1.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz";
- sha512 = "Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==";
- };
- };
- "forwarded-0.1.2" = {
- name = "forwarded";
- packageName = "forwarded";
- version = "0.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
- sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
- };
- };
- "fresh-0.5.2" = {
- name = "fresh";
- packageName = "fresh";
- version = "0.5.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
- sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
- };
- };
- "fs-extra-7.0.1" = {
- name = "fs-extra";
- packageName = "fs-extra";
- version = "7.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz";
- sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
- };
- };
- "gar-1.0.4" = {
- name = "gar";
- packageName = "gar";
- version = "1.0.4";
- src = fetchurl {
- url = "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz";
- sha512 = "w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==";
- };
- };
- "get-folder-size-2.0.1" = {
- name = "get-folder-size";
- packageName = "get-folder-size";
- version = "2.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz";
- sha512 = "+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==";
- };
- };
- "graceful-fs-4.2.6" = {
- name = "graceful-fs";
- packageName = "graceful-fs";
- version = "4.2.6";
- src = fetchurl {
- url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
- sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
- };
- };
- "http-errors-1.6.3" = {
- name = "http-errors";
- packageName = "http-errors";
- version = "1.6.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz";
- sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
- };
- };
- "iconv-lite-0.4.23" = {
- name = "iconv-lite";
- packageName = "iconv-lite";
- version = "0.4.23";
- src = fetchurl {
- url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz";
- sha512 = "neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==";
- };
- };
- "inherits-2.0.3" = {
- name = "inherits";
- packageName = "inherits";
- version = "2.0.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
- sha1 = "633c2c83e3da42a502f52466022480f4208261de";
- };
- };
- "ipaddr.js-1.9.1" = {
- name = "ipaddr.js";
- packageName = "ipaddr.js";
- version = "1.9.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
- sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
- };
- };
- "jsonfile-4.0.0" = {
- name = "jsonfile";
- packageName = "jsonfile";
- version = "4.0.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
- sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
- };
- };
- "lex-1.7.9" = {
- name = "lex";
- packageName = "lex";
- version = "1.7.9";
- src = fetchurl {
- url = "https://registry.npmjs.org/lex/-/lex-1.7.9.tgz";
- sha1 = "5d5636ccef574348362938b79a47f0eed8ed0d43";
- };
- };
- "looper-3.0.0" = {
- name = "looper";
- packageName = "looper";
- version = "3.0.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz";
- sha1 = "2efa54c3b1cbaba9b94aee2e5914b0be57fbb749";
- };
- };
- "media-typer-0.3.0" = {
- name = "media-typer";
- packageName = "media-typer";
- version = "0.3.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
- sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
- };
- };
- "merge-descriptors-1.0.1" = {
- name = "merge-descriptors";
- packageName = "merge-descriptors";
- version = "1.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
- sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
- };
- };
- "methods-1.1.2" = {
- name = "methods";
- packageName = "methods";
- version = "1.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
- sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
- };
- };
- "mime-1.4.1" = {
- name = "mime";
- packageName = "mime";
- version = "1.4.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
- sha512 = "KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==";
- };
- };
- "mime-db-1.47.0" = {
- name = "mime-db";
- packageName = "mime-db";
- version = "1.47.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz";
- sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
- };
- };
- "mime-types-2.1.30" = {
- name = "mime-types";
- packageName = "mime-types";
- version = "2.1.30";
- src = fetchurl {
- url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz";
- sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==";
- };
- };
- "ms-2.0.0" = {
- name = "ms";
- packageName = "ms";
- version = "2.0.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
- sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
- };
- };
- "negotiator-0.6.2" = {
- name = "negotiator";
- packageName = "negotiator";
- version = "0.6.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
- sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
- };
- };
- "netflux-websocket-0.1.21" = {
- name = "netflux-websocket";
- packageName = "netflux-websocket";
- version = "0.1.21";
- src = fetchurl {
- url = "https://registry.npmjs.org/netflux-websocket/-/netflux-websocket-0.1.21.tgz";
- sha512 = "Zjl5lefg8urC0a0T7YCPGiUgRsISZBsTZl1STylmQz8Bq4ohcZ8cP3r6VoCpeVcvJ1Y/e3ZCXPxndWlNP9Jfug==";
- };
- };
- "nthen-0.1.8" = {
- name = "nthen";
- packageName = "nthen";
- version = "0.1.8";
- src = fetchurl {
- url = "https://registry.npmjs.org/nthen/-/nthen-0.1.8.tgz";
- sha512 = "Oh2CwIbhj+wUT94lQV7LKmmgw3UYAGGd8oLIqp6btQN3Bz3PuWp4BuvtUo35H3rqDknjPfKx5P6mt7v+aJNjcw==";
- };
- };
- "on-finished-2.3.0" = {
- name = "on-finished";
- packageName = "on-finished";
- version = "2.3.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
- sha1 = "20f1336481b083cd75337992a16971aa2d906947";
- };
- };
- "parseurl-1.3.3" = {
- name = "parseurl";
- packageName = "parseurl";
- version = "1.3.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
- sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
- };
- };
- "path-to-regexp-0.1.7" = {
- name = "path-to-regexp";
- packageName = "path-to-regexp";
- version = "0.1.7";
- src = fetchurl {
- url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
- sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
- };
- };
- "proxy-addr-2.0.6" = {
- name = "proxy-addr";
- packageName = "proxy-addr";
- version = "2.0.6";
- src = fetchurl {
- url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
- sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
- };
- };
- "pull-stream-3.6.14" = {
- name = "pull-stream";
- packageName = "pull-stream";
- version = "3.6.14";
- src = fetchurl {
- url = "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz";
- sha512 = "KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==";
- };
- };
- "qs-6.5.2" = {
- name = "qs";
- packageName = "qs";
- version = "6.5.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
- sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
- };
- };
- "range-parser-1.2.1" = {
- name = "range-parser";
- packageName = "range-parser";
- version = "1.2.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
- sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
- };
- };
- "raw-body-2.3.3" = {
- name = "raw-body";
- packageName = "raw-body";
- version = "2.3.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz";
- sha512 = "9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==";
- };
- };
- "safe-buffer-5.1.2" = {
- name = "safe-buffer";
- packageName = "safe-buffer";
- version = "5.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
- sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
- };
- };
- "safer-buffer-2.1.2" = {
- name = "safer-buffer";
- packageName = "safer-buffer";
- version = "2.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
- sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
- };
- };
- "saferphore-0.0.1" = {
- name = "saferphore";
- packageName = "saferphore";
- version = "0.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/saferphore/-/saferphore-0.0.1.tgz";
- sha1 = "cc962eda4e2b2452e6437fd32dcfb6f69ef2ea63";
- };
- };
- "send-0.16.2" = {
- name = "send";
- packageName = "send";
- version = "0.16.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/send/-/send-0.16.2.tgz";
- sha512 = "E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==";
- };
- };
- "serve-static-1.13.2" = {
- name = "serve-static";
- packageName = "serve-static";
- version = "1.13.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz";
- sha512 = "p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==";
- };
- };
- "setprototypeof-1.1.0" = {
- name = "setprototypeof";
- packageName = "setprototypeof";
- version = "1.1.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
- sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
- };
- };
- "sortify-1.0.4" = {
- name = "sortify";
- packageName = "sortify";
- version = "1.0.4";
- src = fetchurl {
- url = "https://registry.npmjs.org/sortify/-/sortify-1.0.4.tgz";
- sha1 = "f0178687c83231be8a34fc0ec5462ea957b60284";
- };
- };
- "statuses-1.4.0" = {
- name = "statuses";
- packageName = "statuses";
- version = "1.4.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz";
- sha512 = "zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==";
- };
- };
- "stream-to-pull-stream-1.7.3" = {
- name = "stream-to-pull-stream";
- packageName = "stream-to-pull-stream";
- version = "1.7.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz";
- sha512 = "6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==";
- };
- };
- "tiny-each-async-2.0.3" = {
- name = "tiny-each-async";
- packageName = "tiny-each-async";
- version = "2.0.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz";
- sha1 = "8ebbbfd6d6295f1370003fbb37162afe5a0a51d1";
- };
- };
- "tweetnacl-0.12.2" = {
- name = "tweetnacl";
- packageName = "tweetnacl";
- version = "0.12.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.12.2.tgz";
- sha1 = "bd59f890507856fb0a1136acc3a8b44547e29ddb";
- };
- };
- "tweetnacl-git+https://github.com/dchest/tweetnacl-js.git#v0.12.2" = {
- name = "tweetnacl";
- packageName = "tweetnacl";
- version = "0.12.2";
- src = fetchgit {
- url = "https://github.com/dchest/tweetnacl-js.git";
- rev = "8a21381d696acdc4e99c9f706f1ad23285795f79";
- sha256 = "10f27b673944107995b3f6dcd65caecd705acdae9c37b7e79b810a8a72a40a31";
- };
- };
- "type-is-1.6.18" = {
- name = "type-is";
- packageName = "type-is";
- version = "1.6.18";
- src = fetchurl {
- url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
- sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
- };
- };
- "ulimit-0.0.2" = {
- name = "ulimit";
- packageName = "ulimit";
- version = "0.0.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/ulimit/-/ulimit-0.0.2.tgz";
- sha1 = "2b51f9dc8381ae4102636cec5eb338c2630588a0";
- };
- };
- "ultron-1.1.1" = {
- name = "ultron";
- packageName = "ultron";
- version = "1.1.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz";
- sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
- };
- };
- "universalify-0.1.2" = {
- name = "universalify";
- packageName = "universalify";
- version = "0.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
- sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
- };
- };
- "unpipe-1.0.0" = {
- name = "unpipe";
- packageName = "unpipe";
- version = "1.0.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
- sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
- };
- };
- "utils-merge-1.0.1" = {
- name = "utils-merge";
- packageName = "utils-merge";
- version = "1.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
- sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
- };
- };
- "vary-1.1.2" = {
- name = "vary";
- packageName = "vary";
- version = "1.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
- sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
- };
- };
- "ws-3.3.3" = {
- name = "ws";
- packageName = "ws";
- version = "3.3.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz";
- sha512 = "nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==";
- };
- };
- };
-in
-{
- "cryptpad-git+https://github.com/xwiki-labs/cryptpad.git#4.5.0" = nodeEnv.buildNodePackage {
- name = "cryptpad";
- packageName = "cryptpad";
- version = "4.5.0";
- src = fetchgit {
- url = "https://github.com/xwiki-labs/cryptpad.git";
- rev = "719cea013da4f2ffb89f944b0974d2a42216d1f2";
- sha256 = "1729698a1f74c3fc097ea6c8162b4adecc3de4d5ba89b12dba06b5a58559aa4a";
- };
- dependencies = [
- sources."@mcrowe/minibloom-0.2.0"
- sources."accepts-1.3.7"
- sources."array-flatten-1.1.1"
- sources."async-limiter-1.0.1"
- sources."body-parser-1.18.3"
- sources."bytes-3.0.0"
- (sources."chainpad-crypto-0.2.5" // {
- dependencies = [
- sources."tweetnacl-git+https://github.com/dchest/tweetnacl-js.git#v0.12.2"
- ];
- })
- sources."chainpad-server-5.1.0"
- sources."content-disposition-0.5.2"
- sources."content-type-1.0.4"
- sources."cookie-0.3.1"
- sources."cookie-signature-1.0.6"
- sources."debug-2.6.9"
- sources."depd-1.1.2"
- sources."destroy-1.0.4"
- sources."ee-first-1.1.1"
- sources."encodeurl-1.0.2"
- sources."escape-html-1.0.3"
- sources."etag-1.8.1"
- sources."express-4.16.4"
- sources."finalhandler-1.1.1"
- sources."forwarded-0.1.2"
- sources."fresh-0.5.2"
- sources."fs-extra-7.0.1"
- sources."gar-1.0.4"
- sources."get-folder-size-2.0.1"
- sources."graceful-fs-4.2.6"
- sources."http-errors-1.6.3"
- sources."iconv-lite-0.4.23"
- sources."inherits-2.0.3"
- sources."ipaddr.js-1.9.1"
- sources."jsonfile-4.0.0"
- sources."lex-1.7.9"
- sources."looper-3.0.0"
- sources."media-typer-0.3.0"
- sources."merge-descriptors-1.0.1"
- sources."methods-1.1.2"
- sources."mime-1.4.1"
- sources."mime-db-1.47.0"
- sources."mime-types-2.1.30"
- sources."ms-2.0.0"
- sources."negotiator-0.6.2"
- sources."netflux-websocket-0.1.21"
- sources."nthen-0.1.8"
- sources."on-finished-2.3.0"
- sources."parseurl-1.3.3"
- sources."path-to-regexp-0.1.7"
- sources."proxy-addr-2.0.6"
- sources."pull-stream-3.6.14"
- sources."qs-6.5.2"
- sources."range-parser-1.2.1"
- sources."raw-body-2.3.3"
- sources."safe-buffer-5.1.2"
- sources."safer-buffer-2.1.2"
- sources."saferphore-0.0.1"
- sources."send-0.16.2"
- sources."serve-static-1.13.2"
- sources."setprototypeof-1.1.0"
- sources."sortify-1.0.4"
- sources."statuses-1.4.0"
- sources."stream-to-pull-stream-1.7.3"
- sources."tiny-each-async-2.0.3"
- sources."tweetnacl-0.12.2"
- sources."type-is-1.6.18"
- sources."ulimit-0.0.2"
- sources."ultron-1.1.1"
- sources."universalify-0.1.2"
- sources."unpipe-1.0.0"
- sources."utils-merge-1.0.1"
- sources."vary-1.1.2"
- sources."ws-3.3.3"
- ];
- buildInputs = globalBuildInputs;
- meta = {
- description = "realtime collaborative visual editor with zero knowlege server";
- license = "AGPL-3.0+";
- };
- production = true;
- bypassCache = true;
- reconstructLock = true;
- };
-}
+++ /dev/null
-[
- { "cryptpad": "git+https://github.com/xwiki-labs/cryptpad.git#4.5.0" }
-]
+++ /dev/null
-# This file has been generated by node2nix 1.9.0. Do not edit!
-
-{pkgs ? import <nixpkgs> {
- inherit system;
- }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
-
-let
- nodeEnv = import ./node-env.nix {
- inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
- inherit pkgs nodejs;
- libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
- };
-in
-import ./node-packages-generated.nix {
- inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
- inherit nodeEnv;
-}
boinctui = callPackage ./boinctui {};
cnagios = callPackage ./cnagios { inherit mylibs; };
commento = callPackage ./commento {};
- cryptpad = callPackage ./cryptpad {};
- duply = callPackage ./duply {};
flrn = callPackage ./flrn { inherit mylibs; slang = callPackage ./slang_1 {}; };
genius = callPackage ./genius {};
mtop = callPackage ./mtop {};
notmuch-python2 = callPackage ./notmuch/notmuch-python { pythonPackages = python2Packages; };
notmuch-python3 = callPackage ./notmuch/notmuch-python { pythonPackages = python3Packages; };
notmuch-vim = callPackage ./notmuch/notmuch-vim {};
- pg_activity = callPackage ./pg_activity { inherit mylibs; };
pgloader = callPackage ./pgloader {};
predixy = callPackage ./predixy { inherit mylibs; };
rrsync_sudo = callPackage ./rrsync_sudo {};
- signald = callPackage ./signald {};
signaldctl = callPackage ./signaldctl {};
- stgit = callPackage ./stgit {};
- telegram-cli = callPackage ./telegram-cli { inherit mylibs; };
telegram-history-dump = callPackage ./telegram-history-dump { inherit mylibs; };
telegramircd = callPackage ./telegramircd { inherit mylibs; telethon = callPackage ./telethon_sync {}; };
terminal-velocity = callPackage ./terminal-velocity {};
sia = callPackage ./crypto/sia {};
pure-ftpd = callPackage ./pure-ftpd {};
- mpd = (callPackage ./mpd_0_21 {}).mpd;
- mpd-small = (callPackage ./mpd_0_21 {}).mpd-small;
-
- bitlbee-mastodon = callPackage ./bitlbee-mastodon {};
composerEnv = callPackage ./composer-env {};
webapps = callPackage ./webapps { inherit mylibs composerEnv; };
dovecot_deleted-to-trash = callPackage ./dovecot/plugins/deleted_to_trash {
inherit mylibs;
};
- dovecot_fts-xapian = callPackage ./dovecot/plugins/fts_xapian {
- inherit mylibs;
- };
-
- fiche = callPackage ./fiche { inherit mylibs; };
- woob = python3Packages.callPackage ./woob {};
- zrepl = callPackage ./zrepl {};
}
+++ /dev/null
-{ stdenv, autoconf, automake, pkg-config, dovecot, libtool, xapian, icu, mylibs, sqlite }:
-
-stdenv.mkDerivation (mylibs.fetchedGithub ./fts-xapian.json // rec {
- buildInputs = [ dovecot autoconf automake libtool pkg-config xapian icu sqlite ];
- preConfigure = ''
- export PANDOC=false
- autoreconf -vi
- '';
- configureFlags = [
- "--with-dovecot=${dovecot}/lib/dovecot"
- "--without-dovecot-install-dirs"
- "--with-moduledir=$(out)/lib/dovecot"
- ];
-})
+++ /dev/null
-{
- "tag": "ac872e9-master",
- "meta": {
- "name": "fts-xapian",
- "url": "https://github.com/grosjo/fts-xapian",
- "branch": "master"
- },
- "github": {
- "owner": "grosjo",
- "repo": "fts-xapian",
- "rev": "ac872e927c982e8da6d4eb80fa27fee53962010b",
- "sha256": "13pw123006yyx2m2zy3bdffglhd5923gnqjlcc868xy344fjkbmz",
- "fetchSubmodules": true
- }
-}
+++ /dev/null
-{ stdenv, fetchurl, makeWrapper, coreutils, python3, duplicity, gawk, gnupg1, bash, gnugrep, txt2man, which }:
-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 python3 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;
- };
-}
+++ /dev/null
-{ stdenv, mylibs }:
-stdenv.mkDerivation (mylibs.fetchedGithub ./fiche.json // rec {
- installPhase = ''
- mkdir -p $out/bin
- install -m 0755 fiche $out/bin/
- '';
-})
+++ /dev/null
-{
- "tag": "4bba916-master",
- "meta": {
- "name": "fiche",
- "url": "https://github.com/solusipse/fiche",
- "branch": "master"
- },
- "github": {
- "owner": "solusipse",
- "repo": "fiche",
- "rev": "4bba916e0f4a54d98a3947df7e2d0714d92a8bab",
- "sha256": "060pxn8ns2zqszv1dlf7zcaf42avn9svya6irwy5d1ry29hp2ds9",
- "fetchSubmodules": true
- }
-}
+++ /dev/null
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost, darwin
-# Inputs
-, curl, libmms, libnfs, samba
-# Archive support
-, bzip2, zziplib
-# Codecs
-, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
-, libmad, libmikmod, mpg123, libopus, libvorbis, lame
-# Filters
-, libsamplerate
-# Outputs
-, alsaLib, libjack2, libpulseaudio, libshout
-# Misc
-, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
-# Services
-, yajl
-# Client support
-, mpd_clientlib
-# Tag support
-, libid3tag
-}:
-
-let
- lib = stdenv.lib;
-
- featureDependencies = {
- # Storage plugins
- udisks = [ dbus ];
- webdav = [ curl expat ];
- # Input plugins
- curl = [ curl ];
- mms = [ libmms ];
- nfs = [ libnfs ];
- smbclient = [ samba ];
- # Archive support
- bzip2 = [ bzip2 ];
- zzip = [ zziplib ];
- # Decoder plugins
- audiofile = [ audiofile ];
- faad = [ faad2 ];
- ffmpeg = [ ffmpeg ];
- flac = [ flac ];
- fluidsynth = [ fluidsynth ];
- gme = [ game-music-emu ];
- mad = [ libmad ];
- mikmod = [ libmikmod ];
- mpg123 = [ mpg123 ];
- opus = [ libopus ];
- vorbis = [ libvorbis ];
- # Encoder plugins
- vorbisenc = [ libvorbis ];
- lame = [ lame ];
- # Filter plugins
- libsamplerate = [ libsamplerate ];
- # Output plugins
- alsa = [ alsaLib ];
- jack = [ libjack2 ];
- pulse = [ libpulseaudio ];
- shout = [ libshout ];
- # Commercial services
- qobuz = [ curl libgcrypt yajl ];
- soundcloud = [ curl yajl ];
- tidal = [ curl yajl ];
- # Client support
- libmpdclient = [ mpd_clientlib ];
- # Tag support
- id3tag = [ libid3tag ];
- # Misc
- dbus = [ dbus ];
- expat = [ expat ];
- icu = [ icu ];
- pcre = [ pcre ];
- sqlite = [ sqlite ];
- syslog = [ ];
- systemd = [ systemd ];
- yajl = [ yajl ];
- zeroconf = [ avahi dbus ];
- };
-
- run = { features ? null }:
- let
- # Disable platform specific features if needed
- # using libmad to decode mp3 files on darwin is causing a segfault -- there
- # is probably a solution, but I'm disabling it for now
- platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smbclient" ]
- ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" "syslog" ];
-
- knownFeatures = builtins.attrNames featureDependencies;
- platformFeatures = lib.subtractLists platformMask knownFeatures;
-
- features_ = if (features == null )
- then platformFeatures
- else
- let unknown = lib.subtractLists knownFeatures features; in
- if (unknown != [])
- then throw "Unknown feature(s): ${lib.concatStringsSep " " unknown}"
- else
- let unsupported = lib.subtractLists platformFeatures features; in
- if (unsupported != [])
- then throw "Feature(s) ${lib.concatStringsSep " " unsupported} are not supported on ${stdenv.hostPlatform.system}"
- else features;
-
- in stdenv.mkDerivation rec {
- pname = "mpd";
- version = "0.21.21";
-
- src = fetchFromGitHub {
- owner = "MusicPlayerDaemon";
- repo = "MPD";
- rev = "v${version}";
- sha256 = "0ysyjlmmfm1y5jqyv83bs9p7zqr9pgj1hmdq2b7kx9kridclbnng";
- };
-
- buildInputs = [ glib boost ]
- ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
- ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AudioToolbox darwin.apple_sdk.frameworks.AudioUnit ];
-
- nativeBuildInputs = [ meson ninja pkgconfig ];
-
- enableParallelBuilding = true;
-
- mesonAutoFeatures = "disabled";
- mesonFlags =
- map (x: "-D${x}=enabled") features_
- ++ map (x: "-D${x}=disabled") (lib.subtractLists features_ knownFeatures)
- ++ lib.optional (builtins.elem "zeroconf" features_)
- "-Dzeroconf=avahi"
- ++ lib.optional (builtins.elem "systemd" features_)
- "-Dsystemd_system_unit_dir=etc/systemd/system";
-
- meta = with stdenv.lib; {
- description = "A flexible, powerful daemon for playing music";
- homepage = "https://www.musicpd.org/";
- license = licenses.gpl2;
- maintainers = with maintainers; [ astsmtl ehmry fpletz tobim ];
- platforms = platforms.unix;
-
- longDescription = ''
- Music Player Daemon (MPD) is a flexible, powerful daemon for playing
- music. Through plugins and libraries it can play a variety of sound
- files while being controlled by its network protocol.
- '';
- };
- };
-in
-{
- mpd = run { };
- mpd-small = run { features = [
- "webdav" "curl" "mms" "bzip2" "zzip"
- "audiofile" "faad" "flac" "gme" "mad"
- "mpg123" "opus" "vorbis" "vorbisenc"
- "lame" "libsamplerate" "shout"
- "libmpdclient" "id3tag" "expat" "pcre"
- "yajl" "sqlite"
- "soundcloud" "qobuz" "tidal"
- ] ++ lib.optionals stdenv.isLinux [
- "alsa" "systemd" "syslog"
- ] ++ lib.optionals (!stdenv.isDarwin) [
- "mad" "jack" "nfs"
- ]; };
- mpdWithFeatures = run;
-}
+++ /dev/null
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost168, darwin
-, cmake, libupnp, sndio, chromaprint, soxr, libcdio, libcdio-paranoia, ao, libao
-, openal
-# Inputs
-, curl, libmms, libnfs, samba
-# Archive support
-, bzip2, zziplib
-# Codecs
-, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
-, libmad, libmikmod, mpg123, libopus, libvorbis, lame
-# Filters
-, libsamplerate
-# Outputs
-, alsaLib, libjack2, libpulseaudio, libshout
-# Misc
-, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
-# Services
-, yajl
-# Client support
-, mpd_clientlib
-# Tag support
-, libid3tag
-}:
-
-let
- major = "0.21";
- minor = "7";
-
- lib = stdenv.lib;
- mkDisable = f: "-D${f}=disabled";
- mkEnable = f: "-D${f}=enabled";
- keys = lib.mapAttrsToList (k: v: k);
-
- featureDependencies = {
- # Storage plugins
- udisks = [ dbus ];
- webdav = [ curl expat ];
- # Input plugins
- curl = [ curl ];
- mms = [ libmms ];
- nfs = [ libnfs ];
- smbclient = [ samba ];
- # Archive support
- bzip2 = [ bzip2 ];
- zzip = [ zziplib ];
- # Decoder plugins
- audiofile = [ audiofile ];
- faad = [ faad2 ];
- ffmpeg = [ ffmpeg ];
- flac = [ flac ];
- fluidsynth = [ fluidsynth ];
- gme = [ game-music-emu ];
- mad = [ libmad ];
- mikmod = [ libmikmod ];
- mpg123 = [ mpg123 ];
- opus = [ libopus ];
- vorbis = [ libvorbis ];
- # Encoder plugins
- vorbisenc = [ libvorbis ];
- lame = [ lame ];
- # Filter plugins
- libsamplerate = [ libsamplerate ];
- # Output plugins
- alsa = [ alsaLib ];
- jack = [ libjack2 ];
- pulse = [ libpulseaudio ];
- shout = [ libshout ];
- # Commercial services
- qobuz = [ curl libgcrypt yajl ];
- soundcloud = [ curl yajl ];
- tidal = [ curl yajl ];
- # Client support
- libmpdclient = [ mpd_clientlib ];
- # Tag support
- id3tag = [ libid3tag ];
- # Misc
- dbus = [ dbus ];
- expat = [ expat ];
- icu = [ icu ];
- pcre = [ pcre ];
- sqlite = [ sqlite ];
- systemd = [ systemd ];
- yajl = [ yajl ];
- zeroconf = [ avahi dbus ];
- };
-
- run = { features ? null }:
- let
- fl = if (features == null )
- then keys featureDependencies
- else features;
-
- # Disable platform specific features if needed
- # using libmad to decode mp3 files on darwin is causing a segfault -- there
- # is probably a solution, but I'm disabling it for now
- platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smb" ]
- ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" ];
- features_ = lib.subtractLists platformMask fl;
-
- in stdenv.mkDerivation rec {
- name = "mpd-${version}";
- version = "${major}${if minor == "" then "" else "." + minor}";
-
- src = fetchFromGitHub {
- owner = "MusicPlayerDaemon";
- repo = "MPD";
- rev = "v${version}";
- sha256 = "11zi8hmlj63ngzl06vzx05669k20j4cdsp0caz4p4ayn46fd4m17";
- };
-
- buildInputs = [ cmake glib boost168 sndio libupnp chromaprint soxr
- libcdio libcdio-paranoia ao libao openal libvorbis
- ]
- ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
- ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AudioToolbox;
-
- nativeBuildInputs = [ meson ninja pkgconfig ];
-
- enableParallelBuilding = true;
-
- mesonFlags =
- map mkEnable features_ ++ map mkDisable (lib.subtractLists features_ (keys featureDependencies))
- ++ [ "-Dsyslog=enabled" ]
- ++ lib.optional (lib.any (x: x == "zeroconf") features_)
- "-Dzeroconf=avahi"
- ++ lib.optional stdenv.isLinux
- "-Dsystemd_system_unit_dir=etc/systemd/system";
-
- meta = with stdenv.lib; {
- description = "A flexible, powerful daemon for playing music";
- homepage = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki;
- license = licenses.gpl2;
- maintainers = with maintainers; [ astsmtl fuuzetsu ehmry fpletz ];
- platforms = platforms.unix;
-
- longDescription = ''
- Music Player Daemon (MPD) is a flexible, powerful daemon for playing
- music. Through plugins and libraries it can play a variety of sound
- files while being controlled by its network protocol.
- '';
- };
- };
-in
-{
- mpd = run { };
- mpd-small = run { features = [
- "webdav" "curl" "mms" "nfs" "bzip2" "zzip"
- "audiofile" "faad" "flac" "gme" "mad"
- "mpg123" "opus" "vorbis"
- "vorbisenc" "lame" "libsamplerate"
- "alsa" "shout" "libmpdclient"
- "id3tag" "expat" "pcre" "yajl" "sqlite"
- "soundcloud" "qobuz" "tidal"
- "systemd"
- ]; };
-}
+++ /dev/null
-{ python2Packages, mylibs }:
-with python2Packages;
-buildPythonApplication (mylibs.fetchedGithub ./pg_activity.json // {
- propagatedBuildInputs = [ psycopg2 psutil ];
-})
+++ /dev/null
-{
- "tag": "v1.4.0",
- "meta": {
- "name": "pg_activity",
- "url": "https://github.com/julmon/pg_activity/",
- "branch": "refs/tags/v1.4.0"
- },
- "github": {
- "owner": "julmon",
- "repo": "pg_activity",
- "rev": "f26ae614c204254a805309026eebd5e9230b0214",
- "sha256": "1bmvgrmna7vz2a6vknxm0k19vl9x7l6hn6vpfd7jgd53rz7c9w5p",
- "fetchSubmodules": true
- }
-}
+++ /dev/null
-{
- "tag": "c9b957c-master",
- "meta": {
- "name": "apprise",
- "url": "https://github.com/caronc/apprise",
- "branch": "master"
- },
- "github": {
- "owner": "caronc",
- "repo": "apprise",
- "rev": "c9b957c4341e7d43e5be6463bd317a7401d083d9",
- "sha256": "01zz4mh3xvplrm5xalzrcncnh0jq5y51pmdxkr4hdd6dz9wx0mbg",
- "fetchSubmodules": true
- }
-}
+++ /dev/null
-{ mylibs, pythonPackages }: with pythonPackages;
-buildPythonPackage rec {
- pname = "apprise";
- version = "0.7.4";
- src = (mylibs.fetchedGithub ./apprise.json).src;
- propagatedBuildInputs = [ decorator requests
- requests_oauthlib oauthlib urllib3 six click markdown pyyaml
- sleekxmpp
- ];
- doChecks = false;
-}
{ mylibs, callPackage, python }:
{
- apprise = callPackage ./apprise { inherit mylibs; pythonPackages = python.pkgs; };
blivet3 = callPackage ./blivet { inherit python; pythonPackages = python.pkgs; };
buildbot-plugins = callPackage ./buildbot/plugins { inherit python; };
wokkel = callPackage ./wokkel.nix { pythonPackages = python.pkgs; };
+++ /dev/null
-{ lib, stdenv, fetchurl, fetchgit, jre, coreutils, gradle_6, git, perl
-, makeWrapper }:
-
-let
- pname = "signald";
-
- version = "0.13.1";
-
- # This package uses the .git directory
- src = fetchgit {
- url = "https://gitlab.com/signald/signald";
- rev = version;
- sha256 = "1ilmg0i1kw2yc7m3hxw1bqdpl3i9wwbj8623qmz9cxhhavbcd5i7";
- leaveDotGit = true;
- };
-
- buildConfigJar = fetchurl {
- url = "https://dl.bintray.com/mfuerstenau/maven/gradle/plugin/de/fuerstenau/BuildConfigPlugin/1.1.8/BuildConfigPlugin-1.1.8.jar";
- sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f";
- };
-
- patches = [ ./git-describe-always.patch ./gradle-plugin.patch ];
-
- postPatch = ''
- patchShebangs gradlew
- sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
- '';
-
- # fake build to pre-download deps into fixed-output derivation
- deps = stdenv.mkDerivation {
- name = "${pname}-deps";
- inherit src version postPatch patches;
- nativeBuildInputs = [ gradle_6 perl ];
- buildPhase = ''
- export GRADLE_USER_HOME=$(mktemp -d)
- gradle --no-daemon build
- '';
- # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
- installPhase = ''
- find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
- | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/-jvm//r)}" #e' \
- | sh
- '';
- # Don't move info to share/
- forceShare = [ "dummy" ];
- outputHashAlgo = "sha256";
- outputHashMode = "recursive";
- outputHash = "0w8ixp1l0ch1jc2dqzxdx3ljlh17hpgns2ba7qvj43nr4prl71l7";
- };
-
-in stdenv.mkDerivation rec {
- inherit pname src version postPatch patches;
-
- buildPhase = ''
- export GRADLE_USER_HOME=$(mktemp -d)
-
- # Use the local packages from -deps
- sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle
-
- gradle --offline --no-daemon distTar
- '';
-
- installPhase = ''
- mkdir -p $out
- tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/
- wrapProgram $out/bin/signald \
- --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
- --set JAVA_HOME "${jre}"
- '';
-
- nativeBuildInputs = [ git gradle_6 makeWrapper ];
-
- doCheck = true;
-
- meta = with lib; {
- description = "Unofficial daemon for interacting with Signal";
- longDescription = ''
- Signald is a daemon that facilitates communication over Signal. It is
- unofficial, unapproved, and not nearly as secure as the real Signal
- clients.
- '';
- homepage = "https://signald.org";
- license = licenses.gpl3Plus;
- maintainers = with maintainers; [ expipiplus1 ];
- platforms = platforms.unix;
- };
-}
+++ /dev/null
-diff --git a/version.sh b/version.sh
-index 7aeeb3c..060cba3 100755
---- a/version.sh
-+++ b/version.sh
-@@ -1,3 +1,3 @@
- #!/bin/sh
--VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --abbrev=0)..HEAD --count)
-+VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --always --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --always --abbrev=0)..HEAD --count)
- echo $VERSION
+++ /dev/null
-diff --git a/build.gradle b/build.gradle
-index 11d7a99..66805bb 100644
---- a/build.gradle
-+++ b/build.gradle
-@@ -3,9 +3,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
- import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
- import org.xml.sax.SAXParseException
-
--plugins {
-- id 'de.fuerstenau.buildconfig' version '1.1.8'
-+buildscript {
-+ dependencies {
-+ classpath files ("BuildConfig.jar")
-+ }
- }
-+apply plugin: 'de.fuerstenau.buildconfig'
-
- apply plugin: 'java'
- apply plugin: 'application'
-@@ -185,4 +188,4 @@ task integrationTest(type: Test) {
- testClassesDirs = sourceSets.integrationTest.output.classesDirs
- classpath = sourceSets.integrationTest.runtimeClasspath
- outputs.upToDateWhen { false }
--}
-\ No newline at end of file
-+}
+++ /dev/null
-# Taken from nixpkgs repository
-{ lib
-, fetchFromGitHub
-, installShellFiles
-, python3Packages
-, asciidoc
-, docbook_xsl
-, git
-, perl
-, xmlto
-}:
-
-python3Packages.buildPythonApplication rec {
- pname = "stgit";
- version = "1.1";
-
- src = fetchFromGitHub {
- owner = "stacked-git";
- repo = "stgit";
- rev = "v${version}";
- sha256 = "sha256-gfPf1yRmx1Mn1TyCBWmjQJBgXLlZrDcew32C9o6uNYk=";
- };
-
- nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl ];
-
- format = "other";
-
- checkInputs = [ git perl ];
-
- postPatch = ''
- for f in Documentation/*.xsl; do
- substituteInPlace $f \
- --replace http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl \
- ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl \
- --replace http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
- ${docbook_xsl}/xml/xsl/docbook/html/docbook.xsl
- done
- '';
-
- makeFlags = [
- "prefix=${placeholder "out"}"
- "MAN_BASE_URL=${placeholder "out"}/share/man"
- "XMLTO_EXTRA=--skip-validation"
- ];
-
- buildFlags = [ "all" ];
-
- checkTarget = "test";
- checkFlags = [ "PERL_PATH=${perl}/bin/perl" ];
-
- installTargets = [ "install" ];
- postInstall = ''
- installShellCompletion \
- --zsh $out/share/stgit/completion/stgit.zsh
- '';
-
- meta = with lib; {
- description = "A patch manager implemented on top of Git";
- homepage = "https://stacked-git.github.io/";
- license = licenses.gpl2Only;
- platforms = platforms.unix;
- maintainers = with maintainers; [ jshholland ];
- };
-}
+++ /dev/null
-{ stdenv, mylibs, pkgconfig, libevent, lua, jansson, openssl, readline, zlib, libconfig }:
-stdenv.mkDerivation (mylibs.fetchedGithub ./telegram-cli.json // {
- buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ];
- preBuild = ''
- sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c
- '';
- installPhase = ''
- mkdir -p $out
- install -Dm755 bin/telegram-cli $out/bin/telegram-cli
- install -Dm644 tg-server.pub $out/etc/server.pub
- install -Dm644 debian/telegram-cli.8 $out/man/man8/telegram-cli.8
- '';
-})
+++ /dev/null
-{
- "tag": "3da0e4a-master",
- "meta": {
- "name": "telegram-cli",
- "url": "https://github.com/kenorb-contrib/tg/",
- "branch": "master"
- },
- "github": {
- "owner": "kenorb-contrib",
- "repo": "tg",
- "rev": "3da0e4a54c3a63cee11aae3c23f2077adfc4949d",
- "sha256": "0pvswzajipzkk1x5cyf10dw18ka9jalar0aa2i7y23ifm4ddnif4",
- "fetchSubmodules": true
- }
-}
+++ /dev/null
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, Babel
-, colorama
-, cssselect
-, dateutil
-, feedparser
-, gdata
-, gnupg
-, html2text
-, libyaml
-, lxml
-, mechanize
-, nose
-, pdfminer
-, pillow
-, prettytable
-, pyqt5
-, pyyaml
-, requests
-, simplejson
-, termcolor
-, unidecode
-}:
-
-buildPythonPackage rec {
- pname = "woob";
- version = "3.0";
- disabled = isPy27;
-
- src = fetchPypi {
- inherit pname version;
- sha256 = "09hpxy5zhn2b8li0xjf3zd7s46lawb0315p5mdcsci3bj3s4v1j7";
- };
-
- nativeBuildInputs = [ pyqt5 ];
-
- propagatedBuildInputs = [
- Babel
- colorama
- cssselect
- dateutil
- feedparser
- gdata
- gnupg
- html2text
- libyaml
- lxml
- mechanize
- pdfminer
- pillow
- prettytable
- pyqt5
- pyyaml
- requests
- simplejson
- termcolor
- unidecode
- ];
-
- doCheck = false;
-
- meta = with lib; {
- homepage = "https://woob.tech";
- description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
- license = licenses.lgpl3Plus;
- maintainers = [ maintainers.DamienCassou ];
- };
-}
-
+++ /dev/null
-{ buildGoModule, fetchFromGitHub }:
-buildGoModule rec {
- name = "zrepl-${version}";
- version = "0.3.0";
- src = fetchFromGitHub {
- owner = "zrepl";
- repo = "zrepl";
- rev = "v${version}";
- sha256 = "11wfdvi3f4yw7kdapf0l38illnnn7jgi5cp4whrg5zsqyc0wqrym";
- };
- modSha256 = "0gh0x8321dhk1nhg1as0bl1bxlblrrcxxl1rb1d8825ly8bhcdkb";
- vendorSha256 = "0gh0x8321dhk1nhg1as0bl1bxlblrrcxxl1rb1d8825ly8bhcdkb";
- subPackages = [ "." ];
-}