diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking')
586 files changed, 54991 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/3proxy/default.nix b/nixpkgs/pkgs/applications/networking/3proxy/default.nix new file mode 100644 index 000000000000..a1e54b502289 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/3proxy/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, coreutils }: + +stdenv.mkDerivation rec { + pname = "3proxy"; + version = "0.8.13"; + src = fetchFromGitHub { + owner = "z3APA3A"; + repo = pname; + rev = version; + sha256 = "1k5rqldiyakhwhplazlhswkgy3psdkpxhn85605ncwaqx49qy8vk"; + }; + makeFlags = [ + "INSTALL=${coreutils}/bin/install" + "prefix=$(out)" + ]; + preConfigure = '' + ln -s Makefile.Linux Makefile + ''; + meta = with stdenv.lib; { + description = "Tiny free proxy server"; + homepage = "https://github.com/z3APA3A/3proxy"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.misuzu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/Sylk/default.nix b/nixpkgs/pkgs/applications/networking/Sylk/default.nix new file mode 100644 index 000000000000..36f6279c2092 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/Sylk/default.nix @@ -0,0 +1,32 @@ +{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }: + +let + pname = "Sylk"; + version = "2.1.0"; +in + +appimageTools.wrapType2 rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage"; + sha256 = "1ifi8qr6f84dcssxhv5ar1s48nsqxiv2j1blc82248hmq5is24mf"; + }; + + profile = '' + export LC_ALL=C.UTF-8 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = "mv $out/bin/{${name},${pname}}"; + + meta = with lib; { + description = "Sylk WebRTC client"; + homepage = "http://sylkserver.com/"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ zimbatm ]; + platforms = [ "i386-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix new file mode 100644 index 000000000000..0c8136724ffc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchurl, xorg, jre, makeWrapper, makeDesktopItem }: + +let + rpath = stdenv.lib.makeLibraryPath (with xorg; [ + libXtst + ]); + + desktopItem = makeDesktopItem { + name = "apache-directory-studio"; + exec = "ApacheDirectoryStudio"; + icon = "apache-directory-studio"; + comment = "Eclipse-based LDAP browser and directory client"; + desktopName = "Apache Directory Studio"; + genericName = "Apache Directory Studio"; + categories = "Java;Network"; + }; + version = "2.0.0-M14"; + versionWithDate = "2.0.0.v20180908-M14"; +in +stdenv.mkDerivation rec { + pname = "apache-directory-studio"; + inherit version; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86_64.tar.gz"; + sha256 = "0kq4l3755q69p7bry9xpm5xxw56ksncp76fdqqd1xzbvsg309bps"; + } + else if stdenv.hostPlatform.system == "i686-linux" then + fetchurl { + url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86.tar.gz"; + sha256 = "038dy8jjgq5gj5r56y9ps3ycqi9gn57i4q1r3mmjx1b1950wmh1q"; + } + else throw "Unsupported system: ${stdenv.hostPlatform.system}"; + + buildInputs = [ makeWrapper ]; + + installPhase = '' + dest="$out/libexec/ApacheDirectoryStudio" + mkdir -p "$dest" + cp -r . "$dest" + + mkdir -p "$out/bin" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$dest/ApacheDirectoryStudio" + makeWrapper "$dest/ApacheDirectoryStudio" \ + "$out/bin/ApacheDirectoryStudio" \ + --prefix PATH : "${jre}/bin" \ + --prefix LD_LIBRARY_PATH : "${rpath}" + install -D icon.xpm "$out/share/pixmaps/apache-directory-studio.xpm" + install -D -t "$out/share/applications" ${desktopItem}/share/applications/* + ''; + + meta = with stdenv.lib; { + description = "Eclipse-based LDAP browser and directory client"; + homepage = "https://directory.apache.org/studio/"; + license = licenses.asl20; + # Upstream supports macOS and Windows too. + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/brig/default.nix b/nixpkgs/pkgs/applications/networking/brig/default.nix new file mode 100644 index 000000000000..31eb4dd7378a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/brig/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "brig"; + version = "0.4.1"; + rev = "v${version}"; + + goPackagePath = "github.com/sahib/brig"; + subPackages = ["."]; + + src = fetchFromGitHub { + owner = "sahib"; + repo = "brig"; + inherit rev; + sha256 = "0gi39jmnzqrgj146yw8lcmgmvzx7ii1dgw4iqig7kx8c0jiqi600"; + }; + + meta = with stdenv.lib; { + description = "File synchronization on top of ipfs with git like interface and FUSE filesystem"; + homepage = https://github.com/sahib/brig; + license = licenses.agpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ offline ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix b/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix new file mode 100644 index 000000000000..57db827169ec --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, qt4, qmake4Hook }: + +stdenv.mkDerivation rec { + pname = "arora"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "Arora"; + repo = "arora"; + rev = version; + sha256 = "0wmivgx3mw51rghi6q8fgivpkqc98z2mqmllf7c98ln0wd8rkf3c"; + }; + + buildInputs = [ qt4 ]; + nativeBuildInputs = [ qmake4Hook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + platforms = qt4.meta.platforms; + maintainers = [ maintainers.phreedom ]; + description = "A cross-platform Qt4 Webkit browser"; + homepage = https://github.com/Arora/arora; + license = with licenses; [ gpl2 gpl3 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix new file mode 100644 index 000000000000..ef0b8ec76190 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix @@ -0,0 +1,157 @@ +{ stdenv, lib, fetchurl +, dpkg +, alsaLib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, dbus +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gnome2 +, gnome3 +, gsettings-desktop-schemas +, gtk3 +, libpulseaudio +, libuuid +, libX11 +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXrandr +, libXrender +, libXScrnSaver +, libXtst +, nspr +, nss +, pango +, udev +, xorg +, zlib +, xdg_utils +, wrapGAppsHook +}: + +let + +rpath = lib.makeLibraryPath [ + alsaLib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libpulseaudio + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libuuid + nspr + nss + pango + udev + xdg_utils + xorg.libxcb + zlib +]; + +in + +stdenv.mkDerivation rec { + pname = "brave"; + version = "1.1.23"; + + src = fetchurl { + url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; + sha256 = "1kb40h5d76k6p338h75p8lxs0cb88jaasss0cmb7bfc7zykfqmd3"; + }; + + dontConfigure = true; + dontBuild = true; + dontPatchELF = true; + + nativeBuildInputs = [ dpkg wrapGAppsHook ]; + + buildInputs = [ glib gsettings-desktop-schemas gnome3.adwaita-icon-theme ]; + + unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner"; + + installPhase = '' + mkdir -p $out $out/bin + + cp -R usr/share $out + cp -R opt/ $out/opt + + export BINARYWRAPPER=$out/opt/brave.com/brave/brave-browser + + # Fix path to bash in $BINARYWRAPPER + substituteInPlace $BINARYWRAPPER \ + --replace /bin/bash ${stdenv.shell} + + ln -sf $BINARYWRAPPER $out/bin/brave + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${rpath}" $out/opt/brave.com/brave/brave + + # Fix paths + substituteInPlace $out/share/applications/brave-browser.desktop \ + --replace /usr/bin/brave-browser-stable $out/bin/brave + substituteInPlace $out/share/gnome-control-center/default-apps/brave-browser.xml \ + --replace /opt/brave.com $out/opt/brave.com + substituteInPlace $out/share/menu/brave-browser.menu \ + --replace /opt/brave.com $out/opt/brave.com + substituteInPlace $out/opt/brave.com/brave/default-app-block \ + --replace /opt/brave.com $out/opt/brave.com + + # Correct icons location + icon_sizes=("16" "22" "24" "32" "48" "64" "128" "256") + + for icon in ''${icon_sizes[*]} + do + mkdir -p $out/share/icons/hicolor/$icon\x$icon/apps + ln -s $out/opt/brave.com/brave/product_logo_$icon.png $out/share/icons/hicolor/$icon\x$icon/apps/brave-browser.png + done + + # Replace xdg-settings and xdg-mime + ln -sf ${xdg_utils}/bin/xdg-settings $out/opt/brave.com/brave/xdg-settings + ln -sf ${xdg_utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime + ''; + + meta = with stdenv.lib; { + homepage = "https://brave.com/"; + description = "Privacy-oriented browser for Desktop and Laptop computers"; + changelog = "https://github.com/brave/brave-browser/blob/v${version}/CHANGELOG.md"; + longDescription = '' + Brave browser blocks the ads and trackers that slow you down, + chew up your bandwidth, and invade your privacy. Brave lets you + contribute to your favorite creators automatically. + ''; + license = licenses.mpl20; + maintainers = with maintainers; [ uskudnik rht ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix new file mode 100644 index 000000000000..2b910fe0c5c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix @@ -0,0 +1,61 @@ +{ stdenv, buildGoPackage, fetchurl, fetchFromGitHub, go-bindata }: + +let + version = "1.6.4"; + + # TODO: must build the extension instead of downloading it. But since it's + # literally an asset that is indifferent regardless of the platform, this + # might be just enough. + webext = fetchurl { + url = "https://github.com/browsh-org/browsh/releases/download/v${version}/browsh-${version}-an.fx.xpi"; + sha256 = "1shf1s9s525wns5vrsc4ns21zjxm1si43lx6v0q8ma6vd5x5445l"; + }; + +in buildGoPackage rec { + inherit version; + + pname = "browsh"; + + goPackagePath = "browsh"; + + # further go package dependencies are defined in deps.nix, see line below. + src = fetchFromGitHub { + owner = "browsh-org"; + repo = "browsh"; + rev = "v${version}"; + sha256 = "0gvf5k1gm81xxg7ha309kgfkgl5357dli0fbc4z01rmfgbl0rfa0"; + }; + + buildInputs = [ go-bindata ]; + + # embed the web extension in a go file and place it where it's supposed to + # be. See + # https://github.com/browsh-org/browsh/blob/v1.5.0/interfacer/contrib/xpi2bin.sh + preBuild = '' + xpiprefix="$(mktemp -d)" + cp "${webext}" "$xpiprefix/browsh.xpi" + go-bindata \ + -prefix "$xpiprefix" \ + -pkg browsh \ + -o "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/webextension.go" \ + "$xpiprefix/browsh.xpi" + + sed \ + -e 's:Asset("/browsh.xpi"):Asset("browsh.xpi"):g' \ + -i "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/firefox.go" + ''; + + postBuild = '' + mv "$NIX_BUILD_TOP/go/bin/src" "$NIX_BUILD_TOP/go/bin/browsh" + ''; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "A fully-modern text-based browser, rendering to TTY and browsers"; + homepage = https://www.brow.sh/; + maintainers = [ maintainers.kalbasit ]; + license = stdenv.lib.licenses.lgpl21; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix new file mode 100644 index 000000000000..9a6a898beb5b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix @@ -0,0 +1,264 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "github.com/NYTimes/gziphandler"; + fetch = { + type = "git"; + url = "https://github.com/NYTimes/gziphandler"; + rev = "dd0439581c7657cb652dfe5c71d7d48baf39541d"; + sha256 = "0rhrjlw220hnymzfccm0yir3pc9dpj7h3gwzhzq2cbsb3hhsqvyy"; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "github.com/gdamore/encoding"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/encoding"; + rev = "6289cdc94c00ac4aa177771c5fce7af2f96b626d"; + sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"; + }; + } + { + goPackagePath = "github.com/gdamore/tcell"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/tcell"; + rev = "b5d0c1ac570211e469f43ff88c0c6aa4b56cc99a"; + sha256 = "0g2zfbgyk3djlk0qpmrgcyy0ba9ad932yswpaacswi21qyf9gwag"; + }; + } + { + goPackagePath = "github.com/go-errors/errors"; + fetch = { + type = "git"; + url = "https://github.com/go-errors/errors"; + rev = "a6af135bd4e28680facf08a3d206b454abc877a4"; + sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d"; + sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "8cb6e5b959231cc1119e43259c4a608f9c51a241"; + sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"; + }; + } + { + goPackagePath = "github.com/hpcloud/tail"; + fetch = { + type = "git"; + url = "https://github.com/hpcloud/tail"; + rev = "a30252cb686a21eb2d0b98132633053ec2f7f1e5"; + sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0"; + }; + } + { + goPackagePath = "github.com/lucasb-eyer/go-colorful"; + fetch = { + type = "git"; + url = "https://github.com/lucasb-eyer/go-colorful"; + rev = "30298f24079860c4dee452fdef6519b362a4a026"; + sha256 = "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"; + }; + } + { + goPackagePath = "github.com/magiconair/properties"; + fetch = { + type = "git"; + url = "https://github.com/magiconair/properties"; + rev = "de8848e004dd33dc07a2947b3d76f618a7fc7ef1"; + sha256 = "19zqw1x0w0crh8zc84yy82nkcc5yjz72gviaf2xjgfm5a8np7nyb"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "3ee7d812e62a0804a7d0a324e0249ca2db3476d3"; + sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "3536a929edddb9a5b34bd6861dc4a9647cb459fe"; + sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"; + }; + } + { + goPackagePath = "github.com/onsi/ginkgo"; + fetch = { + type = "git"; + url = "https://github.com/onsi/ginkgo"; + rev = "eea6ad008b96acdaa524f5b409513bf062b500ad"; + sha256 = "1326s5fxgasdpz1qqwrw4n5p3k0vz44msnyz14knrhlw5l97lx33"; + }; + } + { + goPackagePath = "github.com/onsi/gomega"; + fetch = { + type = "git"; + url = "https://github.com/onsi/gomega"; + rev = "90e289841c1ed79b7a598a7cd9959750cb5e89e2"; + sha256 = "1n7i4hksdgv410m43v2sw14bl5vy59dkp6nlw5l76nibbh37syr9"; + }; + } + { + goPackagePath = "github.com/pelletier/go-toml"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-toml"; + rev = "728039f679cbcd4f6a54e080d2219a4c4928c546"; + sha256 = "1v76s3vds0i9dxaha4ikd6xjm7vqqfk6sy9l6jc2lsvmj99d5sy6"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "ba968bfe8b2f7e042a574c888954fccecfa385b4"; + sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; + }; + } + { + goPackagePath = "github.com/shibukawa/configdir"; + fetch = { + type = "git"; + url = "https://github.com/shibukawa/configdir"; + rev = "e180dbdc8da04c4fa04272e875ce64949f38bd3e"; + sha256 = "0vbma9jkwh0ifz8dk2ssgmy7aiaify63lpa0lah7i4dkkxr94c9z"; + }; + } + { + goPackagePath = "github.com/spf13/afero"; + fetch = { + type = "git"; + url = "https://github.com/spf13/afero"; + rev = "588a75ec4f32903aa5e39a2619ba6a4631e28424"; + sha256 = "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9"; + }; + } + { + goPackagePath = "github.com/spf13/cast"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cast"; + rev = "8c9545af88b134710ab1cd196795e7f2388358d7"; + sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5"; + }; + } + { + goPackagePath = "github.com/spf13/jwalterweatherman"; + fetch = { + type = "git"; + url = "https://github.com/spf13/jwalterweatherman"; + rev = "94f6ae3ed3bceceafa716478c5fbf8d29ca601a1"; + sha256 = "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "298182f68c66c05229eb03ac171abe6e309ee79a"; + sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd"; + }; + } + { + goPackagePath = "github.com/spf13/viper"; + fetch = { + type = "git"; + url = "https://github.com/spf13/viper"; + rev = "b5bf975e5823809fb22c7644d008757f78a4259e"; + sha256 = "1zpzxvn13wpvbblbbn73svaq39zgxfjqhci9d68g3qf309pcfy19"; + }; + } + { + goPackagePath = "github.com/ulule/limiter"; + fetch = { + type = "git"; + url = "https://github.com/ulule/limiter"; + rev = "38b2a440be905c8be884fd5e114dc893a64e5d81"; + sha256 = "0sbbfz9k3m2hf45cx7y7xshsr3rac495lks9ciwmnrzsnxfdh3l5"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "461777fb6f67e8cb9d70cda16573678d085a74cf"; + sha256 = "0sc0llch05q6h7nqgayi3sgismsznpnlsz4gh89y4klpymdcpbh2"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "93c9922d18aeb82498a065f07aec7ad7fa60dfb7"; + sha256 = "0hv96nwbv0li3nrv43ldfzmf12yrrbji2cf8n44iibv8ps5kfssx"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "gopkg.in/fsnotify.v1"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "gopkg.in/tomb.v1"; + fetch = { + type = "git"; + url = "https://github.com/go-tomb/tomb"; + rev = "dd632973f1e7218eb1089048e0798ec9ae7dceb8"; + sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "51d6538a90f86fe93ac480b35f37b2be17fef232"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } +] \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix new file mode 100644 index 000000000000..e7bec997119e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix @@ -0,0 +1,22 @@ +{ lib, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + name = "captive-browser"; + version = "2019-04-16"; + goPackagePath = name; + + src = fetchFromGitHub { + owner = "FiloSottile"; + repo = "captive-browser"; + rev = "08450562e58bf9564ee98ad64ef7b2800e53338f"; + sha256 = "17icgjg7h0xm8g4yy38qjhsvlz9pmlmj9kydz01y2nyl0v02i648"; + }; + + meta = with lib; { + description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings"; + homepage = https://blog.filippo.io/captive-browser; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ volth ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix new file mode 100644 index 000000000000..bbfce71a115c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix @@ -0,0 +1,70 @@ +{ stdenv, mkChromiumDerivation, channel, enableWideVine }: + +with stdenv.lib; + +mkChromiumDerivation (base: rec { + name = "chromium-browser"; + packageName = "chromium"; + buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ]; + + outputs = ["out" "sandbox"]; + + sandboxExecutableName = "__chromium-suid-sandbox"; + + installPhase = '' + mkdir -p "$libExecPath" + cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/" + cp -v "$buildPath/icudtl.dat" "$libExecPath/" + cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" + cp -v "$buildPath/chrome" "$libExecPath/$packageName" + + mkdir -p "$sandbox/bin" + cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}" + + mkdir -vp "$out/share/man/man1" + cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1" + + for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do + num_and_suffix="''${icon_file##*logo_}" + icon_size="''${num_and_suffix%.*}" + expr "$icon_size" : "^[0-9][0-9]*$" || continue + logo_output_prefix="$out/share/icons/hicolor" + logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps" + mkdir -vp "$logo_output_path" + cp -v "$icon_file" "$logo_output_path/$packageName.png" + done + + # Install Desktop Entry + install -D chrome/installer/linux/common/desktop.template \ + $out/share/applications/chromium-browser.desktop + + substituteInPlace $out/share/applications/chromium-browser.desktop \ + --replace "@@MENUNAME@@" "Chromium" \ + --replace "@@PACKAGE@@" "chromium" \ + --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium" + + # Append more mime types to the end + sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \ + $out/share/applications/chromium-browser.desktop + + # See https://github.com/NixOS/nixpkgs/issues/12433 + sed -i \ + -e '/\[Desktop Entry\]/a\' \ + -e 'StartupWMClass=chromium-browser' \ + $out/share/applications/chromium-browser.desktop + ''; + + passthru = { inherit sandboxExecutableName; }; + + requiredSystemFeatures = [ "big-parallel" ]; + + meta = { + description = "An open source web browser from Google"; + homepage = http://www.chromium.org/; + maintainers = with maintainers; [ bendlas ivan thefloweringash ]; + license = if enableWideVine then licenses.unfree else licenses.bsd3; + platforms = platforms.linux; + hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else []; + timeout = 172800; # 48 hours + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix new file mode 100644 index 000000000000..31e699161968 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix @@ -0,0 +1,312 @@ +{ stdenv, llvmPackages, gn, ninja, which, nodejs, fetchpatch, gnutar + +# default dependencies +, bzip2, flac, speex, libopus +, libevent, expat, libjpeg, snappy +, libpng, libcap +, xdg_utils, yasm, minizip, libwebp +, libusb1, pciutils, nss, re2, zlib + +, python2Packages, perl, pkgconfig +, nspr, systemd, kerberos +, utillinux, alsaLib +, bison, gperf +, glib, gtk3, dbus-glib +, glibc +, libXScrnSaver, libXcursor, libXtst, libGLU, libGL +, protobuf, speechd, libXdamage, cups +, ffmpeg, libxslt, libxml2, at-spi2-core +, jre + +# optional dependencies +, libgcrypt ? null # gnomeSupport || cupsSupport +, libva ? null # useVaapi + +# package customization +, useVaapi ? false +, gnomeSupport ? false, gnome ? null +, gnomeKeyringSupport ? false, libgnome-keyring3 ? null +, proprietaryCodecs ? true +, cupsSupport ? true +, pulseSupport ? false, libpulseaudio ? null + +, upstream-info +}: + +buildFun: + +with stdenv.lib; + +# see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html + +let + # The additional attributes for creating derivations based on the chromium + # source tree. + extraAttrs = buildFun base; + + githubPatch = commit: sha256: fetchpatch { + url = "https://github.com/chromium/chromium/commit/${commit}.patch"; + inherit sha256; + }; + + mkGnFlags = + let + # Serialize Nix types into GN types according to this document: + # https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/language.md + mkGnString = value: "\"${escape ["\"" "$" "\\"] value}\""; + sanitize = value: + if value == true then "true" + else if value == false then "false" + else if isList value then "[${concatMapStringsSep ", " sanitize value}]" + else if isInt value then toString value + else if isString value then mkGnString value + else throw "Unsupported type for GN value `${value}'."; + toFlag = key: value: "${key}=${sanitize value}"; + in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs)); + + gnSystemLibraries = [ + "flac" "libwebp" "libxslt" "yasm" "opus" "snappy" "libpng" + # "zlib" # version 77 reports unresolved dependency on //third_party/zlib:zlib_config + # "libjpeg" # fails with multiple undefined references to chromium_jpeg_* + # "re2" # fails with linker errors + # "ffmpeg" # https://crbug.com/731766 + # "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together + # so we can't build with one from system and other from source + ]; + + opusWithCustomModes = libopus.override { + withCustomModes = true; + }; + + defaultDependencies = [ + bzip2 flac speex opusWithCustomModes + libevent expat libjpeg snappy + libpng libcap + xdg_utils yasm minizip libwebp + libusb1 re2 zlib + ffmpeg libxslt libxml2 + # harfbuzz # in versions over 63 harfbuzz and freetype are being built together + # so we can't build with one from system and other from source + ]; + + # build paths and release info + packageName = extraAttrs.packageName or extraAttrs.name; + buildType = "Release"; + buildPath = "out/${buildType}"; + libExecPath = "$out/libexec/${packageName}"; + + versionRange = min-version: upto-version: + let inherit (upstream-info) version; + result = versionAtLeast version min-version && versionOlder version upto-version; + stable-version = (import ./upstream-info.nix).stable.version; + in if versionAtLeast stable-version upto-version + then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it." + result + else result; + + base = rec { + name = "${packageName}-unwrapped-${version}"; + inherit (upstream-info) channel version; + inherit packageName buildType buildPath; + + src = upstream-info.main; + + nativeBuildInputs = [ + ninja which python2Packages.python perl pkgconfig + python2Packages.ply python2Packages.jinja2 nodejs + gnutar + ]; + + buildInputs = defaultDependencies ++ [ + nspr nss systemd + utillinux alsaLib + bison gperf kerberos + glib gtk3 dbus-glib + libXScrnSaver libXcursor libXtst libGLU libGL + pciutils protobuf speechd libXdamage at-spi2-core + jre + ] ++ optional gnomeKeyringSupport libgnome-keyring3 + ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] + ++ optionals cupsSupport [ libgcrypt cups ] + ++ optional useVaapi libva + ++ optional pulseSupport libpulseaudio; + + patches = [ + ./patches/nix_plugin_paths_68.patch + ./patches/remove-webp-include-69.patch + ./patches/no-build-timestamps.patch + ./patches/widevine-79.patch + ./patches/dont-use-ANGLE-by-default.patch + # Unfortunately, chromium regularly breaks on major updates and + # then needs various patches backported in order to be compiled with GCC. + # Good sources for such patches and other hints: + # - https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/ + # - https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium + # - https://github.com/chromium/chromium/search?q=GCC&s=committer-date&type=Commits + # + # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ] + # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) + ] ++ optionals (useVaapi) [ + # source: https://aur.archlinux.org/cgit/aur.git/tree/vaapi-fix.patch?h=chromium-vaapi + ./patches/vaapi-fix.patch + ]; + + postPatch = '' + # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX + substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \ + --replace \ + 'return sandbox_binary;' \ + 'return base::FilePath(GetDevelSandboxPath());' + + substituteInPlace services/audio/audio_sandbox_hook_linux.cc \ + --replace \ + '/usr/share/alsa/' \ + '${alsaLib}/share/alsa/' \ + --replace \ + '/usr/lib/x86_64-linux-gnu/gconv/' \ + '${glibc}/lib/gconv/' \ + --replace \ + '/usr/share/locale/' \ + '${glibc}/share/locale/' + + sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \ + chrome/browser/shell_integration_linux.cc + + sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \ + device/udev_linux/udev?_loader.cc + + sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \ + gpu/config/gpu_info_collector_linux.cc + + sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \ + chrome/browser/ui/webui/engagement/site_engagement_ui.cc + + sed -i -e '/#include/ { + i #include <algorithm> + :l; n; bl + }' gpu/config/gpu_control_list.cc + + # Allow to put extensions into the system-path. + sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc + + patchShebangs . + # use our own nodejs + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s $(which node) third_party/node/linux/node-linux-x64/bin/node + + # remove unused third-party + # in third_party/crashpad third_party/zlib contains just a header-adapter + for lib in ${toString gnSystemLibraries}; do + find -type f -path "*third_party/$lib/*" \ + \! -path "*third_party/crashpad/crashpad/third_party/zlib/*" \ + \! -path "*third_party/$lib/chromium/*" \ + \! -path "*third_party/$lib/google/*" \ + \! -path "*base/third_party/icu/*" \ + \! -path "*base/third_party/libevent/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + done + '' + optionalString stdenv.isAarch64 '' + substituteInPlace build/toolchain/linux/BUILD.gn \ + --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""' + '' + optionalString stdenv.cc.isClang '' + mkdir -p third_party/llvm-build/Release+Asserts/bin + ln -s ${stdenv.cc}/bin/clang third_party/llvm-build/Release+Asserts/bin/clang + ln -s ${stdenv.cc}/bin/clang++ third_party/llvm-build/Release+Asserts/bin/clang++ + ln -s ${llvmPackages.llvm}/bin/llvm-ar third_party/llvm-build/Release+Asserts/bin/llvm-ar + ''; + + gnFlags = mkGnFlags ({ + linux_use_bundled_binutils = false; + use_lld = false; + use_gold = true; + gold_path = "${stdenv.cc}/bin"; + is_debug = false; + + proprietary_codecs = false; + use_sysroot = false; + use_gnome_keyring = gnomeKeyringSupport; + use_gio = gnomeSupport; + # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy', + # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it + enable_nacl = false; + # Enabling the Widevine component here doesn't affect whether we can + # redistribute the chromium package; the Widevine component is either + # added later in the wrapped -wv build or downloaded from Google. + enable_widevine = true; + use_cups = cupsSupport; + + treat_warnings_as_errors = false; + is_clang = stdenv.cc.isClang; + clang_use_chrome_plugins = false; + blink_symbol_level = 0; + enable_swiftshader = false; + fieldtrial_testing_like_official_build = true; + + # Google API keys, see: + # http://www.chromium.org/developers/how-tos/api-keys + # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, + # please get your own set of keys. + google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI"; + google_default_client_id = "404761575300.apps.googleusercontent.com"; + google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D"; + } // optionalAttrs proprietaryCodecs { + # enable support for the H.264 codec + proprietary_codecs = true; + enable_hangout_services_extension = true; + ffmpeg_branding = "Chrome"; + } // optionalAttrs useVaapi { + use_vaapi = true; + } // optionalAttrs pulseSupport { + use_pulseaudio = true; + link_pulseaudio = true; + } // (extraAttrs.gnFlags or {})); + + configurePhase = '' + runHook preConfigure + + # This is to ensure expansion of $out. + libExecPath="${libExecPath}" + python build/linux/unbundle/replace_gn_files.py \ + --system-libraries ${toString gnSystemLibraries} + ${gn}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt + + # Fail if `gn gen` contains a WARNING. + grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1 + + runHook postConfigure + ''; + + buildPhase = let + # Build paralelism: on Hydra the build was frequently running into memory + # exhaustion, and even other users might be running into similar issues. + # -j is halved to avoid memory problems, and -l is slightly increased + # so that the build gets slight preference before others + # (it will often be on "critical path" and at risk of timing out) + buildCommand = target: '' + ninja -C "${buildPath}" \ + -j$(( ($NIX_BUILD_CORES+1) / 2 )) -l$(( $NIX_BUILD_CORES+1 )) \ + "${target}" + ( + source chrome/installer/linux/common/installer.include + PACKAGE=$packageName + MENUNAME="Chromium" + process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1" + ) + ''; + targets = extraAttrs.buildTargets or []; + commands = map buildCommand targets; + in concatStringsSep "\n" commands; + + postFixup = '' + # Make sure that libGLESv2 is found by dlopen (if using EGL). + chromiumBinary="$libExecPath/$packageName" + origRpath="$(patchelf --print-rpath "$chromiumBinary")" + patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary" + ''; + }; + +# Remove some extraAttrs we supplied to the base attributes already. +in stdenv.mkDerivation (base // removeAttrs extraAttrs [ + "name" "gnFlags" "buildTargets" +]) diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix new file mode 100644 index 000000000000..c3522e17379b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix @@ -0,0 +1,188 @@ +{ newScope, config, stdenv, llvmPackages_9 +, makeWrapper, ed +, glib, gtk3, gnome3, gsettings-desktop-schemas +, libva ? null +, gcc, nspr, nss, patchelfUnstable, runCommand +, lib + +# package customization +, channel ? "stable" +, gnomeSupport ? false, gnome ? null +, gnomeKeyringSupport ? false +, proprietaryCodecs ? true +, enablePepperFlash ? false +, enableWideVine ? false +, useVaapi ? false # test video on radeon, before enabling this +, cupsSupport ? true +, pulseSupport ? config.pulseaudio or stdenv.isLinux +, commandLineArgs ? "" +}: + +let + stdenv = llvmPackages_9.stdenv; + llvmPackages = llvmPackages_9; + + callPackage = newScope chromium; + + chromium = { + inherit stdenv llvmPackages; + + upstream-info = (callPackage ./update.nix {}).getChannel channel; + + mkChromiumDerivation = callPackage ./common.nix { + inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useVaapi; + }; + + browser = callPackage ./browser.nix { inherit channel enableWideVine; }; + + plugins = callPackage ./plugins.nix { + inherit enablePepperFlash; + }; + }; + + mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}"; + widevineCdm = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation { + name = "chrome-widevine-cdm"; + + # The .deb file for Google Chrome + src = upstream-info.binary; + + nativeBuildInputs = [ patchelfUnstable ]; + + phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ]; + + unpackCmd = let + widevineCdmPath = + if upstream-info.channel == "stable" then + "./opt/google/chrome/WidevineCdm" + else if upstream-info.channel == "beta" then + "./opt/google/chrome-beta/WidevineCdm" + else if upstream-info.channel == "dev" then + "./opt/google/chrome-unstable/WidevineCdm" + else + throw "Unknown chromium channel."; + in '' + # Extract just WidevineCdm from upstream's .deb file + ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}" + + # Move things around so that we don't have to reference a particular + # chrome-* directory later. + mv "${widevineCdmPath}" ./ + + # unpackCmd wants a single output directory; let it take WidevineCdm/ + rm -rf opt + ''; + + doCheck = true; + checkPhase = '' + ! find -iname '*.so' -exec ldd {} + | grep 'not found' + ''; + + PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ]; + + patchPhase = '' + patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so + ''; + + installPhase = '' + mkdir -p $out/WidevineCdm + cp -a * $out/WidevineCdm/ + ''; + + meta = { + platforms = [ "x86_64-linux" ]; + license = lib.licenses.unfree; + }; + }; + + suffix = if channel != "stable" then "-" + channel else ""; + + sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName; + + version = chromium.browser.version; + + # We want users to be able to enableWideVine without rebuilding all of + # chromium, so we have a separate derivation here that copies chromium + # and adds the unfree WidevineCdm. + chromiumWV = let browser = chromium.browser; in if enableWideVine then + runCommand (browser.name + "-wv") { version = browser.version; } + '' + mkdir -p $out + cp -a ${browser}/* $out/ + chmod u+w $out/libexec/chromium + cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/ + '' + else browser; +in stdenv.mkDerivation { + name = "chromium${suffix}-${version}"; + inherit version; + + buildInputs = [ + makeWrapper ed + + # needed for GSETTINGS_SCHEMAS_PATH + gsettings-desktop-schemas glib gtk3 + + # needed for XDG_ICON_DIRS + gnome3.adwaita-icon-theme + ]; + + outputs = ["out" "sandbox"]; + + buildCommand = let + browserBinary = "${chromiumWV}/libexec/chromium/chromium"; + getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")"; + libPath = stdenv.lib.makeLibraryPath ([] + ++ stdenv.lib.optional useVaapi libva + ); + + in with stdenv.lib; '' + mkdir -p "$out/bin" + + eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ + --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \ + ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled} + + ed -v -s "$out/bin/chromium" << EOF + 2i + + if [ -x "/run/wrappers/bin/${sandboxExecutableName}" ] + then + export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/${sandboxExecutableName}" + else + export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}" + fi + + '' + lib.optionalString (libPath != "") '' + # To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not + # contain an empty section before or after a colon. + export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${libPath}" + '' + '' + + # libredirect causes chromium to deadlock on startup + export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')" + + export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS + + . + w + EOF + + ln -sv "${chromium.browser.sandbox}" "$sandbox" + + ln -s "$out/bin/chromium" "$out/bin/chromium-browser" + + mkdir -p "$out/share" + for f in '${chromium.browser}'/share/*; do # hello emacs */ + ln -s -t "$out/share/" "$f" + done + ''; + + inherit (chromium.browser) packageName; + meta = chromium.browser.meta; + passthru = { + inherit (chromium) upstream-info browser; + mkDerivation = chromium.mkChromiumDerivation; + inherit sandboxExecutableName; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/dont-use-ANGLE-by-default.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/dont-use-ANGLE-by-default.patch new file mode 100644 index 000000000000..9f14a304eb34 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/dont-use-ANGLE-by-default.patch @@ -0,0 +1,26 @@ +A field trial currently enables the passthrough command decoder, which causes +gl_factory.cc to try kGLImplementationEGLANGLE first, which causes Chromium to fail +to load libGLESv2.so on NixOS. It somehow does not try kGLImplementationDesktopGL, +and so there is no GL support at all. + +Revert to using the validating command decoder, which prevents gl_factory.cc +from touching allowed_impls, allowing it to successfully use kGLImplementationDesktopGL. + +diff --git a/ui/gl/gl_utils.cc b/ui/gl/gl_utils.cc +index 697cbed5fe2d..8419bdb21a2f 100644 +--- a/ui/gl/gl_utils.cc ++++ b/ui/gl/gl_utils.cc +@@ -71,9 +71,10 @@ bool UsePassthroughCommandDecoder(const base::CommandLine* command_line) { + } else if (switch_value == kCmdDecoderValidatingName) { + return false; + } else { +- // Unrecognized or missing switch, use the default. +- return base::FeatureList::IsEnabled( +- features::kDefaultPassthroughCommandDecoder); ++ // Ignore the field trial that enables it; disable it until ++ // gl_factory.cc kGLImplementationEGLANGLE issues are sorted ++ // out on NixOS. ++ return false; + } + } + } diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch new file mode 100644 index 000000000000..e7aa4f1ea0ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch @@ -0,0 +1,61 @@ +diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc +index f4e119d..d9775bd 100644 +--- a/chrome/common/chrome_paths.cc ++++ b/chrome/common/chrome_paths.cc +@@ -68,21 +68,14 @@ static base::LazyInstance<base::FilePath> + g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER; + + // Gets the path for internal plugins. +-bool GetInternalPluginsDirectory(base::FilePath* result) { +-#if defined(OS_MACOSX) +- // If called from Chrome, get internal plugins from a subdirectory of the +- // framework. +- if (base::mac::AmIBundled()) { +- *result = chrome::GetFrameworkBundlePath(); +- DCHECK(!result->empty()); +- *result = result->Append("Internet Plug-Ins"); +- return true; +- } +- // In tests, just look in the module directory (below). +-#endif +- +- // The rest of the world expects plugins in the module directory. +- return base::PathService::Get(base::DIR_MODULE, result); ++bool GetInternalPluginsDirectory(base::FilePath* result, ++ const std::string& ident) { ++ std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident; ++ const char* value = getenv(full_env.c_str()); ++ if (value == NULL) ++ return base::PathService::Get(base::DIR_MODULE, result); ++ *result = base::FilePath(value); ++ return true; + } + + // Gets the path for bundled implementations of components. Note that these +@@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) { + create_dir = true; + break; + case chrome::DIR_INTERNAL_PLUGINS: +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "ALL")) + return false; + break; + case chrome::DIR_COMPONENTS: +@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) { + return false; + break; + case chrome::DIR_PEPPER_FLASH_PLUGIN: +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH")) + return false; + cur = cur.Append(kPepperFlashBaseDirectory); + break; +@@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) { + cur = cur.DirName(); + } + #else +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "PNACL")) + return false; + #endif + cur = cur.Append(FILE_PATH_LITERAL("pnacl")); diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch new file mode 100644 index 000000000000..6b788f43d29c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch @@ -0,0 +1,17 @@ +--- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig 2018-11-02 16:00:34.368933077 +0200 ++++ chromium-70.0.3538.67/build/compute_build_timestamp.py 2018-11-08 04:06:21.658105129 +0200 +@@ -94,6 +94,14 @@ + 'build_type', help='The type of build', choices=('official', 'default')) + args = argument_parser.parse_args() + ++ # I don't trust LASTCHANGE magic, and I definelly want something deterministic here ++ SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None) ++ if SOURCE_DATE_EPOCH is not None: ++ print(SOURCE_DATE_EPOCH) ++ return 0 ++ else: ++ raise RuntimeError("SOURCE_DATE_EPOCH not set") ++ + # The mtime of the revision in build/util/LASTCHANGE is stored in a file + # next to it. Read it, to get a deterministic time close to "now". + # That date is then modified as described at the top of the file so that diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/remove-webp-include-69.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/remove-webp-include-69.patch new file mode 100644 index 000000000000..07572cf7ee94 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/remove-webp-include-69.patch @@ -0,0 +1,11 @@ +--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc ++++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc +@@ -13,7 +13,7 @@ + + #include "jpeglib.h" // for JPEG_MAX_DIMENSION + +-#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION ++#define WEBP_MAX_DIMENSION 16383 + + namespace blink { + diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch new file mode 100644 index 000000000000..db9d6082756d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch @@ -0,0 +1,54 @@ +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +@@ -635,6 +635,7 @@ + // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's + // internal decoded frame. + if (buffer_allocation_mode_ != BufferAllocationMode::kNone && ++ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau && + !vpp_vaapi_wrapper_) { + vpp_vaapi_wrapper_ = VaapiWrapper::Create( + VaapiWrapper::kVideoProcess, VAProfileNone, +@@ -650,7 +651,8 @@ + // only used as a copy destination. Therefore, the VaapiWrapper used and + // owned by |picture| is |vpp_vaapi_wrapper_|. + std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create( +- (buffer_allocation_mode_ == BufferAllocationMode::kNone) ++ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) || ++ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau)) + ? vaapi_wrapper_ + : vpp_vaapi_wrapper_, + make_context_current_cb_, bind_image_cb_, buffers[i]); +@@ -1077,6 +1079,14 @@ + + VaapiVideoDecodeAccelerator::BufferAllocationMode + VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { ++ // NVIDIA blobs use VDPAU ++ if (base::StartsWith(VaapiWrapper::GetVendorStringForTesting(), ++ "Splitted-Desktop Systems VDPAU", ++ base::CompareCase::SENSITIVE)) { ++ LOG(INFO) << "VA-API driver on VDPAU backend"; ++ return BufferAllocationMode::kWrapVdpau; ++ } ++ + // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT + // |output_mode_| as well. + if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT) +@@ -1089,7 +1099,7 @@ + // depends on the bitstream and sometimes it's not enough to cover the amount + // of frames needed by the client pipeline (see b/133733739). + // TODO(crbug.com/911754): Enable for VP9 Profile 2. +- if (IsGeminiLakeOrLater() && ++ if (false && IsGeminiLakeOrLater() && + (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) { + // Add one to the reference frames for the one being currently egressed, and + // an extra allocation for both |client_| and |decoder_|, see +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h +@@ -204,6 +204,7 @@ + // Using |client_|s provided PictureBuffers and as many internally + // allocated. + kNormal, ++ kWrapVdpau, + }; + + // Decides the concrete buffer allocation mode, depending on the hardware diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch new file mode 100644 index 000000000000..32f0ae2fb5e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn +index ed0e2f5208b..5b431a030d5 100644 +--- a/third_party/widevine/cdm/BUILD.gn ++++ b/third_party/widevine/cdm/BUILD.gn +@@ -14,7 +14,7 @@ buildflag_header("buildflags") { + + flags = [ + "ENABLE_WIDEVINE=$enable_widevine", +- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm", ++ "BUNDLE_WIDEVINE_CDM=true", + "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component", + ] + } diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix new file mode 100644 index 000000000000..ef0b5ac0eb67 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -0,0 +1,93 @@ +{ stdenv, gcc +, jshon +, glib +, nspr +, nss +, fetchzip +, patchelfUnstable +, enablePepperFlash ? false + +, upstream-info +}: + +with stdenv.lib; + +let + mkrpath = p: "${makeSearchPathOutput "lib" "lib64" p}:${makeLibraryPath p}"; + + # Generate a shell fragment that emits flags appended to the + # final makeWrapper call for wrapping the browser's main binary. + # + # Note that this is shell-escaped so that only the variable specified + # by the "output" attribute is substituted. + mkPluginInfo = { output ? "out", allowedVars ? [ output ] + , flags ? [], envVars ? {} + }: let + shSearch = ["'"] ++ map (var: "@${var}@") allowedVars; + shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars; + # We need to triple-escape "val": + # * First because makeWrapper doesn't do any quoting of its arguments by + # itself. + # * Second because it's passed to the makeWrapper call separated by IFS but + # not by the _real_ arguments, for example the Widevine plugin flags + # contain spaces, so they would end up as separate arguments. + # * Third in order to be correctly quoted for the "echo" call below. + shEsc = val: "'${replaceStrings ["'"] ["'\\''"] val}'"; + mkSh = val: "'${replaceStrings shSearch shReplace (shEsc val)}'"; + mkFlag = flag: ["--add-flags" (shEsc flag)]; + mkEnvVar = key: val: ["--set" (shEsc key) (shEsc val)]; + envList = mapAttrsToList mkEnvVar envVars; + quoted = map mkSh (flatten ((map mkFlag flags) ++ envList)); + in '' + mkdir -p "''$${output}/nix-support" + echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags" + ''; + + flash = stdenv.mkDerivation rec { + pname = "flashplayer-ppapi"; + version = "32.0.0.303"; + + src = fetchzip { + url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; + sha256 = "0b2cw8y9rif2p0lyy2ir1v5lchxlsh543b9c743a2p85c9p7q62b"; + stripRoot = false; + }; + + patchPhase = '' + chmod +x libpepflashplayer.so + patchelf --set-rpath "${mkrpath [ gcc.cc ]}" libpepflashplayer.so + ''; + + doCheck = true; + checkPhase = '' + ! find -iname '*.so' -exec ldd {} + | grep 'not found' + ''; + + installPhase = '' + flashVersion="$( + "${jshon}/bin/jshon" -F manifest.json -e version -u + )" + + install -vD libpepflashplayer.so "$out/lib/libpepflashplayer.so" + + ${mkPluginInfo { + allowedVars = [ "out" "flashVersion" ]; + flags = [ + "--ppapi-flash-path=@out@/lib/libpepflashplayer.so" + "--ppapi-flash-version=@flashVersion@" + ]; + }} + ''; + + dontStrip = true; + + meta = { + license = stdenv.lib.licenses.unfree; + maintainers = with stdenv.lib.maintainers; [ taku0 ]; + platforms = platforms.x86_64; + }; + }; + +in { + enabled = optional enablePepperFlash flash; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix new file mode 100644 index 000000000000..6dff17c69ddb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix @@ -0,0 +1,271 @@ +let maybePkgs = import ../../../../../. {}; in + +{ stdenv ? maybePkgs.stdenv +, runCommand ? maybePkgs.runCommand +, fetchurl ? maybePkgs.fetchurl +, writeText ? maybePkgs.writeText +, curl ? maybePkgs.curl +, cacert ? maybePkgs.cacert +, nix ? maybePkgs.nix +}: + +let + inherit (stdenv) lib; + + sources = if builtins.pathExists ./upstream-info.nix + then import ./upstream-info.nix + else {}; + + bucketURL = "https://commondatastorage.googleapis.com/" + + "chromium-browser-official"; + + mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz"; + + debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g"; + + getDebURL = channelName: version: arch: mirror: let + packageSuffix = if channelName == "dev" then "unstable" else channelName; + packageName = "google-chrome-${packageSuffix}"; + in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb"; + + # Untrusted mirrors, don't try to update from them! + debMirrors = [ + "http://95.31.35.30/chrome/pool/main/g" + "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g" + "http://repo.fdzh.org/chrome/deb/pool/main/g" + ]; + +in { + getChannel = channel: let + chanAttrs = builtins.getAttr channel sources; + in { + inherit channel; + inherit (chanAttrs) version; + + main = fetchurl { + url = mkVerURL chanAttrs.version; + inherit (chanAttrs) sha256; + }; + + binary = fetchurl (let + mkUrls = arch: let + mkURLForMirror = getDebURL channel chanAttrs.version arch; + in map mkURLForMirror ([ debURL ] ++ debMirrors); + in if stdenv.is64bit && chanAttrs ? sha256bin64 then { + urls = mkUrls "amd64"; + sha256 = chanAttrs.sha256bin64; + } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then { + urls = mkUrls "i386"; + sha256 = chanAttrs.sha256bin32; + } else throw "No Chrome plugins are available for your architecture."); + }; + + update = let + csv2nix = name: src: import (runCommand "${name}.nix" { + src = builtins.fetchurl src; + } '' + esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs " + IFS=, read -r -a headings <<< "$(head -n1 "$src")" + echo "[" > "$out" + tail -n +2 "$src" | while IFS=, read -r -a line; do + echo " {" + for idx in "''${!headings[@]}"; do + echo " $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});" + done + echo " }" + done >> "$out" + echo "]" >> "$out" + ''); + + channels = lib.fold lib.recursiveUpdate {} (map (attrs: { + ${attrs.os}.${attrs.channel} = attrs // { + history = let + drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info"; + history = csv2nix drvName "http://omahaproxy.appspot.com/history"; + cond = h: attrs.os == h.os && attrs.channel == h.channel + && lib.versionOlder h.version attrs.current_version; + # Note that this is a *reverse* sort! + sorter = a: b: lib.versionOlder b.version a.version; + sorted = builtins.sort sorter (lib.filter cond history); + in map (lib.flip removeAttrs ["os" "channel"]) sorted; + version = attrs.current_version; + }; + }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1")); + + /* + XXX: This is essentially the same as: + + builtins.tryEval (builtins.fetchurl url) + + ... except that tryEval on fetchurl isn't working and doesn't catch + errors for fetchurl, so we go for a different approach. + + We only have fixed-output derivations that can have networking access, so + we abuse SHA1 and its weaknesses to forge a fixed-output derivation which + is not so fixed, because it emits different contents that have the same + SHA1 hash. + + Using this method, we can distinguish whether the URL is available or + whether it's not based on the actual content. + + So let's use tryEval as soon as it's working with fetchurl in Nix. + */ + tryFetch = url: let + # SHA1 hash collisions from https://shattered.io/static/shattered.pdf: + collisions = runCommand "sha1-collisions" { + outputs = [ "out" "good" "bad" ]; + base64 = '' + QlpoOTFBWSZTWbL5V5MABl///////9Pv///v////+/////HDdK739/677r+W3/75rUNr4 + Aa/AAAAAAACgEVTRtQDQAaA0AAyGmjTQGmgAAANGgAaMIAYgGgAABo0AAAAAADQAIAGQ0 + MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk + 0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIAN + GgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRp + o0GIGgBoGQAABVTUExEZATTICnkxNR+p6E09JppoyamjGhkm0ammIyaekbUejU9JiGnqZ + qaaDxJ6m0JkZMQ2oaYmJ6gxqMyE2TUzJqfItligtJQJfYbl9Zy9QjQuB5mHQRdSSXCCTH + MgmSDYmdOoOmLTBJWiCpOhMQYpQlOYpJjn+wQUJSTCEpOMekaFaaNB6glCC0hKEJdHr6B + mUIHeph7YxS8WJYyGwgWnMTFJBDFSxSCCYljiEk7HZgJzJVDHJxMgY6tCEIIWgsKSlSZ0 + S8GckoIIF+551Ro4RCw260VCEpWJSlpWx/PMrLyVoyhWMAneDilBcUIeZ1j6NCkus0qUC + Wnahhk5KT4GpWMh3vm2nJWjTL9Qg+84iExBJhNKpbV9tvEN265t3fu/TKkt4rXFTsV+Nc + upJXhOhOhJMQQktrqt4K8mSh9M2DAO2X7uXGVL9YQxUtzQmS7uBndL7M6R7vX869VxqPu + renSuHYNq1yTXOfNWLwgvKlRlFYqLCs6OChDp0HuTzCWscmGudLyqUuwVGG75nmyZhKpJ + yOE/pOZyHyrZxGM51DYIN+Jc8yVJgAykxKCEtW55MlfudLg3KG6TtozalunXrroSxUpVL + StWrWLFihMnVpkyZOrQnUrE6xq1CGtJlbAb5ShMbV1CZgqlKC0wCFCpMmUKSEkvFLaZC8 + wHOCVAlvzaJQ/T+XLb5Dh5TNM67p6KZ4e4ZSGyVENx2O27LzrTIteAreTkMZpW95GS0CE + JYhMc4nToTJ0wQhKEyddaLb/rTqmgJSlkpnALxMhlNmuKEpkEkqhKUoEq3SoKUpIQcDgW + lC0rYahMmLuPQ0fHqZaF4v2W8IoJ2EhMhYmSw7qql27WJS+G4rUplToFi2rSv0NSrVvDU + pltQ8Lv6F8pXyxmFBSxiLSxglNC4uvXVKmAtusXy4YXGX1ixedEvXF1aX6t8adYnYCpC6 + rW1ZzdZYlCCxKEv8vpbqdSsXl8v1jCQv0KEPxPTa/5rtWSF1dSgg4z4KjfIMNtgwWoWLE + sRhKxsSA9ji7V5LRPwtumeQ8V57UtFSPIUmtQdOQfseI2Ly1DMtk4Jl8n927w34zrWG6P + i4jzC82js/46Rt2IZoadWxOtMInS2xYmcu8mOw9PLYxQ4bdfFw3ZPf/g2pzSwZDhGrZAl + 9lqky0W+yeanadC037xk496t0Dq3ctfmqmjgie8ln9k6Q0K1krb3dK9el4Xsu44LpGcen + r2eQZ1s1IhOhnE56WnXf0BLWn9Xz15fMkzi4kpVxiTKGEpffErEEMvEeMZhUl6yD1SdeJ + YbxzGNM3ak2TAaglLZlDCVnoM6wV5DRrycwF8Zh/fRsdmhkMfAO1duwknrsFwrzePWeMw + l107DWzymxdQwiSXx/lncnn75jL9mUzw2bUDqj20LTgtawxK2SlQg1CCZDQMgSpEqLjRM + sykM9zbSIUqil0zNk7Nu+b5J0DKZlhl9CtpGKgX5uyp0idoJ3we9bSrY7PupnUL5eWiDp + V5mmnNUhOnYi8xyClkLbNmAXyoWk7GaVrM2umkbpqHDzDymiKjetgzTocWNsJ2E0zPcfh + t46J4ipaXGCfF7fuO0a70c82bvqo3HceIcRlshgu73seO8BqlLIap2z5jTOY+T2ucCnBt + Atva3aHdchJg9AJ5YdKHz7LoA3VKmeqxAlFyEnQLBxB2PAhAZ8KvmuR6ELXws1Qr13Nd1 + i4nsp189jqvaNzt+0nEnIaniuP1+/UOZdyfoZh57ku8sYHKdvfW/jYSUks+0rK+qtte+p + y8jWL9cOJ0fV8rrH/t+85/p1z2N67p/ZsZ3JmdyliL7lrNxZUlx0MVIl6PxXOUuGOeArW + 3vuEvJ2beoh7SGyZKHKbR2bBWO1d49JDIcVM6lQtu9UO8ec8pOnXmkcponBPLNM2CwZ9k + NC/4ct6rQkPkQHMcV/8XckU4UJCy+VeTA== + ''; + } '' + echo "$base64" | base64 -d | tar xj + mv good.pdf "$good" + mv bad.pdf "$bad" + touch "$out" + ''; + + cacheVal = let + urlHash = builtins.hashString "sha256" url; + timeSlice = builtins.currentTime / 600; + in "${urlHash}-${toString timeSlice}"; + + in { + success = import (runCommand "check-success" { + result = stdenv.mkDerivation { + name = "tryfetch-${cacheVal}"; + inherit url; + + outputHash = "d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a"; + outputHashMode = "flat"; + outputHashAlgo = "sha1"; + + nativeBuildInputs = [ curl ]; + preferLocalBuild = true; + + inherit (collisions) good bad; + + buildCommand = '' + if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \ + curl -s -L -f -I "$url" > /dev/null; then + cp "$good" "$out" + else + cp "$bad" "$out" + fi + ''; + + impureEnvVars = lib.fetchers.proxyImpureEnvVars; + }; + inherit (collisions) good; + } '' + if cmp -s "$result" "$good"; then + echo true > "$out" + else + echo false > "$out" + fi + ''); + value = builtins.fetchurl url; + }; + + fetchLatest = channel: let + result = tryFetch (mkVerURL channel.version); + in if result.success then result.value else fetchLatest (channel // { + version = if channel.history != [] + then (lib.head channel.history).version + else throw "Unfortunately there's no older version than " + + "${channel.version} available for channel " + + "${channel.channel} on ${channel.os}."; + history = lib.tail channel.history; + }); + + getHash = path: import (runCommand "gethash.nix" { + inherit path; + nativeBuildInputs = [ nix ]; + } '' + sha256="$(nix-hash --flat --base32 --type sha256 "$path")" + echo "\"$sha256\"" > "$out" + ''); + + isLatest = channel: version: let + ourVersion = sources.${channel}.version or null; + in if ourVersion == null then false + else lib.versionOlder version sources.${channel}.version + || version == sources.${channel}.version; + + # We only support GNU/Linux right now. + linuxChannels = let + genLatest = channelName: channel: let + newUpstream = { + inherit (channel) version; + sha256 = getHash (fetchLatest channel); + }; + keepOld = let + oldChannel = sources.${channelName}; + in { + inherit (oldChannel) version sha256; + } // lib.optionalAttrs (oldChannel ? sha256bin32) { + inherit (oldChannel) sha256bin32; + } // lib.optionalAttrs (oldChannel ? sha256bin64) { + inherit (oldChannel) sha256bin64; + }; + in if isLatest channelName channel.version then keepOld else newUpstream; + in lib.mapAttrs genLatest channels.linux; + + getLinuxFlash = channelName: channel: let + inherit (channel) version; + fetchArch = arch: tryFetch (getDebURL channelName version arch debURL); + packages = lib.genAttrs ["i386" "amd64"] fetchArch; + isNew = arch: attr: !(builtins.hasAttr attr channel) + && packages.${arch}.success; + in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") { + sha256bin32 = getHash (packages.i386.value); + } // lib.optionalAttrs (isNew "amd64" "sha256bin64") { + sha256bin64 = getHash (packages.amd64.value); + }; + + newChannels = lib.mapAttrs getLinuxFlash linuxChannels; + + dumpAttrs = indent: attrs: let + mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val + else "\"${lib.escape ["$" "\\" "\""] (toString val)}\""; + mkIndent = level: lib.concatStrings (builtins.genList (_: " ") level); + mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n"; + attrLines = lib.mapAttrsToList mkAttr attrs; + in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}"; + in writeText "chromium-new-upstream-info.nix" '' + # This file is autogenerated from update.sh in the same directory. + ${dumpAttrs 0 newChannels} + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh new file mode 100755 index 000000000000..ea67a62c107a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh @@ -0,0 +1,4 @@ +#!/bin/sh -e +cd "$(dirname "$0")" +sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)" +cat "$sp" > upstream-info.nix diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix new file mode 100644 index 000000000000..6a4e46e74bde --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -0,0 +1,18 @@ +# This file is autogenerated from update.sh in the same directory. +{ + beta = { + sha256 = "1j9zfbyil16yhf6hzrd0ssy9k49jx468dbmgzhc20l1548fif62g"; + sha256bin64 = "1jfsswjqzdif6824p9a6raw5j9309y61c80kgfq23247vr514ky9"; + version = "79.0.3945.88"; + }; + dev = { + sha256 = "1fbs6llrhm9jkzmk3v3a84d9is6g96kysy91hvpb0bw8f7anl969"; + sha256bin64 = "04fscphs4w6jb1kdc25jc568r3k4x3nmg0apggjfnbdwzb5zkmf2"; + version = "80.0.3987.16"; + }; + stable = { + sha256 = "1j9zfbyil16yhf6hzrd0ssy9k49jx468dbmgzhc20l1548fif62g"; + sha256bin64 = "1k44fnn41n73j1lff4h8s8f79pw8w180n467lwff4g9izh6c2blz"; + version = "79.0.3945.88"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/conkeror/default.nix b/nixpkgs/pkgs/applications/networking/browsers/conkeror/default.nix new file mode 100644 index 000000000000..be1389c2121f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/conkeror/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchgit, unzip, firefox-esr, makeWrapper }: + +stdenv.mkDerivation rec { + pkgname = "conkeror"; + version = "1.0.4"; + name = "${pkgname}-${version}"; + + src = fetchgit { + url = git://repo.or.cz/conkeror.git; + rev = "refs/tags/${version}"; + sha256 = "10c57wqybp9kcjpkb01wxq0h3vafcdb1g5kb4k8sb2zajg59afv8"; + }; + + buildInputs = [ unzip makeWrapper ]; + + installPhase = '' + mkdir -p $out/libexec/conkeror + cp -r * $out/libexec/conkeror + + makeWrapper ${firefox-esr}/bin/firefox $out/bin/conkeror \ + --add-flags "-app $out/libexec/conkeror/application.ini" + ''; + + meta = with stdenv.lib; { + description = "A keyboard-oriented, customizable, extensible web browser"; + longDescription = '' + Conkeror is a keyboard-oriented, highly-customizable, highly-extensible + web browser based on Mozilla XULRunner, written mainly in JavaScript, + and inspired by exceptional software such as Emacs and vi. Conkeror + features a sophisticated keyboard system, allowing users to run commands + and interact with content in powerful and novel ways. It is + self-documenting, featuring a powerful interactive help system. + ''; + homepage = http://conkeror.org/; + license = with licenses; [ mpl11 gpl2 lgpl21 ]; + maintainers = with maintainers; [ astsmtl ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix b/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix new file mode 100644 index 000000000000..8d6c99d2468c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl +, fltk +, openssl +, libjpeg, libpng +, perl +, libXcursor, libXi, libXinerama }: + +stdenv.mkDerivation rec { + version = "3.0.5"; + pname = "dillo"; + + src = fetchurl { + url = "https://www.dillo.org/download/${pname}-${version}.tar.bz2"; + sha256 = "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv"; + }; + + buildInputs = with stdenv.lib; + [ perl fltk openssl libjpeg libpng libXcursor libXi libXinerama ]; + + configureFlags = [ "--enable-ssl" ]; + + meta = with stdenv.lib; { + homepage = https://www.dillo.org/; + description = "A fast graphical web browser with a small footprint"; + longDescription = '' + Dillo is a small, fast web browser, tailored for older machines. + ''; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix new file mode 100644 index 000000000000..da6a7bc47155 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, ncurses, xlibsWrapper, bzip2, zlib, openssl +, gpm +, # Incompatible licenses, LGPLv3 - GPLv2 + enableGuile ? false, guile ? null +, enablePython ? false, python ? null +, enablePerl ? (stdenv.hostPlatform == stdenv.buildPlatform), perl ? null +, enableSpidermonkey ? (stdenv.hostPlatform == stdenv.buildPlatform), spidermonkey ? null +}: + +assert enableGuile -> guile != null; +assert enablePython -> python != null; + +stdenv.mkDerivation { + name = "elinks-0.12pre6"; + + src = fetchurl { + url = http://elinks.or.cz/download/elinks-0.12pre6.tar.bz2; + sha256 = "1nnakbi01g7yd3zqwprchh5yp45br8086b0kbbpmnclabcvlcdiq"; + }; + + patches = [ ./gc-init.patch ]; + + buildInputs = [ ncurses xlibsWrapper bzip2 zlib openssl spidermonkey gpm ] + ++ stdenv.lib.optional enableGuile guile + ++ stdenv.lib.optional enablePython python + ++ stdenv.lib.optional enablePerl perl + ; + + configureFlags = [ + "--enable-finger" + "--enable-html-highlight" + "--enable-gopher" + "--enable-cgi" + "--enable-bittorrent" + "--enable-nntp" + "--with-openssl=${openssl.dev}" + "--with-bzip2=${bzip2.dev}" + ] ++ stdenv.lib.optional enableGuile "--with-guile" + ++ stdenv.lib.optional enablePython "--with-python" + ++ stdenv.lib.optional enablePerl "--with-perl" + ++ stdenv.lib.optional enableSpidermonkey "--with-spidermonkey=${spidermonkey}" + ; + + meta = { + description = "Full-featured text-mode web browser"; + homepage = http://elinks.or.cz; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch b/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch new file mode 100644 index 000000000000..de06f563d6e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch @@ -0,0 +1,17 @@ +Fix libgc initialization in the presence of Guile 2.0. + +--- elinks-0.12pre5/src/main/main.c 2009-07-07 14:23:17.000000000 +0200 ++++ elinks-0.12pre5/src/main/main.c 2011-04-28 23:20:15.000000000 +0200 +@@ -339,6 +339,11 @@ int + main(int argc, char *argv[]) + { + #ifdef CONFIG_GC ++ /* Guile 2.x uses libgc too and it initializes it this way, so we ++ * must make sure to initialize it the same way, or it will just ++ * segfault. */ ++ GC_all_interior_pointers = 0; ++ + GC_INIT(); + GC_set_warn_proc(gc_warning); + #endif + diff --git a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix new file mode 100644 index 000000000000..b9b183a03ff3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchgit, meson, ninja, pkgconfig +, python3, gtk3, libsecret, gst_all_1, webkitgtk +, glib-networking, gtkspell3, hunspell, desktop-file-utils +, gobject-introspection, wrapGAppsHook }: + +python3.pkgs.buildPythonApplication rec { + pname = "eolie"; + version = "0.9.63"; + + format = "other"; + doCheck = false; + + src = fetchgit { + url = "https://gitlab.gnome.org/World/eolie"; + rev = "refs/tags/${version}"; + fetchSubmodules = true; + sha256 = "0z8gcfg7i842rr5p8r3vqa31kf7nnj1yv3afax3jzf4zbnhb8wm0"; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + wrapGAppsHook + ]; + + buildInputs = with gst_all_1; [ + glib-networking + gobject-introspection + gst-libav + gst-plugins-base + gst-plugins-ugly + gstreamer + gtk3 + gtkspell3 + hunspell + libsecret + webkitgtk + ]; + + propagatedBuildInputs = with python3.pkgs; [ + beautifulsoup4 + pycairo + pygobject3 + python-dateutil + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + preFixup = '' + buildPythonPath "$out $propagatedBuildInputs" + patchPythonScript "$out/libexec/eolie-sp" + ''; + + meta = with stdenv.lib; { + description = "A new GNOME web browser"; + homepage = https://wiki.gnome.org/Apps/Eolie; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ samdroid-apps worldofpeace ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix new file mode 100644 index 000000000000..ce0617b8d3fd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix @@ -0,0 +1,70 @@ +{ stdenv +, fetchFromGitHub +, desktop-file-utils +, vala +, gettext +, glib +, gtk3 +, libgee +, libdazzle +, meson +, ninja +, pantheon +, pkgconfig +, python3 +, webkitgtk +, wrapGAppsHook +, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "ephemeral"; + version = "6.1.1"; + + src = fetchFromGitHub { + owner = "cassidyjames"; + repo = "ephemeral"; + rev = version; + sha256 = "1i77chbjjg8zda5bnn1wj4h00a88awfls5b3i3dqwgsi356hv4wb"; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + meson + ninja + vala + pkgconfig + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + glib-networking + gtk3 + libdazzle + libgee + pantheon.granite + webkitgtk + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = pantheon.updateScript { + attrPath = pname; + }; + }; + + meta = with stdenv.lib; { + description = "The always-incognito web browser"; + homepage = https://github.com/cassidyjames/ephemeral; + maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix new file mode 100644 index 000000000000..6e21456a9a92 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix @@ -0,0 +1,44 @@ +{ stdenv, mkDerivation, lib, fetchFromGitHub +, cmake, extra-cmake-modules, pkgconfig, qmake +, libpthreadstubs, libxcb, libXdmcp +, qtsvg, qttools, qtwebengine, qtx11extras +, qtwayland +, kwallet +}: + +mkDerivation rec { + pname = "falkon"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "KDE"; + repo = "falkon"; + rev = "v${version}"; + sha256 = "1w64slh9wpcfi4v7ds9wci1zvwh0dh787ndpi6hd4kmdgnswvsw7"; + }; + + preConfigure = '' + export NONBLOCK_JS_DIALOGS=true + export KDE_INTEGRATION=true + export GNOME_INTEGRATION=false + export FALKON_PREFIX=$out + ''; + + buildInputs = [ + libpthreadstubs libxcb libXdmcp + qtsvg qttools qtwebengine qtx11extras + kwallet + ] ++ lib.optionals stdenv.isLinux [ qtwayland ]; + + nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qmake qttools ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "QtWebEngine based cross-platform web browser"; + homepage = https://community.kde.org/Incubator/Projects/Falkon; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix new file mode 100644 index 000000000000..326817504553 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix @@ -0,0 +1,965 @@ +{ + version = "73.0b2"; + sources = [ + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ach/firefox-73.0b2.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha512 = "47987892d0fd833240debe8e514caf6dd5b6c386bbbf7cb5823199e1096a8ab7fe6e2bce18cffd874ff5bb55157abee220b0d76cf90e55b94078589127bce826"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/af/firefox-73.0b2.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha512 = "6f04227c13dbb06264e85959c193486a8bd2eca2ceaa384d6930bb8512e3d38c8bfe7f0e138349ae30946dc01c06a9a9451276199f067647dcc382185a089807"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/an/firefox-73.0b2.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha512 = "1a4468bc5dda9fd023f42d9d549bb715b9b24b898f047b98f8fb0dc2a4a8ba025ff9904fd6d3417e5a3c9693914e806f08aefa71eadcd5bbee182d959f718e96"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ar/firefox-73.0b2.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "4debd211bc2562543d1e144f902afb5c3feadee067b877915d15d7287a46b1b62344463fe295c00e32ced9addf004ef25a5dedaeb6f054889afdf2a9fa55dd0c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ast/firefox-73.0b2.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "854a527ecb67b0d312c761cb63560d67190102ed9d143aad77a0e6a0daa3bfe1a3798473968819396287cd9695caec8522f7a765f91decd9bf0e05172942190c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/az/firefox-73.0b2.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha512 = "bb70aec58ea49dfb8e8545a7c0416f339ffbb09b491990ebc38a050f0116f892551f1c444fa071b4a043628831144c6a97d3d175df7ec545ce163c189b7a64dc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/be/firefox-73.0b2.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "e63dc6e79dcb474c7cb3ba6e6f2f77e47b0e770dc5867a879a0ebe6b26cca20874b047e56b321d1f03caeba6cbf1e6cfe85943f9be7faa4847b2190be2c948b8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/bg/firefox-73.0b2.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "b49587827d62931ec80f5bd6128a029a06d2797047bca887c66f8611f407793d8671640edaf9a33ced8a37a66fb38d60fdcfa48fd8d84202207bf2f1ee0befc5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/bn/firefox-73.0b2.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha512 = "7912536afa1f5ee2af642a4cb35f7d30ccb69ce026695ff6272f3c83f4801e781c064a75cf757c3e70fd2a6fe6e087e87717c6c30082542d521d9b7087785c58"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/br/firefox-73.0b2.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "2cf4c9a51487709a17ccf1c73f0f233b881de377d2b162dfe5596ffc78cbac8d40c01ac14d50f8a2ea64a24b185aff6ba3aaa798bc89954dcc1b65d3235fccc5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/bs/firefox-73.0b2.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha512 = "5eee204bbf3a191258082036595ea04232b8512eac7a0bd69735f0775b3bb17c077e073e605574cccbc5ec679e826b7109429248ae89bcf946160d64967c5514"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ca-valencia/firefox-73.0b2.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha512 = "a9b69e1b6114fb1c82a4e1bcad02d93efb79a7cf0d4ec59e23439485a9f5a2b20d45f84a369de2a8631a5e5c1b618d1544b2669dc7c4fab043e69415b2411d42"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ca/firefox-73.0b2.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "d7d2bb1225ceca021114bc666725076c893f2e1adf9b4668e556753ed1bf515be23d8576582cecd3ac1b53b60502ed6f2819973c6216cccceb29e5b65a5e9de3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/cak/firefox-73.0b2.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "8393b967f2615c59614b0b5b5d604d76ef5078a3d8b27d259e6492f65c98c1e042695a3dea1c6a027d8f247da8509d22942b997daff380ff85357cd9e750b356"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/cs/firefox-73.0b2.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "38bbae4c4b3b96ad98b855ad11312f3e8f05c78b94cf5aad265bed739ec0caa4956554b20e18bc9d3888bc6b42e47e14a681b15822cff3a5e99b96c2ac840a83"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/cy/firefox-73.0b2.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "52ba1a1b98ef9121ebf175998f69c197eaafca85abff9cd844840bd06acddaf34baaebf9ef61bcd71e5dffddadb33b2cd31e61ec962416c6652f8cc0677324f9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/da/firefox-73.0b2.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "349ccd82de11f9aedcb6e4b57344985b7a925a3ed5e10064614e56578d66bfca0fd9fb5b381ee95ba40d43ca107e20db7aed43b2a7df911f53a4941cb15d4df7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/de/firefox-73.0b2.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "bb2166bad1fae402052357ca34c35a94e2f03788bc55643bef7dfe42c7bc92158f84045c3bef12b8b678fbc84fd8c262a167c6d3c6ec07b1312f49c9612f064d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/dsb/firefox-73.0b2.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "d877e177b08907a98aa0f3c2c456243a9b4a7553333a01722e7c0c691143b5468d1d6e7cc0199cbf93efe0a21d8216fb98553a8f1cf744ba4468b906b446ccce"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/el/firefox-73.0b2.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "4c1b5d4a39457fd24957697f333b00615f3dd836c6fcbe651adef339c76e487f0ca87269d8e3254c6fa02d9b97e517f4cf49f19911b842eb07a3e9a98fc8a7b3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/en-CA/firefox-73.0b2.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha512 = "f517080957c5a9e86662c7104536a618fb14c46c6449cf533e9a643269365c9e9b693fc3bf0662d5122c09aff925b10a88fc2ce7fa9ff537e7b6c4253e8f584c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/en-GB/firefox-73.0b2.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "da5862255bfda7f8add2fd5d7b129b0adfd8c420afcb99440f07c2b8517e3cc46dfcdeb28a200fe72448718749d82abdbf3cbbfbca326c933a42d94acead2b2d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/en-US/firefox-73.0b2.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "4955bf26435b201749c8153ba35cbd07f66e93b4b0352904bfa6d90695413660c67da8b8a62436a40c10cd4fdc7d6466ca3f70f27f906a31ec444a78e8fca113"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/eo/firefox-73.0b2.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "5e9a1083d0978d9456c052ee16f332fdaff50f17e8e17d52630cfae14bbcf147e4452a8af177985d1d120bbbbc0c77cf8ba4f9f95637e0310448aa2af40ecd9a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/es-AR/firefox-73.0b2.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "6d7f4b66ed8b8ab111b114c0c2247cbb646e2cdf96c9adfa5f340721ab8e7dc6f781379b199713f9f06767bdd73e1a357f72f0fc3b76ffd7d04ea0f5756a1fc5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/es-CL/firefox-73.0b2.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "2dc3ba64def0979a68c73d2d28094c72eb9756206489a0ce4611e8ca5fe6e2bd9f7f3ad0da3f1961f02732ee1f5e42908d07f9875924b65c47003244a7a1a40b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/es-ES/firefox-73.0b2.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "21135fbf0daf56a8f69ed6558669589943f0f166d2f13679cdd3616395f3336ab77696a1f754c84b188f43033f41941f0ebb1beffb0ffa5d4f19915532022dd5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/es-MX/firefox-73.0b2.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "499edbe88b5b3925bd2c6164ccf51d818954cca8319e8035916ac6c8f80d87fdf4fd5970fdc197e19bc9237230ad4156797fcbb79cf3bbb73039bba58aa84fa2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/et/firefox-73.0b2.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "579ee6d3d21cd633e4e2a4a51bf49438cb473ac9fa01d80ffdc8af9484eca23bcf271e0e8accf7575ef903f0310fe72bfb761b735e5bcdd02c136aa48f0aad3d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/eu/firefox-73.0b2.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "4e87ef42b573f39183a3b8e626c61515b48cb353c1f3e7b2329df1869ce1c3a0bc47498da1633606c85307f4f3934817125442af83864b15cbdd20daa7dd1a6f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/fa/firefox-73.0b2.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "1a1b3d5e3fb49a8924c74ca30fe239917d9104e3727b93eae1648866ee85be48add791299bc7f0e64678bd5935c56be04e0ad379cca59738f831411f2d99368b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ff/firefox-73.0b2.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha512 = "e3e35d68390fbbc574680ec47aa5cd9f2ff1a4777ef0359139189fcf01565c43400790b41f6c5c6241da49248a13e58952e669400d60c4e00c00bbcea3a39e47"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/fi/firefox-73.0b2.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "83b7408fadf51a409a5a740476a6098ce6380a4c9d530891314753feff707d50a3003dcf4ead593f8bd47839029672c575b5eb7e20c657a4a459ff9ca957c942"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/fr/firefox-73.0b2.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "7aa26cea38e4776c508242a1115d158b829dc6789716877a6f0fc0923205154ddcbbda531015ff29fd9f1cd6d9a76c33bac196541694ee1593d21c868ee80519"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/fy-NL/firefox-73.0b2.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "b51b87288e7cd3129be40b71d0ccbaed62f990c0ec9285194785f7ab297cf9005d094d7af7e5d85c1a29fed03ca7e7553bcd7bc6e4b994e0d9942f90039af700"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ga-IE/firefox-73.0b2.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "0659c95e78765662ab9919c917ebf0b743e3c5e2b9c083a1fc90e99520e80675fa3f8604056522f484c421945171953712210de50cc75ab2295ba5b41b77a8e5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/gd/firefox-73.0b2.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "77831e9fe97fc0851f622be6c3898c03e44ad30f4fe5b68b7c03ccdde83cd1dccd44d207e623291ba79cc657fba6bc15e328e3f2f761492ad09a836b197aa1e5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/gl/firefox-73.0b2.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "3b641f6fc998a32606b17c70ddfe93070963f71fa2d5f28149fda3119221ab87dbb9723f263214e92390617f0fe01ca0bc380648f9f2ececd77cb493999d07e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/gn/firefox-73.0b2.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha512 = "dd33cbe7c085e1e3667b4ebd2d7beb86328d0936aedd53b1b6a38dfab5e6d423fef0ad17b4920588a263ecda475a18f828d994b30378baa7ae602a2038849baf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/gu-IN/firefox-73.0b2.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha512 = "cce88efe455ecba8acf46782e6b62e645eb5592a77121c3e9dfd6c50a2cbf4f7e4ef2f02f5aa26d1abd0ac2072fb393df2745e9069d2167c562c12a9ac8e1c64"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/he/firefox-73.0b2.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "bd06abea5ba16cdfffda21812272a24b3f78a9c42749d462b7ec110a8387329d271b064865ff5ef6d7895dd246282a78980dc125c81dd2ff0333e0881a2ada86"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/hi-IN/firefox-73.0b2.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha512 = "a2250eb6d59e662ba06d8e45caa4ee119515eff2472f986a09257a35f1235956f405f80ea6f7c9e674724e441a4c3ef99557dafd13c1dc27f527825ebc1825aa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/hr/firefox-73.0b2.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "ae306d500db1a51fa74147dde1f99214f982c5f874274fe5bfa966aa34bc6339f0586e930091bfe95f02f9da708db2b2cb93ec0862e8189c1deaaf3e47a5c06d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/hsb/firefox-73.0b2.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "a2f52071b336a0b374697557591ba927fa976fd6159c7a4b31680c6d0543a7b3175df8684ca19735b771d365f9e8f8028f3b155cf7c310d7cd6ca89e3597753e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/hu/firefox-73.0b2.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "110b1012b7c4a8f06b531c6e7c7f9c83762577bdaf5b46a4de56900ec21b65cf722de2ec857c2b56dbf65153e0a8748e2d30fa8d4f633ad2ded76551b7a3640d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/hy-AM/firefox-73.0b2.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "9cebf9abd8c8126e738627b4c34b6920188ad5ae5604ba6243f400e61057d05cfd13376bee96951f9bde27c81044ff73b5692e4b90d4283052ee0533a50ef30b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ia/firefox-73.0b2.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha512 = "4ecdde1c5b62feb8cc7ddd5948772b3079a308d78e7150c03f4b0f7f69796f6a55f23d47823e917ac80645c00a7a18a77348cd209fb3b6265e994276132733d4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/id/firefox-73.0b2.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "30a3c80bb9082769215c13930378acdce265a1058fab3819e6c645bb35537a06d442ad4e2d36606b97c0f8b503a4281e22d295e66338bef0f5142f4a9e842fee"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/is/firefox-73.0b2.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "b1d7795ebc32f5e4113878384a84927a4169f484d302145f5b9dc8a4797a46d1eb3d57d4d911de06a5a28e0bdda95230b86c0df8f74866f25e50cf1954e84723"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/it/firefox-73.0b2.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "9cca01c62232f7bca15a81f20e6a252e587f2c4c9bdc5cfe48fea549273440f98e43ed7f36da666bfb07889f5d29f3605208fc44b49e8173e844ae7af5716a82"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ja/firefox-73.0b2.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "b79e00816ab0dc8ff7e0ffbecd0c7f09976b55e98a53b864a6be3565e05737814c591da0e76e8e5d7a3ea3d57252ffac9885812f2d1f131364533029d12145ef"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ka/firefox-73.0b2.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "dbce1def842a038e0182194560c7f44ec4daf66916d000e30987fd27a26b9482ad318df9b2d55ef87d25c5724c9aee3b07b5a6d302488cbe06e0edc7ddc374db"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/kab/firefox-73.0b2.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "17b5bc4fb4f78700b2265332d04b29a00baebe13916598674bdc13553a6c04d6cae5f7552a002db2c99bce18fd75b84b818a4d1b1146c12cbbab3251a37f2499"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/kk/firefox-73.0b2.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "eaff45187fbb30a35ee86434e00be2fca9905db5841a8359fdd38c3e4c28cfa7f196fdde50d827d5caad46d9bd2b093ecd23f60134cce4c4c51539deb755a80e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/km/firefox-73.0b2.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha512 = "8445d2019dc772a601f6e26d4a5032a006a5339406b216fe488582b4d13ff58552c34a5d816b69cc6077161b7339b7b3cecebc120d1524c6bfd4bf07bba90acb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/kn/firefox-73.0b2.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha512 = "f5243bbe7a6db8287995d1a6397bd8e9d3b4413160518a354b9f4a8190b27702600422cc77b50ec41ea92ce2b730c893248fcd89f94ba4198e7f2ebbd03679a9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ko/firefox-73.0b2.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "be9e05a80473745c02a0e24570cbd69cbb3e4ed52d11f736388dab44228857e17c5544da530fbcd7b5ba68032544677259f5aa7793f6ca976a1ee4cb5c206235"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/lij/firefox-73.0b2.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha512 = "b1450f4e280694f8ddd3ba943cf598222461e646106ba62acb804c2d4080482beea269bc7c93e8744ef021dfd5b761cab0b706599a72a756f643d2395de639f8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/lt/firefox-73.0b2.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "4741b86b44a8568bd3b218e78534fbbf6537ebc1b358a24062fa99d7abbeb55c72c344de5fb009e25abe66ea5d1fa43f24a8345cec353dd1b76f4cc892aa4b6f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/lv/firefox-73.0b2.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "46ea4f15a873b73b8d503d632a7bef57e6579b9167591256128340fec20a0bf2ef705e3c86ecfb1ef5f6a31e537925f9ab2cff6fc15246eee288b779b40bf8d3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/mk/firefox-73.0b2.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha512 = "04d5035d959c0d6e1bf400a721727dae41cf6b3abddba9ce8a3b2b2d7a33223251c7c090ed8976e0e78e42b4067bbc869c188e030f1627696cf43f5ab9bf9034"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/mr/firefox-73.0b2.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha512 = "7ca06b0f7e6f0254c1a802e3b00be1b92011ccae9477b46f0d470b949c9928216939462f25161d8b5fe4b0fd89aee9b007ee25d713f573fe961dc780980ee1c0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ms/firefox-73.0b2.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "4b51107622faa24c3f6f513ac8a03268255d89360023ae3052dad04df91d7e3a04fdb608a8e5e7aaabc2eacb757ba9a451e0f05b2497b38d90854d79ac19538d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/my/firefox-73.0b2.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "1348f5b74005e622e3434bccdfb89a8586d534f0fdaaab1629905c3f6fda8a33eaade73a6f04e7dd8c285cd4b88121714cb5172c8efdef62b82f231694e5a3b7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/nb-NO/firefox-73.0b2.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "7ba6b164732540b40c0c1cde5609bf4a86db1e6779a7d783911c9ade003503387c9a66ce025aa3e902fd008dbe6f13a91267c3281af638a223f3ea85976cb480"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ne-NP/firefox-73.0b2.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha512 = "d88e416aa279e9d74fb9700bf290b9bdd87cea035dd250f3892f0d64a957ef46ebe8200c9a4983e56a240083e284d4ca2984011befdb3ea82332f80a7085dde0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/nl/firefox-73.0b2.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "0ad1d71f283cfc399477311a991c582a7cc5151486c3e6b646e2fde8d23edfa3d82f8e0758e21a8427f16c47fa02d3a4f5912e26efadadde6e3b53dcb013eee2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/nn-NO/firefox-73.0b2.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "76ffaea7e4c8e7dab49873d10df681b1b3232d10c909ec72cad5daaa5ac70194e0bc32781ae4f3b1123715351469b56a3b0767983b7f1cc22fc8629121f86dd4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/oc/firefox-73.0b2.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha512 = "00b3da139d22590fda0ff983a291d8e15eb6e39c0126fa65760e444cd6e793c7f0a2cc64a2e4483f3c6745915752de97f99ea09cabe146558252343248434913"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/pa-IN/firefox-73.0b2.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha512 = "a9fa7c9ecea8fca19bbaa8c6e5c7a8ee6b19944f6e9daced95a6af315ed23d1a530024dffb3d358fb64a44510333930674887e76c15bf82f2c3642b227b41068"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/pl/firefox-73.0b2.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "8e72223d18c62b38baf79b34947d7d63f534661795d9a0316550fae55bf155e7f130487a0790386d64c092bfaddfbde53f2851d7ad4255b030c984aa40558c2a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/pt-BR/firefox-73.0b2.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "0e09c23df11ccc242d792b0106f76052334820a0c44e125e3ba2578d1587efc61dd452dd579366e38f0a1ced978e0d76b0f212c74493793b1b236a9e0cce7572"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/pt-PT/firefox-73.0b2.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "165232a7bf90e8dded6d5070a6a24f9b58dbad2ebf5f8ba48d763d188a4a01d6cac3506c0536ea7625c4b37c0bd587f70d93685ad0f58f9c28daeee71e0473b5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/rm/firefox-73.0b2.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "c0d932ba5f9ee063c09decc7dfbfcc68474fc9c1361e43baa6340c887fb619e3d62fbbee308146b996ac8110a3b7264930c0810b1b9b0a8e10216a317f43fcd9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ro/firefox-73.0b2.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "c4c3e2c1e7fb4bb284e8f0eee96c1f7b9c9ad3b6032436016b1421321e24535d50f548c6e89caccdb7f25baa0140b1a4bb1dc9edf9ebf960985533de880c1afb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ru/firefox-73.0b2.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "12c0a54f9bb8a683230385ad1df030b42f534b7a121977c8fb3ff69757ec3af07e7df8488df564e9b01f2205f4aa821351e336add0d42d9efa1a2e8d08e89d87"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/si/firefox-73.0b2.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "2ab259b94d008104d5bc74e38f954e3c9e902155aaf9f8049801e72a0aa2e2a525ecf5126df00d2b29384cccd454842dd6e68fa3836ee3de2e5c859b17314f25"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/sk/firefox-73.0b2.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "8000ae7e131498d1cdba331bf4796422b52629bc92da15374a000fb1b866758c3545265077fb2c777e34c0bb823a667fc49731ce692fb0750fcccdc1de966b82"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/sl/firefox-73.0b2.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "743980ecb078bca76915de91c74c258a1812d52a78bb6afb5b018ba827ad68666c336ad8ad52d07d4b503a3b5bae03afd25e3597c5b053474d1a3a74d5cf9c12"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/son/firefox-73.0b2.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha512 = "ac8413a2ee264812d470f763162bd585fbf667f2c8e3a53abc634c9fdbe765b0e0258bd71771a7123a493061e697add6a6296ca355cc8d7107baef3b1ee2ed65"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/sq/firefox-73.0b2.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "286fb2ec1009d595e78a8d6057eeeb2ad401dd70f497705e12c518ac898550ab67343d0a00c7a8195a0a23dcef8986e7c7dbdbb959c3cddb132ed56031243102"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/sr/firefox-73.0b2.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "f4838ba6e2c8a405eba0642f638a217feba3576927c3c25766a47129df140b0e0b8808ff295ddc25bd7d7a94a87e1308ee6b30bdc3dc7c34a8ac2cdf37e68ea1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/sv-SE/firefox-73.0b2.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "c9fec171e6b6cff992042352dbdfe3087dc52c24d45989f069e7a343861cf03e20221e17f1e54e33bfaa37b28537287f064909b7c039168143e4979fd2ce92b7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ta/firefox-73.0b2.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha512 = "97508865912f71ef9b3edfad4c2707495fc3f1a5328651cce76a104e884693cdf215d066761ae6fafe2341717e766ad768290fdde3fb0fd4b931bf2cca93b091"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/te/firefox-73.0b2.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha512 = "e16c015f100fb425b4e2ea1b4ffcef4abc392e9ef45cace553c9efd928157afe34471b3257295f69b60bde988c4e1e4624bdb12f8e24a9fd91078e8342f95905"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/th/firefox-73.0b2.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "5b8e98c39273e609b1793c48686b58484cce14d5b128dc6a8022faf2f23fd3f5851e08d69f324763fb2159c7da5330d1985a1ecc58be58793a9de92745cc67a9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/tl/firefox-73.0b2.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "6c5e97fd62a4d57732032e77333c52f55c7f48522d481946262c72aed89c06b1a69e87041f15ace932bb2f57e7b6007826fd12999937d61928feda0eebdee2cf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/tr/firefox-73.0b2.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "e2c6bfe8172f65d8b0753d60cb0629214109f405d307e547b468295f2050ecad89da07f15ac3026be06708a07d076bb75d1cc172acbd1b065b2e80f6f2eb15a6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/trs/firefox-73.0b2.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha512 = "b5954794d6662f78584a6dc713a89d4839873479def846d1ef42c6c726962d42f42a8f658aeb1b107ab926532fac6b24e96bc5d14554a2f5ad3a714ad6dfe5c1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/uk/firefox-73.0b2.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "481c9df28badb22a59f6fde55ce1c2aeb6b2f2204698ff0ec7ca16b6c9bacaef856f61c7ddd4d6c7d04ee3c15d5d2250ca56288ea7793283a9b7eaf9e6341ff6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/ur/firefox-73.0b2.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "6cd9ff5ca3d4058d8bd4053ef8aead82593eea8309b522c61e93847c8c2ba83456ba93b07458db1dd1300fd5870af509d44f49e57938d6ba0b5c422f3f435878"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/uz/firefox-73.0b2.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "5015329b4e0dedc2af64858ad6b575173d1391beebc582583431431cdc05df475d156e52b30abd81be18107e052a3139486f5e79e1c8e9e299e90b099151fcfd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/vi/firefox-73.0b2.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "2ef185beab0e2855f916bd2af12e97434b1ae1c210d06f1f7c47639b2ff744f1743c17356c0af438346f99295fb096c717b99943d5dea1d65d22fc93b3fb2c9b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/xh/firefox-73.0b2.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha512 = "7ccb4f27766660cef3e88bbb6fcff073c55b8ee6a6ff99503a2e73f9cfd1e1b3a94f2d350c9bca2f787c6a2a03d1fc6d454344148220520b4b40f5e32486101f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/zh-CN/firefox-73.0b2.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "fd9dc51cb0c02f4c8b4790e203825ae6f17e25047e198278614d2a8b6826c29e190458f3093755223f6a5b09c22bdec25265e3b31639842fd929d833dd0042dc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-x86_64/zh-TW/firefox-73.0b2.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "d42805fc1bbfd4f2a4d16e2c42743a4b85bab0e28c63d74393954a23127c10b660ba4ca96c7f2d6fd5c08ffd1e86650c7da286e0c71767d843e93f71c1fd8b8f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ach/firefox-73.0b2.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha512 = "adf8e2d2fbae828f4c796260dfe1855ca63d16553a5121428473330d92c59f30b63135169b8a425bbeaa43064c942f39cd0de8ce90bf5c4e93ab4c8ada956f69"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/af/firefox-73.0b2.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha512 = "7978afb08ede31377e1c9fb7948bcb523125161da8fab74ecd00cced4ed668319b8747ea4b1b7a0a3b38ce65f206126f24654ef32431a30a1eb27b45ead1e08f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/an/firefox-73.0b2.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha512 = "cce41c91f5c05955de318280c1471ed7d00c5d69fa6f76eddece326d0bca9f2c6106e3c44e4c67603ed03f1b883350625e95d988b6a6dad315a5c0b42dcf1c22"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ar/firefox-73.0b2.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "0979b285a8dea587046b43f4734cce5e4d7af29afa12cd70f57d895002ad26e2ad0beab075da97ad6a0b7f10446fed303eaa9def4bc627ec011ba5ff4b3a83e4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ast/firefox-73.0b2.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "f75e39c09838983bddfbe4f67b5d6a71571d316505e7b45340458cd2b47c167d2c661bbe9f6e62b3da9b4e5f1227e0b58ba536846e2a00c519e1a91b89959bf7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/az/firefox-73.0b2.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha512 = "0a99a8148d5e16f2ec82f967f8ba368505343bdebc4ea441c9528c5bdf25eb085bcfc098a10dc2a3cf96bff2ded7cb135327d3949ab713a90045769d40ad8d4c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/be/firefox-73.0b2.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "3d84e37524b67e03495d9e17f27cdd1577fb4079117959bdf2dd4ca4a2c9e0cd9c1fe51e195b86df5d41893ebfa00adf81c4481d8e6927833dfde98fc9f5c4af"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/bg/firefox-73.0b2.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "8f58078575c1de5e5c710c9b802ae761f200c3290fc761441c7a9f9c1f541d69c4b19a1ea52b7b0309c8574abf43aa419419b78a8be20ebf185593c37419d2c0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/bn/firefox-73.0b2.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha512 = "9df46adf97572c209937cda57014b5aa441d6f586e055e46f8331f3801061b784e609c2e249dc3efc9ede2b00e9d20014af0ffae05fd96655e18aaefad4b7d66"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/br/firefox-73.0b2.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "bd1be4798b12b71f790ae42843a6b1aec3bef088275b5295f3ab202a5d26a31e67b2aa71279884b771e9f2aeb8c9e6dac55527761b8c788885f30432a60e1f81"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/bs/firefox-73.0b2.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha512 = "fbe0c761db5d7cce95c1d76d33d323a02fbe5b76959a6bca5a445d88571ca4d2ede0855a5c06daa16fcaa967afab8009ad66766afa241717ccdcc07017875907"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ca-valencia/firefox-73.0b2.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha512 = "0c5a1930b891ea5f681c6d6538db0941bbdeea07ecb6185971fa9d38c752da5c1c1ee9055cef64174e3febb5748686c2f0babe29a15ff9bd0f49b0e72513298d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ca/firefox-73.0b2.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "b1268753067fab824bc113b411ef2e2bfd9565743711c5bddcf9e86bf3697b0710f056bee03fff66512069cf5ba9c6fccfcc92a7fc834ded2969ec35c4122c8a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/cak/firefox-73.0b2.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "48d57f56fa9ca2834ac8355878da89a2eeea219906dae9093d213ade4e3aea65fffe2891ad84ba30bea07ab36d7f40f7bd04348ef37bd61419133f413debf2cf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/cs/firefox-73.0b2.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "6e8adbb7a8490ca5e0333959158cc12b2bedd0702948555c5cadab4b7af52521a0118f901767f9240970aceb66af89301e7c132bc723a703a1fe5b952fec72d5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/cy/firefox-73.0b2.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "518a32d58b70a193268717ee071cc896d82fa3af9549bf76cc50eb75300e63d3acb766ca46d4a68208742faace69130d39bceacc711f67740681bc87eb7086e4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/da/firefox-73.0b2.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "6f72f63f52299eee8c802f83ca2091366b0b820d5dfcdc079eecf366f49ce3508b26271f4cda091c0367ef979412e7a2a9b0824196660579d057dca93d790d57"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/de/firefox-73.0b2.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "b339dae18b489015c225282798911587e459b5e9bea3146036426f3d5299ceec6761848b70aea4cdd927374c8105f18bbdecd19f5bc2e3543a20a2648c26de52"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/dsb/firefox-73.0b2.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "cfe7206e9d8cd8ee88d477eb0cd0c3c5d948fa8343fae548241673dd872a8a4ce5edb80cf36bcca79f87f0e883cd8715cbba494e0cbd998c04dc9c570b589268"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/el/firefox-73.0b2.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "47dd6e9bd0c903cb37b3d15c9cf3fd252e0c8d6f3549c05576a21a0dab577667905fc45673e4d83277eefb68c1b7ac6d7b8b33e378d18371a5344ff0ef819a52"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/en-CA/firefox-73.0b2.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha512 = "278be4ad1dcc050b5e9d1da5a243d5457f4c2f9ac60addff516539707fa6f1c19f7481b03db4ea19e5dfc8294a0624a0aa9d01f684e9be0a9897bf582b1b75ba"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/en-GB/firefox-73.0b2.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "bac1afb3c5f7e83aae8243c85b6fcc63481fd8d1a520aee6747399d13947e836843878d98f11de111e58ceea9b6b8364da69bd00fb89fc1836456eea07ef40c9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/en-US/firefox-73.0b2.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "e33307bde573b8161129899cc118759380371f181fc13cded623687db34406f8893316fe19303b1ff6209c73fb87b4c3a4be9a925b63bc198eb8294c9c6ea1e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/eo/firefox-73.0b2.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha512 = "004457b990fc340bf13f055d71442c91dde14485ee8715e709b769b98d1844d24f6189571e50ba7d691ba149f5788cf0f770c80036951651e73f3bb0c373c5a1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/es-AR/firefox-73.0b2.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "0b5aa22d81858bf044782cf3d6639bfbd55dbec0bf34d89616885f35d144369dfa304306c488f9b0a874723b770d3a0327e873e54ac6ca5190461509cffdf7a9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/es-CL/firefox-73.0b2.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha512 = "7fe521ddcc65a53ba8a0d3c789a513182347e9d2f596003bf7a98f51291f913a93a37821b68cef7c3e3b638cdd1713384090d88ae5cfdf006e3c820f76ad47ec"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/es-ES/firefox-73.0b2.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "ad6a4c28f6d52a74c67cd84023c85233c10f57e1112a9ef13887ba20e42f6aeb355633cda7f8957b8631a672ff9a7d0b1f0ee942496b560b760ec71afb9f2558"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/es-MX/firefox-73.0b2.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha512 = "7738bcf7ec26dde64f2731eec7268faf064e8830e49f0c4ff93516102f464431936d1b957ac44b442309020edf7fd7e2387403e995c519d595c51197727c488a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/et/firefox-73.0b2.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "dfba7f1bd5196714fb7431d834a9ff8e50291673e59ade50bafe28a97e2a4a8fdf747554545c99774b969d7504e69425190e271e1baa2832f14a8455d6091691"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/eu/firefox-73.0b2.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "b5b38c1b5b0fab731d119ac3b6b58ce92961a3d4097e673c5205bf51de8a82154147deaa58cc8d1812de91a676904fd7aa9a56031936135ea392583a4bce3b8a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/fa/firefox-73.0b2.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha512 = "411ddf46362d62518a524e99ce4a1044a606e0f8b770cf661099a0562cc0c797fe5c7d086df65d07d5f56829bc259f86b62e2c2b1a2ead593076edef3cd93dad"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ff/firefox-73.0b2.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha512 = "df82f32dfbf318aa1725d1a1a90cbe14149735d7eaf485e5102081652b1364ec26f35f49d0ef5fd65fedc0ce433f25fafb40d55dbacd0e3c11f2ceac36bc175d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/fi/firefox-73.0b2.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "e46a29252140713af73ea97ea38ae47c253e02561517d5249c3ed3652bd2d992c2bcfb0808220c28ffbb797fa2f0c32003715df0dd51bf87f978da0c7c8f83cc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/fr/firefox-73.0b2.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "3a3450462e6f043997e015a8c2fbb2a93d68d913b3a2225fa30c282dbd060f8aaa1180f548b31f8f3c0b9a0d0ffe3410a94480c05da439e8be7b897fea705ac7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/fy-NL/firefox-73.0b2.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "cb442f4c19831de64b3499a4dee7b84f31c28d66542e790dfd721328ad56f200716eb78b7dcc5f4bbd2e26cdb2008a1b9a3ebb860e41a1b7dbf78d8010d37666"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ga-IE/firefox-73.0b2.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "30d99ef3a5316cd5bf79bee2e0116ff30290ac541b0fd7d924ffe40141dfd676c780b44f5edbba3126f74045d38c05f36a0400fdb80514d4734731776db3c5c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/gd/firefox-73.0b2.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "376fd40603879c80859ca825cf28a67621c88cbae6b2f4a384192e53b0da398f52e1df1a6a655d7d5607a5efdd787d53b793599e85e4c1395e0bc5a11ec637f2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/gl/firefox-73.0b2.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "f432edfefda30d3ba92963276377cf1ec921a40b3f395550d0aec42fe1364fb90091977c8db605042f166ec1f5af8bb355458016cc411a98e578864a15e988af"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/gn/firefox-73.0b2.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha512 = "572f786359db0fd4f3607f7ab79c371c455a2c743674e8b784377e4e439209c09a147172e5b8e8c31478c9485643e82ee6389e9eb1a90cd61b1109f993021913"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/gu-IN/firefox-73.0b2.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha512 = "3ba6aace62c70a5495a488498e14adb130b05cd1c1b1c823a304520ef95030a218fc4ac1363bfa6534b5270517d7cc93a279bd9e8b61678279e40c048b734c73"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/he/firefox-73.0b2.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "d395302663dec706dd21d43ac24c34574168c17b2c3c72dda261fa835069569e8dd095ece9a4d2c83434cad4b422f478935fd488b5f6215727525a7e2f09570c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/hi-IN/firefox-73.0b2.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha512 = "91974648b9a07db383ce7e806e51c27b1fcbf4253cdf26dba281082c0d60ced40e2e04b4794aa462f82cff4a4ce41e174b05c4634203fb5f39d7bcbd3175a373"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/hr/firefox-73.0b2.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "df121115a87fc3d5a47a024d3aeb6758868bda3d882a37bd7779282e6bf8c4170a945d5af7243aa41bf02af07683ea8e2159c933cfb6424cfce4e7b9b5f7f8c5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/hsb/firefox-73.0b2.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "8afa767bd78aa6cf818af93f4b77cbd9e3980c47b2959e445c7e206146f639a8034bee0340e2dc27c70e6a85f9b2bab6adf4b1817fedb859bb5ad10df48b961f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/hu/firefox-73.0b2.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "6871c713ef78261820f54c8bb43ab469d39a68d3f5ec4e521167fb70c0f9eb76cfecfa7679e1f92ba6698c5c20fa9bf6280864a308151924ca6bc4efb5af9d1c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/hy-AM/firefox-73.0b2.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "a277a0f8238946cbeb1b9b9f5169f05bf55145aaa9c85ba15a6534d5a1aaf1c28dbecc6c6dc131c777294b08383ff9cd88ef8f181e5cd908669dcb2e96a4d64c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ia/firefox-73.0b2.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha512 = "7776d8eefd8e947b3682c00027d2a2ce5f48365cb5dcc87e88f882943718901bc8ff3c88abce1ad8fefc8f5d504baab05f393186426b04e3a3caad44f6b8604c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/id/firefox-73.0b2.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "1d5a7910f3b55ca071cd5d0026cbbfc6d992209ff56a2c04ddbabb946214259968189ebadac6b38beb6c1f34a099668801b141e3884adff55709ca0b65d12fb1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/is/firefox-73.0b2.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "e0c7e6ade6be176163570b373ce2f2b24bdeaeea2eea49c70b2d1e991e6871d9b93c1ba141de7cb9cf3ac4fe2c6f1fb7b6e1a6d2ed1801b9bf7f73cb046e4fde"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/it/firefox-73.0b2.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "63504175d04ea54bbc5ccf1825d0d8e63fa6f8ac83c21a9581426a1eeaf4819a49f7a26cb4c3858247f53a0e66cf3ef6735f98312bff4d0fb98993b17838ae23"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ja/firefox-73.0b2.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "1097726ca8dac536fe0118d3a265df88c7456c2c25aa43e4afbdb01b414a5df6f2fd11ba692f43ddae3fa6f7d28286bcaad4322c82396c7399cd168b9e402e61"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ka/firefox-73.0b2.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "0cc755e43a5f182bcf723da7ef1631952916233f84639251483e37b73abfd9d775d08c22a75fb60e74cfff58e820c7faf8db46a28702bd42569307c72f292b80"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/kab/firefox-73.0b2.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "f933b42c7ef80035a019bd942e0debb65f0182ecd93e6bbf79019627d3a7577f7fd26323c7bb26c974b33ec16647908adbb20ecc7561531f76f23fdef1ef75f1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/kk/firefox-73.0b2.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "da8c4a28bccc2d4feaae2f5eaba43cab783fd3430f8f4466ee9d823d9dc3d97c182368828724d0d7f38119242ae0007386f04d0daeedcd288a38fc27c728eedc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/km/firefox-73.0b2.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha512 = "ac35dd212033750b3dc35e5a2214781c3bfe0bb6afea376521a7a4d607a4b9dace1aeb4ecf2c4c0c8f5ab6bb49261719d0b4e760dbd93848caac9e90609672db"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/kn/firefox-73.0b2.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha512 = "3b56d42ce9fa87a8a4fffde8e70f9dacc47212d3853ace9e594d2cfcdbd03e630b81933d500bcbb02270f4c80e2cae7710698de938adca4452b2ad525863f965"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ko/firefox-73.0b2.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "5387935b0127df5b19dc0529bca9435f14d05e5870ee03848d0d9fbc13763c8ae4c181134b081d4131e67c652bc2afcc5c54e504ee5232679e0b2c825103e1dd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/lij/firefox-73.0b2.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha512 = "d4bad5e6a988cfbfd8de4fc834cad836e413f572e30e954c5711aaeb3816aef62c4411cd0c5a79b0c5ce19405ea2cd2d4c4603993ee2d4e48af7329afbd9341f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/lt/firefox-73.0b2.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "140f65faeea5e226c474b4d6e62d02b16f132f8328c6bdc6c3b6f1ff7333f77f093222c11cfaebd1453537c2a89f91cbe2797d892f0ed438d102f2a1cbf38a43"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/lv/firefox-73.0b2.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha512 = "21e71c6bfcbe5374c0826485a914db71a71fb7c38f022cc78a953267c168626631fbb5270032500973b25f53c568ef5f355db0d2a34e179d809ebe5b5fa6e6a8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/mk/firefox-73.0b2.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha512 = "3853af01d8b0931b0e9b00e2c30b38fd48c92e4ee3227a4036a99e9d55295deed68bf9ad14aa2edd997be166f5f7a5099826863ab6a9b643bcc27293582ab4bf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/mr/firefox-73.0b2.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha512 = "7ad9e2552008f6b6a3436453c479b55e1ecf7144f9f5d3fb8211bc7fc5f15412d0aa4dd07e0cd24c83834d325fdbf289e3795c4e03e02bf63e179fc466fc6360"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ms/firefox-73.0b2.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "26d510bf79c4a0cded72f5b227b4ae1b31afa0c2e2ae71e29e6c72f557c4968b8462abee358931c4c220a81d2ea3044a2e49f8c603841df3df0b601ecb3ef91b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/my/firefox-73.0b2.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha512 = "325506dc7ee5c0c93078c919daa10efa39f43a703abacb10f6a7d3bdd8b878a4ad8f931233b4f6eec9228a426c9792716bffc9ccbd49c5f37124b134b8658d50"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/nb-NO/firefox-73.0b2.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "510e08f98258ac4b0b7c39e7f00e1bc046b7b8b0cab3f6cb36f102e6df51c8c25224bfb1b4f9699f9828313f1afae0c40863d4733c0965ff99c8fce59c53f905"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ne-NP/firefox-73.0b2.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha512 = "d5257909d2fb47ef1dfc3d407a9b371448aaf090bcfdfbf38f4a92337cc006723eb04e4a2f14f56111df7805f50d202ce600f737b4888460d0c4db4c8eca83bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/nl/firefox-73.0b2.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "8a7c6ce306299ae530481c26b4ee5a57969a6892b7abb1950dc774e07cdc0c9f0c306474866f181336ffa05ca3960a7997454e57fcaa2d84799d1ccdf95b8407"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/nn-NO/firefox-73.0b2.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "bb857e173932a172ffa7a42ac6f9fcb3de383664adc20b99e5ba0e743a09072831e24c3916b04b840d83c242d8c1a46081abd38ab5349a6871d61b053309f3ee"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/oc/firefox-73.0b2.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha512 = "f5792406be24960e68368fbd363488829e5f63a4313b52bbd42ffd6a68f2d7a8bb838c80e150cd87d7a6d0299b0dc7ed6dca3ad5a5fd32934b452f00d64212b6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/pa-IN/firefox-73.0b2.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha512 = "3c34408c3d7937135e624c130347dcc3b47f75a78024c000cb58a15b1d2f37eb748e4c4ab1e63c3ab164e13a399686583fce69a4b74daddcefc349d79c67f121"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/pl/firefox-73.0b2.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "f897afe9be7918a3ac39db33c8862e06185128212c4411b4767e2806b57e735be485b9242971d6aa9804c1fa469e46bb2d42b78be002c341222cfc3ed37c198c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/pt-BR/firefox-73.0b2.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "a23e60f918c6508e05b49fa1a50f0f3c7280a6b9983f40165f632957736a8a8ccbd9b301ffa7c4e08ca42077507fe12b105d1f0b428e0e6f3b7e04c598342821"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/pt-PT/firefox-73.0b2.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "24216a8b229c35f9a0aa39411bbcde6f765279f2c7abe5c817f9b1704a9102e8a97f4f0ebe0901dbe68a28ca07be63eef1b694d511c335a46b9d0edb74b8e03a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/rm/firefox-73.0b2.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "ef9823b863ef69115fdba5f9a3f17f3d50ae0dbb8eadc74569d27fc5beb6637a18374bd3ee151df74bef96825c708df708db62b791d8dfdf4cfe069b936060ab"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ro/firefox-73.0b2.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "b32e2d66f225a9b12941c9359e8319a33d652beda0cb3d6ddf6fc8c4d0adfab1b967014814923271c0194303d93587f500b74e352b8f0ecb5781e80182d4aef2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ru/firefox-73.0b2.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "8edcf2c1ed391de63e0b6d74c6e94fd1088ab8f8e6f8433c94779cff0ce20150c46e71d48b657cfec1112ad3b123a39da794ec38088d5990757c53807b483cf3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/si/firefox-73.0b2.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "0ba714e6c9ce5198e1608767a9d4ab70bf3de3f766c213bddbf1c7e5114b8dd5e6599b153c0547926b58529b67cb0892285691b2cee5adabb8b237edeeab17f3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/sk/firefox-73.0b2.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "47b7ea379904c6425dfb584465938e853bf54194d0228e5c65b695fde4a0d53b952086f3f93df89be620e6ae3333de63a0fb15398fc6a5f93bf8671c6ee14f63"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/sl/firefox-73.0b2.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "e949ace722d148362a990c51f4c335c01df675cff49d68dc9a41fa1db8ee98f1c200101b2ad4934fba10564dfdac2fa586c0be568c19aa1691544f90fc841674"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/son/firefox-73.0b2.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha512 = "3ccd1c37f7320e28a84f05ab5ce7da01be567eb3f5951aab214df658b23990b0e8442eb20bc8cad9ed58ae70685ad7d0cde37fc7c8047097db86b23b44ecac09"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/sq/firefox-73.0b2.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "3775220d5847efdd802c97f26cae513fc3900753e9f1bb7169eec1e47bf3fca57b4b4be85b3c419b4a428e601d1c97700c77a69318ac264267eba3a45f35e102"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/sr/firefox-73.0b2.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "9892aae7376314b586e7d2e888b5b8bcf7f8f934c91d493209a34c7059f521c06037704dad830909306cf7745cde6d4684499371f5369b924f4d326192bae160"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/sv-SE/firefox-73.0b2.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "c0b2a327b45d0a0ca31e33e22a070100495c215bb4f095e3d1f1ea4a6a32b5400fb5aea30cac18e9ff9c8f879bcd533c0002eb824ecfa1917c317a8610f3c2fc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ta/firefox-73.0b2.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha512 = "b72b0e4cde98f9dd0245b727efcf34a01d1561314b7e609f96e531f55118e357cb78f7ca340036f8a613fcfeb88d6517a3e33ede010473ad52943ed766a6037a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/te/firefox-73.0b2.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha512 = "48275d13325f22939ec806c68f63f03e243ff1fc6b28102e2dc85dcb38d761d55330cef7b732ceea6d9632e7ec40db2d7861fcec7ee518623702da01873a8d9c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/th/firefox-73.0b2.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha512 = "bb6f530f5cf9ec84c9185b16ead438482d729bd152c111072ab950b70fc8cabeac95409e097930529deb31fcebb1a0b1a3a827574dc4e6c98005119a3c2568bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/tl/firefox-73.0b2.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha512 = "cc5d116983830444acb57b99e2f6049fd396cfea7aada57983885a2d545148bbf9d33352fa110fa1448e81f15ba9141bcf4201bd20ed3778d7b9acfc5ddc50a9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/tr/firefox-73.0b2.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "5d849a133844f8d09f2fd0c903c46a02bd2d0670177b8776711ddaf4d85dade71379d0dcb22b99566301355261ddecb2dbcdb344bb624c9333a2024213fee429"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/trs/firefox-73.0b2.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha512 = "eba7e46b423445b6d39f618175b67f2145e737044384fca1e92e20fc4d2ff849b9bc6b674af918c3255b35f5cd270cf1fbb64f0b1c794facac74fabad6c90ebc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/uk/firefox-73.0b2.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "c8239acbdca6246f56f709f178010d08ead92280392f35c96686e7f9217f49bc1447482637dfbd5a93e8c421da93dfb1d40d0d0de24f8959707047029245acc6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/ur/firefox-73.0b2.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha512 = "e154aa305554ee29aff8b176727bfec49c860058951287b5c8063ea90adefa361ed7175c07726d681376d50dc2311e872e704f19e349a6125eaff01eeaf228e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/uz/firefox-73.0b2.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "057c7577af0c11e7ee26992b17d31f8cf33014c3c8290a33541576b6c86b41de93d54c9e905f4aa3ba0d12afbde741a5b7b45a1514ffd8e19c36b012becea3fc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/vi/firefox-73.0b2.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "38c9787aa863827210cb97b5dab8aaaba7a84935ac314ba9e1c0e40721fe290f9bde23c51a37c9c7e5ffb1b0262faed22242bfab9bd7081aebba14b6a7eb4405"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/xh/firefox-73.0b2.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha512 = "77516a3bd2685841fd162b45ee4f23f6dd47d433080059455fc8543f71e6de3d6eb655381c694d930efed38381f4112b089b835f9c29aff401e1c90720f11f99"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/zh-CN/firefox-73.0b2.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "e307ab6caa0f6a7529fb7900d0e3d3ac79bf0f0ad3d86e928b52abdddc5e754cb235caab531fb06d350779b40ef5617a6bda67c2a23ff8a7bfab79bbd50eadda"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/73.0b2/linux-i686/zh-TW/firefox-73.0b2.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "55be1023238a12f4901b701590bb041f31482668995ec18af9c5aaa2efd464d2cc4557e3d43ebe6f2295468193e69fce9ced405feac27ff6940af1c31ced15c3"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix new file mode 100644 index 000000000000..c9dbe6ba4b96 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -0,0 +1,210 @@ +{ lib, stdenv, fetchurl, config, wrapGAppsHook +, alsaLib +, atk +, cairo +, curl +, cups +, dbus-glib +, dbus +, fontconfig +, freetype +, gconf +, gdk-pixbuf +, glib +, glibc +, gtk2 +, gtk3 +, kerberos +, libX11 +, libXScrnSaver +, libxcb +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXinerama +, libXrender +, libXt +, libcanberra-gtk2 +, libgnome +, libgnomeui +, libnotify +, gnome3 +, libGLU, libGL +, nspr +, nss +, pango +, libheimdal +, libpulseaudio +, systemd +, channel +, generated +, writeScript +, writeText +, xidel +, coreutils +, gnused +, gnugrep +, gnupg +, ffmpeg +, runtimeShell +, systemLocale ? config.i18n.defaultLocale or "en-US" +}: + +let + + inherit (generated) version sources; + + mozillaPlatforms = { + i686-linux = "linux-i686"; + x86_64-linux = "linux-x86_64"; + }; + + arch = mozillaPlatforms.${stdenv.hostPlatform.system}; + + isPrefixOf = prefix: string: + builtins.substring 0 (builtins.stringLength prefix) string == prefix; + + sourceMatches = locale: source: + (isPrefixOf source.locale locale) && source.arch == arch; + + policies = { + DisableAppUpdate = true; + }; + + policiesJson = writeText "no-update-firefox-policy.json" (builtins.toJSON { inherit policies; }); + + defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources; + + source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources; + + name = "firefox-${channel}-bin-unwrapped-${version}"; + +in + +stdenv.mkDerivation { + inherit name; + + src = fetchurl { inherit (source) url sha512; }; + + phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ]; + + libPath = stdenv.lib.makeLibraryPath + [ stdenv.cc.cc + alsaLib + (lib.getDev alsaLib) + atk + cairo + curl + cups + dbus-glib + dbus + fontconfig + freetype + gconf + gdk-pixbuf + glib + glibc + gtk2 + gtk3 + kerberos + libX11 + libXScrnSaver + libXcomposite + libXcursor + libxcb + libXdamage + libXext + libXfixes + libXi + libXinerama + libXrender + libXt + libcanberra-gtk2 + libgnome + libgnomeui + libnotify + libGLU libGL + nspr + nss + pango + libheimdal + libpulseaudio + (lib.getDev libpulseaudio) + systemd + ffmpeg + ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ + stdenv.cc.cc + ]; + + inherit gtk3; + + buildInputs = [ wrapGAppsHook gtk3 gnome3.adwaita-icon-theme ]; + + # "strip" after "patchelf" may break binaries. + # See: https://github.com/NixOS/patchelf/issues/10 + dontStrip = true; + dontPatchELF = true; + + patchPhase = '' + # Don't download updates from Mozilla directly + echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js + ''; + + installPhase = + '' + mkdir -p "$prefix/usr/lib/firefox-bin-${version}" + cp -r * "$prefix/usr/lib/firefox-bin-${version}" + + mkdir -p "$out/bin" + ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/" + + for executable in \ + firefox firefox-bin plugin-container \ + updater crashreporter webapprt-stub + do + if [ -e "$out/usr/lib/firefox-bin-${version}/$executable" ]; then + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$out/usr/lib/firefox-bin-${version}/$executable" + fi + done + + find . -executable -type f -exec \ + patchelf --set-rpath "$libPath" \ + "$out/usr/lib/firefox-bin-${version}/{}" \; + + # wrapFirefox expects "$out/lib" instead of "$out/usr/lib" + ln -s "$out/usr/lib" "$out/lib" + + gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") + + # See: https://github.com/mozilla/policy-templates/blob/master/README.md + mkdir -p "$out/lib/firefox-bin-${version}/distribution"; + ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json"; + ''; + + passthru.execdir = "/bin"; + passthru.ffmpegSupport = true; + passthru.gssSupport = true; + # update with: + # $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped + passthru.updateScript = import ./update.nix { + inherit name channel writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell; + baseUrl = + if channel == "devedition" + then "http://archive.mozilla.org/pub/devedition/releases/" + else "http://archive.mozilla.org/pub/firefox/releases/"; + }; + meta = with stdenv.lib; { + description = "Mozilla Firefox, free web browser (binary package)"; + homepage = http://www.mozilla.org/firefox/; + license = { + free = false; + url = http://www.mozilla.org/en-US/foundation/trademarks/policy/; + }; + platforms = builtins.attrNames mozillaPlatforms; + maintainers = with maintainers; [ taku0 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix new file mode 100644 index 000000000000..bd5c2cd595ff --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix @@ -0,0 +1,965 @@ +{ + version = "73.0b2"; + sources = [ + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ach/firefox-73.0b2.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha512 = "635122516342c6a6e94600d80ef86fe452c38d855df54d8e6006a97287267c25db8b9c899384fee6ed999c1ba077557d95f5fe0b0c5bbbb9ea2797c74bd5af82"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/af/firefox-73.0b2.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha512 = "29791295b3aeb04dc8dd60365ad725c2733556235f20d68e90032376edddb64ea91bede00a2ca89cb1db19a02fee266ef7ca8fa8e188a09726ef6c9d56112c0f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/an/firefox-73.0b2.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha512 = "d77b3d0043bb5a09e0d9dd3a14c06368279ef73c5a2b85656354832c522181d01d8fbe56349fa2b0482df5b49406318ee5f4ee32df88eb412d661c9310ae3083"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ar/firefox-73.0b2.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "d29dc6ffdd5411f60126bed7266d74e150afc432b736b7c41d14cdc69df5ccf313f555bd5035db94d4f4721fad0d757eb53f01f602f3f97eee75bfe7aafad901"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ast/firefox-73.0b2.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "1e04df48e65b0b654f7b89293981b258a8de20852e7cef7bb541f9475647c870224a63a64d96eb778d715d5f8cb5b327ac0ee1a3ec537b221adef30c06030f73"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/az/firefox-73.0b2.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha512 = "3949ac1ef210bbb593b9ffc237dcaeb0d1220c728ee65bea1eebee8fa450cba3186f31880794cd11bc26331f8188c4df4c440a2f19cf9cddbd4aacf6a034b468"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/be/firefox-73.0b2.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "cd9014015dc801211e9f033500213d253032c68e74280cdb5c983640b7a41bf36d12f0a4301c5744a1cfc505cebf2be592fd5943451da66a3423e7df62fa7fd3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/bg/firefox-73.0b2.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "aec5f5c4e8258734def07ee3d2cd434ec1a948e58d4fc1419f57f38a1cc267b460197f2af79df6942b823181045d3b44460905e1175e2984169e4db93c84948d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/bn/firefox-73.0b2.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha512 = "efeae6dce9918ef269a21c8203ab86016f04fa38364b90080ddf7907c830f93e537285639acf4e868f73175c489742a725e451ce8d9129c60ff6694f73f110ca"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/br/firefox-73.0b2.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "b256fac7e6cbbf41ccb3baa69b660efbd34cce95ca1fa01bbcb0474ab963ff089bbe478e3bbf4f66eb1f36942560f0d77448524c9a836d3685ef4709593b389f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/bs/firefox-73.0b2.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha512 = "bf40a25c2afa88ee9e0a161e362e958549c008baa6a298f663d5da530679a62406b22632b59b821b6939df25d409d40722f02c05c0a780aa3e4c6e329e515d4d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ca-valencia/firefox-73.0b2.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha512 = "b74684646621bab8116b0f14a8392b12e6a268f0e333af2a67af67be1a41bce90c06bb24e20f481800407acc3dc6e13c1dcc6023e25541a1f85a4fa578ecca3b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ca/firefox-73.0b2.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "984df57bb31685a55670fd00eafef0ee35346d81bf283d1b1ef01a431d8da332b07c0e89f6fe2f1a02550e0d63f0f51c9c60fdd57cc33ddcc1f2be9942e496cd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/cak/firefox-73.0b2.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "7d7e4d39738728397d02d26926295b19493cad3bfd30596d477be1cc1f02d0496a4b19d7fb741361cfd01feeb32c3783791bebd4628ec83cb99f12f8a9554951"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/cs/firefox-73.0b2.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "9de93ae204b910d5c67cbf7b8658e06c09a12d2badbc40e64ba011d986ed144657ee49f75ff27014d7fc0c09f03de6df10762ca816f34872fff84ac53d6783ca"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/cy/firefox-73.0b2.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "145bf6b1e36015e4b5931335c862daf758378be251f161a7c3fa6aaba72df63802adf876dd8aa65cc61c12aec2c281f9cd8c70763fe9e3f47e50b4429647d29e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/da/firefox-73.0b2.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "5984ac55a4b840dcaa60a03e49be16e24786ec6d918f66f3d3ff90c510978b4fb484aede3d597c0646026aa85e4d2905daefae02780cb83b1cf39ff72c204051"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/de/firefox-73.0b2.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "ecc7c1e0eead238d8d2e9cd40a282fbf39d0713b712d4d1ec9683f2859c134b55f2abfd0ce8249b1f329898e1cedca58561b68813aec018dfb10df160652fe12"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/dsb/firefox-73.0b2.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "1ed8ad5655cd8bcfc3de7c5a79ffc7b1c885ce423ded158770ebe5b49a1730e49b7d48a87f8e71842be5b667fe975b302f739a2b4690e9ded5ab599df9713944"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/el/firefox-73.0b2.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "b08611679c4148c0964832f8f96f49c0ccd7f37ee2cc441d652a7534087144c13fbfc61e4e710c53d4a00a4ccf264208c35579bad55adda4a612ad965245df78"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/en-CA/firefox-73.0b2.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha512 = "278d43e1d83f1e43b5ce461c7a3cf1e6a50eafe4f1ec6b587837820dada13e06fc5bc9eeb5a42a1e34ac086b5cc2d03a28bcd73328ac3f65c315cd39e97015e6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/en-GB/firefox-73.0b2.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "15b14dc1f043e28983c9f7270d49d1d34b5bd4c309d6e100f6c6cc34b2fe24c5473280bc03957fbd8e1eca4535b13d9249d0557b7fd1a3ee1759e3df2d2b76a6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/en-US/firefox-73.0b2.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "21c3b4c2b0eddd56f92a5d708fb2d39082aeff554fe185689662c44bcbc21db7a425b2866f0037aa617b880ad92b9790b5f3a1eb5ea22cdc5d589b0b50d6d99d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/eo/firefox-73.0b2.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "d350c139bad0f649e31e56e5b16c9796874fec25a0a859e3f4a6cd3dee2fc8f60ebaf382104c3e44f970d8174a05e3a26998c7d2d57e4caf440496ae72cbc9ab"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/es-AR/firefox-73.0b2.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "50635d8d9689c0afb5b93ffce5151216f6dd7427a01ecc3fc593c9f1874e809ef9f555589b3b85fca1c73a553181b392259066dc3866fb37902500191e638fff"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/es-CL/firefox-73.0b2.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "acc1e4c8f9edd91379faf483384aae5c3e1ae5aab335f6e5bc68b4405ea209174598d1b5be9dd9c60f4fa85ad715ff34c23b20d59b979ac92ef9059b3bea268c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/es-ES/firefox-73.0b2.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "8efdf14be0cb5c25d12dd70db18321662879b7dbda1e92eac9e0bd8b8dce8176f4334c52d8c8b8c0c5939fb07141063d73838b313236d404a484a8c537b9e1d0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/es-MX/firefox-73.0b2.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "e7979706020a50e8864a87fceb30d72da20289de8358a0c977d7d081835dd4f6d84d6fe2fd6271bc4e73344b49039d5687e01a202b1071b157af6d82d2146b9c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/et/firefox-73.0b2.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "461dd2166f8cd46bbf13114339eceea8eecf047d38318ed6f3a651c451b94bb68145289837862a68db95efa1c10ea211ef34d35c55128ac288b9f9e82750d86b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/eu/firefox-73.0b2.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "ba3be0b8114a8da2362802ac1be367d25c644d9228e633429ca13defb41055cb6528a2d803ee1ccfcec2f81496f95db49adb0b71de7692cddb29752cd9f16ba9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/fa/firefox-73.0b2.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "e9090ebea574da446ae98f4bdcf1c13c4a30d562a630c2b697b98573638d280c90fd48b3abdce05a5140a517b924ac9afd1c7667d999971da09e611bc126d601"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ff/firefox-73.0b2.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha512 = "b2a9a747f3441a302df9e15013b720e8c16204231cd498315dfbba4c73748d7eaff7c6f2970fdc7b622bac73bcd33660e894d98791cfba1e2ea05ef9460a1d1b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/fi/firefox-73.0b2.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "01e22f4492676590b89f3572bea5010161c6d701ce2bbe0b7f42343b96318b572593a495cd33ba423782d8fb00ed4dbf5d06ddb40c1d4037c0cdd4dc559935f6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/fr/firefox-73.0b2.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "b9addd90f7e609b465352f8200d411abb79a557b81c561fb1b2c735e765fa50556e6267af25271dd990e7cb875e0c772af566d956970a1cf97dbc8efc3228412"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/fy-NL/firefox-73.0b2.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "30b1094f5efba65709f40a9465d57d6f1f79ecdd42862c33e3ccf713efc4f45412de595f7f6a9966653dc4293753bb93572686182ab60429a4c972679c009ed9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ga-IE/firefox-73.0b2.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "50af2ae7f44bc660134cda8b750eecc1d058addc98b9a0c192ed3043b8e326f7b472d33688c1c9d3ed96a84e0a4e520e90b1984149291e8ee9e5a9533491ed1b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/gd/firefox-73.0b2.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "a690dbe5cda0e281fd1e027d38dce93be4f441d8b7846e24ce9eb4c1572c9b2391265cae1d3e0172454d9960bc21c9a31a43848345a2f7170e7a1422af55b67e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/gl/firefox-73.0b2.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "42bbafb82784aafa3cf336c7643d93a0581717390555e94d725cd98121fe75b3ee817e6d53fe357fc1f7f279be4d388b30fc409837654d01e0066efa0a4f8160"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/gn/firefox-73.0b2.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha512 = "b24a4dbb15051ece9da333c4ded8bb4e909a8655e00ab3a1a3fe86c7fa68646d99a21ae0711a86705df6288eb92b7af059512c9dda602dadcbbf846c46475c33"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/gu-IN/firefox-73.0b2.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha512 = "c857da5209acd8c8fec5798fe9ea82e144563d7f1517d6140c29cef66e40cc667017004594b6bb724c3d6b3b6dd7a98599ec0515260ad70fb12047a05466c6c4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/he/firefox-73.0b2.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "16e674e7f2c99c272f924fa43773553893aec23d8ad312b1d175670f37522ad340b3a4b97440b7f3006f6ff1b186897545c252bb55d3ccbb74f4e01994747146"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/hi-IN/firefox-73.0b2.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha512 = "057979ea03d9d39b2b2a1c8bd65b0def0374efb171c7eddce54bb02d9b4e92fc07811dffe58c234e1461fc85a9c39971a3b6d00f06ec1e53ce38b825db4aacc1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/hr/firefox-73.0b2.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "92b16b74eef2c34846fe62b020a398e433b95d45689ba51181933920f91b76bdd9bde145eca60c1a6f3ae1393dc637445099e6a20cb1cc61f07371a6d496a135"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/hsb/firefox-73.0b2.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "b2d72f3878306a7fb9aaf7a6325fd952580c064e23cc1a28de2ec64812fa6ef18126f2288d68c929e0863432595a7f6c03c312379b7324941d2116f9551ce457"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/hu/firefox-73.0b2.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "3236bdabd9d0d00113a2d1c76733d8ad36a8df51f20ba313cf0164a58f11e21f856120adb6203ce18b6798ecf7f2125950b3a3a77050bb40f3c2803f55aa7f01"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/hy-AM/firefox-73.0b2.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "6c8e13f928dbe9defe954463eb2c4f341429ef66554bea6974c87fe7dada2ea124f4c0215a9d6f78a4f275456c330a7b181c6b6ba6a9d33779454b48226c02b7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ia/firefox-73.0b2.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha512 = "4b69cf3c7e4692698c03e60078f297df997850c9c7e5e44f4f3d3d174d410823e325f6b9439430d49fe7ecdf9f7fcd0c8a4828c303d13dc27295afaac0b878e0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/id/firefox-73.0b2.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "771694f6a896ff8ce8ce994ae2c85312296a7ac663fad75865f6235321b1df0d0792769566e378a396d6dcbc754bdc0a1ebdebe1a61035518d0cd1ecbebbe3c8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/is/firefox-73.0b2.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "227026642bdd275cc1d985f2c8043c29afc3c3eac203de51c15b6a6fb86ef54ea693b8588bbaa34552c834a264f4e410c2b543fe017115a7031e617ee6ef139a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/it/firefox-73.0b2.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "ab5cb050d540afc90f98b2d86e20eee4bb0f3d5ed2bd4ed5bb366935155bfb74349648ce78c68d5c829d6554c6ddd1040eaa33115e857dff37fb2ee403292373"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ja/firefox-73.0b2.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "8bce95825aad807dedd304971a9984f4ef70325425c2fe3830f852eb3d1b10fa3a5aa5cbe107c4c5b7ca904e6e24c62bf55999cd3e52fea9e00fd67d92e0066f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ka/firefox-73.0b2.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "6c42abc1f5e97493f161c5dc5e319a7718ff4bf9bbb724276b70911b1e813185f4265c6596e8a38141abce820a028c13c2d1bdc94e7b509c007150279fb9e563"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/kab/firefox-73.0b2.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "324712e569981ab2b6e58c71d0d7136b099d0af6a9a8caf41191f44267044708f0e2139e1826595d7f772405d3e79938212bd4c3590d331d0bcce2f21899ad85"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/kk/firefox-73.0b2.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "c343e2fd02f2152e0642fc616c91e6b2dad1501483abc0f6f878838f7d3dbfec42c51120297f9d39d6d5a668fcb8b1260889d008e1fd8c1d384c63c523a37697"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/km/firefox-73.0b2.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha512 = "ab51e99d7fe5ab230ade6015b356976e3e3eef4c9fc8224acbb6a88f3be6ad5ab5b8eafb97e9b258979a771f28b033e846cda1cce1ce58fc2805f0b32af0e6a4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/kn/firefox-73.0b2.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha512 = "33b306cb378aa2baeb8afb5bfc2c6fe0ff20abac0515de8057ee747c979ed8c2fbf128f2c199eaf4aea90c7a28aa4fc848ea83839b42383c729c04876295ba87"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ko/firefox-73.0b2.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "d48dee07c5fcf3c6b3b82a59059836d5fb45b21c56194b094de3f01daf49e194294600c5dee93c318cbd0ba740fe49a623d60593fe9155767932f278c5cf0b32"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/lij/firefox-73.0b2.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha512 = "ab80587c20097c3f5ccfe91661f76b9893a4b8498e8b4fc6040fcddf99aeaaf44d7e3f2c46e31421f54c574d9c678431d3a73f29443fb45aaa465fb7e75c55bd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/lt/firefox-73.0b2.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "97770f69feae1c1003f53e2dfb18b240547f808b72736cd073098a62d0e3165a4a29087277990b905432ab52f5a1cfe5630beb9daf16612ad33df00d0ad7f9a4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/lv/firefox-73.0b2.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "798c5a3c7165a0cc503af3f4d8744625bf73f6f5ad873cd37c9b1068c7e7e769b30f222db041e96877ed6375731d0f199468d3fbd30322a299e8a5450c55a4a9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/mk/firefox-73.0b2.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha512 = "74b59ace7bff5728348e8cadc85409e72ef90f60285f61deb92527996f24c34398ad3a3f5c99a9366bc0a0d5a38a020ebe7c865047cfefee65c3d8e6b0d547a8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/mr/firefox-73.0b2.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha512 = "416545c7b787832dbd653790e56be685bf47eff307766c83c31e221eac0745140ba71c160d3e4eb95ad3a0dc5930161ccc0b6d54797ebe076151c26bd0579fe2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ms/firefox-73.0b2.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "8f05521707e0b04f0d1aa0a28084540a0a1dd65d33e6b8bc1038473ebd701da3cba6ee390531fa1c1c168529841002f6c44681864e121ff56317d646363813da"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/my/firefox-73.0b2.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "3ff9d270b5bc76037b80a47070ffe1d3e2d5c9548a9f82612ffef886e46e81d27c0114a51e65cd67bbaf2aeb6d724afd5b0d26abedfd278f193e0ac31e31dab3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/nb-NO/firefox-73.0b2.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "f8c9f5e3c0b21c2eea84ed9ad200439e94fd10edd66de2c0a6c1c95eeb88ddaca7220f8591e29e342dec11197fb16d0dd9e9fb314caa31b92d748216ca7b4e44"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ne-NP/firefox-73.0b2.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha512 = "de1a661bbe2b19fa39133c9c59ab6dc203f39f9d33feab4c0e24a7c8400b0245d0932ffea54a49d0d4add5570f9e72d5a37b055d6b3ba485a1a3f746db9b5946"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/nl/firefox-73.0b2.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "78f50b286b9d9a16cc6c984904a69447d8905ce831ebd7e76cc4a2338681373b5a03e8034df38f1f3f893d7656164e4eb8be07167c9aaf1f109ef876ebca0c6c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/nn-NO/firefox-73.0b2.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "b3fe5a63f493ae8fd67b4705a9975dbf32ba73ae74c54881707c6801e779134e40f8646deb6d5008efb9f730e707e007f829976c3693141d527074806abc5584"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/oc/firefox-73.0b2.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha512 = "cb36c1aea15d36c93e0c7fff425294afdbef700ffc11541cdab02368668b743a129345084bf7db764f4704d6d9661297faba7ca700a3ab681a2ebf014eea6f7b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/pa-IN/firefox-73.0b2.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha512 = "bdb7be064ba9ec1fd0664ded529b14fdeca91e823e1a48768b59bf849fbc9a60fa9699e7e92c66acf8eb754700073b109ee64320797047a9887465e9efd9b7bc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/pl/firefox-73.0b2.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "d3fdf2112d5752f8a7445d0b9e6201228b90a85233c0314e7f19c0f87535f1680720392eced3e9ebbfedea9a4f3482b1e098c5eb9a4e95b9adbcc96f1b0a3aaa"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/pt-BR/firefox-73.0b2.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "809e2a5f1839b28fc0667958c915d933b4ef2256ffec8520bf863c1714d575ef54d90c2bf23b97b3cdad668e8dddbc30585dfb1a3940832ffb6672990e225f2a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/pt-PT/firefox-73.0b2.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "97045af947534561ef72412d59932a2a777e9d5afd6439a73de34cc39ccb9f394b4bffb131d9c4ba8f0dae8ae0308291292df15333fe5ce1d5cba013021c7c54"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/rm/firefox-73.0b2.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "d0eda89dd90463c4d3af4b9ae946dbe72695fb3c76bce4756ed24991726935e917d2484132826e03858b53d85b7b694292b4ebe5ac1c0dfbb9dd8e9c453410c0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ro/firefox-73.0b2.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "305495a3b2440d29f23b22f97039fb57d1f5501852f533c03066e6c367e6dd51aa869155e4b0bac5c1ea3fd23754cae434b5f8190b6db0d3e686b777124f1076"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ru/firefox-73.0b2.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "f4d87e9609a5c1028beec87a6cca52908dfdd1db56fca1808245d73665186209abde26c16b5c41d1dcb7e0eeef65231e6eb62388601f42e24de69ffa1cd4fab0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/si/firefox-73.0b2.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "948865b6e79b167539796a75c465b1b1b6ff8721ac95adf6e8e7716d41baf90bbe5d7eb9a5900928936263b67be973e77660758361a8cf2c05cf2d120118d488"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/sk/firefox-73.0b2.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "034763795af1763f6b26cc1103288b4fa34e19eda0b78e01a220aad9279f774ddeac58cb8ac60886b9d78d611305fc32a7f390cb9b7f93239a462fd41a566ba7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/sl/firefox-73.0b2.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "ee7d2038ab0469e257db37f9a1190f5b77df2b04d32cc631dea9d0f76c36a2ce14c9687f6f3e4e5279418bc8c16694ca197fc739abc534de4435e9b5b8273841"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/son/firefox-73.0b2.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha512 = "fb4befe20f46bac34ef87694c092e7f2edd58a3a54545db329fba1b49e9a9f69af11ec144bc55ece5852e9dcbf9565fc5c385ff37d99c8a988baa98391ff2c39"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/sq/firefox-73.0b2.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "180ba1b6140fb29bfce8c2a3811104050ab70883f58a4e286f5a08412247935b8d288810381fb0c246940752660c037388fd38f35ded52201b094b1307148019"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/sr/firefox-73.0b2.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "33cf786a57d0507cc9c10a2fd8042767b072ba9e42001a35e5934018a2b849a531165ae8d2e2a6c430414d7ddf3c5363fd9ec222b3a50428ce6570ed03f9b678"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/sv-SE/firefox-73.0b2.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "c3639c89d604ea2ec0e0f3000edb0e292de42644d0d77b93e10a42f1895c20e69d3997762e0234843fe6ba7a487cfb70c7fcf0b8f1dac0a862d631e2734ecdd4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ta/firefox-73.0b2.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha512 = "7bba0bb69fd1721ef1931a3abb47d4e30aabef574c9d03c63c326349f5b8871eb89ca2b7915666a371b82b2c169075e0f966d60673abe65ea9e57cf95dea0b85"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/te/firefox-73.0b2.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha512 = "daf3b0d74e0f5979867c5bcf0660c8945eeddd98c39caf5c128556fd813368d6f31e249c71086e250c858907da676ca36a9d6fdcab4d4d33aeed89ec872a1063"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/th/firefox-73.0b2.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "98427d651b0bca789aab3017382e02b89760e1999ad8954a12192eaec7a6f9c926c4a3008709c9b7dcd336a3c60252c4aa940ab53afe04dcc99b7354dda56414"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/tl/firefox-73.0b2.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "120a8fe2a10d9ff59c9335d9a03f9e1cd9dd6615b33357b3be45fb250353bcdc3e9236c0d4eaa8662bd01059b52c658bb1bc0ae264106393e8ec003ada7403e9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/tr/firefox-73.0b2.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "d2e849ff6f72d36fde0edc7b4ad4b1ee88a78cb7325dc917a1f268ee4137c8b37fee948322735ac7226767f605022418114763331207fe004a20ab603d519bcb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/trs/firefox-73.0b2.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha512 = "80d2406e23dfd63b589dd37b082617c05665b870e02dd19bd3eb2e80e7d7b57250149c7b90e3601a043dca5eeeaf257fde452138c50e97d34c83650128f29f5b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/uk/firefox-73.0b2.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "ed14817aac214d646490abdb364ddf4d101a114550f6ea6b28317b470115e77be5f22d90e7328c2af20f258d563741cf8fe405f7756a180f68cabaf6568d1dd7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/ur/firefox-73.0b2.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "45b676e56ae0b221bc0a34cc1bac067d87a6f772d4fc6ac7aa05dfb3d8e3d3466f91158e91ae7a216804ced667968c66892aa9ea966cc9b3e90e95030212f745"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/uz/firefox-73.0b2.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "73612fcd59e8b3f85076756ea9b16519bab6c5d01b1b8167c708f8317f0d2e2f7100ea88949521c1e963b8329602a34ee8ed0d4203d58c27582acae81b2f3f93"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/vi/firefox-73.0b2.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "49a6080aff2a14c7ed7b41e6153eb1324791a4a9052dcabfc3347458d1087f418f4fdaf29d31d18ff571f569f9959277c83776c7fe0f96ecdde50b1807f01568"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/xh/firefox-73.0b2.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha512 = "918ed1dc54dec5e135f146602163410d73b681b1dd30388d2b7bc3beb1801b1753651d9eb29a431889965cb0a41a77594083c7bdafcae84dc809bf33613454d5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/zh-CN/firefox-73.0b2.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "a4de972355647c1f6eb3a72eb01b81b68aac21131d652c4efcaf47039579f02d5e232e515051f5a217b6a650d657092d6bb831acb7bf2adc6b66a14ead29d29e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-x86_64/zh-TW/firefox-73.0b2.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "893e7b5334538ea26af2466096f886917913de874505a1a3f70b3c6bcda098c09bde0fccd4b439e98f980fcb74240f36fa82a96667b3284abd35a5de9e5c5806"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ach/firefox-73.0b2.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha512 = "ca585114e01a994b0e01b366686334cf9b3d7f92cf3f0cc3162b8ff4381fad0fcb1d44041c82b10ad2cbac33240649a7612006d132fb5322c19094fe42699f97"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/af/firefox-73.0b2.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha512 = "d81e711663f375e5f2cec36d26b331bacce5500776aeb2dd1c40c3b37e258c0f20ee79a42e2f16525e4edec1b3077ad46ad54d1929e352df43151f10c3b943c7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/an/firefox-73.0b2.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha512 = "545f6acf05a87e643f597d4b81dc2f9b53c90fd55aa36052008be32a692e1db244fd40884f517ca076bb262c974f8603b1e6bf041e3502e7133cb189d8308c62"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ar/firefox-73.0b2.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "12142db3f05268d9b25435b260aa408ea3f637677c5749a1c6d0721f6df501bfd9c393f3cafe13409ab89b3bf9493d918600bf5a432899d0e62595946ae0637a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ast/firefox-73.0b2.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "22e278e5431b3777f277300d32258e464c8bdf8ead7dbeb357cd65a059cde2a80a602aa41bb80141e8eee429c0bab1301eac01c2d725343447cf3b39db300493"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/az/firefox-73.0b2.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha512 = "0cde75de52a77f39410fbe84327b095c4e92b921f0ade76409361c53749576ac004aca36996d1994fd9a427974e87dc8a94e152aa79a7e8d4be5c5083511ced9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/be/firefox-73.0b2.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "d4fcd494f5b49725ed3a3bb54ba5bacc14858c7ad2de5d16c2d0bb1a33800e0518c88f32817d40342d90f86b092e84b98ec7fd3126f0161ff76fcda8237c2f7f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/bg/firefox-73.0b2.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "14790c5d31b68a71fe127d31488ab102f0319edec38104978ba96d2f1ed691c6bca44cc97d9c05e1c199314974c71af39618403bf35eb725ac704f7bc0d28ea7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/bn/firefox-73.0b2.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha512 = "661e097808b1acd1b5d146993b6c58b845d04bcea8db663e95c1ced6b8f7c6f5173340394d673a00c73e95e6181c0685dddb82967fe759f02792faf568c2b787"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/br/firefox-73.0b2.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "e99628473f831ae8efbf812f6fabbc186a0e76af19a19b8e284894f4118d8a5664919d8c44528625f27bd47f7f9f5deac76987d7a7a10490fba0163f8da42c93"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/bs/firefox-73.0b2.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha512 = "5d87e35510b8fa0ed0890b3fc36e4ecaf412a4e60ba8586e064bb6753fb84c219b6278d4d49868de6941c490f67214bdb22def1a83e4d9da76969cdb44e72406"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ca-valencia/firefox-73.0b2.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha512 = "918a91b0e98aff1404945398f4303fd96afb0eeba16e0feef385f95477148727f100c64e8cd658e42cdc79fe2b38e67502c2a1ce6822c9fc8fbb4c3957652492"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ca/firefox-73.0b2.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "b27d325d85142950ea02dfba2b5bca7d7289a52a2b68449b77b48b72dc5c42097cdf55781c17d8e1e062d51974b9422ac0ca90fd0632cabecfe535390dae6869"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/cak/firefox-73.0b2.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "4a69be70819192b2de859df79232a8420bf314e1916e35fab6e95414766b283cdc123ed0c486518577d4133c3133422bb19e2fa2550c652e6b79b368eafc3f52"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/cs/firefox-73.0b2.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "03dc006937532e6cf9c8ac01e95be6a6e9b8ea76dac8a2b9d6da6e6141794fe656fe03af1a52fbb892a9d0a99efe75c34daa538f559d852f8356e49ed74e95ad"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/cy/firefox-73.0b2.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "2089e639baa654327ddbe5aaee04d6dfff64304478567859b605dabc84d553c5f35568fb103a8b9ef2e94640f31e79a2071aaacf56527f84311a5a6207321654"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/da/firefox-73.0b2.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "500243a917ddc3dd618ea34de4e15967dfa796e6b6efc852700fdacef72928ee56b3602029707ddbe2bbc7653318f0079f976b9f51435dfc8f9359eacd8af57e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/de/firefox-73.0b2.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "50f1dd624fbac9595b022bf0853700a60fc29e9d5475857ee4db89c334886920ddc9c85f1243df20871528fd42316eb9b1fa887c77b65be120c81ac75d6fd2d0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/dsb/firefox-73.0b2.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "bdb5a0eb162634e557e511fd4d6b9802b993aabd34dd12c42da6f6b742b2574945e9be01f61d7cd1ccbe01e1122f06475ac916b36002539c32e38ed8e341a1f1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/el/firefox-73.0b2.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "cd9d04407e7e2549268529007cd9f0af18b91d404a537c9ba2138c4c125e68f7c7fbe2d2c94acfa711d6528903bf5c8622d07949fda301f6741242d2aef40ac3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/en-CA/firefox-73.0b2.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha512 = "7f13e10cb2948b2289af28e92dbf2677b93d6f9aa0b72790fd5965eb1e02cb5457325acdabc3c385b09175d9a3afc56f4799870ebeec964441720f804ff69cdd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/en-GB/firefox-73.0b2.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "aae87e398bd0f2b38b89dd68bbb044c61f651ceb80eee630289319ca2b0d0a834b4ce69b4ea7e5444f209b4a3d7591fbf77a0e101a1fa73c02e5dcf6af7f2f44"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/en-US/firefox-73.0b2.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "b114ae95a5cd219364a876a7224b57a05eca57d156bbb351c332796dd7c1f2ac4d41a0b9fe2b25f8cdcd006be7c2b35e4fe4de700c003a18d3643de0aae04ae8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/eo/firefox-73.0b2.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha512 = "c03d32a31280e8a6cc3e2160fb9aa36ccfe7850c96c8da517ba9964e721489da5d1ff5beabeeca3ebc669725d0ed67de9b9223360fcd0bf67cdc31b6199040fc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/es-AR/firefox-73.0b2.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "8d13617b21baffb7bcdfbeba911de41e8aec53aa123cb8e9233c74f27e33ffd69a0b905aac9e56f8a9d1eaebc25cc0ae1d4951ca57d788948c1e793543aaf681"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/es-CL/firefox-73.0b2.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha512 = "69706d1e4efbac4aed32b0d789252c2cc8da810ac336898698f1f835ab78694dc1ef7819726ffe0645e71a4b5a366222a575ca29963b94c3c17fac5eb7773689"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/es-ES/firefox-73.0b2.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "2398e2506755fdb00e94ebdeabfe04b6a308d5e4a342eb12921b053fdee66946f622d251c875f2f0908f60dc173c598bde1764ab99a35318d72dadaae3c16dcd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/es-MX/firefox-73.0b2.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha512 = "0c291fabe0a9e3ccb4cb9cb618cb61d095a98dc89bbc76fe2de20d9b733361d70f8acc5d2e520f1d4b584f7f5fc0a3c6b53274d5337f0571269f2f7a3aa0b25d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/et/firefox-73.0b2.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "f6bab80b0b7ef36179f8ccd2c0eedf0fe475a5a65b06dbb48ecf491449c4041678b79fc5619b8cb06f9f3f13c49d0ba1cf4d107b2389237835bac3716fe759ce"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/eu/firefox-73.0b2.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "3afd1f3d82112e20950962489d9667165cdf4b3dac4ee9406e0f82f700c2b2df90ad5d8f5d9da2c5bbb61c9d3b87afeea97b1235ee004316d3046cd0f5949644"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/fa/firefox-73.0b2.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha512 = "5ab09e6089a80a2056b42fef512ce09897ba7e30a2a2bf335c71b3d039098f032b6fef393429969fdb9ec7db084de922507b655f59a6cfedbbcf73b84a47b7cc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ff/firefox-73.0b2.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha512 = "975495a5a746331bed7d6e66f0203564be6a69890338ae43298e004e75873fab537169500cd4aa65590c47a532d36e0f8d7357d838839453f10747cb16308de0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/fi/firefox-73.0b2.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "ddcb0b6b07f692bbc02ce529f8d69e3bb9ee943f054e52d4a4b4e80b1afda4d297e2e0758df71c6d9dcd9d732fb8c1775e7d725b1ac4486e2e1942cdda9313ab"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/fr/firefox-73.0b2.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "d5cdc4caf65c02a45bc6ba5b84a952a061e29249ce14df9608c2a6bf99461fbf23e04a1ecacf0cafd230213ab2528b5314e28733283c4a4b0f5dbafb90765e74"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/fy-NL/firefox-73.0b2.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "3ba77e4ce3c8eb7d38498dba424f5cace67a9b1f304b784dbf42dfa0f276e492b4d7829dc4b63191c6fc249522968e8b2d795d79f397ed3d8081fe84093caa07"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ga-IE/firefox-73.0b2.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "b26760d435a565c19618ef764b4f2d1b507688081c9a5820f71ed14e703b81e6c07a8ce3eda05f1ca73d389839555e70e3e30bc9d2ed854795afb0e22bc64fbb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/gd/firefox-73.0b2.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "3d1218dccf616d1b735889f56b14a1d3751ceacd9f67c3ed06bc7df6b52b6433f1a5dcfedd25dd13818ba1bf153848ce538d3b7aaa7289b5f5b2b90b523a4aa5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/gl/firefox-73.0b2.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "5f6a89721259f028d580f0509c9264d078c5c1dfc974020f6547aa0dec42c48e0175779a28faa3ea9ea29f9ed31743f9df88ff17a86787ac29c4159b858ad3ca"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/gn/firefox-73.0b2.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha512 = "ffb3cdea7c6de1465bf94691fa3f4c7a04b9754e0e954d4666df212d7e1a5aaf95c5754ec8c1b037f27291c9c11039caa55684f12e502a0e2da125ce0bffe950"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/gu-IN/firefox-73.0b2.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha512 = "bfcd12f25be70ea1a97f4cf9accb5959828e88e0a96e0b7330b133f0b5fb0c4f9cffcc9a09904bd093bd4dc3d98cdbd89754bbb3300cc53f77e097338b11a8b4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/he/firefox-73.0b2.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "900bb06ae030abb119da7b44cda63289a6b0b0dda21ff28be29038f829d33fa3fcdb5c0c617a362280d12cc274ca5fa2f3308d5c1a07cf3fcaf858f7640b1332"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/hi-IN/firefox-73.0b2.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha512 = "e45a014b0cb924db4a3fb4e075b8b703e197aa5d739d46f088cb2f0f99466441ef487e07189bcfd271d9376842474856657d929878ce4ff8523245d0de73c2c2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/hr/firefox-73.0b2.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "957da6b386b27821d8b2e3f167eb69c6d92e01dcef22e315b6a2e26f4b4a87cad3a98db273adc6267df36d163ffe5806592857f263f13ac2241fef93dc3eb444"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/hsb/firefox-73.0b2.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "c33c447d1a1bb837a562a92a2ea2761d92baa9fa74750000af8434687c5c0194c95339ae8695e6c005401862cfd3b90043da38f1a55e80c8823d026957c20cfd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/hu/firefox-73.0b2.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "94a9db9b944e008079e901d4b2d03cdc9b01160e4c49e32b7f3ed6988aa69c95b60f266d7b06d6a2d5561c98698832d09b85fce3a93a50ada406ad80f26177ff"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/hy-AM/firefox-73.0b2.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "37685298f06f991ef0c1e9d05da79be6fa9d6172c8d4193cecee215a8b7c6fdeb6043c5bc5a8e0695d14e039a49d692fa3d9ec8b843414cc4ddd3f9507ea63ed"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ia/firefox-73.0b2.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha512 = "30923169773de0b25868ede401d1b18ad54183bf052f1e42d9ea6fdb3119b2c3e15f285bb24f40a56ab4edfdbd5c00eb56d8a9e7c27f155e4100b0028a24f7cf"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/id/firefox-73.0b2.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "721a1dff4cd79578ec8c4b8d8e66bd57f8c7e70e4cc2daf9aadb42a38e6300e992a7baba34201e0cfdd6f7b185f720a2ef0d32bb6e473c203459dc2126f7531a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/is/firefox-73.0b2.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "d55b5378eaeb6d39d0bffcd7d82f4bdf16d892ac33c6ab69a41de9dada2e1bebe2dd1630355d2250b2194c41294f89fac507c42754a3bc7b075b129db153eef7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/it/firefox-73.0b2.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "1a054ef4a0eaa388588a0eacd6648660d5135e1d248dd2a4f303ef3b8ad22bd7b1f56dfa2b1998474ee4f6301659d5d62b1e387d41d0ee991d59bc679bf8c957"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ja/firefox-73.0b2.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "c62799e8d3d4c8b8bdd4b8d814aa3aee89ad3d7088a50420171ce1b4056ac4f33214ecb52ba7c7ec192f53cc426104f73a4951efe44829932c832a8f4b971624"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ka/firefox-73.0b2.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "c13eb0751f1a37e0b43f5b70d1be6b12f1c12f02b528e78ab5fb33386c6ccd692920000a31075cad6d7ea9c4093d3481bb9a2574ba63dce69c3a158ea704fdda"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/kab/firefox-73.0b2.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "3d9251e5786799e5c6493f22e3339ffd480af1b5aa2c6444e6501f14d1ae7a325abd4c039d99efd046311fa7db5d04810173ca316429ee059b977a4bee53b5ba"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/kk/firefox-73.0b2.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "ff93602fab3c54e3cac28b2dc4534ed25032d2d785586bb7483304ed2326b75ba12058e709d23a6d3735017c32921352274081d17828d9a5788b4cddf90d3748"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/km/firefox-73.0b2.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha512 = "bec57f2477fe8bc098cd42aff6b68db83bf1681c18ef185e4f8c677fffcf033d8e35018a0a7fee0af3bd46298c9a93f48ec74537e2bd71ea00272085e3319065"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/kn/firefox-73.0b2.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha512 = "256003768df5f83b39a8364c7a953e2489f951cef080c5c7ae4cd8f368123d2b781cc1a53fe59071030910eaa39cd96bdc02f8014bfc04fcb030fb586faa305f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ko/firefox-73.0b2.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "3c83aa41e7728074dce7f5c496a3cdddcd6889009f6874b4f9fec596ff30048f0ca64f2d511561b93316fc42e2bdfd1e70f340399d732db5c1fe7550a5475955"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/lij/firefox-73.0b2.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha512 = "90b1fdb4d2b28001cf2362737b80e7412056dddf0b66fab9f79a3fd78c93d5b9df8f0f9cfefe96c282fda428aab9f3b37375ea7b9d337f6907ff06bc10db5f19"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/lt/firefox-73.0b2.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "1e8aad573f960c0260fba0186deecfc96786f9e7b9424cadab195c9011eb4db32656d957afec432c0e09339aad209a1f58fb8e9e17fc58053f6736890f3b7eb6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/lv/firefox-73.0b2.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha512 = "1248de9d4c4a8a346dc4855ce77e3042d0d46030ee80c40bf78880cbdf789259b28fc92d296df34443a68fe4c570acbb159d103cdbc107424e23b1ec8f1c2bd5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/mk/firefox-73.0b2.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha512 = "989e75efaf4b7d684b136f968d87f87c2f99cdb14e028e14c3867c9f05518ca23d8feff5e08a20e8bb6c906a8f75cabb2c737c637ae49b7a264cb054fc3d55a4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/mr/firefox-73.0b2.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha512 = "badc17f4a3e908dd70e8eda671f134fea18691900f8f90c82e136772cab51c36ff1f9a2ab22af22f851c9aa202de948ac44406d992f1be42b8d723c0189b6cd1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ms/firefox-73.0b2.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "b258591119bff460f9571ca0ddf7b98fd5e0dfe0531504a8dcfae3636acef6bfe5f84b6b6bee50db6f12759a0b466b6311118f748e5b718f270b1c5ef6affac0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/my/firefox-73.0b2.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha512 = "8bb984fdfe04971f830e50f0f8ca2d9233f9a1895ac819f48bdd8348658e1d265d1c896295e0e4333e2506f28747fc05993da46d67d6bc186b053391664ca09e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/nb-NO/firefox-73.0b2.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "615b0411abbed2ef0dbd4e91d7c70659d71b9778c202bc84097db2977dc794180ba8099264c825827e53f85109fdba0104e22cc7cfb497b47345be2ceb7cc4ef"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ne-NP/firefox-73.0b2.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha512 = "062e093255269bb39663e570bdd10d3ea044555172fd8b8a9db052465563ddb286cf796f3ca35ee9e159cd0a7b6ce282bc8e9397da3f0a29845dd6f4d61a5889"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/nl/firefox-73.0b2.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "53261de3a2290e1046ac8bd181b9fd8784503c191761c9a424641a03e41f9709af88a815f02662f4856b4609a09771df2e0900a90b4908c9e7a9487008509b37"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/nn-NO/firefox-73.0b2.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "b4283a60fbc40789105fd660ff1e20e896d74f5b5dc18bface979f1d0f6db09f1e6e40a82e6b8d283eeaeeaacc93ba42d40a289eae2e5082048442ae2fdeb948"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/oc/firefox-73.0b2.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha512 = "9fdb44e34b427610e33d232e88f96e3c185f77ac57fd6b3e541977305089cd719cd8682f21be3316c5d3f7cee4ea4f40917bb2449aa8a481bb89889f7ac50757"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/pa-IN/firefox-73.0b2.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha512 = "00387977b971ad63e85c60fa014b402d7ae4aece63708ec79a3a030f0bf75035cf869f0a5d17bd665c5cdd92d1dadeb719962029e03f3f5d42f7c17ad67f6ec0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/pl/firefox-73.0b2.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "6ac59497ff2cc645bf8714bd87b94a5b08c88f6068bea02361a9188c571ab3c89241e9810c2f9a4f97ba03edd9e3a5a4ee384b826513423c4f3e7d25fd9fd183"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/pt-BR/firefox-73.0b2.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "b7b5ced18eda661e084b27b1c78341dc2e6b4104a447dca670721b937b1a8eb3b5763f86e807c183b83d513219152624ab3a61f6bb1b7ae51f0c3444498046b3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/pt-PT/firefox-73.0b2.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "5e53eb87cd025c47397296141d3e6393d1444ec5bfc91afc2aa314986e7e7db16e72a30768bfaa370c0fc48fd1bd372cd075c7c930dc10ff1fb47701db674dd7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/rm/firefox-73.0b2.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "b7a67ea7b3829dda6491d22c42da3bb1220ed9a9585e2c54159428025159e53f531d7102b3c55e532353cd9583ce2b814fab69cf53709b0491719331caf80101"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ro/firefox-73.0b2.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "282cb275621ea2a78d7cae24c761f7b66a949cba0d6272156ef6584f2ba63117da5c842060ad3213f485609287a156b863abbd2b1e2c93ecdb63d2c3c790fb5d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ru/firefox-73.0b2.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "48f06652e41da835588d82fa93c59b77b3c21cf900f269a0ad50eb89e69167d921cfc0a981f6ecc23cf9d3b20a21875bbc783b8a0affad71a6b6b0e56ffa38dc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/si/firefox-73.0b2.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "4f023ee0745acbf7209904a606e56d4fb2c7b278123b49ec5e93e2008591114f0593d1c5b07f3821337d0eff826e71e840bc6bfdf565d3971b8d41d58a34f71c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/sk/firefox-73.0b2.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "8f10dc4153d94181509fad6656f37c5889f5369dc7c8fa2ef960dbd939ebfa00ae1e5c239ffc4a032d709e9be614307c641c4e19f72a10a7d03a6e7b6522e71e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/sl/firefox-73.0b2.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "ec01ad790773ea05a49bba9e549cc44c6515a4c0bb97d0579106e58df7dc18d6cfec986a5be47efa0e3498cbfea2cb9370cdc32c1146610abb1c0ec2c40f4c20"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/son/firefox-73.0b2.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha512 = "d65c95afc743fa2b0ac86cf71514655f0d2b75316458093fec007f8e034b9705907894bc2789439f01b9a484d0d278e486d1fa3ca8f0abe0533d34804d12daed"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/sq/firefox-73.0b2.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "bef3ad971564a4ec2b6ad2f5e666a000d7079573dee9a8bb40b7b43afe030ce35194fddece80d2eca535809cd010911be61af6789d5bd9aa8b18c88b89877ee6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/sr/firefox-73.0b2.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "73ab3b4169d672b0a54e46710c11cf652423918c67e7bf5df78de17a1e5d8437d82c8326580d779648a5e522000bd239f73303c2aa363acb71c2ffd1f558c4e3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/sv-SE/firefox-73.0b2.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "501b7e444168a10a1e3641ed6c5a222e33c1560996e7b4f103a5e32bb7167bfb774d4e51723cda39bc91b4e4c59ae112f85744ab7c750d422466d0fe9939da2d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ta/firefox-73.0b2.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha512 = "441d9021c8be46880e6a71916a19158532f00f64c4e3ae18697c0c17380bf355c28b8a349f7234d0ac31a6147f0b1e6949a7c8a9bfce7815c01aed75577e5d2e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/te/firefox-73.0b2.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha512 = "f5f27e43f9f3caee4b095fdd7f1511bdaecf1dba5260b4bfab6eafa1c1fe1c68c72a6b660442da504032e8ff5c6be225e26d523de7aaaabd03a988c14bf3bf56"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/th/firefox-73.0b2.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha512 = "86d4a5e45097388570ad333c52498a9926900decc6795c376588515ac1de2a414d7cec69258e5021d57f0be5a60b3f52a7c7089e093d105d80f6a297e9777ebc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/tl/firefox-73.0b2.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha512 = "fd99afa1461455f8ea169db761124315b4b1cfd8ef7c8a817cef020df9134f27d88651466f5d78cb6479f78e0ba6ab6155a8f9507cfa5256fda65b94f59cec5d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/tr/firefox-73.0b2.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "03547bc0edca8b01d93153abadd94bf0776b5fa9c78a2a2b4bd8871da44c11fa8687848e8353b14434d11ddcbaa659b25171df293fecf518df14be729c73ff87"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/trs/firefox-73.0b2.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha512 = "bd77d9afe59707ca6a6399c90b5b780028de744cc471134cf45fb605c7e8fd518e0cb23a503215c1b8844250c7d746960b837e35637cd6d0893abab8d173c2c2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/uk/firefox-73.0b2.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "b6862986d77dd2a95519b6a6bb0d45cdc98f56659230a104939bad85a5827ddd99a46f59fb09250f8bbcbdfdc28aed3dbf527b23060011ccdf56b2d4983daec4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/ur/firefox-73.0b2.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha512 = "584213ceeb2afb8d00e7fc26f498b5cd0723b4087f2a7282541b7b471bd49379d65a1ef0f64b915950e262d34ce54bebec79798d0cc8252872eb7416c8bf41a3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/uz/firefox-73.0b2.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "42c28444365bbe5824e89ff658ff8a6754eada96063b925bdf4b7deae74c60f635622ed9f112d8ef3ca28b0cabd0b8217ce8cc72af80685b45a438dd92d46c87"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/vi/firefox-73.0b2.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "a6b1771264ab40f9bd900f05727c2b484192e72503f20ba3ba92b6a36d73083d1126dad526b0168d5cbd0e376001418cc2e37662ed3bfccb2cb2bc28a566c233"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/xh/firefox-73.0b2.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha512 = "35d06d6c31b6cd00377326c895ab7f7be7d0fac2b728174d46b9b02ef1cbbb81faffc9fca16af2e2bc35ca7ac0dde69019e47f00b921fd94e2ffa7a4d086d99b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/zh-CN/firefox-73.0b2.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "877d29497eedad0da7bf48c9fcbb93ab5b5852daf764030ea9afe5337ae0599cb0a960a0001c92b52e1c2e32beace0eaf59ce318e5ea48ed8345ffc842e67240"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/73.0b2/linux-i686/zh-TW/firefox-73.0b2.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "be9d6ceb28b866d6831b6d0dba01406e5f89313af8081112618416eada51b623efc8eb1afa65d458ec7b4e12f7f12c05d29a58821ac17cbef7f01f1cbf9230a9"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix new file mode 100644 index 000000000000..567c57aab2c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix @@ -0,0 +1,965 @@ +{ + version = "72.0.1"; + sources = [ + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ach/firefox-72.0.1.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha512 = "43f16a510e67ba4bb836ebf3dd570503b902ec1ae900a9e89c551ea6bdca6bab1a716e92877c16b738b871cb4d1660ad5c26baff3d57d455845f47f22b53bca7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/af/firefox-72.0.1.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha512 = "72f3fc490ada32629f555e0245056e6f328c05048dada3cd286292d7a8a891f9fa9303ff701a66734f04f1375aebc2c0574637df766f8ae9bd5036db3e81ec15"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/an/firefox-72.0.1.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha512 = "3afb1f5a6da6d7a4bb4ac047405b511501a1429602f9c1ecc92bfd17d37ae425c7255101598692084a68591c4bcd27c5f94f0cbc10881f6ab4b77b2525521b25"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ar/firefox-72.0.1.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "99a0390d39e6a49ba635cad30466c3c7a55e0aedac25ae13a9ba2f1faff5e8b26813d198e072fa4725028ee526647649b49ad0416cba470619692aff530dbf05"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ast/firefox-72.0.1.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "7636e9d0c70267100a0bbb0bfbdae3bb308e2c38fd3d38bf8b13c4112a98aac298fb57391c7e985b5d76b7205b1d180e8d9eb1f73264b44758ab5c56d2ebaccb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/az/firefox-72.0.1.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha512 = "47d667d87a32e9ab1cd33814b3d231324ef3a1ad302d9372476347c118230b8a85b038a04fbf704e93fe4dfd40f9070ee7e61f00d5503884f8c798832d034629"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/be/firefox-72.0.1.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "1a3d6654e9f804fb5eda6700cf6c183fb72dced8d90236a860da636a8856040ad33095e41858b3ae7028d02278998b9aa9adb2ee0daee2600e213185cf43f374"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/bg/firefox-72.0.1.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "8bb9c4eb8886f6d0ce5a284e09f77587f6bb091a02209a86c60e8c4f0d807a4c78779494db1fa81c10fb9463b9e6a24be7e47de4f52ea239bcaef07198ee9f15"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/bn/firefox-72.0.1.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha512 = "e9459e8cca78bbc048b26f0610c58e607896588d762b6ca59ed078867932cb35ae2abee79e8271885d7b10a7fb802e1aee73daa65abad64916f25dfd4bd9a7f0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/br/firefox-72.0.1.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "62c740962f855f22aad7c63b346fdb224a55cf3f7ee1935ee9103f2ab2a638c1f2dd1482cf8d4965f70dd8a56852f6dd676fbd84f5976d6a03c0142468f3b70a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/bs/firefox-72.0.1.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha512 = "71078c35c8ad3fd131529178b75c8a9e3f57f398ff61e230f79fae38e44dfe72d6b9657adf1a636b082a4592ca62d89699e726f9f2bae0f1d5bb3399a8b7362d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ca-valencia/firefox-72.0.1.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha512 = "807c234fd009bd25dc069be095eb13f499432eb94590c4bb5cf7d84d48cf97f713465b5f56f0ed9f56e30fb94a3aec1a83868b61c6b7a5113d88470c645e2534"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ca/firefox-72.0.1.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "5a26962f759f9c2c12cb7e58d2ed6063224625011dae1a90b9cd27e4b55e47cf9b7c665a8da16ef1a22d8b70fdec4e8902b7d118e62698417905b9f5527ed4e6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/cak/firefox-72.0.1.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "7e51187c51560ff612a9b3c7b06209bb64140e191a4b5cf7b1b2fe3e53450e2020e13e0be096f548cda747b910be038e53ddaa3b969d46e10ce4c163d771c42a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/cs/firefox-72.0.1.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "09d239079128ac8b6102671cd9d3d2b03989d358f191ae56c11a6639797ba49caf6519ebbdeddd836927fbb7f0df029da055b6d98d4efe1700ba689508c45a1e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/cy/firefox-72.0.1.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "e8e2cb301c022db5944e4b5fddc55e0a4a27aa591e4d9deee5e170136f48df956b0bde64311539743f430484035e88e28f080fde3e967d31b424cac0db1d6c41"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/da/firefox-72.0.1.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "072063ae9757d3f06d4f12439641f8b78b38ec0328cc501db67b13f3c0c5965ef5d170ea22534d9f4804fb66a23fab21b3771391f35aff98d4da3030e5aabb0d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/de/firefox-72.0.1.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "4ef88f33a507e8ad65f3f49080e58515b77b09b799d99ae45a725309fe0f4e4b596005c1cb84c22cd815b411c98e4d23494ed454222514ade3fce16fc9b67109"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/dsb/firefox-72.0.1.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "a7b8c9b4328d5c6c6b53dd9226ca469ac75360d71b3bf6ea987e7d1fc7f5d1a270a408dfed4ff3e8d6be557a520c45b2f019d88d62dd007dbb57cc852e6e751e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/el/firefox-72.0.1.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "ab31775e09085690623c31c33bdd22a73d2d3d2f5bb13be0bbfdcfcd98d5fb5a16490b705fd42e30cfadaf96026ec147ef758630fd40e1ff3703f14317713e52"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/en-CA/firefox-72.0.1.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha512 = "6d20bb65de74571c233cc424dd2442c8fbc7a77347ee1b0ca6e0d6f5d11ff2a21f23c6a0ca9509836b19d75ac88186f17513cf3cd99696ac4f7b16a42f434f17"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/en-GB/firefox-72.0.1.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "058654254505d6be377fe9de989638d1c758ac05ad9244a4ebf0d9a233dea9e7be4dacd35d1b12a20e3b8deb53b474f13e0fb38e3e7ad85c64e48d664b85bcd3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/en-US/firefox-72.0.1.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "8ebdc0eff1e8e0fe269680041276268775e1d6cfa45cf0139593082275abe1486b8be9dc6989811b30ba8bde7453e1ae7b37ccfb9712482815ece731fa07e396"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/eo/firefox-72.0.1.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "02242eab6cac30f19d5333458e1a0eafead00338ed33007387430739a628aba1928a4dd10cea2ab4c828b98840d55c2616d573f1ba09a9f9b26c01e79bff8613"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-AR/firefox-72.0.1.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "b60242c35164d66efab4a72b7351982465a03498be29f9a994f3397138b9aad37a7c1f8158f3dfb8b1166f8db0ade5b45f1077257dc3f2f5f5712e31f98618d9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-CL/firefox-72.0.1.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "f5e388ce9e6edc6ac081b672131a1df5c761a79cd303b5cb5eb22b870e6e3fd0425240707d97a0ecc46e008b913276cb63a88ee7640e4ae7aff81612876177f2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-ES/firefox-72.0.1.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "07698512c0d024483b169c75bd2ec8e434bf3c91e47ecf80e73c8c8a982d9eb803dfd6fede85651abbb50226aea185deeea4f6c0c42144c96c59040ed2a24e4c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-MX/firefox-72.0.1.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "4448dbe8bf8bee11d0c7b7b5321dbd6c1fea6d594150539b6c6ea8abdddb96100fce21ac1cbf01aa226b95b2f6db8a76faa6c11089abac2732d44b376e63862f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/et/firefox-72.0.1.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "fc8db28e2abd979d4a87bc875948412db6e8ec41571d34d397717f35abd4638234108cb5011c8ad6380a48886f6fd3d891a18d1bc2e7e5967ef128f386c91121"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/eu/firefox-72.0.1.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "9af8073945a2f554be15fae8c7788ee9fff0da2e1232fe9dbf72150c9076c55260c0c0a30363be02e6b1b5da8d216e2edb2712287d55537e3755a3124e7d6179"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fa/firefox-72.0.1.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "b8832d7bbd64fbd3900595c4f66fd79458577bbf944c15794920d244db24de7541c3bcc2911719a3dbd2f5beb36ebfb2629bd6961cbcb9b4a2a37ec451373759"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ff/firefox-72.0.1.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha512 = "6ba67b46cb76ab9e75dfd07d7ae6dc81bca9f6bca3d6650efbcf4115ba5b9f09135318c547b0785f4d6330987683d436f3f8881920ab823a33402326a659fda5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fi/firefox-72.0.1.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "f538e71986429f574ca7fc5020911f52016b276a703ec2fc061665cd83728590b30e2bc1cc1d3fd60c5d1ef2919c78036291300894a4a538e1d81f2c319c32a0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fr/firefox-72.0.1.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "f739e9f34d61c2ba11968cd1343b6292844cbe1237fca0335a7398f46f7654cc8531bb0f22cb0ac104ba00f419e154baf9202ab129ee8028a09d09e35a3c90df"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fy-NL/firefox-72.0.1.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "46c460d1329899a8ed165f13173fa8b80a9c3a557a876a8baaca1e344d1e8337cebc736c0c147494806cc0efcafe18baf8225e40253d5a995ca0d38354d013a6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ga-IE/firefox-72.0.1.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "bd94bf1a7eb0e99c11d59dddca802b85b83ff1b422f947062960c22728f2f04574ab90ecbf5ca0eb82ceb463364d5a64021bf0bf061c5b95a35b661e3d57c93c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gd/firefox-72.0.1.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "bdde214b7e2d4183b59e10d6613136761a6b661dd51e7827e1277be2e05726314657687cf95329f56fff5bf596079739915a71ffdf97b601b85c5d71979353f3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gl/firefox-72.0.1.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "c742b5e17077ac77f8711a38797e484768f2f7f5fe5e533a63cea430ffbdfca54a3df2d0abb2a584a94b8530fe4b5a39b44500b5c1c3c9dcf073eb3881c212e3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gn/firefox-72.0.1.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha512 = "dc18ac9afd198558e9cef1bf51f2dda659756843ea77263c3be844a326f12a8df011c0c0f0e9553f13e8d4a9ef5c54a1a55103fa37f5222e4664911a87615f22"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gu-IN/firefox-72.0.1.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha512 = "2264baa47305e992e4d0e357029f3329736f7510da2f375b1d327e63f60f46996402107baf30baa7800c73162e43756f62fe8606502e25ecb5a5471a38687b00"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/he/firefox-72.0.1.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "6212701e3a6f724b0b022f6f8daf39800227736863ee9ed8c5523e56636514a4ff9bf58ec7581ccade4dd132acf6d24b986a2e356a2401a41a93c544a1a91bca"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hi-IN/firefox-72.0.1.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha512 = "b586f9e5f621a4c284973043f306f2681d9b324a36cb6f0e566b871037452b3497dcbd55e7fd48f5897f2232454fcacdd4070cbbfe36e458175effb42611556b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hr/firefox-72.0.1.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "ac0b3ab1a085988a51f3c804d79077bad791e45295c54690f04bde1bef2c220b227d4d33055ad595785c67e2c3c398d61b9df379da32556294ceb2088549adff"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hsb/firefox-72.0.1.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "96abaddab6c5239a411514e14443a1e823886ad3d374fbcca321093f390907fdf28af8bdceab31f50e5127ae1e2fc5b37399c323ffbf20e469a390a04d5f561e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hu/firefox-72.0.1.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "097f822ec0db715846b582bee49a65f611b89409365bbe05dd8c4b066e066a76960966984f44dea090d58678a35ec44b350a9263f50250f3ee1dc7fe6de0169a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hy-AM/firefox-72.0.1.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "874761d38dff94c038801a8ade916d40772ddf5e571d434622b8510fc21653591b295ba188aede50869452121af5b4e611ed305a6bc3044e683548865096792d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ia/firefox-72.0.1.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha512 = "e9349a4ec589f73d3b70395afc3fa678817322b87a97c3212a436b768b7edad8a6821784b920eece1dc7c17fe310f1d8cab33ea65e780657d87116d5ccebecd4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/id/firefox-72.0.1.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "1cd006c3ef0e0c45a91a390612cdacc46f6983b58ccb746431ba0dcb94c22ab4a36d2bf4e7652bbfa04b9ea0e50c17e72c501794a11e8dfd9a6389497804b5d6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/is/firefox-72.0.1.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "616eec8671a725689e730549ab959f054a32ef6d7c3cf5a9cac0826dcb3e0d5a70a14018cc7a126378d3b623050df763a94ffde481c40e19c4b8dd0e4a7b353e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/it/firefox-72.0.1.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "b3a1204d5eb1203e0d2f430ba7b7823e24beb44563c8e7eaf225bf2635377107170dd710e945327f07b21ba14b4a597221dd58880d6500c9997fb0fac35ab2c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ja/firefox-72.0.1.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "19b0ffb5b790faccdafc528ab43e91d3b542e71db206a280f83bfd748a7aacd808df043c6acab22c51a668cd2a0963523bbf23b375212957bc55e2b2a753e355"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ka/firefox-72.0.1.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "009385b68f28f3a5e5b7a700d97c01f42c84085bde4d92b0079d3b8f3046608a61663f80c4bbed6de8e998c6cb1c0d0cb228dc8ca35382b13f669a2d9e7d8d0e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/kab/firefox-72.0.1.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "30c95436c4431208ad491fc500d97b5f0afaeec0f22e8ffd39c5a07cd3554e47db2d7ca93db13caff667b9ef8ce048501d5121fe61d07070e5e69f66614f2a01"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/kk/firefox-72.0.1.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "c44c7387a4f700af64fa23c4b643f57098f840cacbb149dc68a517851f2087c2d882d1cadf9b147a318185f3b657fd3aef5a3b22584b4de0fef30e7bc8e31417"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/km/firefox-72.0.1.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha512 = "edc5616a85b309c390c426b96a60658be350a0ebda009f25067c9c7ed94d5c0e1af67b7c8d4d6cd4df8e34e9296f04879f5912a8f6b743bc0ae07297fae5735d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/kn/firefox-72.0.1.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha512 = "47f33f81864ca7dd61d3bdc2679a556f0f42df95dde60327b09a6cd1815ee989518da2ccb61104e258e404dbfb68dae99f9afcd20ac835d010674aea4e44d820"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ko/firefox-72.0.1.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "51c6aa7bd08a4326f4e835618ed8841568f731f6b4a11de2b39a989670e50bbb094f54e602484b7bbbab46e7c55ff844d02f1e56897993a54ed1a26f503e749b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/lij/firefox-72.0.1.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha512 = "5109dffec7feb6e98b309b97dec3fa4c5ef11e506bb28cff8bdabd61a3385267f885f68b0c67ac269feddfba6fa107de7af0c95e9d38093fab2e52af7f294e77"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/lt/firefox-72.0.1.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "2af5965fb3b73af30d1088e599020ba7dd9fd00cc63c9f7ec3d706b953d92768975e5e78cd1bb5729194db359f33ba59672cd6a01fd0d7799902ba1017cf4fd5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/lv/firefox-72.0.1.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "08220de53bba3519db1c2155189234b822082763768615075396bb23ab970962bc6a5602486db2d9240ed3051b4bb11b85a1ef95e10dbee67781962a66e10abe"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/mk/firefox-72.0.1.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha512 = "fc8869cc3e696356707b846dbbe55b0faebfbf3e8c0eb8ab498bcf548d0b12c04f74413e8a5512c15aea0e7e5ad51d193e88547dadb921fa6af98010a8f620f4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/mr/firefox-72.0.1.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha512 = "303af61561fd54638c1371d449ba23df16eddb4d18a83ddd997d99652e040ce5fa2208ccdee0242e47b25d609fa2cdb391de124340a3782dda965d1eded3d303"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ms/firefox-72.0.1.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "c9ce87194ac3bbfd30b8702fe2496be9165359eb1ffccd6bbe0bf98850de9a3e2798a921d9996546bf59fdcd9c4b1132d55fc6a62ad671baca5143617dbd3fb7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/my/firefox-72.0.1.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "0c31569c512e84aa052cd7ae5dceb164e0f3d48d303848dec80c4490dd157c08889b126ed354075d06d375b3f838437da56d018ae1288a28c30b50e34b4bffba"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/nb-NO/firefox-72.0.1.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "4632a857180e2df8960eb343727970d6da5eb2d0d82d270f13c337629217a959897b2cd013d9f0c6d93eee54e0245f0ea6bfe9a9bdd12f8f84455cd961d53631"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ne-NP/firefox-72.0.1.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha512 = "e485ee72e51359136c3aa0d9c63821ccab4d547d61d15d7db2ae92c139119ee09207135afee13e63e4d651edc407d7aac2e068f559162db0fd32c4850259859e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/nl/firefox-72.0.1.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "5e62d06d92784522d3cd38b9ff584556984d3271c21ba89fad8f92b74bfb7f536aaa26fe86d24a8bb8af5123865af1e9cc801459fa9bce41281ea602e5495323"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/nn-NO/firefox-72.0.1.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "fc2c4a165b65686b0e7e6d82bfe1fad78fec6cba85f387348f3eaffe99401ed4e1aff1b1515fc12030351943fcb7bb621b7c4ec3e7a8dae9d51719ee69cf1e16"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/oc/firefox-72.0.1.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha512 = "6a65cfcd9f69a14d7e0f3a95e0594744169bfcb34a77b5cbac3475f79c134d5fc7d2c77a868fb9780d271cfdc5a0e487e35cd20a5b61f7f7da2c0109f1399f19"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pa-IN/firefox-72.0.1.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha512 = "c5be85c65e1feaa358ff2e51481a2512c3ca8c8d3ad306da749a9abbf906c7e49a7f0fc88f612ea4e0c19c7f3ccb860dbc5ff2af01e10fb71783d9ca9d257af8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pl/firefox-72.0.1.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "1b824c4d039c0766be5206436a2b5705eea9aea423b8e9d83fe95d13151cf41d8178b2e7005a81b868a40d3c29f9ae7966c62a974a55191985a60ee362a2ab22"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pt-BR/firefox-72.0.1.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "2004bd2c6c70153b93f809c3e4e0bb37fb178e49751cd9a8cc42267c74ec94a3fc4f6c9d8540d36cac629e03196dfca1a3e4c42e2669d2301ef4ee55a68019c1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pt-PT/firefox-72.0.1.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "28281392897802a403191e42c315020325f1bbde8f8a1314e460d49d55537bf806e2e88de6775824815124bfe6870fb96f790c992c9bfea8d9a43a4c678df71c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/rm/firefox-72.0.1.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "6a09c1a14f9c53248d7b6d78efdf16d5d7f9ba83ac572c6b9b53b1cdbf393f0a2d0d9674b3e351fb2376ce13f250afcff0b9b3827bd01d64909c4b4c375688dc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ro/firefox-72.0.1.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "925ea33212f3208091413f5d5507f2efb0351c6aaaf1a3b58664e85fd3e7d7cf4917411c47bf8473d9f406c2ea6d5c0b82f9d78f0396b785d05d555c6e3df32f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ru/firefox-72.0.1.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "7a39ff663334c4c5bc4e2c6c03cfba37cca615b0927773a94fcaaf3461367c87953ad9ff429139430a1944971c7a88180f3889b5798f65044ab5daa751a42055"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/si/firefox-72.0.1.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "408be66f1c77ada2d80ad80b8c537e93156dab48f10f732eb1e680934e0bb5c3995cbc63269f60080134cb53d8ba95c3243f66c6f7dc1cef1b80161afd6be609"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sk/firefox-72.0.1.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "001e0326a8e090b3f4994da9a8f09ca70cb87759f3a5f1eb488724b6070f2c62f38e7eda8345bb7f0b8d168982b564ed74b8eca0bce6e099931f16489137add2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sl/firefox-72.0.1.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "ef769cdf9721ece1915e4064e7c4f0a28da1c061e8c8dd9fa6e7b5dd7c88e4fd73f7a6dfae4b6a9ae3bdce8688442836040a5d190e44a912d3bf1fb5bc520745"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/son/firefox-72.0.1.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha512 = "3c15fab6139ab38d3d2dc530681de715eea187b6c86dd84d9b50035cfbb9ea040c2f80c8572c7a7448efee2f47dd51e3d06a3521d787e2902ff7d55cbf191e36"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sq/firefox-72.0.1.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "9c96c28c094fa58d41c7d3aa1dbc635e8b1dd960083ec0fbb74b7d15267276f1626dc16283083fd3537ffd35ddb5265713d6055590e02e84b55144c9a0794a48"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sr/firefox-72.0.1.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "d608f85aaee8262e7dd5988f524dffcd0a3067992aec04b5260c5049cc130f3bf057326aaa52b569d851948eaea2fb28ef9d83aa4c4a60f0ef4c9802dabe4a6a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sv-SE/firefox-72.0.1.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "e13c55f2b570b2ba4d5ebb28462c9a65d512c65f7df950942e01af70bbf3a24e52920ee61c310a193ba45fa0cdaa1bb895b098480e2f8caf63eb97904ceedb10"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ta/firefox-72.0.1.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha512 = "f8c1ed3c0384ffdfb74651cb433d6d3d2f0dacadb80e8868e82cefdf6523a7963695af47fa4cc46263c07564eb25df3fbe98781709d66915ee640201faafea4f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/te/firefox-72.0.1.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha512 = "0b332bd6858dd677d0572783a92f9e8aa3098881f9683579a447c0424de3d1ff42805b435b8fb96c925495cb6a9efbd4a64c643039b689dd05788e054fe1230a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/th/firefox-72.0.1.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "cf5d207a43e3ff879b705d31d09c6b350b4bd07546b26ecf81a0ddf7aae2ff52bf33c9b46d6a68cb253fd60941fbb4c0bbd88a148c68afe6d7e2496635e4c80c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/tl/firefox-72.0.1.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "357de95fe201cec31676d2b8f1886f096cfad09a0c85bfd0a7b22efb0ed9c61a81dd61e33eb4f5fe2fcefe869f6f5f2f2820862b4d12c617da51efc032d3eee3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/tr/firefox-72.0.1.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "8f35c2debbaf88d01ee2426b21c84abd7aa2888d6d464dafd5dafda5fc27acd2caac86acf0fba8ebf2798ae3c24b0e9b7831c40e89123dca855be413eb1f8417"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/trs/firefox-72.0.1.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha512 = "74a02e93e892dc5e52e4609104d70808c491c301aa30070f0975f818454de39dbe78f5e193922d383ce01e334a1522b952a8d13cfcdd5699109ca74d1ad3cfb5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/uk/firefox-72.0.1.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "3412150426f735a6635115254f2e29e36eaa4f43ba532fbf7d78c769d53fc1e181d1f108a5273756b2a036be38d5bd3f4486044b3a4833862e71c600451b3f13"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ur/firefox-72.0.1.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "ef17cc7ce86ccdfc411fa9e75d46feec89e61a3e9c0923f9adf3066d0093090c4ab7db7ed598b93f2236954d7b3f8e5ecff7f1699c65c9382727b239efc0ef41"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/uz/firefox-72.0.1.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "c4a7a6063b92ad631fdee795037d76573b3909287212f4cc40a581bcaa5d329c22a2c4b38d549cdbf8846bd5cc5312e0d9726be87629ed76e11d2b5db13c55ac"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/vi/firefox-72.0.1.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "464dfea04faf08450d14615948644b1349e656a059d940ca6c2f102cfa5b57b2995b961b79b2bb1c308c0ed177a0149b0c94f8bf42839d684be7c9c528170d1b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/xh/firefox-72.0.1.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha512 = "871fcd388a9309381d9d19878620d829fd8e914f13206e3d924bb0a049320a9d033332d62b7172f0bd31901e32eda0f1ec23017d7ceabdf76fa529c4444f2406"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/zh-CN/firefox-72.0.1.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "fbde202c492054ba28b3d5387c12cbc7f29a9a0c49fa6c53e39495324b501cee35dfeda6adc4023ad7c992527c41f868755f3cc216fa0a2d71180a8f7a130994"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/zh-TW/firefox-72.0.1.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "35b5995ab0443832eea07f3c164b29def23e213774e28d36b70d78c3438ad62b17a7e8d4c54e22d21c15a6fea0ea97ac4d3ade91890f1c8d5255a3725e3f5c7c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ach/firefox-72.0.1.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha512 = "2e7613bb1f6e321f64d59215eb5fd36b6fe0bc2950251c2d227521a157400dda00fe9ce2d17ff8d6db650f6b3ff075b5e32090bc7c92c0f0bc34f38085a85d43"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/af/firefox-72.0.1.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha512 = "f2bc6ce77fbcd24b33e57801b897be9aacf3944caa2fe88a3c94636dd3c0efbe54bb09c04a2c98e25d426f734869a247ba00fbc0bb28bf814709b7f3dd802e97"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/an/firefox-72.0.1.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha512 = "47eef64a2dcd87c776a49f4e4f962472e0a9b0b25ce3af14be06cf31f0ee2da6d215bb1e3786f9e806ebfa80cb5840820ce8239d9b417630637fc39a5742ce01"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ar/firefox-72.0.1.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "3e2d21ff4032c35aee149acd2e81d8a2c81289be701d3c9473dc87a163c806cd8b78ac05a13e95bfdc83ace1a79615d724bc1fcb317748ae6e40763d0025384b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ast/firefox-72.0.1.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "4b6db32a734fd371d14954ada9cdcb853a460329a26c46937eb08549aa1fd3d6840b23ecbee65762dcc2d66c6243dc300a1fbc988f54773b29662fe108b06398"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/az/firefox-72.0.1.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha512 = "4891d270449593982501fc0a6a44fd5273b306912e935e1486b4352b1c73bc8d39bf22c58f073c4ea59912636b1a7cc6582e7179f6151abead7e32ae80bda03c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/be/firefox-72.0.1.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "207d9f0562b46105d96be498b9d458ae88a9de92df5f4ebe5ac30eb502b0e959ad6652392de4e4349688ce9904f2743f287ac4ea1634a8015e6b1debd0e186e2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/bg/firefox-72.0.1.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "8c180f5dc6e98f0f1f00b4b210069fd5265062c40c884e511e1e0a0a14dc6e50530c47ad67deda95581250500bcd3fbb3b69892bc8bdaeb2feee4032ee771a77"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/bn/firefox-72.0.1.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha512 = "275c34985fa071ec47fd0aeb0a340ad3a6d829dcb5030f3850fb9c02f8dfcfe6ffa642e1e551c9ab9f99d42232f6c69b08e6da6a9e902822c6330262e48b998e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/br/firefox-72.0.1.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "9c5a9e7e4fbfdf264db34358a97a9d64fd963850dba182da3be914f2fd81e6ef9360e07f7541487599026df4b312c09e893f7b48779283d8385ef2c96f2c354f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/bs/firefox-72.0.1.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha512 = "04a9741392aa3c234349dddea7fcf2f7be26ba8d39ba11f71222eb75d4aedd925c6de4dd1013ca1f53321d546fc7e9babc0fca8336af9689060bb75bfcd9635f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ca-valencia/firefox-72.0.1.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha512 = "e9ec3916406ac3c3fc69f792b79fe267923ac57a9b6a2de8d883f492a83dcc04faa93dfc59acb632f7f0ee3cdf167664682721743ef62d58b2393f8ea85bde03"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ca/firefox-72.0.1.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "c5e2a8914f70c633404653198f3b03078991a5afde0fe30d6cf28030671cd75eca6f34a1ca3b1c7db392c65a62d6cb5902ead96ded0e8a71636ba894986d335e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/cak/firefox-72.0.1.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "1fe310fd841c7565690ba121f49f8111c75450ae06a13ee040ac959642b025c8f0944425e57a90150c8d5acbf68e79b4d162d014ad191b027cadbfd9d7b570ad"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/cs/firefox-72.0.1.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "4e89cf9a5230541278dc19327e0a5a9f15a663f0bd377b2458750bf0df7457495ada697678e5a47012a329592daf18b785e4d71dc9c98e94aeaac6c280184196"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/cy/firefox-72.0.1.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "c08e9fa79a2cbec9fc7d836c1a275099ae3ddd482685298d76806e1c1ceb99b85a025de5162061117de30909d0e495f489869792112d0496d501328f8136c184"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/da/firefox-72.0.1.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "6c90eef1e3da30d9106e7cf97e0969a53e59bba19b5212a94436bba36a428842265c2f9da58d467915ced71a0386f406ebb1ddc052a9832e0b8063d6855ab879"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/de/firefox-72.0.1.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "b2684e528dab014152284e3c5aae5874c3ce16548bb2101dcdd91fec6831a486d883eef3673429b087feea10b53e4256c7c083f26a3d8e40e446f4a1f32c307d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/dsb/firefox-72.0.1.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "c25cd1edc62268ff5cf67f4f0cf9751846204d25bd97b214f8c4097ef87d71b5f7989fedf0d47867fe74b427c0187f8398039d56c6e86472d1b9fade73b0cf94"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/el/firefox-72.0.1.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "102679221b358fd7c1595a5f23a0eecd60c83ca37c00e4a765dfc2c852047bd17520af733424d0c82ec116c83900c85e6157972841deecc3eb9eada1bf22b4f4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/en-CA/firefox-72.0.1.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha512 = "2eb273a9f9303b6b00f42c6d2b1bb6bc7e657a73e5710694362708208d9d9292a88f6307fcfd5a70aa3888fc0c075c1e2e844802d0307be5c02c159d3c266162"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/en-GB/firefox-72.0.1.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "efcb3f5305e343f99b2d62adb1d4972104a4920eea85caa8cc4a50c9193ebbf741acf2d762ac7280b1c99297746f1924444788b86e25259f023e1d31ef70329e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/en-US/firefox-72.0.1.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "f30ba9e8bbeff878e5e07b1cfbdeeb7ad84ec93736005cd0780c966970f0af056fb1dba5167a3c8cd31bd9d680054d0901c8859d9764388513cd4145390a5502"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/eo/firefox-72.0.1.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha512 = "2c12b5fab6247d2072ff22f9ff6e25ed52bae0a9f86ea24dceb5d440ace5209d0ef7ff8c54016f06498213fa2c383c8f15697e386f367e4c209941cb67bbfe8b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-AR/firefox-72.0.1.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "74000cd852d7bdb54fc53816d14baffdd30100a3e4e5ac62546f057812631684ff1a3b6d55b57d8974b1aeae823e86a1a309f548a49a7b584db3e4a772822557"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-CL/firefox-72.0.1.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha512 = "74084ecc5d419e264b13b4d26cdbd231010632da36a2660a49df6343dbadfb9c7cc3b55a8bc8aa97937c6c4c156065fc4b85987c88d3bc6b12e45a3695b8176b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-ES/firefox-72.0.1.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "6ed8e84c4f5b0ce3da7f9f7cf3753d95f2ec8cc0283aef88ef75c5f05a4ac20fa7cd70fa212092f6ad5971aa73def4d331b6e219c958fd0dabd672d9ba9b817b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-MX/firefox-72.0.1.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha512 = "ec4154e7c84261fc1522fbe10a56cbfa56106d6c57239758ff3d23c83d2c676c070d01d91a57a18f6c367f62396335769b8793e7b19d85f38006c51ebd80d851"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/et/firefox-72.0.1.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "8857b3b4aa2eac6e7e8e541e5aa8f3ece586cc8136702bc10fdc8db00567990027d4bf8231a1f6b91de69f59a2e683298eafaebd1d8d9870cbccd1b87d45b26a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/eu/firefox-72.0.1.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "f5448cb81117d9424ab0b5653fb9272abb96cdf3d563fdff9533e8d066850bf9c3df29a076bbcae99ec72abbdbbe5300bfa58ce9e9d228b6db62539f31987756"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fa/firefox-72.0.1.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha512 = "49226e26b6940dc7ffa02b6816912de20d05e371c00971e964896cf093b92e8f1de355a17eda648b01e58f1c03a88179d18c903925d37986a5781a8abe4cf404"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ff/firefox-72.0.1.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha512 = "3c188cbde07b11e99d6cd717fb83bfc2bd172eff696138a2e1922bc344e78ec78c957becf4419b8bf1fc87b479bf696f7955aeb1fc8985e18f784ecfeae2fedb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fi/firefox-72.0.1.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "0ab82df10e491acfb072c4c991e41a2ff8967737eda1597687be00d48c1d3d85b17540fae457939eb9de923d4fbc3f959ff31e148010eb9c85ea66ff4fc0046a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fr/firefox-72.0.1.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "3d4b12b186c54581fdee04ca756dfbc5a772cbddf500910f66c6d7d85a5a3a7b8247a79e666270e54a3185423ce452b0d7d2c87f30d407ceab7cf24ca8fe8b7a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fy-NL/firefox-72.0.1.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "446f13993a9e14b0bb9af09295f17fda411367eba9d8184445121baf0cdbcec33a6b18feb0c1373d7af003ccf457f21014cfcb6a9d7bd74999df11c6da02f47d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ga-IE/firefox-72.0.1.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "c10f6945b5ef781e77a771281144289c00159ea9bddfb43c843f3de73b4063c930908af7c0d60a7c9681ba6c3cc2a61bcc8e8237abd8c615f5ce63439a4a0dcf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gd/firefox-72.0.1.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "408ef04967d890da9bed3c60829fdcdb5b6fd0d8ff605904f4e563c7e8d971ab0f56e7d2f70db375dd50fa05d6d48889004271155416461b550fcd5030a4051e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gl/firefox-72.0.1.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "246c22a6fbd0c57fe95bda05f65d1bb1126f4969bbc626c475126fe665d86f3029de0546373690c43f972fb7556917e4e6ff880e294f699d949b84b82dcab7c1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gn/firefox-72.0.1.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha512 = "79b84cd7dade66fe9bf866ec053e069c127c9c24fa55a795da2870fd21c99304be77a8ed249c1fa61aaa2644036d40737596e1db7714cdb76fa030c2b446295e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gu-IN/firefox-72.0.1.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha512 = "30759375ddc3343edf4d5548c5e68da3525001ae1fe2120918c7a0e9ce77a5d4038d8083e7c5556ccc043b9587b5e048a9adfd53fa1a3c9d35c0ab4dc85fa6e5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/he/firefox-72.0.1.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "4db07da68a7fa44ce1ee23fad5c5041d91ed5598fa4fec73c10cb13e71771add1b56e0af542d874776aa67a714440459769f9e6a5f8ad7d3530ffc9ccc6297bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hi-IN/firefox-72.0.1.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha512 = "17668e7fb3eecf5a9d9870cb634d7437d6081f70ee82811d08ba17d3b9c0bbf05c8bbb901b5e2090c7b133a9b5f742bd9de4d220b62c019e97c7d91ba847b0bc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hr/firefox-72.0.1.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "ab51419d8bf1397fceddf47b97b5223da65610dd13ab72b8c9298b514218149373061f8828a883b05d6f2d68ea014766a547142c8189085f8f9b7befcb4076b0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hsb/firefox-72.0.1.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "4188c372d56d190d2020e92a9f443fddd6e225484d4ff7c3d4aa78b3ebb7a9155809d5c0e5466946f228d5c4333adc64583b93616eaa337f3d9e279c2337553f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hu/firefox-72.0.1.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "30ab854d45f6cbe643839c07a08a838a3d1dc871c1321da1597c913a4fb3623a9fe19bd078e20cd9ce848b3dd9b0f44c77626ae7f6321d60d5ccdb9e5d3a2177"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hy-AM/firefox-72.0.1.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "9ab1d1b43b0f70196395701c0940a76fb71190826d17493dd4565e1c859e68f8754c1ff119ffdc56a680b809b23e1481c2e764810cac3cf1cee288b35bed4dd0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ia/firefox-72.0.1.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha512 = "a88de0287e9cdc41ede83d7004fd0614caf479109abe79e1d3f3dd4f370b8f79a48f2174f3a229a897609d2f20d6048d3d88cf50a2934ba3dabedf96794958f9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/id/firefox-72.0.1.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "e5eeac2e2236704a63680cf17c831076a99a993baac3f7a1b9381d8d6d40aafa898fac2aff93510179ca8d3f0dfbcde08ef7f6f99dcd017d2362750173c89111"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/is/firefox-72.0.1.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "c2e752ae20ff38177457afe87b2c80472d769b41026b7fd224a711138482b3cb3abcde4fa2134570ffab89cc110274cb8bad378445bd3cea77f35a825946c532"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/it/firefox-72.0.1.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "50638f98c440c9ce73f298f10f9dca803fc7a241cde1afccf5e2f87701a28207a0d01fd90f318a2192174c8dce179a84f3a8c0281dc8f1c0bf6c5fd3793903e1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ja/firefox-72.0.1.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "8899ea60537da6da0d0cc4bf99ed406ecfa21183b94865311918c0397650c81dd36c474761c14e2981bce5e9093d3e905dc465141f62d14bf634c4dd392be870"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ka/firefox-72.0.1.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "146585388cfef7c339142ac54d588c790e1bfcc81a7c04ba47e778732a64fe5eafdb0cb00bccb140c75c1b6a2f6e3c6a3e2f700a978f4569b30c6434cb7ccb4a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/kab/firefox-72.0.1.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "c94d2ceb3cca7c15adcfe4d282882c10a13123ced5a939566732a85a7004ca65d002628d5600569213f5e829e3f28261a25902e6cd1bc5716e732bcb82ed28e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/kk/firefox-72.0.1.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "2c204d753f233548ba6409046653d8e9ef1476bf161a040edd90c5adc519a48e2cda1253ee8fa16b9a05c1147d7697dfeeeaa7700f01c072477d557102f58a60"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/km/firefox-72.0.1.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha512 = "7bed04807b6e6c90f69c6eb3ea53136dbbdb88924ec2a13019ce0660b3c58f001db94cf8054f040581cdc8d5b9589138542b13b8408da0e8167a89c1295b19c1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/kn/firefox-72.0.1.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha512 = "e7db8109668c0350cc5b970da5149072676d6f59ade68bf8f90ef15d35e422c6d102b8cc9e7b5de5d92e14e13af85dd47ccd21f98c974d65d65502a2b08d3eb9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ko/firefox-72.0.1.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "0687087a4f58172a69f487ae395baf362b03725eb4435306531ed848d552fba835aee43ecedfa3bb8bf9fd518c324727a6dd9e772789253135c46b542ebc71df"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/lij/firefox-72.0.1.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha512 = "d225a4b464f37b45463069b571a78c250bfb242b598aba681209255717113904f3f4466e0f20b8e34a96e1a00355cc5d2ee65361e5b252275962003bd0765f52"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/lt/firefox-72.0.1.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "3f0a5c0b6ccd806971d902aac4e11ea1b783c7b5a121e2d92c08ecad14d36c35ca56779362e2cd73e91885a6ff909314d44b290149378f0046785b39b6520d69"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/lv/firefox-72.0.1.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha512 = "170a1f7152f0c224e2b7d0b0be6d9f93802c1ae76d6d5f3adfb86ef6793d23218c3874d912dcbbc2c77d7e9a17e50b53e6d265e1a69d40bb71bcf44324dbc8cc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/mk/firefox-72.0.1.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha512 = "342d83f45f97eb89c36d3ed5121b11b21f48d8b79b84e50a44704c9a3b11f428104189888ce6b0c77070b256f30432f0b1365af2016675bbd15403d14e439e33"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/mr/firefox-72.0.1.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha512 = "6faa239678801054aada6860d4b56d708db429a9a42bd6d5182ea8b13f823264130831f75fd77c20c3ffaa955fd47cb97fd4ddc8edd486cfb59166fbbc04421a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ms/firefox-72.0.1.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "798bd9ae750c2825f538e971c59775d9e989c32576c3abf096e33ce205650248912468769b43fd2e02a03338ecbe24ae0c7a1ce89de059ea113be04af4797696"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/my/firefox-72.0.1.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha512 = "27714b0bcbc636ec08f6fbad35ea6fa047b39d53e887fed95ff5d3b5a83aa3f5ecdc5081f08aa171feabc5d2eac04dbd0a7b523373341cd6f0448f15ce81155c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/nb-NO/firefox-72.0.1.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "18df354679b1a564fe18367d12a0a739e2ff330f4c7b559e3c9e2ce9af842bc8ebf94b01bf190f85255927a95df3dbe70fdf4baaee9f273c4bab8737e960ce7c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ne-NP/firefox-72.0.1.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha512 = "a8e86ab99146c482366eaf8e59cf4ebcbfb9012a2591f925b9a4940f85747eb066a365f1f5994bdbb4005989a7a2281f5f3a33dbab518449d05a3b66589209b0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/nl/firefox-72.0.1.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "58f2f70a6cf55c70a5ae7a280f834b0f5553950abefe8e54cd804d540ba9ec16dc7c5c998bdf07499790b202546c95c9b65d9d42bb826191c1ea7154498cd939"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/nn-NO/firefox-72.0.1.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "7a350a2415aabf4407fac3b26abbeda0cda67bc109636ebe06a1bcf6f449f24ac1676241f4e94359d466b130334f1894a4c962acb6fd531540c1b671ab0754c8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/oc/firefox-72.0.1.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha512 = "dec9c3c3e9c8a5502a4fcd3538248eceb827df95b7cd647e1ce562a3b8ad56e9b060e9fddbda68b87157ac04bac155ddb273b94146941f4adc814c77b07de322"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pa-IN/firefox-72.0.1.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha512 = "c53fbe696a907608b557b071f8d10db9029fc315a6b4909a4387b056cd794efe3aae51f4ccba03235d90161284281f0feb3fbf7bd91f6c4b794786b2e632c3a7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pl/firefox-72.0.1.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "ebd0b078f7b6949d60dcc4d42e7b13a385528076bddfe75b659b7407fd9699cf705465a6bb37fe60bf9999a2d5a5f95b65580f77116423276434c47ab0e5651e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pt-BR/firefox-72.0.1.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "a08009bcca93ff1339d22d3c745153232b65332fba7546df17d761e7c382b4fff8bcde481b368a9704cda8096f42d39d5a422a1a6c3888fab2905c3df717338a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pt-PT/firefox-72.0.1.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "ed90835cacda14da02f70ce7a8ddddb63df2c9c5952d5380b78da9c57d7f9264e6034fb6411c1da7d41d1f7c42107fcd3ce09530dcb63462849df194158ab7a2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/rm/firefox-72.0.1.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "b67fbd54ef325232ef4c3168aeb1511bd96a3b359d71f4edfd2dc3f925d9d246192c24c65332baa80d57f3449dc94f6c3f06fb9ffd6204959ec7745e61cdfd6c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ro/firefox-72.0.1.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "deffedac6577d0e413954217b075cb775330b11013076d484329710756fd539ba2c35af8c267f49aa367e7d61cf56de65d67b2c888db58401012f8c3f6113427"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ru/firefox-72.0.1.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "ded41bb7b3a0dadbaeb05b836a175988133a6e94637063efd63e7658a7887e38e2601384b79ac64be0b9de4100f923bf9de40c31562b9c4314ff0df7768be511"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/si/firefox-72.0.1.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "c45238b95c815603e01c180eaf254e06a7e2feddf429adc58977fa5cd5b094774f6c0e9f34030dfc38fa198662cf0ae5289a78930b6f37042b2c1bba4109a37d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sk/firefox-72.0.1.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "5a2cbbf81ac7b879413ac0813890d37609ce7c9fbf47037e20886d9728fd4687159a193fed05c15090c8a47d43e63059925c901020c1661db1f979f62c8a385e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sl/firefox-72.0.1.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "6c47debf86017544d54494eb7a17823bb2de08e1c8fd5d0065e2887349c19eb1c83a617b2f828ac547629d32d6ea0f8b6b7cec616f80cdf56120e2008b180764"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/son/firefox-72.0.1.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha512 = "7f3068c3d69972e730a7141e098c658773b10bb462168eddcd3adcf9b4874229b571cc8f7eed99ed6b45be8b74c79219d0cd12fa43797603ab2f032557fe8f8f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sq/firefox-72.0.1.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "4db0d7f87447910fa43e4145cf024c5a165a10b9809bc18c4b76f2a86cb41aeeae3193d34f4bdcc7bead8a62974fd68f8883ace5c79d35e33a47c954d73eea1f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sr/firefox-72.0.1.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "85d8ecf97a1b1f7eff30b1de4bb84ed0637bf99cb72ad444e7e769d29cd687773e66dbed2116f5997af6fbf64802ab7c31b28f579e7a517a08a6cf06f92c8f96"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sv-SE/firefox-72.0.1.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "322f999692fbf3931789b3b6af5eb646545f5e9fe4876ba004b3803454d89c633fe0ba85283954edd3fe4439ab30e17eeb4e4edd655570e07da2c0c78bda0e22"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ta/firefox-72.0.1.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha512 = "ba1c8227da1f99f385376402133ac2706bf20fef739ff48850daf1f0e586b87146322ac18af838eb32355ae40288f922ebd5a1976039a800de60077b4428dc44"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/te/firefox-72.0.1.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha512 = "1d785d24d460e536f35a88fa0d8feb6434f1ccadb38e89946f8e432a2d98161cf10bf42c6d34fde577d5d2c4b13d47fab43abfa2f18554231a53887e361d6ad8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/th/firefox-72.0.1.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha512 = "ef10ce89127be75a918e9825ceb97aaf7e2f66ca0591ebba624fa2da786a267304b1e505a1dca72282a92d6c6678148c6cc322e02175c1f506bed110ee7936fe"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/tl/firefox-72.0.1.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha512 = "ed033872bfc0a06b0928e5bc775e4f4dda5267555d086c7719872491480dd6e70bd94540aa9dc0a197d907ff66642b93460e41c04f721f7d0daed663bfc1d091"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/tr/firefox-72.0.1.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "d4c24c049e4fd378e7c20d3df5dc2a9c5e9cdefe3f84e5dd6b3fefea10fb8010a01f96cbaf7635914c9bea38f0059d11c8f7e7ac748f4fa9d7f3351259301fd8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/trs/firefox-72.0.1.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha512 = "931a3b11e536164b6743a7005f3b826495616ce591c50fbe2ccb42d32908c88412d5a9519843eb7f4ad50e406b9fd14ea69295c313f30a3d41c3338638e483d4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/uk/firefox-72.0.1.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "6baa572a479043e15de3704f009ca3702ef48d18f364401165a20367809fc4f09b59d04734bd9ffb698d1e834dd88540abe4f951354650c731304b6cc1333018"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ur/firefox-72.0.1.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha512 = "9eb660140868950613b2754b006e5f7bc08f73830be2508fc6a39a83dce9509796b834dcce0288ffd74e8373f2c8a175f0034582d2aed769ead063bb57045d85"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/uz/firefox-72.0.1.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "9272971df4ffa5d1867b40b1f2d6004a64e604312208f3031edae6ddaf9a2dda262dca69aa5c41b9439241133a6fe64d43e5932192d3cc74a893290cb1594a45"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/vi/firefox-72.0.1.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "ebf8065c61505a8daaba054711a523abb6053db6560d8f72d0b7ca816784aa9ab5856b959357afe94fddc9e1d8e5140ca1bed4aae85daa8be71347e1f158e35b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/xh/firefox-72.0.1.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha512 = "e7121225f6eff3a16bfc95b38d07ef474b03891ce1b5a57905b5f521fecd8e8f5cac71b9246c65399f1bc4879279d4f53675db652c563d6023f0574a8dd30462"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/zh-CN/firefox-72.0.1.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "8730552f819342a634e9eeae8e0989e54d9d4a3f0cdc76d5c296e6ed5f5028b5029286eccf4f252addd53e3e3e06a3321491d7b37b0d565b0524382210a02e0c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/zh-TW/firefox-72.0.1.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "ae10d531f4819cf603adcba33c5a5779bdf70962a4b0d802c1b001ae4c34b573941dcadd9b1ba6377d5b1dd55627bbb7f97b28d44c21c2cd9b124f1e465186d6"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix new file mode 100644 index 000000000000..d6593be8890c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix @@ -0,0 +1,90 @@ +{ name +, channel +, writeScript +, xidel +, coreutils +, gnused +, gnugrep +, curl +, gnupg +, runtimeShell +, baseName ? "firefox" +, basePath ? "pkgs/applications/networking/browsers/firefox-bin" +, baseUrl +}: + +let + isBeta = + channel != "release"; + +in writeScript "update-${name}" '' + #!${runtimeShell} + PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin:${gnupg}/bin + set -eux + pushd ${basePath} + + export GNUPGHOME=`mktemp -d` + gpg --keyserver hkps://gpg.mozilla.org --recv-keys 14F26682D0916CDD81E37B6D61B7B526D98F0353 + + tmpfile=`mktemp` + url=${baseUrl} + + # retriving latest released version + # - extracts all links from the $url + # - removes . and .. + # - this line remove everything not starting with a number + # - this line sorts everything with semver in mind + # - we remove lines that are mentioning funnelcake + # - this line removes beta version if we are looking for final release + # versions or removes release versions if we are looking for beta + # versions + # - this line pick up latest release + version=`xidel -s $url --extract "//a" | \ + sed s"/.$//" | \ + grep "^[0-9]" | \ + sort --version-sort | \ + grep -v "funnelcake" | \ + grep -e "${if isBeta then "b" else ""}\([[:digit:]]\|[[:digit:]][[:digit:]]\)$" | ${if isBeta then "" else "grep -v \"b\" |"} \ + tail -1` + + curl --silent -o $HOME/shasums "$url$version/SHA512SUMS" + curl --silent -o $HOME/shasums.asc "$url$version/SHA512SUMS.asc" + gpgv --keyring=$GNUPGHOME/pubring.kbx $HOME/shasums.asc $HOME/shasums + + # this is a list of sha512 and tarballs for both arches + shasums=`cat $HOME/shasums` + + cat > $tmpfile <<EOF + { + version = "$version"; + sources = [ + EOF + for arch in linux-x86_64 linux-i686; do + # retriving a list of all tarballs for each arch + # - only select tarballs for current arch + # - only select tarballs for current version + # - rename space with colon so that for loop doesnt + # - inteprets sha and path as 2 lines + for line in `echo "$shasums" | \ + grep $arch | \ + grep "${baseName}-$version.tar.bz2$" | \ + tr " " ":"`; do + # create an entry for every locale + cat >> $tmpfile <<EOF + { url = "$url$version/`echo $line | cut -d":" -f3`"; + locale = "`echo $line | cut -d":" -f3 | sed "s/$arch\///" | sed "s/\/.*//"`"; + arch = "$arch"; + sha512 = "`echo $line | cut -d":" -f1`"; + } + EOF + done + done + cat >> $tmpfile <<EOF + ]; + } + EOF + + mv $tmpfile ${channel}_sources.nix + + popd +'' diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix new file mode 100644 index 000000000000..cfa5aabb2d2b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix @@ -0,0 +1,385 @@ +{ pname, ffversion, meta, updateScript ? null +, src, unpackPhase ? null, patches ? [] +, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] +, isIceCatLike ? false, icversion ? null +, isTorBrowserLike ? false, tbversion ? null }: + +{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip, libIDL +, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg +, freetype, fontconfig, file, nspr, nss, libnotify +, yasm, libGLU, libGL, sqlite, unzip, makeWrapper +, hunspell, libXdamage, libevent, libstartup_notification, libvpx +, icu, libpng, jemalloc, glib +, autoconf213, which, gnused, cargo, rustc, llvmPackages +, rust-cbindgen, nodejs, nasm, fetchpatch +, debugBuild ? false + +### optionals + +## optional libraries + +, alsaSupport ? stdenv.isLinux, alsaLib +, pulseaudioSupport ? stdenv.isLinux, libpulseaudio +, ffmpegSupport ? true +, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook +, gssSupport ? true, kerberos +, waylandSupport ? gtk3Support, libxkbcommon + +## privacy-related options + +, privacySupport ? isTorBrowserLike || isIceCatLike + +# WARNING: NEVER set any of the options below to `true` by default. +# Set to `!privacySupport` or `false`. + +# webrtcSupport breaks the aarch64 build on version >= 60, fixed in 63. +# https://bugzilla.mozilla.org/show_bug.cgi?id=1434589 +, webrtcSupport ? !privacySupport && (!stdenv.isAarch64 || !( + lib.versionAtLeast ffversion "60" && lib.versionOlder ffversion "63" + )) +, geolocationSupport ? !privacySupport +, googleAPISupport ? geolocationSupport +, crashreporterSupport ? false + +, safeBrowsingSupport ? false +, drmSupport ? false + +# macOS dependencies +, xcbuild, CoreMedia, ExceptionHandling, Kerberos, AVFoundation, MediaToolbox +, CoreLocation, Foundation, AddressBook, libobjc, cups, rsync + +## other + +# As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at +# https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we +# have permission to use the official firefox branding. +# +# Fur purposes of documentation the statement of @sylvestre: +# > As the person who did part of the work described in the LWN article +# > and release manager working for Mozilla, I can confirm the statement +# > that I made in +# > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815006 +# > +# > @garbas shared with me the list of patches applied for the Nix package. +# > As they are just for portability and tiny modifications, they don't +# > alter the experience of the product. In parallel, Rok also shared the +# > build options. They seem good (even if I cannot judge the quality of the +# > packaging of the underlying dependencies like sqlite, png, etc). +# > Therefor, as long as you keep the patch queue sane and you don't alter +# > the experience of Firefox users, you won't have any issues using the +# > official branding. +, enableOfficialBranding ? true +}: + +assert stdenv.cc.libc or null != null; + +let + flag = tf: x: [(if tf then "--enable-${x}" else "--disable-${x}")]; + + default-toolkit = if stdenv.isDarwin then "cairo-cocoa" + else "cairo-gtk${if gtk3Support then "3${lib.optionalString waylandSupport "-wayland"}" else "2"}"; + + binaryName = if isIceCatLike then "icecat" else "firefox"; + binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName; + + browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName; + + execdir = if stdenv.isDarwin + then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" + else "/bin"; + + browserVersion = if isIceCatLike then icversion + else if isTorBrowserLike then tbversion + else ffversion; + + browserPatches = [ + ./env_var_for_system_dir.patch + ] + ++ lib.optional (lib.versionAtLeast ffversion "63" && lib.versionOlder ffversion "68.3.0") + (fetchpatch { # https://bugzilla.mozilla.org/show_bug.cgi?id=1500436#c29 + name = "write_error-parallel_make.diff"; + url = "https://hg.mozilla.org/mozilla-central/raw-diff/562655fe/python/mozbuild/mozbuild/action/node.py"; + sha256 = "11d7rgzinb4mwl7yzhidjkajynmxgmffr4l9isgskfapyax9p88y"; + }) + ++ lib.optionals (stdenv.isAarch64 && lib.versionAtLeast ffversion "66" && lib.versionOlder ffversion "67") [ + (fetchpatch { + url = "https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/09c7fa0dc1d87922e3b464c0fa084df1227fca79/extra/firefox/arm.patch"; + sha256 = "1vbpih23imhv5r3g21m3m541z08n9n9j1nvmqax76bmyhn7mxp32"; + }) + (fetchpatch { + url = "https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/09c7fa0dc1d87922e3b464c0fa084df1227fca79/extra/firefox/build-arm-libopus.patch"; + sha256 = "1zg56v3lc346fkzcjjx21vjip2s9hb2xw4pvza1dsfdnhsnzppfp"; + }) + ] + ++ lib.optional (lib.versionAtLeast ffversion "71") (fetchpatch { + url = "https://phabricator.services.mozilla.com/D56873?download=true"; + sha256 = "183949phd2n27nhiq85a04j4fjn0jxmldic6wcjrczsd8g2rrr5k"; + }) + ++ patches; + +in + +stdenv.mkDerivation (rec { + name = "${pname}-unwrapped-${version}"; + version = browserVersion; + + inherit src unpackPhase meta; + + patches = browserPatches; + + # Ignore trivial whitespace changes in patches, this fixes compatibility of + # ./env_var_for_system_dir.patch with Firefox >=65 without having to track + # two patches. + patchFlags = [ "-p1" "-l" ]; + + buildInputs = [ + gtk2 perl zip libIDL libjpeg zlib bzip2 + dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor + xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file + libnotify xorg.pixman yasm libGLU libGL + xorg.libXScrnSaver xorg.xorgproto + xorg.libXext sqlite unzip makeWrapper + libevent libstartup_notification libvpx /* cairo */ + icu libpng jemalloc glib + ] + ++ lib.optionals (!isTorBrowserLike) [ nspr nss ] + ++ lib.optional (lib.versionOlder ffversion "53") libXdamage + ++ lib.optional (lib.versionOlder ffversion "61") hunspell + + # >= 66 requires nasm for the AV1 lib dav1d + # yasm can potentially be removed in future versions + # https://bugzilla.mozilla.org/show_bug.cgi?id=1501796 + # https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ + ++ lib.optional (lib.versionAtLeast ffversion "66") nasm + ++ lib.optional alsaSupport alsaLib + ++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed + ++ lib.optional gtk3Support gtk3 + ++ lib.optional waylandSupport libxkbcommon + ++ lib.optional gssSupport kerberos + ++ lib.optional waylandSupport libxkbcommon + ++ lib.optionals stdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos + AVFoundation MediaToolbox CoreLocation + Foundation libobjc AddressBook cups ]; + + NIX_CFLAGS_COMPILE = toString ([ + "-I${glib.dev}/include/gio-unix-2.0" + ] + ++ lib.optionals (!isTorBrowserLike) [ + "-I${nss.dev}/include/nss" + ] + ++ lib.optional (pname == "firefox-esr" && lib.versionAtLeast ffversion "68" + && lib.versionOlder ffversion "69") + "-Wno-error=format-security"); + + postPatch = lib.optionalString (lib.versionAtLeast ffversion "63.0" && !isTorBrowserLike) '' + substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h' + '' + lib.optionalString (lib.versionAtLeast ffversion "68") '' + rm -rf obj-x86_64-pc-linux-gnu + ''; + + nativeBuildInputs = + [ autoconf213 which gnused pkgconfig perl python2 cargo rustc ] + ++ lib.optional gtk3Support wrapGAppsHook + ++ lib.optionals stdenv.isDarwin [ xcbuild rsync ] + ++ lib.optional (lib.versionAtLeast ffversion "61.0") python3 + ++ lib.optionals (lib.versionAtLeast ffversion "63.0") [ rust-cbindgen nodejs ] + ++ lib.optionals (lib.versionAtLeast ffversion "67.0") [ llvmPackages.llvm ] # llvm-objdump is required in version >=67.0 + ++ extraNativeBuildInputs; + + preConfigure = '' + # remove distributed configuration files + rm -f configure + rm -f js/src/configure + rm -f .mozconfig* + '' + (if lib.versionAtLeast ffversion "58" + # this will run autoconf213 + then '' + configureScript="$(realpath ./mach) configure" + '' else '' + make -f client.mk configure-files + configureScript="$(realpath ./configure)" + '') + lib.optionalString (lib.versionAtLeast ffversion "53") '' + export MOZCONFIG=$(pwd)/mozconfig + + # Set C flags for Rust's bindgen program. Unlike ordinary C + # compilation, bindgen does not invoke $CC directly. Instead it + # uses LLVM's libclang. To make sure all necessary flags are + # included we need to look in a few places. + # TODO: generalize this process for other use-cases. + + BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \ + $(< ${stdenv.cc}/nix-support/cc-cflags) \ + ${stdenv.cc.default_cxx_stdlib_compile} \ + ${lib.optionalString stdenv.cc.isClang "-idirafter ${stdenv.cc.cc}/lib/clang/${lib.getVersion stdenv.cc.cc}/include"} \ + ${lib.optionalString stdenv.cc.isGNU "-isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc} -isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc}/$(cc -dumpmachine)"} \ + $NIX_CFLAGS_COMPILE" + + echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG + '' + lib.optionalString googleAPISupport '' + # Google API key used by Chromium and Firefox. + # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, + # please get your own set of keys. + echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga + # 60.5+ & 66+ did split the google API key arguments: https://bugzilla.mozilla.org/show_bug.cgi?id=1531176 + ${if (lib.versionAtLeast ffversion "60.6" && lib.versionOlder ffversion "61") || (lib.versionAtLeast ffversion "66") then '' + configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/ga") + configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/ga") + '' else '' + configureFlagsArray+=("--with-google-api-keyfile=$TMPDIR/ga") + ''} + '' + lib.optionalString (lib.versionOlder ffversion "58") '' + cd obj-* + '' + # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286 + + lib.optionalString (lib.versionAtLeast ffversion "64") '' + unset AS + ''; + + configureFlags = [ + "--enable-application=browser" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + "--with-system-libevent" + "--with-system-libvpx" + "--with-system-png" # needs APNG support + "--with-system-icu" + "--enable-system-ffi" + "--enable-system-pixman" + "--enable-system-sqlite" + #"--enable-system-cairo" + "--enable-startup-notification" + #"--enable-content-sandbox" # TODO: probably enable after 54 + "--disable-tests" + "--disable-necko-wifi" # maybe we want to enable this at some point + "--disable-updater" + "--enable-jemalloc" + "--disable-gconf" + "--enable-default-toolkit=${default-toolkit}" + ] + ++ lib.optional (lib.versionOlder ffversion "64") "--disable-maintenance-service" + ++ lib.optional (stdenv.isDarwin && lib.versionAtLeast ffversion "61") "--disable-xcode-checks" + ++ lib.optional (lib.versionOlder ffversion "61") "--enable-system-hunspell" + ++ lib.optionals (lib.versionAtLeast ffversion "56") [ + "--with-libclang-path=${llvmPackages.libclang}/lib" + "--with-clang-path=${llvmPackages.clang}/bin/clang" + ] + ++ lib.optionals (lib.versionAtLeast ffversion "57" && lib.versionOlder ffversion "69") [ + "--enable-webrender=build" + ] + + # TorBrowser patches these + ++ lib.optionals (!isTorBrowserLike) [ + "--with-system-nspr" + "--with-system-nss" + ] + + # and wants these + ++ lib.optionals isTorBrowserLike ([ + "--with-tor-browser-version=${tbversion}" + "--with-distribution-id=org.torproject" + "--enable-signmar" + "--enable-verify-mar" + "--enable-bundled-fonts" + ]) + + ++ flag alsaSupport "alsa" + ++ flag pulseaudioSupport "pulseaudio" + ++ flag ffmpegSupport "ffmpeg" + ++ flag gssSupport "negotiateauth" + ++ flag webrtcSupport "webrtc" + ++ flag crashreporterSupport "crashreporter" + ++ lib.optional (!drmSupport) "--disable-eme" + + ++ lib.optionals (lib.versionOlder ffversion "60") ([] + ++ flag geolocationSupport "mozril-geoloc" + ++ flag safeBrowsingSupport "safe-browsing" + ) + + ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] + else [ "--disable-debug" "--enable-release" + "--enable-optimize" + "--enable-strip" ]) + ++ lib.optional enableOfficialBranding "--enable-official-branding" + ++ extraConfigureFlags; + + # Before 58 we have to run `make -f client.mk configure-files` at + # the top level, and then run `./configure` in the obj-* dir (see + # above), but in 58 we have to instead run `./mach configure` at the + # top level and then run `make` in obj-*. (We can also run the + # `make` at the top level in 58, but then we would have to `cd` to + # `make install` anyway. This is ugly, but simple.) + postConfigure = lib.optionalString (lib.versionAtLeast ffversion "58") '' + cd obj-* + ''; + + preBuild = lib.optionalString isTorBrowserLike '' + buildFlagsArray=("MOZ_APP_DISPLAYNAME=Tor Browser") + ''; + + makeFlags = lib.optionals enableOfficialBranding [ + "MOZILLA_OFFICIAL=1" + "BUILD_OFFICIAL=1" + ] + ++ extraMakeFlags; + + RUSTFLAGS = if (lib.versionAtLeast ffversion "67"/*somewhere betwween ESRs*/) + then null else "--cap-lints warn"; + + enableParallelBuilding = true; + doCheck = false; # "--disable-tests" above + + installPhase = if stdenv.isDarwin then '' + mkdir -p $out/Applications + cp -LR dist/${binaryNameCapitalized}.app $out/Applications + '' else null; + + postInstall = lib.optionalString stdenv.isLinux '' + # Remove SDK cruft. FIXME: move to a separate output? + rm -rf $out/share/idl $out/include $out/lib/${binaryName}-devel-* + + # Needed to find Mozilla runtime + gappsWrapperArgs+=(--argv0 "$out/bin/.${binaryName}-wrapped") + ''; + + postFixup = lib.optionalString stdenv.isLinux '' + # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712. + patchelf --set-rpath "${lib.getLib libnotify + }/lib:$(patchelf --print-rpath "$out"/lib/${binaryName}*/libxul.so)" \ + "$out"/lib/${binaryName}*/libxul.so + ''; + + doInstallCheck = true; + installCheckPhase = '' + # Some basic testing + "$out${execdir}/${browserName}" --version + ''; + + passthru = { + inherit version updateScript; + isFirefox3Like = true; + inherit isIceCatLike; + inherit isTorBrowserLike; + gtk = gtk2; + inherit nspr; + inherit ffmpegSupport; + inherit gssSupport; + inherit execdir; + inherit browserName; + } // lib.optionalAttrs gtk3Support { inherit gtk3; }; + +} // +# the build system verifies checksums of the bundled rust sources +# ./third_party/rust is be patched by our libtool fixup code in stdenv +# unfortunately we can't just set this to `false` when we do not want it. +# See https://github.com/NixOS/nixpkgs/issues/77289 for more details +lib.optionalAttrs (lib.versionAtLeast ffversion "72") { + # Ideally we would figure out how to tell the build system to not + # care about changed hashes as we are already doing that when we + # fetch the sources. Any further modifications of the source tree + # is on purpose by some of our tool (or by accident and a bug?). + dontFixLibtool = true; + + # on aarch64 this is also required + dontUpdateAutotoolsGnuConfigScripts = true; +}) diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch new file mode 100644 index 000000000000..18d31356989a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch @@ -0,0 +1,6 @@ +--- a/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:00:14.157543388 +0100 ++++ b/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:01:28.731128320 +0100 +@@ -302 +302,2 @@ +- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir)); ++ const char* pathVar = PR_GetEnv("MOZ_SYSTEM_DIR"); ++ rv = NS_NewNativeLocalFile((pathVar && *pathVar) ? nsDependentCString(pathVar) : reinterpret_cast<const nsCString&>(dirname), false, getter_AddRefs(localDir)); diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch new file mode 100644 index 000000000000..1c3c32948944 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch @@ -0,0 +1,26 @@ +Yep, it's a "return code was ignored" bug. +diff --git a/media/libcubeb/src/cubeb_pulse.c b/media/libcubeb/src/cubeb_pulse.c +index aaaaaaaaaaa..bbbbbbbbbbb 100644 +--- a/media/libcubeb/src/cubeb_pulse.c ++++ b/media/libcubeb/src/cubeb_pulse.c +@@ -473,6 +473,8 @@ + static int + pulse_context_init(cubeb * ctx) + { ++ int r; ++ + if (ctx->context) { + assert(ctx->error == 1); + pulse_context_destroy(ctx); +@@ -486,9 +488,9 @@ + WRAP(pa_context_set_state_callback)(ctx->context, context_state_callback, ctx); + + WRAP(pa_threaded_mainloop_lock)(ctx->mainloop); +- WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL); ++ r = WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL); + +- if (wait_until_context_ready(ctx) != 0) { ++ if (r < 0 || wait_until_context_ready(ctx) != 0) { + WRAP(pa_threaded_mainloop_unlock)(ctx->mainloop); + pulse_context_destroy(ctx); + ctx->context = NULL; diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch new file mode 100644 index 000000000000..7d129dc78f98 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch @@ -0,0 +1,23 @@ +diff -ur firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp firefox-65.0/docshell/base/nsAboutRedirector.cpp +--- firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp 2019-01-23 00:48:28.988747428 +0100 ++++ firefox-65.0/docshell/base/nsAboutRedirector.cpp 2019-01-23 00:51:13.378188397 +0100 +@@ -67,8 +67,6 @@ + {"about", "chrome://global/content/aboutAbout.xhtml", 0}, + {"addons", "chrome://mozapps/content/extensions/extensions.xul", + nsIAboutModule::ALLOW_SCRIPT}, +- {"buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT}, + {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT}, +diff -ur firefox-65.0-orig/toolkit/content/jar.mn firefox-65.0/toolkit/content/jar.mn +--- firefox-65.0-orig/toolkit/content/jar.mn 2019-01-23 00:48:35.033372506 +0100 ++++ firefox-65.0/toolkit/content/jar.mn 2019-01-23 00:50:45.126565924 +0100 +@@ -36,7 +36,6 @@ + content/global/plugins.css + content/global/browser-child.js + content/global/browser-content.js +-* content/global/buildconfig.html + content/global/buildconfig.css + content/global/contentAreaUtils.js + content/global/datepicker.xhtml diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-max-64.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-max-64.patch new file mode 100644 index 000000000000..de278152f978 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-max-64.patch @@ -0,0 +1,25 @@ +diff -ru -x '*~' firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp firefox-55.0.3/docshell/base/nsAboutRedirector.cpp +--- firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp 2017-07-31 18:20:51.000000000 +0200 ++++ firefox-55.0.3/docshell/base/nsAboutRedirector.cpp 2017-09-26 22:02:00.814151731 +0200 +@@ -36,10 +36,6 @@ + nsIAboutModule::ALLOW_SCRIPT + }, + { +- "buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT +- }, +- { + "checkerboard", "chrome://global/content/aboutCheckerboard.xhtml", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT +diff -ru -x '*~' firefox-55.0.3-orig/toolkit/content/jar.mn firefox-55.0.3/toolkit/content/jar.mn +--- firefox-55.0.3-orig/toolkit/content/jar.mn 2017-07-31 18:20:52.000000000 +0200 ++++ firefox-55.0.3/toolkit/content/jar.mn 2017-09-26 22:01:42.383350314 +0200 +@@ -40,7 +40,6 @@ + content/global/plugins.css + content/global/browser-child.js + content/global/browser-content.js +-* content/global/buildconfig.html + content/global/buildconfig.css + content/global/contentAreaUtils.js + content/global/datepicker.xhtml diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-min-65.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-min-65.patch new file mode 100644 index 000000000000..708004781efc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-min-65.patch @@ -0,0 +1,25 @@ +diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp +index fe0a5af..3df1e0e 100644 +--- a/docshell/base/nsAboutRedirector.cpp ++++ b/docshell/base/nsAboutRedirector.cpp +@@ -67,8 +67,6 @@ static const RedirEntry kRedirMap[] = { + {"about", "chrome://global/content/aboutAbout.xhtml", 0}, + {"addons", "chrome://mozapps/content/extensions/extensions.xul", + nsIAboutModule::ALLOW_SCRIPT}, +- {"buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT}, + {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT}, +diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn +index 2ec137d..579ef4d 100644 +--- a/toolkit/content/jar.mn ++++ b/toolkit/content/jar.mn +@@ -36,7 +36,6 @@ toolkit.jar: + content/global/plugins.css + content/global/browser-child.js + content/global/browser-content.js +-* content/global/buildconfig.html + content/global/buildconfig.css + content/global/contentAreaUtils.js + content/global/datepicker.xhtml diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix new file mode 100644 index 000000000000..805072aafdc8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix @@ -0,0 +1,309 @@ +{ lib, callPackage, fetchurl, fetchFromGitHub, firefoxCommon +, overrideCC, gccStdenv, gcc6 +}: + +let + + # Needed on older branches since rustc: 1.32.0 -> 1.33.0 + missing-documentation-patch = fetchurl { + name = "missing-documentation.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/deny_missing_docs.patch" + + "?h=firefox-esr&id=03bdd01f9cf"; + sha256 = "1i33n3fgwc8d0v7j4qn7lbdax0an6swar12gay3q2nwrhg3ic4fb"; + }; +in + +rec { + firefox = firefoxCommon rec { + pname = "firefox"; + ffversion = "72.0.1"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "37ryimi6yfpcha4c9mcv8gjk38kia1lr5xrj2lglwsr1jai7qxrcd8ljcry8bg87qfwwb9fa13prmn78f5pzpxr7jf8gnsbvr6adxld"; + }; + + patches = [ + ./no-buildconfig-ffx65.patch + ]; + + meta = { + description = "A web browser built from Firefox source tree"; + homepage = http://www.mozilla.com/en-US/firefox/; + maintainers = with lib.maintainers; [ eelco andir ]; + platforms = lib.platforms.unix; + badPlatforms = lib.platforms.darwin; + license = lib.licenses.mpl20; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-unwrapped"; + versionKey = "ffversion"; + }; + }; + + # Do not remove. This is the last version of Firefox that supports + # the old plugins. While this package is unsafe to use for browsing + # the web, there are many old useful plugins targeting offline + # activities (e.g. ebook readers, syncronous translation, etc) that + # will probably never be ported to WebExtensions API. + firefox-esr-52 = (firefoxCommon rec { + pname = "firefox-esr"; + ffversion = "52.9.0esr"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "bfca42668ca78a12a9fb56368f4aae5334b1f7a71966fbba4c32b9c5e6597aac79a6e340ac3966779d2d5563eb47c054ab33cc40bfb7306172138ccbd3adb2b9"; + }; + + patches = [ + # this one is actually an omnipresent bug + # https://bugzilla.mozilla.org/show_bug.cgi?id=1444519 + ./fix-pa-context-connect-retval.patch + ]; + + meta = firefox.meta // { + description = "A web browser built from Firefox Extended Support Release source tree"; + knownVulnerabilities = [ "Support ended in August 2018." ]; + }; + }).override { + stdenv = overrideCC gccStdenv gcc6; # gcc7 fails with "undefined reference to `__divmoddi4'" + gtk3Support = false; + }; + + firefox-esr-60 = firefoxCommon rec { + pname = "firefox-esr"; + ffversion = "60.9.0esr"; + + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "4baea5c9c4eff257834bbaee6d7786f69f7e6bacd24ca13c2705226f4a0d88315ab38c650b2c5e9c76b698f2debc7cea1e5a99cb4dc24e03c48a24df5143a3cf"; + }; + + patches = [ + ./no-buildconfig-ffx65.patch + + # this one is actually an omnipresent bug + # https://bugzilla.mozilla.org/show_bug.cgi?id=1444519 + ./fix-pa-context-connect-retval.patch + + missing-documentation-patch + ]; + + meta = firefox.meta // { + description = "A web browser built from Firefox Extended Support Release source tree"; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-esr-60-unwrapped"; + versionSuffix = "esr"; + versionKey = "ffversion"; + }; + }; + + firefox-esr-68 = firefoxCommon rec { + pname = "firefox-esr"; + ffversion = "68.4.1esr"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "3nqchvyr95c9xvz23z0kcqqyx8lskw0lxa3rahiagc7b71pnrk8l40c7327q1wd4y5g16lix0fg04xiy6lqjfycjsrjlfr2y6b51n4d"; + }; + + patches = [ + ./no-buildconfig-ffx65.patch + ]; + + meta = firefox.meta // { + description = "A web browser built from Firefox Extended Support Release source tree"; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-esr-68-unwrapped"; + versionSuffix = "esr"; + versionKey = "ffversion"; + }; + }; + + firefox-beta = firefoxCommon rec { + pname = "firefox"; + ffversion = "66.0b5"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "2cnv8pnl220dxqfpcdnwibwidc8b9zg3bj9wkzc83r4cdsfcjy3hqyw01gpc30a4qwbbabsgask3hl3dg7d3d8qqw4c588b00z67mvs"; + }; + + patches = [ + ./no-buildconfig-ffx65.patch + ]; + + meta = firefox.meta // { + description = "A web browser built from Firefox Beta source tree"; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-beta"; + versionKey = "ffversion"; + }; + }; + +} // (let + + iccommon = args: firefoxCommon (args // { + pname = "icecat"; + isIceCatLike = true; + + meta = (args.meta or {}) // { + description = "The GNU version of the Firefox web browser"; + longDescription = '' + GNUzilla is the GNU version of the Mozilla suite, and GNU + IceCat is the GNU version of the Firefox web browser. + + Notable differences from mainline Firefox: + + - entirely free software, no non-free plugins, addons, + artwork, + - no telemetry, no "studies", + - sane privacy and security defaults (for instance, unlike + Firefox, IceCat does _zero_ network requests on startup by + default, which means that with IceCat you won't need to + unplug your Ethernet cable each time you want to create a + new browser profile without announcing that action to a + bunch of data-hungry corporations), + - all essential privacy and security settings can be + configured directly from the main screen, + - optional first party isolation (like TorBrowser), + - comes with HTTPS Everywhere (like TorBrowser), Tor Browser + Button (like TorBrowser Bundle), LibreJS, and SpyBlock + plugins out of the box. + + This package can be installed together with Firefox and + TorBrowser, it will use distinct binary names and profile + directories. + ''; + homepage = "https://www.gnu.org/software/gnuzilla/"; + platforms = lib.platforms.unix; + license = with lib.licenses; [ mpl20 gpl3Plus ]; + }; + }); + +in { + + icecat = iccommon rec { + ffversion = "60.3.0"; + icversion = "${ffversion}-gnu1"; + + src = fetchurl { + url = "mirror://gnu/gnuzilla/${ffversion}/icecat-${icversion}.tar.bz2"; + sha256 = "0icnl64nxcyf7dprpdpygxhabsvyhps8c3ixysj9bcdlj9q34ib1"; + }; + + patches = [ + ./no-buildconfig.patch + missing-documentation-patch + ]; + }; + + # Similarly to firefox-esr-52 above. + icecat-52 = iccommon rec { + ffversion = "52.6.0"; + icversion = "${ffversion}-gnu1"; + + src = fetchurl { + url = "mirror://gnu/gnuzilla/${ffversion}/icecat-${icversion}.tar.bz2"; + sha256 = "09fn54glqg1aa93hnz5zdcy07cps09dbni2b4200azh6nang630a"; + }; + + patches = [ + # this one is actually an omnipresent bug + # https://bugzilla.mozilla.org/show_bug.cgi?id=1444519 + ./fix-pa-context-connect-retval.patch + ]; + + meta.knownVulnerabilities = [ "Support ended in August 2018." ]; + }; + +}) // (let + + tbcommon = args: firefoxCommon (args // { + pname = "tor-browser"; + isTorBrowserLike = true; + + unpackPhase = '' + # fetchFromGitHub produces ro sources, root dir gets a name that + # is too long for shebangs. fixing + cp -a $src tor-browser + chmod -R +w tor-browser + cd tor-browser + + # set times for xpi archives + find . -exec touch -d'2010-01-01 00:00' {} \; + ''; + + meta = (args.meta or {}) // { + description = "A web browser built from TorBrowser source tree"; + longDescription = '' + This is a version of TorBrowser with bundle-related patches + reverted. + + I.e. it's a variant of Firefox with less fingerprinting and + some isolation features you can't get with any extensions. + + Or, alternatively, a variant of TorBrowser that works like any + other UNIX program and doesn't expect you to run it from a + bundle. + + It will use your default Firefox profile if you're not careful + even! Be careful! + + It will clash with firefox binary if you install both. But it + should not be a problem because you should run browsers in + separate users/VMs anyway. + + Create new profile by starting it as + + $ firefox -ProfileManager + + and then configure it to use your tor instance. + + Or just use `tor-browser-bundle` package that packs this + `tor-browser` back into a sanely-built bundle. + ''; + homepage = "https://www.torproject.org/projects/torbrowser.html"; + platforms = lib.platforms.unix; + license = with lib.licenses; [ mpl20 bsd3 ]; + }; + }); + +in rec { + + tor-browser-7-5 = (tbcommon { + ffversion = "52.9.0esr"; + tbversion = "7.5.6"; + + # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb + src = fetchFromGitHub { + owner = "SLNOS"; + repo = "tor-browser"; + # branch "tor-browser-52.9.0esr-7.5-2-slnos" + rev = "95bb92d552876a1f4260edf68fda5faa3eb36ad8"; + sha256 = "1ykn3yg4s36g2cpzxbz7s995c33ij8kgyvghx38z4i8siaqxdddy"; + }; + }).override { + gtk3Support = false; + }; + + tor-browser-8-5 = tbcommon rec { + ffversion = "60.9.0esr"; + tbversion = "8.5.6"; + + # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb + src = fetchFromGitHub { + owner = "SLNOS"; + repo = "tor-browser"; + # branch "tor-browser-60.9.0esr-8.5-2-slnos" + rev = "0489ae3158cd8c0e16c2e78b94083d8cbf0209dc"; + sha256 = "0y5s7d8pg8ak990dp8d801j9823igaibfhv9hsa79nib5yllifzs"; + }; + + patches = [ + missing-documentation-patch + ]; + }; + + tor-browser = tor-browser-8-5; + +}) diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix new file mode 100644 index 000000000000..e12b552535d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix @@ -0,0 +1,35 @@ +{ writeScript +, lib +, xidel +, common-updater-scripts +, coreutils +, gnused +, gnugrep +, curl +, attrPath +, runtimeShell +, baseUrl ? "http://archive.mozilla.org/pub/firefox/releases/" +, versionSuffix ? "" +, versionKey ? "version" +}: + +writeScript "update-${attrPath}" '' + #!${runtimeShell} + PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnused xidel ]} + + url=${baseUrl} + + # retriving latest released version + # - extracts all links from the $url + # - extracts lines only with number and dots followed by a slash + # - removes trailing slash + # - sorts everything with semver in mind + # - picks up latest release + version=`xidel -s $url --extract "//a" | \ + grep "^[0-9.]*${versionSuffix}/$" | \ + sed s/[/]$// | \ + sort --version-sort | \ + tail -n 1` + + update-source-version ${attrPath} "$version" "" "" --version-key=${versionKey} +'' diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix new file mode 100644 index 000000000000..4901d694f49f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -0,0 +1,191 @@ +{ stdenv, lib, makeDesktopItem, makeWrapper, lndir, config + +## various stuff that can be plugged in +, flashplayer, hal-flash +, MPlayerPlugin, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd +, jrePlugin, adoptopenjdk-icedtea-web +, bluejeans, djview4, adobe-reader +, google_talk_plugin, fribid, gnome3/*.gnome-shell*/ +, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow +, tridactyl-native +, udev +, kerberos +}: + +## configurability of the wrapper itself + +browser: + +let + wrapper = + { browserName ? browser.browserName or (lib.getName browser) + , pname ? browserName + , version ? lib.getVersion browser + , desktopName ? # browserName with first letter capitalized + (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) + , nameSuffix ? "" + , icon ? browserName + , extraPlugins ? [] + , extraNativeMessagingHosts ? [] + , gdkWayland ? false + , cfg ? config.${browserName} or {} + }: + + assert gdkWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used + + let + enableAdobeFlash = cfg.enableAdobeFlash or false; + ffmpegSupport = browser.ffmpegSupport or false; + gssSupport = browser.gssSupport or false; + jre = cfg.jre or false; + icedtea = cfg.icedtea or false; + supportsJDK = + stdenv.hostPlatform.system == "i686-linux" || + stdenv.hostPlatform.system == "x86_64-linux" || + stdenv.hostPlatform.system == "armv7l-linux" || + stdenv.hostPlatform.system == "aarch64-linux"; + + plugins = + assert !(jre && icedtea); + if builtins.hasAttr "enableVLC" cfg + then throw "The option \"${browserName}.enableVLC\" has been removed since Firefox no longer supports npapi plugins" + else + ([ ] + ++ lib.optional enableAdobeFlash flashplayer + ++ lib.optional (cfg.enableDjvu or false) (djview4) + ++ lib.optional (cfg.enableMPlayer or false) (MPlayerPlugin browser) + ++ lib.optional (supportsJDK && jre && jrePlugin ? mozillaPlugin) jrePlugin + ++ lib.optional icedtea adoptopenjdk-icedtea-web + ++ lib.optional (cfg.enableGoogleTalkPlugin or false) google_talk_plugin + ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid + ++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome-shell + ++ lib.optional (cfg.enableBluejeans or false) bluejeans + ++ lib.optional (cfg.enableAdobeReader or false) adobe-reader + ++ extraPlugins + ); + nativeMessagingHosts = + ([ ] + ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass) + ++ lib.optional (cfg.enableBukubrow or false) bukubrow + ++ lib.optional (cfg.enableTridactylNative or false) tridactyl-native + ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell + ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator + ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration + ++ extraNativeMessagingHosts + ); + libs = lib.optional stdenv.isLinux udev + ++ lib.optional ffmpegSupport ffmpeg + ++ lib.optional gssSupport kerberos + ++ lib.optional gdkWayland libglvnd + ++ lib.optionals (cfg.enableQuakeLive or false) + (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]) + ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash + ++ lib.optional (config.pulseaudio or true) libpulseaudio; + gtk_modules = [ libcanberra-gtk2 ]; + + in stdenv.mkDerivation { + inherit pname version; + + desktopItem = makeDesktopItem { + name = browserName; + exec = "${browserName}${nameSuffix} %U"; + inherit icon; + comment = ""; + desktopName = "${desktopName}${nameSuffix}${lib.optionalString gdkWayland " (Wayland)"}"; + genericName = "Web Browser"; + categories = "Application;Network;WebBrowser;"; + mimeType = stdenv.lib.concatStringsSep ";" [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + "x-scheme-handler/ftp" + ]; + }; + + nativeBuildInputs = [ makeWrapper lndir ]; + buildInputs = lib.optional (browser ? gtk3) browser.gtk3; + + buildCommand = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications + rm -f $out${browser.execdir or "/bin"}/${browserName} + '' + '' + if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ] + then + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + exit 1 + fi + + makeWrapper "$(readlink -v --canonicalize-existing "${browser}${browser.execdir or "/bin"}/${browserName}")" \ + "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \ + --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \ + --suffix LD_LIBRARY_PATH ':' "$libs" \ + --suffix-each GTK_PATH ':' "$gtk_modules" \ + --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \ + --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ + --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ + --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ + --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ + --set SNAP_NAME "firefox" \ + --set MOZ_LEGACY_PROFILES 1 \ + --set MOZ_ALLOW_DOWNGRADE 1 \ + ${lib.optionalString gdkWayland '' + --set GDK_BACKEND "wayland" \ + ''}${lib.optionalString (browser ? gtk3) + ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share' + '' + } + + if [ -e "${browser}/share/icons" ]; then + mkdir -p "$out/share" + ln -s "${browser}/share/icons" "$out/share/icons" + else + for res in 16 32 48 64 128; do + mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" + icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) + if [ -e "$icon" ]; then ln -s "$icon" \ + "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png" + fi + done + fi + + install -D -t $out/share/applications $desktopItem/share/applications/* + + mkdir -p $out/lib/mozilla + for ext in ${toString nativeMessagingHosts}; do + lndir -silent $ext/lib/mozilla $out/lib/mozilla + done + + # For manpages, in case the program supplies them + mkdir -p $out/nix-support + echo ${browser} > $out/nix-support/propagated-user-env-packages + ''; + + preferLocalBuild = true; + + # Let each plugin tell us (through its `mozillaPlugin') attribute + # where to find the plugin in its tree. + plugins = map (x: x + x.mozillaPlugin) plugins; + libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs; + gtk_modules = map (x: x + x.gtkModule) gtk_modules; + + passthru = { unwrapped = browser; }; + + disallowedRequisites = [ stdenv.cc ]; + + meta = browser.meta // { + description = + browser.meta.description + + " (with plugins: " + + lib.concatStrings (lib.intersperse ", " (map (x: x.name) plugins)) + + ")"; + hydraPlatforms = []; + priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package + }; + }; +in + lib.makeOverridable wrapper diff --git a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix new file mode 100644 index 000000000000..9f49925b2672 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -0,0 +1,141 @@ +{ stdenv, patchelf, makeWrapper + +# Linked dynamic libraries. +, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr +, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb +, alsaLib, libXdamage, libXtst, libXrandr, expat, cups +, dbus, gtk2, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core +, kerberos + +# command line arguments which are always set e.g "--disable-gpu" +, commandLineArgs ? "" + +# Will crash without. +, systemd + +# Loaded at runtime. +, libexif + +# Additional dependencies according to other distros. +## Ubuntu +, liberation_ttf, curl, utillinux, xdg_utils, wget +## Arch Linux. +, flac, harfbuzz, icu, libpng, libopus, snappy, speechd +## Gentoo +, bzip2, libcap + +# Which distribution channel to use. +, channel ? "stable" + +# Necessary for USB audio devices. +, pulseSupport ? true, libpulseaudio ? null + +# Only needed for getting information about upstream binaries +, chromium + +, gsettings-desktop-schemas +, gnome2, gnome3 +}: + +with stdenv.lib; + +let + opusWithCustomModes = libopus.override { + withCustomModes = true; + }; + + version = chromium.upstream-info.version; + gtk = if (versionAtLeast version "59.0.0.0") then gtk3 else gtk2; + gnome = if (versionAtLeast version "59.0.0.0") then gnome3 else gnome2; + + deps = [ + glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr + libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb + alsaLib libXdamage libXtst libXrandr expat cups + dbus gdk-pixbuf gcc-unwrapped.lib + systemd + libexif + liberation_ttf curl utillinux xdg_utils wget + flac harfbuzz icu libpng opusWithCustomModes snappy speechd + bzip2 libcap at-spi2-atk at-spi2-core + kerberos + ] ++ optional pulseSupport libpulseaudio + ++ [ gtk ]; + + suffix = if channel != "stable" then "-" + channel else ""; + +in stdenv.mkDerivation { + inherit version; + + name = "google-chrome${suffix}-${version}"; + + src = chromium.upstream-info.binary; + + nativeBuildInputs = [ patchelf makeWrapper ]; + buildInputs = [ + # needed for GSETTINGS_SCHEMAS_PATH + gsettings-desktop-schemas glib gtk + + # needed for XDG_ICON_DIRS + gnome.adwaita-icon-theme + ]; + + unpackPhase = '' + ar x $src + tar xf data.tar.xz + ''; + + rpath = makeLibraryPath deps + ":" + makeSearchPathOutput "lib" "lib64" deps; + binpath = makeBinPath deps; + + installPhase = '' + case ${channel} in + beta) appname=chrome-beta dist=beta ;; + dev) appname=chrome-unstable dist=unstable ;; + *) appname=chrome dist=stable ;; + esac + + exe=$out/bin/google-chrome-$dist + + mkdir -p $out/bin $out/share + + cp -a opt/* $out/share + cp -a usr/share/* $out/share + + substituteInPlace $out/share/applications/google-$appname.desktop \ + --replace /usr/bin/google-chrome-$dist $exe + substituteInPlace $out/share/gnome-control-center/default-apps/google-$appname.xml \ + --replace /opt/google/$appname/google-$appname $exe + substituteInPlace $out/share/menu/google-$appname.menu \ + --replace /opt $out/share \ + --replace $out/share/google/chrome/google-$appname $exe + + for icon_file in $out/share/google/chrome*/product_logo_*[0-9].png; do + num_and_suffix="''${icon_file##*logo_}" + icon_size="''${num_and_suffix%.*}" + logo_output_prefix="$out/share/icons/hicolor" + logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps" + mkdir -p "$logo_output_path" + mv "$icon_file" "$logo_output_path/google-$appname.png" + done + + makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \ + --prefix LD_LIBRARY_PATH : "$rpath" \ + --prefix PATH : "$binpath" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --add-flags ${escapeShellArg commandLineArgs} + + for elf in $out/share/google/$appname/{chrome,chrome-sandbox,nacl_helper}; do + patchelf --set-rpath $rpath $elf + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf + done + ''; + + meta = { + description = "A freeware web browser developed by Google"; + homepage = https://www.google.com/chrome/browser/; + license = licenses.unfree; + maintainers = [ maintainers.msteen ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix new file mode 100644 index 000000000000..b09be81cc418 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl +, gpm, openssl, pkgconfig, libev # Misc. +, libpng, libjpeg, libtiff, librsvg # graphic formats +, bzip2, zlib, xz # Transfer encodings +, enableFB ? true +, enableDirectFB ? false, directfb +, enableX11 ? true, libX11, libXt, libXau # GUI support +}: + +stdenv.mkDerivation rec { + version = "2.20.2"; + pname = "links2"; + + src = fetchurl { + url = "${meta.homepage}/download/links-${version}.tar.bz2"; + sha256 = "097ll98ympzfx7qfdyhc52yzvsp167x5nnjs6v8ih496wv80fksb"; + }; + + buildInputs = with stdenv.lib; + [ libev librsvg libpng libjpeg libtiff openssl xz bzip2 zlib ] + ++ optionals stdenv.isLinux [ gpm ] + ++ optionals enableX11 [ libX11 libXau libXt ] + ++ optional enableDirectFB [ directfb ]; + + nativeBuildInputs = [ pkgconfig bzip2 ]; + + configureFlags = [ "--with-ssl" ] + ++ stdenv.lib.optional (enableX11 || enableFB || enableDirectFB) "--enable-graphics" + ++ stdenv.lib.optional enableX11 "--with-x" + ++ stdenv.lib.optional enableFB "--with-fb" + ++ stdenv.lib.optional enableDirectFB "--with-directfb"; + + meta = with stdenv.lib; { + homepage = http://links.twibright.com/; + description = "A small browser with some graphics support"; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix new file mode 100644 index 000000000000..0605eda7fc76 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchFromGitHub, pkgconfig, wrapGAppsHook +, help2man, luafilesystem, luajit, sqlite +, webkitgtk, gtk3, gst_all_1, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "luakit"; + version = "2.1"; + + src = fetchFromGitHub { + owner = "luakit"; + repo = "luakit"; + rev = version; + sha256 = "05mm76g72fs48410pbij4mw0s3nqji3r7f3mnr2fvhv02xqj05aa"; + }; + + nativeBuildInputs = [ + pkgconfig help2man wrapGAppsHook + ]; + + buildInputs = [ + webkitgtk luafilesystem luajit sqlite gtk3 + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly + gst_all_1.gst-libav + glib-networking # TLS support + ]; + + preBuild = '' + # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found + # TODO: why is not this the default? The test runner adds + # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils + # scripts don't add an equivalent + export LUA_PATH="$LUA_PATH;./?.lua;./?/init.lua" + ''; + + makeFlags = [ + "DEVELOPMENT_PATHS=0" + "USE_LUAJIT=1" + "INSTALLDIR=${placeholder "out"}" + "PREFIX=${placeholder "out"}" + "USE_GTK3=1" + "XDGPREFIX=${placeholder "out"}/etc/xdg" + ]; + + preFixup = let + luaKitPath = "$out/share/luakit/lib/?/init.lua;$out/share/luakit/lib/?.lua"; + in '' + gappsWrapperArgs+=( + --prefix XDG_CONFIG_DIRS : "$out/etc/xdg" + --prefix LUA_PATH ';' "${luaKitPath};$LUA_PATH" + --prefix LUA_CPATH ';' "$LUA_CPATH" + ) + ''; + + meta = with stdenv.lib; { + description = "Fast, small, webkit based browser framework extensible in Lua"; + homepage = https://luakit.github.io/; + license = licenses.gpl3; + platforms = platforms.linux; # Only tested linux + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix b/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix new file mode 100644 index 000000000000..3f4f96d33efb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix @@ -0,0 +1,50 @@ +{ stdenv, buildPackages +, fetchurl, pkgconfig, ncurses, gzip +, sslSupport ? true, openssl ? null +, nukeReferences +}: + +assert sslSupport -> openssl != null; + +stdenv.mkDerivation rec { + pname = "lynx"; + version = "2.8.9rel.1"; + + src = fetchurl { + urls = [ + "ftp://ftp.invisible-island.net/lynx/tarballs/lynx${version}.tar.bz2" + "https://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2" + ]; + sha256 = "15cmyyma2kz1hfaa6mwjgli8zwdzq3jv0q2cl6nwzycjfwyijzrq"; + }; + + enableParallelBuilding = true; + + hardeningEnable = [ "pie" ]; + + configureFlags = [ + "--enable-default-colors" + "--enable-widec" + "--enable-ipv6" + ] ++ stdenv.lib.optional sslSupport "--with-ssl"; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ nukeReferences ] + ++ stdenv.lib.optional sslSupport pkgconfig; + + buildInputs = [ ncurses gzip ] ++ stdenv.lib.optional sslSupport openssl.dev; + + # cfg_defs.h captures lots of references to build-only dependencies, derived + # from config.cache. + postConfigure = '' + make cfg_defs.h + nuke-refs cfg_defs.h + ''; + + meta = with stdenv.lib; { + description = "A text-mode web browser"; + homepage = https://lynx.invisible-island.net/; + license = licenses.gpl2Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix new file mode 100644 index 000000000000..1d1928d168b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix @@ -0,0 +1,59 @@ +{ stdenv +, fetchurl +, cmake +, ninja +, pkgconfig +, intltool +, vala +, wrapGAppsHook +, gcr +, libpeas +, gtk3 +, webkitgtk +, sqlite +, gsettings-desktop-schemas +, libsoup +, glib-networking +, json-glib +, libarchive +}: + +stdenv.mkDerivation rec { + pname = "midori"; + version = "9.0"; + + src = fetchurl { + url = "https://github.com/midori-browser/core/releases/download/v${version}/midori-v${version}.tar.gz"; + sha256 = "05i04qa83dnarmgkx4xsk6fga5lw1lmslh4rb3vhyyy4ala562jy"; + }; + + nativeBuildInputs = [ + cmake + intltool + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + (libsoup.override { gnomeSupport = true; }) + gcr + glib-networking + gsettings-desktop-schemas + gtk3 + libpeas + sqlite + webkitgtk + json-glib + libarchive + ]; + + meta = with stdenv.lib; { + description = "Lightweight WebKitGTK web browser"; + homepage = https://www.midori-browser.org/; + license = with licenses; [ lgpl21Plus ]; + platforms = with platforms; linux; + maintainers = with maintainers; [ raskin ramkromberg ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix new file mode 100644 index 000000000000..e8841a0ab6fb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, xorg, gtk2, glib, gdk-pixbuf, dpkg, libXext, libXfixes +, libXrender, libuuid, libXrandr, libXcomposite, libpulseaudio +}: + +with stdenv.lib; + +let + + rpathInstaller = makeLibraryPath + [gtk2 glib stdenv.cc.cc]; + + rpathPlugin = makeLibraryPath + ([ stdenv.cc.cc gtk2 glib xorg.libX11 gdk-pixbuf libXext libXfixes libXrender libXrandr libXcomposite libpulseaudio ] ++ optional (libuuid != null) libuuid); + +in + +stdenv.mkDerivation rec { + pname = "bluejeans"; + + version = "2.180.71.8"; + + src = fetchurl { + url = "https://swdl.bluejeans.com/skinny/bjnplugin_${version}-1_amd64.deb"; + sha256 = "1fgjgzss0ghk734xpfidazyknfdn11pmyw77pc3wigl83dvx4nb2"; + }; + + unpackPhase = "${dpkg}/bin/dpkg-deb -x $src ."; + + installPhase = + '' + mkdir -p $out + cp -R usr/lib $out/ + + plugins=$out/lib/mozilla/plugins + patchelf \ + --set-rpath "${rpathPlugin}" \ + $plugins/npbjnplugin_${version}.so + + patchelf \ + --set-rpath "${rpathInstaller}" \ + $plugins/npbjninstallplugin_${version}.so + ''; + + dontStrip = true; + dontPatchELF = true; + + passthru.mozillaPlugin = "/lib/mozilla/plugins"; + + meta = { + homepage = http://bluejeans.com; + license = stdenv.lib.licenses.unfree; + maintainers = with maintainers; [ ocharles kamilchm ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix new file mode 100644 index 000000000000..7e3705a3b0bd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix @@ -0,0 +1,147 @@ +{ stdenv +, lib +, fetchurl +, alsaLib +, atk +, bzip2 +, cairo +, curl +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, glibc +, graphite2 +, gtk2 +, harfbuzz +, libICE +, libSM +, libX11 +, libXau +, libXcomposite +, libXcursor +, libXdamage +, libXdmcp +, libXext +, libXfixes +, libXi +, libXinerama +, libXrandr +, libXrender +, libXt +, libXxf86vm +, libdrm +, libffi +, libglvnd +, libpng +, libvdpau +, libxcb +, libxshmfence +, nspr +, nss +, pango +, pcre +, pixman +, zlib +, unzip +, debug ? false + +/* you have to add ~/mm.cfg : + + TraceOutputFileEnable=1 + ErrorReportingEnable=1 + MaxWarnings=1 + + in order to read the flash trace at ~/.macromedia/Flash_Player/Logs/flashlog.txt + Then FlashBug (a FireFox plugin) shows the log as well +*/ + +}: + +let + arch = + if stdenv.hostPlatform.system == "x86_64-linux" then + "x86_64" + else if stdenv.hostPlatform.system == "i686-linux" then + "i386" + else throw "Flash Player is not supported on this platform"; + lib_suffix = + if stdenv.hostPlatform.system == "x86_64-linux" then + "64" + else + ""; +in +stdenv.mkDerivation rec { + pname = "flashplayer"; + version = "32.0.0.303"; + + src = fetchurl { + url = + if debug then + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_npapi_linux_debug.${arch}.tar.gz" + else + "https://fpdownload.adobe.com/get/flashplayer/pdc/${version}/flash_player_npapi_linux.${arch}.tar.gz"; + sha256 = + if debug then + if arch == "x86_64" then + "05hfc5ywmcvp6zf8aqmzjp3qy3byp0zdl0ssrv9gvzcskdqkhsj2" + else + "12hl8lvxz648ha70gi3v85mwf0nnayjiaslr669vjan3ww94jymv" + else + if arch == "x86_64" then + "0x0mabgswly2v8z13832pkbjsv404aq61pback6sgmp2lyycdg6w" + else + "16kbpf1i3aqlrfbfh5ncg1n46ncl9hp6qdp36s5j3ivbc68pj81z"; + }; + + nativeBuildInputs = [ unzip ]; + + sourceRoot = "."; + + dontStrip = true; + dontPatchELF = true; + + preferLocalBuild = true; + + installPhase = '' + mkdir -p $out/lib/mozilla/plugins + cp -pv libflashplayer.so $out/lib/mozilla/plugins + + mkdir -p $out/bin + cp -pv usr/bin/flash-player-properties $out/bin + + mkdir -p $out/lib${lib_suffix}/kde4 + cp -pv usr/lib${lib_suffix}/kde4/kcm_adobe_flash_player.so $out/lib${lib_suffix}/kde4 + + patchelf --set-rpath "$rpath" \ + $out/lib/mozilla/plugins/libflashplayer.so \ + $out/lib${lib_suffix}/kde4/kcm_adobe_flash_player.so + + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "$rpath" \ + $out/bin/flash-player-properties + ''; + + passthru = { + mozillaPlugin = "/lib/mozilla/plugins"; + }; + + rpath = lib.makeLibraryPath + [ stdenv.cc.cc + alsaLib atk bzip2 cairo curl expat fontconfig freetype gdk-pixbuf glib + glibc graphite2 gtk2 harfbuzz libICE libSM libX11 libXau libXcomposite + libXcursor libXdamage libXdmcp libXext libXfixes libXi libXinerama + libXrandr libXrender libXt libXxf86vm libdrm libffi libglvnd libpng + libvdpau libxcb libxshmfence nspr nss pango pcre pixman zlib + ]; + + meta = { + description = "Adobe Flash Player browser plugin"; + homepage = http://www.adobe.com/products/flashplayer/; + license = stdenv.lib.licenses.unfree; + maintainers = with stdenv.lib.maintainers; [ taku0 ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix new file mode 100644 index 000000000000..28b4c8a36c93 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix @@ -0,0 +1,106 @@ +{ stdenv +, lib +, fetchurl +, alsaLib +, atk +, bzip2 +, cairo +, curl +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, glibc +, graphite2 +, gtk2 +, harfbuzz +, libICE +, libSM +, libX11 +, libXau +, libXcomposite +, libXcursor +, libXdamage +, libXdmcp +, libXext +, libXfixes +, libXi +, libXinerama +, libXrandr +, libXrender +, libXt +, libXxf86vm +, libdrm +, libffi +, libglvnd +, libpng +, libvdpau +, libxcb +, libxshmfence +, nspr +, nss +, pango +, pcre +, pixman +, zlib +, unzip +, debug ? false +}: + +stdenv.mkDerivation { + pname = "flashplayer-standalone"; + version = "32.0.0.303"; + + src = fetchurl { + url = + if debug then + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux_debug.x86_64.tar.gz" + else + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz"; + sha256 = + if debug then + "0xkzlv90lpyy54j6pllknrp1l9vjyh6dsl63l4c8cgh4i830gi14" + else + "0mi3ggv6zhzmdd1h68cgl87n6izhp0pbkhnidd2gl2cp95f23c2d"; + }; + + nativeBuildInputs = [ unzip ]; + + sourceRoot = "."; + + dontStrip = true; + dontPatchELF = true; + + preferLocalBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp -pv flashplayer${lib.optionalString debug "debugger"} $out/bin + + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "$rpath" \ + $out/bin/flashplayer${lib.optionalString debug "debugger"} + ''; + + rpath = lib.makeLibraryPath + [ stdenv.cc.cc + alsaLib atk bzip2 cairo curl expat fontconfig freetype gdk-pixbuf glib + glibc graphite2 gtk2 harfbuzz libICE libSM libX11 libXau libXcomposite + libXcursor libXdamage libXdmcp libXext libXfixes libXi libXinerama + libXrandr libXrender libXt libXxf86vm libdrm libffi libglvnd libpng + libvdpau libxcb libxshmfence nspr nss pango pcre pixman zlib + ]; + + meta = { + description = "Adobe Flash Player standalone executable"; + homepage = https://www.adobe.com/support/flashplayer/debug_downloads.html; + license = stdenv.lib.licenses.unfree; + maintainers = with stdenv.lib.maintainers; [ taku0 ]; + platforms = [ "x86_64-linux" ]; + # Application crashed with an unhandled SIGSEGV + # Not on all systems, though. Video driver problem? + broken = false; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh new file mode 100644 index 000000000000..fb36125b3a17 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh @@ -0,0 +1,4 @@ +source $stdenv/setup +export PREFIX=$out +configureFlags="--plugin-path=$out/lib/mozilla/plugins" +genericBuild diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix new file mode 100644 index 000000000000..101ae99d6659 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk2, gettext, intltool }: + +stdenv.mkDerivation rec { + pname = "fribid"; + version = "1.0.4"; + builder = ./builder.sh; + + src = fetchurl { + url = "https://fribid.se/releases/source/${pname}-${version}.tar.bz2"; + sha256 = "a679f3a0534d5f05fac10b16b49630a898c0b721cfa24d2c827fa45485476649"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openssl libX11 gtk2 glib gettext intltool ]; + patches = [ + ./translation-xgettext-to-intltool.patch + ./plugin-linkfix.patch + ./ipc-lazytrace.patch + ]; + + postPatch = "substituteInPlace plugin/pluginutil.c --replace strndup strndup_"; + + passthru.mozillaPlugin = "/lib/mozilla/plugins"; + + meta = with stdenv.lib; { + description = "A browser plugin to manage Swedish BankID:s"; + longDescription = '' + FriBID is an open source software for the Swedish e-id system + called BankID. FriBID also supports processor architectures and + Linux/BSD distributions that the official software doesn't + support. + ''; + homepage = http://fribid.se; + license = with licenses; [ gpl2 mpl10 ]; + maintainers = [ maintainers.edwtjo ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch new file mode 100644 index 000000000000..b7d05ddd0ef5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch @@ -0,0 +1,10 @@ +--- a/plugin/ipc.c 2012-11-14 18:02:43.000000000 +0100 ++++ b/plugin/ipc.c 2013-09-21 08:55:39.960265058 +0200 +@@ -74,6 +74,7 @@ + //close(pipeOut[PIPE_READ_END]); + + execvp(mainBinary, (char *const *)argv); ++ fprintf(stderr, "Wanted signing executable\t<%s>\n", mainBinary); + perror(BINNAME ": Failed to execute main binary"); + exit(1); + } else { diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch new file mode 100644 index 000000000000..1128381238b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch @@ -0,0 +1,11 @@ +--- a/plugin/Makefile 2013-09-18 13:55:11.091652553 +0200 ++++ b/plugin/Makefile 2013-09-18 13:58:27.513618750 +0200 +@@ -60,7 +60,7 @@ + for path in $(NPAPI_PLUGIN_PATHS); do \ + (../configure --internal--remove-link $(DESTDIR)$$path/libfribidplugin.so $(NPAPI_PLUGIN_LIB) || exit 1) && \ + install -d $(DESTDIR)$$path && \ +- ln -sf $(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \ ++ ln -sf $(DESTDIR)$(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \ + done + + uninstall: diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch new file mode 100644 index 000000000000..dcac4f17928b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch @@ -0,0 +1,16 @@ +--- a/translations/Makefile 2013-09-18 07:25:16.503800613 +0200 ++++ b/translations/Makefile 2013-09-18 07:25:29.495869405 +0200 +@@ -38,7 +38,7 @@ + all: template.pot $(MOFILES) + + template.pot: $(POTFILES) $(DEFINES) +- xgettext -k_ -ktranslatable -d $(DOMAIN) --package-name=$(PACKAGENAME) --package-version=$(PACKAGEVERSION) --copyright-holder='YOUR NAME' -o $@ $(POTFILES) ++ intltool-update --gettext-package=$(PACKAGENAME) -o $@ sv + + .po.mo: + msgfmt $< -o $@ +--- a/translations/POTFILES.in 2013-09-16 20:28:56.766106014 +0200 ++++ b/translations/POTFILES.in 2013-09-18 13:15:05.252689648 +0200 +@@ -0,0 +1,2 @@ ++client/gtk.c ++client/gtk/sign.glade diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix new file mode 100644 index 000000000000..bde4ce15d7c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix @@ -0,0 +1,117 @@ +{ stdenv, fetchurl, libGL, xorg, cairo +, libpng, gtk2, glib, gdk-pixbuf, fontconfig, freetype, curl +, dbus-glib, alsaLib, libpulseaudio, systemd, pango +}: + +with stdenv.lib; + +let + + baseURL = "http://dl.google.com/linux/talkplugin/deb/pool/main/g/google-talkplugin"; + + rpathPlugin = makeLibraryPath + [ libGL + xorg.libXt + xorg.libX11 + xorg.libXrender + cairo + libpng + gtk2 + glib + fontconfig + freetype + curl + ]; + + rpathProgram = makeLibraryPath + [ gdk-pixbuf + glib + gtk2 + xorg.libX11 + xorg.libXcomposite + xorg.libXfixes + xorg.libXrender + xorg.libXrandr + xorg.libXext + stdenv.cc.cc + alsaLib + libpulseaudio + dbus-glib + systemd + curl + pango + cairo + ]; + +in + +stdenv.mkDerivation rec { + pname = "google-talk-plugin"; + + # You can get the upstream version and SHA-1 hash from the following URLs: + # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages | grep -E 'Version|SHA1' + # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages | grep -E 'Version|SHA1' + version = "5.41.3.0"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb"; + sha1 = "0bbc3d6997ba22ce712d93e5bc336c894b54fc81"; + } + else if stdenv.hostPlatform.system == "i686-linux" then + fetchurl { + url = "${baseURL}/google-talkplugin_${version}-1_i386.deb"; + sha1 = "6eae0544858f85c68b0cc46d7786e990bd94f139"; + } + else throw "Google Talk does not support your platform."; + + unpackPhase = '' + ar p "$src" data.tar.gz | tar xz + ''; + + installPhase = + '' + plugins=$out/lib/mozilla/plugins + mkdir -p $plugins + cp opt/google/talkplugin/*.so $plugins + + for i in libnpgoogletalk.so libppgoogletalk.so libppo1d.so; do + patchelf --set-rpath "${makeLibraryPath [ stdenv.cc.cc xorg.libX11 ]}:${stdenv.cc.cc.lib}/lib64" $plugins/$i + done + + for i in libgoogletalkremoting.so libnpo1d.so; do + patchelf --set-rpath "$out/libexec/google/talkplugin/lib:${rpathPlugin}:${stdenv.cc.cc.lib}/lib64" $plugins/$i + done + + mkdir -p $out/libexec/google/talkplugin + cp -prd opt/google/talkplugin/{data,GoogleTalkPlugin,locale,remoting24x24.png,windowpicker.glade} $out/libexec/google/talkplugin/ + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${rpathProgram}:${stdenv.cc.cc.lib}/lib64" \ + $out/libexec/google/talkplugin/GoogleTalkPlugin + + # Generate an LD_PRELOAD wrapper to redirect execvp() calls to + # /opt/../GoogleTalkPlugin. + preload=$out/libexec/google/talkplugin/libpreload.so + mkdir -p $(dirname $preload) + gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC + echo $preload > $plugins/extra-ld-preload + + # Prevent a dependency on gcc. + strip -S $preload + patchELF $preload + ''; + + dontStrip = true; + dontPatchELF = true; + + passthru.mozillaPlugin = "/lib/mozilla/plugins"; + + meta = { + homepage = http://www.google.com/chat/video/; + license = stdenv.lib.licenses.unfree; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c new file mode 100644 index 000000000000..1e2c31d9527a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c @@ -0,0 +1,60 @@ +/* Google Talk Plugin executes a helper program in /opt. This + LD_PRELOAD library intercepts execvp() calls to redirect them to + the corresponding location in $out. */ + +#define _GNU_SOURCE +#include <stdio.h> +#include <stdarg.h> +#include <stdlib.h> +#include <string.h> +#include <dlfcn.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <limits.h> + +char origDir [] = "/opt/google/talkplugin"; +char realDir [] = OUT "/libexec/google/talkplugin"; + +const char * rewrite(const char * path, char * buf) +{ + if (strncmp(path, origDir, sizeof(origDir) - 1) != 0) return path; + if (snprintf(buf, PATH_MAX, "%s%s", realDir, path + sizeof(origDir) - 1) >= PATH_MAX) + abort(); + return buf; +} + +int execvp(const char * path, char * const argv[]) +{ + int (*_execvp) (const char *, char * const argv[]) = dlsym(RTLD_NEXT, "execvp"); + char buf[PATH_MAX]; + return _execvp(rewrite(path, buf), argv); +} + +int open(const char *path, int flags, ...) +{ + char buf[PATH_MAX]; + int (*_open) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open"); + mode_t mode = 0; + if (flags & O_CREAT) { + va_list ap; + va_start(ap, flags); + mode = va_arg(ap, mode_t); + va_end(ap); + } + return _open(rewrite(path, buf), flags, mode); +} + +int open64(const char *path, int flags, ...) +{ + char buf[PATH_MAX]; + int (*_open64) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open64"); + mode_t mode = 0; + if (flags & O_CREAT) { + va_list ap; + va_start(ap, flags); + mode = va_arg(ap, mode_t); + va_end(ap); + } + return _open64(rewrite(path, buf), flags, mode); +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix new file mode 100644 index 000000000000..fd956f62327e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, firefox, libX11, xorgproto }: + +stdenv.mkDerivation rec { + pname = "mozplugger"; + version = "2.1.6"; + + src = fetchurl { + url = "http://mozplugger.mozdev.org/files/mozplugger-${version}.tar.gz"; + sha256 = "1vszkq4kdbaxsrqr2xn9rq6ipza9fngdri79gvjqk3bvsdmg0k19"; + }; + + buildInputs = [ firefox libX11 xorgproto ]; + + installPhase = '' + mkdir -p "$out/etc" "$out/bin" "$out/lib/mozilla/plugins" "$out/share/man/man7" + cp mozpluggerrc "$out/etc" + cp mozplugger-{helper,controller,linker,update} "$out/bin" + cp mozplugger.so "$out/lib/mozilla/plugins" + cp mozplugger.7 "$out/share/man/man7" + + mkdir -p "$out/share/${pname}-${version}/plugin" + ln -s "$out/lib/mozilla/plugins/mozplugger.so" "$out/share/${pname}-${version}/plugin" + ''; + + meta = { + description = "Mozilla plugin for launching external program for handling in-page objects"; + homepage = http://mozplugger.mozdev.org/; + license = stdenv.lib.licenses.gpl2Plus; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix new file mode 100644 index 000000000000..a5bfda9f26c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix @@ -0,0 +1,37 @@ +{stdenv, fetchurl, pkgconfig, browser, libXpm, gettext}: + +stdenv.mkDerivation rec { + name = "mplayerplug-in-3.55"; + + src = fetchurl { + url = "mirror://sourceforge/mplayerplug-in/${name}.tar.gz"; + sha256 = "0zkvqrzibrbljiccvz3rhbmgifxadlrfjylqpz48jnjx9kggynms"; + }; + + postConfigure = + (if browser ? isFirefox3Like then '' + # Cause a rebuild of these file from the IDL file, needed for GNU IceCat 3 + # and Mozilla Firefox 3. + # See, e.g., http://article.gmane.org/gmane.comp.mozilla.mplayerplug-in/2104 . + rm -f Source/nsIScriptableMplayerPlugin.h + '' + else ""); + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ browser (browser.gtk) libXpm gettext ]; + + installPhase = '' + mkdir -p $out/lib/mozilla/plugins + cp -p mplayerplug-in*.so mplayerplug-in*.xpt $out/lib/mozilla/plugins + ''; + + passthru = { + mozillaPlugin = "/lib/mozilla/plugins"; + }; + + meta = with stdenv.lib; { + description = "A browser plugin that uses mplayer to play digital media from websites"; + homepage = http://mplayerplug-in.sourceforge.net/; + license = with licenses; [ gpl2Plus lgpl2Plus "MPLv1+" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix new file mode 100644 index 000000000000..10ae0eb1da60 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix @@ -0,0 +1,40 @@ +{stdenv, fetchurl, which, pkgconfig, file, glib, gtk2, gtk3, curl, libXt}: +let + srcData = # Generated upstream information + rec { + baseName="nspluginwrapper"; + version="1.4.4"; + name="${baseName}-${version}"; + hash="1fxjz9ifhw0drm12havlsl4jpsq1nv930gqa005kgddv5pa99vgj"; + url="http://nspluginwrapper.org/download/nspluginwrapper-1.4.4.tar.gz"; + }; +in +stdenv.mkDerivation { + inherit (srcData) name version; + + src = fetchurl{ + inherit (srcData) url; + sha256 = srcData.hash; + }; + + preConfigure = '' + sed -e 's@/usr/bin/@@g' -i configure + sed -e '/gthread[.]h/d' -i src/npw-player.c + export NIX_LDFLAGS="$NIX_LDFLAGS -lgthread-2.0" + export configureFlags="$configureFlags --target-cpu=$(uname -m)" + ''; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [which file glib gtk2 gtk3 curl libXt]; + + preferLocalBuild = true; + + meta = { + description = ''A wrapper to run browser plugins out-of-process''; + homepage = http://nspluginwrapper.org/; + license = stdenv.lib.licenses.gpl2; + platforms = [ "x64_64-linux" "i686-linux" ]; + maintainers = [ stdenv.lib.maintainers.raskin ]; + inherit (srcData) version; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream new file mode 100644 index 000000000000..62831613a2e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream @@ -0,0 +1,4 @@ +name nspluginwrapper +target default.nix +url http://nspluginwrapper.org/download/ +version_link /nspluginwrapper-[0-9]+ diff --git a/nixpkgs/pkgs/applications/networking/browsers/next/default.nix b/nixpkgs/pkgs/applications/networking/browsers/next/default.nix new file mode 100644 index 000000000000..4aabb84393fa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/next/default.nix @@ -0,0 +1,93 @@ +{ stdenv +, fetchFromGitHub +, lispPackages +, sbcl +, callPackage +}: + +let + + # This is the wrapped webkitgtk platform port that we hardcode into the Lisp Core. + # See https://github.com/atlas-engineer/next/tree/master/ports#next-platform-ports + next-gtk-webkit = callPackage ./next-gtk-webkit.nix {}; + +in + +stdenv.mkDerivation rec { + pname = "next"; + version = "1.3.4"; + + src = fetchFromGitHub { + owner = "atlas-engineer"; + repo = "next"; + rev = version; + sha256 = "00iqv4xarabl98gdl1rzqkc5v0vfljx1nawsxqsx9x3a9mnxmgxi"; + }; + + nativeBuildInputs = [ + sbcl + ] ++ (with lispPackages; [ + prove-asdf + trivial-features + ]); + + buildInputs = with lispPackages; [ + alexandria + bordeaux-threads + cl-annot + cl-ansi-text + cl-css + cl-hooks + cl-json + cl-markup + cl-ppcre + cl-ppcre-unicode + cl-prevalence + closer-mop + dbus + dexador + ironclad + local-time + log4cl + lparallel + mk-string-metrics + parenscript + quri + sqlite + str + swank + trivia + trivial-clipboard + unix-opts + ]; + + # This reference is unfortunately not detected by Nix + propagatedBuildInputs = [ next-gtk-webkit ]; + + prePatch = '' + substituteInPlace source/ports/gtk-webkit.lisp \ + --replace "next-gtk-webkit" "${next-gtk-webkit}/bin/next-gtk-webkit" + ''; + + buildPhase = '' + common-lisp.sh --eval "(require :asdf)" \ + --eval "(asdf:load-asd (truename \"next.asd\") :name \"next\")" \ + --eval '(asdf:make :next)' \ + --quit + ''; + + installPhase = '' + install -D -m0755 next $out/bin/next + ''; + + # Stripping destroys the generated SBCL image + dontStrip = true; + + meta = with stdenv.lib; { + description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)"; + homepage = https://next.atlas.engineer; + license = licenses.bsd3; + maintainers = [ maintainers.lewo ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix b/nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix new file mode 100644 index 000000000000..a71583ffbec5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix @@ -0,0 +1,50 @@ +# https://github.com/atlas-engineer/next/tree/master/ports/gtk-webkit + +{ stdenv +, pkg-config +, next +, webkitgtk +, gtk3 +, glib +, gsettings-desktop-schemas +, glib-networking +, gst_all_1 +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "next-gtk-webkit"; + inherit (next) src version; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + glib + glib-networking + gsettings-desktop-schemas + gtk3 + webkitgtk + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + ]; + + makeFlags = [ + "gtk-webkit" + "PREFIX=${placeholder "out"}" + ]; + + installTargets = [ + "install-gtk-webkit" + ]; + + meta = with stdenv.lib; { + description = "Infinitely extensible web-browser (user interface only)"; + homepage = https://next.atlas.engineer; + license = licenses.bsd3; + maintainers = [ maintainers.lewo ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix new file mode 100644 index 000000000000..c1ede5044492 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix @@ -0,0 +1,122 @@ +{ alsaLib +, atk +, cairo +, cups +, curl +, dbus +, dpkg +, expat +, fetchurl +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gnome2 +, gtk3 +, lib +, libX11 +, libxcb +, libXScrnSaver +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXrandr +, libXrender +, libXtst +, libnotify +, libpulseaudio +, libuuid +, nspr +, nss +, pango +, stdenv +, systemd +, at-spi2-atk +, at-spi2-core +, autoPatchelfHook +, wrapGAppsHook +}: + +let + + mirror = "https://get.geo.opera.com/pub/opera/desktop"; + +in stdenv.mkDerivation rec { + + pname = "opera"; + version = "65.0.3467.48"; + + src = fetchurl { + url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb"; + sha256 = "0vcpq2p8si6rlyvd8nzs0a7pjxks2qn8i8czna968wyfxlczckyr"; + }; + + unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc ."; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook + ]; + + buildInputs = [ + alsaLib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + fontconfig.lib + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libnotify + libuuid + libxcb + nspr + nss + pango + stdenv.cc.cc.lib + ]; + + runtimeDependencies = [ + # Works fine without this except there is no sound. + libpulseaudio.out + + # This is a little tricky. Without it the app starts then crashes. Then it + # brings up the crash report, which also crashes. `strace -f` hints at a + # missing libudev.so.0. + systemd.lib + ]; + + installPhase = '' + mkdir -p $out + cp -r . $out/ + mv $out/lib/*/opera/*.so $out/lib/ + ''; + + meta = with lib; { + homepage = "https://www.opera.com"; + description = "Web browser"; + platforms = [ "x86_64-linux" ]; + license = licenses.unfree; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/otter/default.nix b/nixpkgs/pkgs/applications/networking/browsers/otter/default.nix new file mode 100644 index 000000000000..d41f84404201 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/otter/default.nix @@ -0,0 +1,27 @@ +{ stdenv, cmake, fetchFromGitHub +, qtbase, qtmultimedia, qtwebengine, qtxmlpatterns +, version ? "1.0.01" +, sourceSha ? "1jw8bj3lcqngr0mqwvz1gf47qjxbwiyda7x4sm96a6ckga7pcwyb" +}: +stdenv.mkDerivation { + pname = "otter-browser"; + inherit version; + + src = fetchFromGitHub { + owner = "OtterBrowser"; + repo = "otter-browser"; + rev = "v${version}"; + sha256 = sourceSha; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtbase qtmultimedia qtwebengine qtxmlpatterns ]; + + meta = with stdenv.lib; { + homepage = https://otter-browser.org; + license = licenses.gpl3Plus; + description = "Browser aiming to recreate the best aspects of the classic Opera (12.x) UI using Qt5"; + maintainers = with maintainers; [ lheckemann ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix new file mode 100644 index 000000000000..21dd04610cda --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix @@ -0,0 +1,133 @@ +{ stdenv, fetchFromGitHub, makeDesktopItem +, pkgconfig, autoconf213, alsaLib, bzip2, cairo +, dbus, dbus-glib, ffmpeg, file, fontconfig, freetype +, gnome2, gnum4, gtk2, hunspell, libevent, libjpeg +, libnotify, libstartup_notification, makeWrapper +, libGLU, libGL, perl, python, libpulseaudio +, unzip, xorg, wget, which, yasm, zip, zlib +}: + +let + + libPath = stdenv.lib.makeLibraryPath [ ffmpeg ]; + +in stdenv.mkDerivation rec { + pname = "palemoon"; + version = "28.8.0"; + + src = fetchFromGitHub { + owner = "MoonchildProductions"; + repo = "UXP"; + rev = "PM${version}_Release"; + sha256 = "0swmwall8pyg905jnw6x1b6vcv92zb7ph3zqcymh4ay2liikh8c0"; + }; + + desktopItem = makeDesktopItem { + name = "palemoon"; + exec = "palemoon %U"; + icon = "palemoon"; + desktopName = "Pale Moon"; + genericName = "Web Browser"; + categories = "Application;Network;WebBrowser;"; + mimeType = stdenv.lib.concatStringsSep ";" [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + "x-scheme-handler/ftp" + ]; + }; + + buildInputs = [ + alsaLib bzip2 cairo dbus dbus-glib ffmpeg file fontconfig freetype + gnome2.GConf gnum4 gtk2 hunspell libevent libjpeg libnotify + libstartup_notification makeWrapper libGLU libGL perl + pkgconfig python libpulseaudio unzip wget which yasm zip zlib + ] ++ (with xorg; [ + libX11 libXext libXft libXi libXrender libXScrnSaver + libXt pixman xorgproto + ]); + + enableParallelBuilding = true; + + configurePhase = '' + export MOZBUILD_STATE_PATH=$(pwd)/mozbuild + export MOZCONFIG=$(pwd)/mozconfig + export MOZ_NOSPAM=1 + export builddir=$(pwd)/pmbuild + + echo > $MOZCONFIG " + mk_add_options AUTOCLOBBER=1 + mk_add_options MOZ_OBJDIR=$builddir + ac_add_options --enable-application=palemoon + + ac_add_options --enable-optimize='-O2' + + # Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding. + ac_add_options --enable-official-branding + export MOZILLA_OFFICIAL=1 + + ac_add_options --enable-default-toolkit=cairo-gtk2 + ac_add_options --enable-jemalloc + ac_add_options --enable-strip + ac_add_options --with-pthreads + + ac_add_options --disable-tests + ac_add_options --disable-eme + ac_add_options --disable-parental-controls + ac_add_options --disable-accessibility + ac_add_options --disable-webrtc + ac_add_options --disable-gamepad + ac_add_options --disable-necko-wifi + ac_add_options --disable-updater + + ac_add_options --x-libraries=${xorg.libX11.out}/lib + + ac_add_options --prefix=$out + mk_add_options MOZ_MAKE_FLAGS='-j$NIX_BUILD_CORES' + mk_add_options AUTOCONF=${autoconf213}/bin/autoconf + " + ''; + + buildPhase = '' + $src/mach build + ''; + + installPhase = '' + $src/mach install + + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications + + for n in 16 22 24 32 48 256; do + size=$n"x"$n + mkdir -p $out/share/icons/hicolor/$size/apps + cp $src/application/palemoon/branding/official/default$n.png \ + $out/share/icons/hicolor/$size/apps/palemoon.png + done + + wrapProgram $out/lib/palemoon-${version}/palemoon \ + --prefix LD_LIBRARY_PATH : "${libPath}" + ''; + + meta = with stdenv.lib; { + description = "An Open Source, Goanna-based web browser focusing on efficiency and customization"; + longDescription = '' + Pale Moon is an Open Source, Goanna-based web browser focusing on + efficiency and customization. + + Pale Moon offers you a browsing experience in a browser completely built + from its own, independently developed source that has been forked off from + Firefox/Mozilla code a number of years ago, with carefully selected + features and optimizations to improve the browser's stability and user + experience, while offering full customization and a growing collection of + extensions and themes to make the browser truly your own. + ''; + homepage = "https://www.palemoon.org/"; + license = licenses.mpl20; + maintainers = with maintainers; [ AndersonTorres OPNA2608 ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix new file mode 100644 index 000000000000..9a4d61a50aee --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix @@ -0,0 +1,31 @@ +{ mkDerivation, lib, fetchFromGitHub, qmake, qtbase }: + +mkDerivation rec { + pname = "qtchan"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "siavash119"; + repo = "qtchan"; + rev = "v${version}"; + sha256 = "1x11m1kwqindzc0dkpfifcglsb362impaxs85kgzx50p898sz9ll"; + }; + + enableParallelBuilding = true; + nativeBuildInputs = [ qmake ]; + buildInputs = [ qtbase ]; + qmakeFlags = [ "CONFIG-=app_bundle" ]; + + installPhase = '' + mkdir -p $out/bin + cp qtchan $out/bin + ''; + + meta = with lib; { + description = "4chan browser in qt5"; + homepage = "https://github.com/siavash119/qtchan"; + license = licenses.mit; + maintainers = with maintainers; [ chiiruno ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix new file mode 100644 index 000000000000..b616e82a2098 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -0,0 +1,113 @@ +{ stdenv, lib, fetchurl, fetchzip, python3Packages +, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking +, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2 +, libxslt, gst_all_1 ? null +, withPdfReader ? true +, withMediaPlayback ? true +}: + +assert withMediaPlayback -> gst_all_1 != null; + +let + pdfjs = let + version = "2.3.200"; + in + fetchzip rec { + name = "pdfjs-${version}"; + url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip"; + sha256 = "1fpxsw0hzahccyng08acvc7g0gk29j2x701p6w6fg1718mvcrm1q"; + stripRoot = false; + }; + +in mkDerivationWith python3Packages.buildPythonApplication rec { + pname = "qutebrowser"; + version = "1.8.3"; + + # the release tarballs are different from the git checkout! + src = fetchurl { + url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz"; + sha256 = "055zmzk3q0m3hx1742nfy2mdawfllrkvijnbzp1hiv01dj1bxaf8"; + }; + + # Needs tox + doCheck = false; + + buildInputs = [ + qtbase + glib-networking + ] ++ lib.optionals withMediaPlayback (with gst_all_1; [ + gst-plugins-base gst-plugins-good + gst-plugins-bad gst-plugins-ugly gst-libav + ]); + + nativeBuildInputs = [ + wrapQtAppsHook wrapGAppsHook asciidoc + docbook_xml_dtd_45 docbook_xsl libxml2 libxslt + ]; + + propagatedBuildInputs = with python3Packages; [ + pyyaml pyqt5 pyqtwebengine jinja2 pygments + pypeg2 cssutils pyopengl attrs setuptools + # scripts and userscripts libs + tldextract beautifulsoup4 + pyreadability pykeepass stem + ]; + + patches = [ + ./fix-restart.patch + ]; + + dontWrapGApps = true; + dontWrapQtApps = true; + + postPatch = '' + substituteInPlace qutebrowser/app.py --subst-var-by qutebrowser "$out/bin/qutebrowser" + + sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py + '' + lib.optionalString withPdfReader '' + sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py + ''; + + postBuild = '' + a2x -f manpage doc/qutebrowser.1.asciidoc + ''; + + postInstall = '' + install -Dm644 doc/qutebrowser.1 "$out/share/man/man1/qutebrowser.1" + install -Dm644 misc/org.qutebrowser.qutebrowser.desktop \ + "$out/share/applications/org.qutebrowser.qutebrowser.desktop" + + # Install icons + for i in 16 24 32 48 64 128 256 512; do + install -Dm644 "icons/qutebrowser-''${i}x''${i}.png" \ + "$out/share/icons/hicolor/''${i}x''${i}/apps/qutebrowser.png" + done + install -Dm644 icons/qutebrowser.svg \ + "$out/share/icons/hicolor/scalable/apps/qutebrowser.svg" + + # Install scripts + sed -i "s,/usr/bin/,$out/bin/,g" scripts/open_url_in_instance.sh + install -Dm755 -t "$out/share/qutebrowser/scripts/" $(find scripts -type f) + install -Dm755 -t "$out/share/qutebrowser/userscripts/" misc/userscripts/* + + # Patch python scripts + buildPythonPath "$out $propagatedBuildInputs" + scripts=$(grep -rl python "$out"/share/qutebrowser/{user,}scripts/) + for i in $scripts; do + patchPythonScript "$i" + done + ''; + + postFixup = '' + wrapProgram $out/bin/qutebrowser \ + "''${gappsWrapperArgs[@]}" \ + "''${qtWrapperArgs[@]}" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/The-Compiler/qutebrowser; + description = "Keyboard-focused browser with a minimal GUI"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch new file mode 100644 index 000000000000..56f6bcebf280 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch @@ -0,0 +1,29 @@ +diff --git a/qutebrowser/app.py b/qutebrowser/app.py +index 2b6896b76..ee05f379d 100644 +--- a/qutebrowser/app.py ++++ b/qutebrowser/app.py +@@ -555,22 +555,8 @@ class Quitter: + args: The commandline as a list of strings. + cwd: The current working directory as a string. + """ +- if os.path.basename(sys.argv[0]) == 'qutebrowser': +- # Launched via launcher script +- args = [sys.argv[0]] +- cwd = None +- elif hasattr(sys, 'frozen'): +- args = [sys.executable] +- cwd = os.path.abspath(os.path.dirname(sys.executable)) +- else: +- args = [sys.executable, '-m', 'qutebrowser'] +- cwd = os.path.join( +- os.path.abspath(os.path.dirname(qutebrowser.__file__)), '..') +- if not os.path.isdir(cwd): +- # Probably running from a python egg. Let's fallback to +- # cwd=None and see if that works out. +- # See https://github.com/qutebrowser/qutebrowser/issues/323 +- cwd = None ++ args = ['@qutebrowser@'] ++ cwd = None + + # Add all open pages so they get reopened. + page_args = [] diff --git a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix new file mode 100644 index 000000000000..0437ab933bd7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix @@ -0,0 +1,47 @@ +{ lib, stdenv, fetchurl +, pkgconfig, wrapGAppsHook +, glib, glib-networking, gsettings-desktop-schemas, gtk, libsoup, webkitgtk +, xorg, dmenu, findutils, gnused, coreutils +, patches ? null +}: + +stdenv.mkDerivation rec { + pname = "surf"; + version = "2.0"; + + src = fetchurl { + url = "https://dl.suckless.org/surf/surf-${version}.tar.gz"; + sha256 = "07cmajyafljigy10d21kkyvv5jf3hxkx06pz3rwwk3y3c9x4rvps"; + }; + + nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; + buildInputs = [ glib glib-networking gsettings-desktop-schemas gtk libsoup webkitgtk ]; + + inherit patches; + + installFlags = [ "PREFIX=$(out)" ]; + + # Add run-time dependencies to PATH. Append them to PATH so the user can + # override the dependencies with their own PATH. + preFixup = let + depsPath = lib.makeBinPath [ xorg.xprop dmenu findutils gnused coreutils ]; + in '' + gappsWrapperArgs+=( + --suffix PATH : ${depsPath} + ) + ''; + + meta = with stdenv.lib; { + description = "A simple web browser based on WebKit/GTK"; + longDescription = '' + Surf is a simple web browser based on WebKit/GTK. It is able to display + websites and follow links. It supports the XEmbed protocol which makes it + possible to embed it in another application. Furthermore, one can point + surf to another URI by setting its XProperties. + ''; + homepage = https://surf.suckless.org; + license = licenses.mit; + platforms = webkitgtk.meta.platforms; + maintainers = with maintainers; [ joachifm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix new file mode 100644 index 000000000000..1027bf7c71df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix @@ -0,0 +1,407 @@ +{ stdenv +, fetchurl +, makeDesktopItem + +# Common run-time dependencies +, zlib + +# libxul run-time dependencies +, atk +, cairo +, dbus +, dbus-glib +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gtk3 +, libxcb +, libX11 +, libXext +, libXrender +, libXt +, pango + +, audioSupport ? mediaSupport +, pulseaudioSupport ? false +, libpulseaudio +, apulse + +# Media support (implies audio support) +, mediaSupport ? false +, ffmpeg + +, gmp + +# Pluggable transport dependencies +, python27 + +# Wrapper runtime +, coreutils +, glibcLocales +, gnome3 +, runtimeShell +, shared-mime-info +, gsettings-desktop-schemas + +# Hardening +, graphene-hardened-malloc +, useHardenedMalloc ? graphene-hardened-malloc != null && builtins.elem stdenv.system graphene-hardened-malloc.meta.platforms + +# Whether to disable multiprocess support to work around crashing tabs +# TODO: fix the underlying problem instead of this terrible work-around +, disableContentSandbox ? true + +# Extra preferences +, extraPrefs ? "" + +# For meta +, tor-browser-bundle +}: + +with stdenv.lib; + +let + libPath = makeLibraryPath libPkgs; + + libPkgs = [ + atk + cairo + dbus + dbus-glib + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + libxcb + libX11 + libXext + libXrender + libXt + pango + stdenv.cc.cc + stdenv.cc.libc + zlib + ] + ++ optionals pulseaudioSupport [ libpulseaudio ] + ++ optionals mediaSupport [ + ffmpeg + ]; + + # Library search path for the fte transport + fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; + + # Upstream source + version = "9.0.3"; + + lang = "en-US"; + + srcs = { + x86_64-linux = fetchurl { + url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; + sha256 = "0saipnmhjfqwrx0q8mn3zc9n0j5a754cfipdaizbcqwm9dwd70w9"; + }; + + i686-linux = fetchurl { + url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; + sha256 = "19r6zm81p9fv9ldsck5wilcihvb5bifmd1cms6wdkldz8crnn9l6"; + }; + }; +in + +stdenv.mkDerivation rec { + pname = "tor-browser-bundle-bin"; + inherit version; + + src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}"); + + preferLocalBuild = true; + allowSubstitutes = false; + + desktopItem = makeDesktopItem { + name = "torbrowser"; + exec = "tor-browser"; + icon = "torbrowser"; + desktopName = "Tor Browser"; + genericName = "Web Browser"; + comment = meta.description; + categories = "Network;WebBrowser;Security;"; + }; + + buildCommand = '' + # For convenience ... + TBB_IN_STORE=$out/share/tor-browser + interp=$(< $NIX_CC/nix-support/dynamic-linker) + + # Unpack & enter + mkdir -p "$TBB_IN_STORE" + tar xf "${src}" -C "$TBB_IN_STORE" --strip-components=2 + pushd "$TBB_IN_STORE" + + # Set ELF interpreter + for exe in firefox.real TorBrowser/Tor/tor ; do + echo "Setting ELF interpreter on $exe ..." >&2 + patchelf --set-interpreter "$interp" "$exe" + done + + # firefox is a wrapper that checks for a more recent libstdc++ & appends it to the ld path + mv firefox.real firefox + + # The final libPath. Note, we could split this into firefoxLibPath + # and torLibPath for accuracy, but this is more convenient ... + libPath=${libPath}:$TBB_IN_STORE:$TBB_IN_STORE/TorBrowser/Tor + + # apulse uses a non-standard library path. For now special-case it. + ${optionalString (audioSupport && !pulseaudioSupport) '' + libPath=${apulse}/lib/apulse:$libPath + ''} + + # Fixup paths to pluggable transports. + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g" + + # Fixup obfs transport. Work around patchelf failing to set + # interpreter for pre-compiled Go binaries by invoking the interpreter + # directly. + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s|\(ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|" + + # Similarly fixup snowflake + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s|\(ClientTransportPlugin snowflake\) exec|\1 exec $interp|" + + + # Prepare for autoconfig. + # + # See https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment + cat >defaults/pref/autoconfig.js <<EOF + // + pref("general.config.filename", "mozilla.cfg"); + pref("general.config.obscure_value", 0); + EOF + + # Hard-coded Firefox preferences. + cat >mozilla.cfg <<EOF + // First line must be a comment + + // Always update via Nixpkgs + lockPref("app.update.auto", false); + lockPref("app.update.enabled", false); + lockPref("extensions.update.autoUpdateDefault", false); + lockPref("extensions.update.enabled", false); + lockPref("extensions.torbutton.versioncheck_enabled", false); + + // User should never change these. Locking prevents these + // values from being written to prefs.js, avoiding Store + // path capture. + lockPref("extensions.torlauncher.torrc-defaults_path", "$TBB_IN_STORE/TorBrowser/Data/Tor/torrc-defaults"); + lockPref("extensions.torlauncher.tor_path", "$TBB_IN_STORE/TorBrowser/Tor/tor"); + + // Reset pref that captures store paths. + clearPref("extensions.xpiState"); + + // Stop obnoxious first-run redirection. + lockPref("noscript.firstRunRedirection", false); + + // Insist on using IPC for communicating with Tor + // + // Defaults to creating \$TBB_HOME/TorBrowser/Data/Tor/{socks,control}.socket + lockPref("extensions.torlauncher.control_port_use_ipc", true); + lockPref("extensions.torlauncher.socks_port_use_ipc", true); + + // Optionally disable multiprocess support. We always set this to ensure that + // toggling the pref takes effect. + lockPref("browser.tabs.remote.autostart.2", ${if disableContentSandbox then "false" else "true"}); + + // Allow sandbox access to sound devices if using ALSA directly + ${if (audioSupport && !pulseaudioSupport) then '' + pref("security.sandbox.content.write_path_whitelist", "/dev/snd/"); + '' else '' + clearPref("security.sandbox.content.write_path_whitelist"); + ''} + + ${optionalString (extraPrefs != "") '' + ${extraPrefs} + ''} + EOF + + # Hard-code path to TBB fonts; see also FONTCONFIG_FILE in + # the wrapper below. + FONTCONFIG_FILE=$TBB_IN_STORE/TorBrowser/Data/fontconfig/fonts.conf + sed -i "$FONTCONFIG_FILE" \ + -e "s,<dir>fonts</dir>,<dir>$TBB_IN_STORE/fonts</dir>," + + # Preload extensions by moving into the runtime instead of storing under the + # user's profile directory. + mkdir -p "$TBB_IN_STORE/browser/extensions" + mv "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions/"* \ + "$TBB_IN_STORE/browser/extensions" + + # Hard-code paths to geoip data files. TBB resolves the geoip files + # relative to torrc-defaults_path but if we do not hard-code them + # here, these paths end up being written to the torrc in the user's + # state dir. + cat >>TorBrowser/Data/Tor/torrc-defaults <<EOF + GeoIPFile $TBB_IN_STORE/TorBrowser/Data/Tor/geoip + GeoIPv6File $TBB_IN_STORE/TorBrowser/Data/Tor/geoip6 + EOF + + WRAPPER_LD_PRELOAD=${optionalString useHardenedMalloc + "${graphene-hardened-malloc}/lib/libhardened_malloc.so"} + + WRAPPER_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [ + gnome3.adwaita-icon-theme + shared-mime-info + ]} + WRAPPER_XDG_DATA_DIRS+=":"${concatMapStringsSep ":" (x: "${x}/share/gsettings-schemas/${x.name}") [ + glib + gsettings-desktop-schemas + gtk3 + ]}; + + # Generate wrapper + mkdir -p $out/bin + cat > "$out/bin/tor-browser" << EOF + #! ${runtimeShell} + set -o errexit -o nounset + + PATH=${makeBinPath [ coreutils ]} + export LC_ALL=C + export LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive + + # Enter local state directory. + REAL_HOME=\$HOME + TBB_HOME=\''${TBB_HOME:-''${XDG_DATA_HOME:-\$REAL_HOME/.local/share}/tor-browser} + HOME=\$TBB_HOME + + mkdir -p "\$HOME" + cd "\$HOME" + + # Initialize empty TBB local state directory hierarchy. We + # intentionally mirror the layout that TBB would see if executed from + # the unpacked bundle dir. + mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data" + + # Initialize the Tor data directory. + mkdir -p "\$HOME/TorBrowser/Data/Tor" + + # TBB will fail if ownership is too permissive + chmod 0700 "\$HOME/TorBrowser/Data/Tor" + + # Initialize the browser profile state. Note that the only data + # copied from the Store payload is the initial bookmark file, which is + # never updated once created. All other files under user's profile + # dir are generated by TBB. + mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default" + cp -u --no-preserve=mode,owner "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/bookmarks.html" \ + "\$HOME/TorBrowser/Data/Browser/profile.default/bookmarks.html" + + # Clear out some files that tend to capture store references but are + # easily generated by firefox at startup. + rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{addonStartup.json.lz4,compatibility.ini,extensions.ini,extensions.json} + rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/startupCache/* + + # XDG + : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}" + : "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}" + + ${optionalString pulseaudioSupport '' + # Figure out some envvars for pulseaudio + : "\''${PULSE_SERVER:=\$XDG_RUNTIME_DIR/pulse/native}" + : "\''${PULSE_COOKIE:=\$XDG_CONFIG_HOME/pulse/cookie}" + ''} + + # Font cache files capture store paths; clear them out on the off + # chance that TBB would continue using old font files. + rm -rf "\$HOME/.cache/fontconfig" + + # Lift-off + # + # XAUTHORITY and DISPLAY are required for TBB to work at all. + # + # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launch; to + # prevent that, set it to an empty/invalid value prior to running + # tor-browser. + # + # PULSE_SERVER is necessary for audio playback. + # + # Setting FONTCONFIG_FILE is required to make fontconfig read the TBB + # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024 + # indicates the system fonts.conf being used instead. + # + # XDG_DATA_DIRS is set to prevent searching system dirs (looking for .desktop & icons) + exec env -i \ + LD_PRELOAD=$WRAPPER_LD_PRELOAD \ + \ + TZ=":" \ + TZDIR="\''${TZDIR:-}" \ + LOCALE_ARCHIVE="\$LOCALE_ARCHIVE" \ + \ + TMPDIR="\''${TMPDIR:-/tmp}" \ + HOME="\$HOME" \ + XAUTHORITY="\''${XAUTHORITY:-\$HOME/.Xauthority}" \ + DISPLAY="\$DISPLAY" \ + DBUS_SESSION_BUS_ADDRESS="\''${DBUS_SESSION_BUS_ADDRESS:-unix:path=\$XDG_RUNTIME_DIR/bus}" \\ + \ + XDG_DATA_HOME="\$HOME/.local/share" \ + XDG_DATA_DIRS="$WRAPPER_XDG_DATA_DIRS" \ + \ + PULSE_SERVER="\''${PULSE_SERVER:-}" \ + PULSE_COOKIE="\''${PULSE_COOKIE:-}" \ + \ + APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \ + \ + TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \ + TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \ + TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \ + \ + FONTCONFIG_FILE="$FONTCONFIG_FILE" \ + \ + LD_LIBRARY_PATH="$libPath" \ + \ + "$TBB_IN_STORE/firefox" \ + --class "Tor Browser" \ + -no-remote \ + -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \ + "\''${@}" + EOF + chmod +x $out/bin/tor-browser + + # Easier access to docs + mkdir -p $out/share/doc + ln -s $TBB_IN_STORE/TorBrowser/Docs $out/share/doc/tor-browser + + # Install .desktop item + mkdir -p $out/share/applications + cp $desktopItem/share/applications"/"* $out/share/applications + sed -i $out/share/applications/torbrowser.desktop \ + -e "s,Exec=.*,Exec=$out/bin/tor-browser," \ + -e "s,Icon=.*,Icon=tor-browser," + for i in 16 32 48 64 128; do + mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps/ + ln -s $out/share/tor-browser/browser/chrome/icons/default/default$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/tor-browser.png + done + + # Check installed apps + echo "Checking bundled Tor ..." + LD_LIBRARY_PATH=$libPath $TBB_IN_STORE/TorBrowser/Tor/tor --version >/dev/null + + echo "Checking tor-browser wrapper ..." + DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \ + $out/bin/tor-browser --version >/dev/null + ''; + + meta = with stdenv.lib; { + description = "Tor Browser Bundle built by torproject.org"; + longDescription = tor-browser-bundle.meta.longDescription; + homepage = "https://www.torproject.org/"; + platforms = attrNames srcs; + maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm hax404 cap ]; + hydraPlatforms = []; + # MPL2.0+, GPL+, &c. While it's not entirely clear whether + # the compound is "libre" in a strict sense (some components place certain + # restrictions on redistribution), it's free enough for our purposes. + license = licenses.free; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix new file mode 100644 index 000000000000..7ff099853e29 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix @@ -0,0 +1,345 @@ +{ stdenv +, fetchgit +, fetchurl +, symlinkJoin + +, tor +, tor-browser-unwrapped + +# Wrapper runtime +, coreutils +, hicolor-icon-theme +, shared-mime-info +, noto-fonts +, noto-fonts-emoji + +# Audio support +, audioSupport ? mediaSupport +, apulse + +# Media support (implies audio support) +, mediaSupport ? false +, ffmpeg + +# Extensions, common +, zip + +# HTTPS Everywhere +, git +, libxml2 # xmllint +, python27 +, python27Packages +, rsync + +# Pluggable transports +, obfs4 + +# Customization +, extraPrefs ? "" +, extraExtensions ? [ ] +}: + +with stdenv.lib; + +let + tor-browser-build_src = fetchgit { + url = "https://git.torproject.org/builders/tor-browser-build.git"; + rev = "refs/tags/tbb-7.5a5-build5"; + sha256 = "0j37mqldj33fnzghxifvy6v8vdwkcz0i4z81prww64md5s8qcsa9"; + }; + + firefoxExtensions = import ./extensions.nix { + inherit stdenv fetchurl fetchgit zip + git libxml2 python27 python27Packages rsync; + }; + + bundledExtensions = with firefoxExtensions; [ + https-everywhere + noscript + torbutton + tor-launcher + ] ++ extraExtensions; + + fontsEnv = symlinkJoin { + name = "tor-browser-fonts"; + paths = [ noto-fonts noto-fonts-emoji ]; + }; + + fontsDir = "${fontsEnv}/share/fonts"; + + mediaLibPath = makeLibraryPath [ + ffmpeg + ]; +in +stdenv.mkDerivation { + pname = "tor-browser-bundle"; + version = tor-browser-unwrapped.version; + + buildInputs = [ tor-browser-unwrapped tor ]; + + dontUnpack = true; + + buildPhase = ":"; + + # The following creates a customized firefox distribution. For + # simplicity, we copy the entire base firefox runtime, to work around + # firefox's annoying insistence on resolving the installation directory + # relative to the real firefox executable. A little tacky and + # inefficient but it works. + installPhase = '' + TBBUILD=${tor-browser-build_src}/projects/tor-browser + TBDATA_PATH=TorBrowser-Data + + self=$out/lib/tor-browser + mkdir -p $self && cd $self + + TBDATA_IN_STORE=$self/$TBDATA_PATH + + cp -dR ${tor-browser-unwrapped}/lib"/"*"/"* . + chmod -R +w . + + # Prepare for autoconfig + cat >defaults/pref/autoconfig.js <<EOF + pref("general.config.filename", "mozilla.cfg"); + pref("general.config.obscure_value", 0); + EOF + + # Hardcoded configuration + cat >mozilla.cfg <<EOF + // First line must be a comment + + // Always update via Nixpkgs + lockPref("app.update.auto", false); + lockPref("app.update.enabled", false); + lockPref("extensions.update.autoUpdateDefault", false); + lockPref("extensions.update.enabled", false); + lockPref("extensions.torbutton.updateNeeded", false); + lockPref("extensions.torbutton.versioncheck_enabled", false); + + // Where to find the Nixpkgs tor executable & config + lockPref("extensions.torlauncher.tor_path", "${tor}/bin/tor"); + lockPref("extensions.torlauncher.torrc-defaults_path", "$TBDATA_IN_STORE/torrc-defaults"); + + // Captures store paths + clearPref("extensions.xpiState"); + clearPref("extensions.bootstrappedAddons"); + + // Insist on using IPC for communicating with Tor + lockPref("extensions.torlauncher.control_port_use_ipc", true); + lockPref("extensions.torlauncher.socks_port_use_ipc", true); + + // Allow sandbox access to sound devices if using ALSA directly + ${if audioSupport then '' + pref("security.sandbox.content.write_path_whitelist", "/dev/snd/"); + '' else '' + clearPref("security.sandbox.content.write_path_whitelist"); + ''} + + // User customization + ${extraPrefs} + EOF + + # Preload extensions + find ${toString bundledExtensions} -name '*.xpi' -exec ln -s -t browser/extensions '{}' '+' + + # Copy bundle data + bundlePlatform=linux + bundleData=$TBBUILD/Bundle-Data + + mkdir -p $TBDATA_PATH + cat \ + $bundleData/$bundlePlatform/Data/Tor/torrc-defaults \ + >> $TBDATA_PATH/torrc-defaults + cat \ + $bundleData/$bundlePlatform/Data/Browser/profile.default/preferences/extension-overrides.js \ + $bundleData/PTConfigs/bridge_prefs.js \ + >> defaults/pref/extension-overrides.js + + # Configure geoip + # + # tor-launcher insists on resolving geoip data relative to torrc-defaults + # (and passes them directly on the tor command-line). + # + # Write the paths into torrc-defaults anyway, otherwise they'll be + # captured in the runtime torrc. + ln -s -t $TBDATA_PATH ${tor.geoip}/share/tor/geoip{,6} + cat >>$TBDATA_PATH/torrc-defaults <<EOF + GeoIPFile $TBDATA_IN_STORE/geoip + GeoIPv6File $TBDATA_IN_STORE/geoip6 + EOF + + # Configure pluggable transports + substituteInPlace $TBDATA_PATH/torrc-defaults \ + --replace "./TorBrowser/Tor/PluggableTransports/obfs4proxy" \ + "${obfs4}/bin/obfs4proxy" + + # Hard-code path to TBB fonts; xref: FONTCONFIG_FILE in the wrapper below + sed $bundleData/$bundlePlatform/Data/fontconfig/fonts.conf \ + -e "s,<dir>fonts</dir>,<dir>${fontsDir}</dir>," \ + > $TBDATA_PATH/fonts.conf + + # Generate a suitable wrapper + wrapper_PATH=${makeBinPath [ coreutils ]} + wrapper_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [ + hicolor-icon-theme + shared-mime-info + ]} + + ${optionalString audioSupport '' + # apulse uses a non-standard library path ... + wrapper_LD_LIBRARY_PATH=${apulse}/lib/apulse''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH} + ''} + + ${optionalString mediaSupport '' + wrapper_LD_LIBRARY_PATH=${mediaLibPath}''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH} + ''} + + mkdir -p $out/bin + cat >$out/bin/tor-browser <<EOF + #! ${stdenv.shell} -eu + + umask 077 + + PATH=$wrapper_PATH + + readonly THE_HOME=\$HOME + TBB_HOME=\''${TBB_HOME:-\''${XDG_DATA_HOME:-\$HOME/.local/share}/tor-browser} + if [[ \''${TBB_HOME:0:1} != / ]] ; then + TBB_HOME=\$PWD/\$TBB_HOME + fi + readonly TBB_HOME + + # Basic sanity check: never want to vomit directly onto user's homedir + if [[ "\$TBB_HOME" = "\$THE_HOME" ]] ; then + echo 'TBB_HOME=\$HOME; refusing to run' >&2 + exit 1 + fi + + mkdir -p "\$TBB_HOME" + + HOME=\$TBB_HOME + cd "\$HOME" + + # Re-init XDG basedir envvars + XDG_CACHE_HOME=\$HOME/.cache + XDG_CONFIG_HOME=\$HOME/.config + XDG_DATA_HOME=\$HOME/.local/share + + # Initialize empty TBB runtime state directory hierarchy. Mirror the + # layout used by the official TBB, to avoid the hassle of working + # against the assumptions made by tor-launcher & co. + mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data" + + # Initialize the Tor data directory. + mkdir -p "\$HOME/TorBrowser/Data/Tor" + + # TBB fails if ownership is too permissive + chmod 0700 "\$HOME/TorBrowser/Data/Tor" + + # Initialize the browser profile state. Expect TBB to generate all data. + mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default" + + # Files that capture store paths; re-generated by firefox at startup + rm -rf "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json,startupCache} + + # Clear out fontconfig caches + rm -f "\$HOME/.cache/fontconfig/"*.cache-* + + # Lift-off! + # + # TZ is set to avoid stat()ing /etc/localtime over and over ... + # + # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launching a new + # dbus instance; to prevent using the session bus, set the envvar to + # an empty/invalid value prior to running tor-browser. + # + # FONTCONFIG_FILE is required to make fontconfig read the TBB + # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024 + # indicates the system fonts.conf being used instead. + # + # HOME, TMPDIR, XDG_*_HOME are set as a form of soft confinement; + # ideally, tor-browser should not write to any path outside TBB_HOME + # and should run even under strict confinement to TBB_HOME. + # + # XDG_DATA_DIRS is set to prevent searching system directories for + # mime and icon data. + # + # PULSE_{SERVER,COOKIE} is necessary for audio playback w/pulseaudio + # + # APULSE_PLAYBACK_DEVICE is for audio playback w/o pulseaudio (no capture yet) + # + # TOR_* is for using an external tor instance + # + # Parameters lacking a default value below are *required* (enforced by + # -o nounset). + exec env -i \ + LD_LIBRARY_PATH=$wrapper_LD_LIBRARY_PATH \ + \ + TZ=":" \ + \ + DISPLAY="\$DISPLAY" \ + XAUTHORITY="\''${XAUTHORITY:-}" \ + DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \ + \ + HOME="\$HOME" \ + TMPDIR="\$XDG_CACHE_HOME/tmp" \ + XDG_CONFIG_HOME="\$XDG_CONFIG_HOME" \ + XDG_DATA_HOME="\$XDG_DATA_HOME" \ + XDG_CACHE_HOME="\$XDG_CACHE_HOME" \ + XDG_RUNTIME_DIR="\$HOME/run" \ + \ + XDG_DATA_DIRS="$wrapper_XDG_DATA_DIRS" \ + \ + FONTCONFIG_FILE="$TBDATA_IN_STORE/fonts.conf" \ + \ + APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \ + \ + TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \ + TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \ + TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \ + \ + $self/firefox \ + -no-remote \ + -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \ + "\$@" + EOF + chmod +x $out/bin/tor-browser + + echo "Syntax checking wrapper ..." + bash -n $out/bin/tor-browser + + echo "Checking wrapper ..." + DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \ + $out/bin/tor-browser -version >/dev/null + ''; + + passthru.execdir = "/bin"; + meta = with stdenv.lib; { + description = "An unofficial version of the Tor Browser Bundle, built from source"; + longDescription = '' + Tor Browser Bundle is a bundle of the Tor daemon, Tor Browser (heavily patched version of + Firefox), several essential extensions for Tor Browser, and some tools that glue those + together with a convenient UI. + + `tor-browser-bundle-bin` package is the official version built by torproject.org patched with + `patchelf` to work under nix and with bundled scripts adapted to the read-only nature of + the `/nix/store`. + + `tor-browser-bundle` package is the version built completely from source. It reuses the `tor` + package for the tor daemon, `firefoxPackages.tor-browser` package for the tor-browser, and + builds all the extensions from source. + + Note that `tor-browser-bundle` package is not only built from source, but also bundles Tor + Browser differently from the official `tor-browser-bundle-bin` implementation. The official + Tor Browser is not a normal UNIX program and is heavily patched for its use in the Tor Browser + Bundle (which `tor-browser-bundle-bin` package then has to work around for the read-only + /nix/store). Meanwhile, `firefoxPackages.tor-browser` reverts all those patches, allowing + `firefoxPackages.tor-browser` to be used independently of the bundle, and then implements what + `tor-browser-bundle` needs for the bundling using a much simpler patch. See the + longDescription and expression of the `firefoxPackages.tor-browser` package for more info. + ''; + inherit (tor-browser-unwrapped.meta) homepage platforms license; + hydraPlatforms = [ ]; + maintainers = with maintainers; [ joachifm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix new file mode 100644 index 000000000000..7356768f3973 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix @@ -0,0 +1,111 @@ +{ stdenv +, fetchgit +, fetchurl + +# common +, zip + +# HTTPS Everywhere +, git +, libxml2 # xmllint +, python27 +, python27Packages +, rsync +}: + +{ + https-everywhere = stdenv.mkDerivation rec { + pname = "https-everywhere"; + version = "2017.10.4"; + + extid = "https-everywhere-eff@eff.org"; + + src = fetchgit { + url = "https://git.torproject.org/https-everywhere.git"; + rev = "refs/tags/${version}"; + sha256 = "1g7971xygnhagnb25xjdf6mli6091ai9igx42d0ww88g8i0cqfzj"; + fetchSubmodules = true; # for translations, TODO: remove + }; + + nativeBuildInputs = [ + git + libxml2 # xmllint + python27 + python27Packages.lxml + rsync + zip + ]; + + buildPhase = '' + $shell ./makexpi.sh ${version} --no-recurse + ''; + + installPhase = '' + install -m 444 -D pkg/https-everywhere-$version-eff.xpi "$out/$extid.xpi" + ''; + }; + + noscript = stdenv.mkDerivation rec { + pname = "noscript"; + version = "5.1.2"; + + extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}"; + + src = fetchurl { + url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi"; + sha256 = "1fzspdiwhjabwz1yxb3gzj7giz9jbc1xxm65i93rvhzcp537cs42"; + }; + + dontUnpack = true; + + installPhase = '' + install -m 444 -D $src "$out/$extid.xpi" + ''; + }; + + torbutton = stdenv.mkDerivation rec { + pname = "torbutton"; + version = "1.9.8.1"; + + extid = "torbutton@torproject.org"; + + src = fetchgit { + url = "https://git.torproject.org/torbutton.git"; + rev = "refs/tags/${version}"; + sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l"; + }; + + nativeBuildInputs = [ zip ]; + + buildPhase = '' + $shell ./makexpi.sh + ''; + + installPhase = '' + install -m 444 -D pkg/torbutton-$version.xpi "$out/$extid.xpi" + ''; + }; + + tor-launcher = stdenv.mkDerivation rec { + pname = "tor-launcher"; + version = "0.2.13"; + + extid = "tor-launcher@torproject.org"; + + src = fetchgit { + url = "https://git.torproject.org/tor-launcher.git"; + rev = "refs/tags/${version}"; + sha256 = "1f98v88y2clwvjiw77kxqc9cacp5h0489a540nc2wmsx7vnskrq0"; + }; + + nativeBuildInputs = [ zip ]; + + buildPhase = '' + make package + ''; + + installPhase = '' + install -m 444 -D pkg/tor-launcher-$version.xpi "$out/$extid.xpi" + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix new file mode 100644 index 000000000000..0a72099e653c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, pkgconfig, libsoup, webkitgtk, gtk3, glib-networking +, gsettings-desktop-schemas, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "vimb"; + version = "3.3.0"; + + src = fetchFromGitHub { + owner = "fanglingsu"; + repo = "vimb"; + rev = version; + sha256 = "1qg18z2gnsli9qgrqfhqfrsi6g9mcgr90w8yab28nxrq4aha6brf"; + }; + + nativeBuildInputs = [ wrapGAppsHook pkgconfig ]; + buildInputs = [ gtk3 libsoup webkitgtk glib-networking gsettings-desktop-schemas ]; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = { + description = "A Vim-like browser"; + longDescription = '' + A fast and lightweight vim like web browser based on the webkit web + browser engine and the GTK toolkit. Vimb is modal like the great vim + editor and also easily configurable during runtime. Vimb is mostly + keyboard driven and does not detract you from your daily work. + ''; + homepage = https://fanglingsu.github.io/vimb/; + license = stdenv.lib.licenses.gpl3; + maintainers = []; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix new file mode 100644 index 000000000000..0b14a15f5daa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -0,0 +1,95 @@ +{ stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE +, libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr +, alsaLib, dbus, cups, libexif, ffmpeg, systemd +, freetype, fontconfig, libXft, libXrender, libxcb, expat +, libuuid +, gstreamer, gst-plugins-base, libxml2 +, glib, gtk3, pango, gdk-pixbuf, cairo, atk, at-spi2-atk, at-spi2-core, gnome2 +, nss, nspr +, patchelf, makeWrapper +, isSnapshot ? false +, proprietaryCodecs ? false, vivaldi-ffmpeg-codecs ? null +, enableWidevine ? false, vivaldi-widevine ? null +}: + +let + branch = if isSnapshot then "snapshot" else "stable"; + vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; +in stdenv.mkDerivation rec { + pname = "vivaldi"; + version = "2.10.1745.23-1"; + + src = fetchurl { + url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; + sha256 = "1dkyanasycarka6zikrk0pn6n0xin7hrnysm67rs7pam4lzpq0vh"; + }; + + unpackPhase = '' + ar vx $src + tar -xvf data.tar.xz + ''; + + nativeBuildInputs = [ patchelf makeWrapper ]; + + buildInputs = [ + stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb + libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr + atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd + freetype fontconfig libXrender libuuid expat glib nss nspr + gstreamer libxml2 gst-plugins-base pango cairo gnome2.GConf + ] ++ stdenv.lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs; + + libPath = stdenv.lib.makeLibraryPath buildInputs + + stdenv.lib.optionalString (stdenv.is64bit) + (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs) + + ":$out/opt/${vivaldiName}/lib"; + + buildPhase = '' + echo "Patching Vivaldi binaries" + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}" \ + opt/${vivaldiName}/vivaldi-bin + '' + stdenv.lib.optionalString proprietaryCodecs '' + sed -i '/^if \[ "$VIVALDI_FFMPEG_FOUND/i \ + VIVALDI_FFMPEG_FOUND=YES\nCACHED_FFMPEG=${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so' opt/${vivaldiName}/${vivaldiName} + '' + '' + echo "Finished patching Vivaldi binaries" + ''; + + dontPatchELF = true; + dontStrip = true; + + installPhase = '' + mkdir -p "$out" + cp -r opt "$out" + mkdir "$out/bin" + ln -s "$out/opt/${vivaldiName}/${vivaldiName}" "$out/bin/vivaldi" + mkdir -p "$out/share" + cp -r usr/share/{applications,xfce4} "$out"/share + substituteInPlace "$out"/share/applications/*.desktop \ + --replace /usr/bin/${vivaldiName} "$out"/bin/vivaldi + substituteInPlace "$out"/share/applications/*.desktop \ + --replace vivaldi-stable vivaldi + local d + for d in 16 22 24 32 48 64 128 256; do + mkdir -p "$out"/share/icons/hicolor/''${d}x''${d}/apps + ln -s \ + "$out"/opt/${vivaldiName}/product_logo_''${d}.png \ + "$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png + done + wrapProgram "$out/bin/vivaldi" \ + --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ \ + ${stdenv.lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"} + '' + stdenv.lib.optionalString enableWidevine '' + ln -sf ${vivaldi-widevine}/lib/libwidevinecdm.so $out/opt/${vivaldiName}/libwidevinecdm.so + ''; + + meta = with stdenv.lib; { + description = "A Browser for our Friends, powerful and personal"; + homepage = "https://vivaldi.com"; + license = licenses.unfree; + maintainers = with maintainers; [ otwieracz nequissimus ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix new file mode 100644 index 000000000000..3207409a6ba5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl +, dpkg +}: + +stdenv.mkDerivation rec { + name = "chromium-codecs-ffmpeg"; + version = "74.0.3729.169"; + + src = fetchurl { + url = "https://launchpadlibrarian.net/424938057/${name}-extra_${version}-0ubuntu0.16.04.1_amd64.deb"; + sha256 = "1ls2fshfk08hqsfvbd7p6rp2gv3n0xdy86rdh00wiz5qgl3skfzc"; + }; + + buildInputs = [ dpkg ]; + + unpackPhase = '' + dpkg-deb -x $src . + find . + ''; + + installPhase = '' + install -vD usr/lib/chromium-browser/libffmpeg.so $out/lib/libffmpeg.so + ''; + + meta = with stdenv.lib; { + description = "Additional support for proprietary codecs for Vivaldi"; + homepage = "https://ffmpeg.org/"; + license = licenses.lgpl21; + maintainers = with maintainers; [ betaboon lluchs ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh new file mode 100755 index 000000000000..2e6c2853eb14 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p libarchive curl common-updater-scripts + +set -eu -o pipefail + +cd "$(dirname "${BASH_SOURCE[0]}")" +root=../../../../.. +export NIXPKGS_ALLOW_UNFREE=1 + +version() { + (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"') +} + +vivaldi_version_old=$(version vivaldi) +vivaldi_version=$(curl -sS https://vivaldi.com/download/ | sed -rne 's/.*vivaldi-stable_([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+-[0-9]+)_amd64\.deb.*/\1/p') + +if [[ "$vivaldi_version" = "$vivaldi_version_old" ]]; then + echo "vivaldi is already up-to-date" + exit +fi + +# Download vivaldi and save hash and file path. +url="https://downloads.vivaldi.com/stable/vivaldi-stable_${vivaldi_version}_amd64.deb" +mapfile -t prefetch < <(nix-prefetch-url --print-path "$url") +hash=${prefetch[0]} +path=${prefetch[1]} + +nixpkgs="$(git rev-parse --show-toplevel)" +default_nix="$nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix" +ffmpeg_nix="$nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix" + +(cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash") + +git add "${default_nix}" +git commit -m "vivaldi: ${vivaldi_version_old} -> ${vivaldi_version}" + +# Check vivaldi-ffmpeg-codecs version. +chromium_version_old=$(version vivaldi-ffmpeg-codecs) +chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep '^[0-9]\{2,\}\.[0-9]\+\.[0-9]\{4,\}\+\.[0-9]\+$') + +if [[ "$chromium_version" != "$chromium_version_old" ]]; then + (cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version") + + git add "${ffmpeg_nix}" + git commit -m "vivaldi-ffmepg-codecs: $chromium_version_old -> $chromium_version" +fi diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix new file mode 100644 index 000000000000..a21de1acad28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl +, unzip +}: + +stdenv.mkDerivation rec { + name = "widevine"; + version = "4.10.1196.0"; + + src = fetchurl { + url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip"; + sha256 = "01c7nr7d2xs718jymicbk4ipzfx6q253109qv3lk4lryrrhvw14y"; + }; + + buildInputs = [ unzip ]; + + unpackPhase = '' + unzip $src libwidevinecdm.so + find . + ''; + + installPhase = '' + install -vD libwidevinecdm.so $out/lib/libwidevinecdm.so + ''; + + meta = with stdenv.lib; { + description = "Widevine support for Vivaldi"; + homepage = "https://www.widevine.com"; + license = licenses.unfree; + maintainers = with maintainers; [ betaboon ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch b/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch new file mode 100644 index 000000000000..49dd417d1c39 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch @@ -0,0 +1,11 @@ +--- a/url.c 2014-07-14 12:31:30.476563116 +0200 ++++ b/url.c 2014-07-14 12:32:16.364918248 +0200 +@@ -268,7 +268,7 @@ init_PRNG() + if (RAND_status()) + return; + if ((file = RAND_file_name(buffer, sizeof(buffer)))) { +-#ifdef USE_EGD ++#if defined(USE_EGD) && defined(HAVE_SSL_RAND_EGD) + if (RAND_egd(file) > 0) + return; + #endif diff --git a/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix b/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix new file mode 100644 index 000000000000..373fa43c72c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix @@ -0,0 +1,100 @@ +{ stdenv, fetchFromGitHub, fetchpatch +, ncurses, boehmgc, gettext, zlib +, sslSupport ? true, openssl ? null +, graphicsSupport ? !stdenv.isDarwin, imlib2 ? null +, x11Support ? graphicsSupport, libX11 ? null +, mouseSupport ? !stdenv.isDarwin, gpm-ncurses ? null +, perl, man, pkgconfig, buildPackages, w3m +}: + +assert sslSupport -> openssl != null; +assert graphicsSupport -> imlib2 != null; +assert x11Support -> graphicsSupport && libX11 != null; +assert mouseSupport -> gpm-ncurses != null; + +with stdenv.lib; + +let + mktable = buildPackages.stdenv.mkDerivation { + name = "w3m-mktable"; + inherit (w3m) src; + nativeBuildInputs = [ pkgconfig boehmgc ]; + makeFlags = [ "mktable" ]; + installPhase = '' + install -D mktable $out/bin/mktable + ''; + }; +in stdenv.mkDerivation rec { + pname = "w3m"; + version = "0.5.3+git20190105"; + + src = fetchFromGitHub { + owner = "tats"; + repo = pname; + rev = "v${version}"; + sha256 = "1fbg2p8qh2gvi3g4iz4q6vc0k70pf248r4yndi5lcn2m3mzvjx0i"; + }; + + NIX_LDFLAGS = optionalString stdenv.isSunOS "-lsocket -lnsl"; + + # we must set these so that the generated files (e.g. w3mhelp.cgi) contain + # the correct paths. + PERL = "${perl}/bin/perl"; + MAN = "${man}/bin/man"; + + makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ]; + + patches = [ + ./RAND_egd.libressl.patch + (fetchpatch { + name = "https.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/https.patch?h=w3m-mouse&id=5b5f0fbb59f674575e87dd368fed834641c35f03"; + sha256 = "08skvaha1hjyapsh8zw5dgfy433mw2hk7qy9yy9avn8rjqj7kjxk"; + }) + ] ++ optional (graphicsSupport && !x11Support) [ ./no-x11.patch ]; + + postPatch = optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + ln -s ${mktable}/bin/mktable mktable + # stop make from recompiling mktable + sed -ie 's!mktable.*:.*!mktable:!' Makefile.in + ''; + + nativeBuildInputs = [ pkgconfig gettext ]; + buildInputs = [ ncurses boehmgc zlib ] + ++ optional sslSupport openssl + ++ optional mouseSupport gpm-ncurses + ++ optional graphicsSupport imlib2 + ++ optional x11Support libX11; + + postInstall = optionalString graphicsSupport '' + ln -s $out/libexec/w3m/w3mimgdisplay $out/bin + ''; + + hardeningDisable = [ "format" ]; + + configureFlags = + [ "--with-ssl=${openssl.dev}" "--with-gc=${boehmgc.dev}" ] + ++ optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "ac_cv_func_setpgrp_void=yes" + ] + ++ optional graphicsSupport "--enable-image=${optionalString x11Support "x11,"}fb"; + + preConfigure = '' + substituteInPlace ./configure --replace "/lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib /lib64 /usr/lib64" /no-such-path + substituteInPlace ./configure --replace /usr /no-such-path + ''; + + enableParallelBuilding = false; + + # for w3mimgdisplay + # see: https://bbs.archlinux.org/viewtopic.php?id=196093 + LIBS = optionalString x11Support "-lX11"; + + meta = { + homepage = http://w3m.sourceforge.net/; + description = "A text-mode web browser"; + maintainers = [ maintainers.cstrahan ]; + platforms = stdenv.lib.platforms.unix; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch b/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch new file mode 100644 index 000000000000..0816c022926d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch @@ -0,0 +1,14 @@ +Forget about X11 in fb module. +This breaks w3mimgdisplay under X11, but removes X11 dependency it in pure fb. +diff --git a/w3mimg/fb/fb_imlib2.c b/w3mimg/fb/fb_imlib2.c +index 1a5151c..d3d7bc3 100644 +--- a/w3mimg/fb/fb_imlib2.c ++++ b/w3mimg/fb/fb_imlib2.c +@@ -3,6 +3,7 @@ + fb_imlib2.c 0.3 Copyright (C) 2002, hito + **************************************************************************/ + ++#define X_DISPLAY_MISSING + #include <Imlib2.h> + #include "fb.h" + #include "fb_img.h" diff --git a/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix b/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix new file mode 100644 index 000000000000..b86ba3c39f06 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix @@ -0,0 +1,75 @@ +{ lib +, mkDerivationWith +, fetchFromGitHub +, python3Packages +, herbstluftwm +}: + +mkDerivationWith python3Packages.buildPythonApplication rec { + pname = "webmacs"; + version = "0.8"; + + disabled = python3Packages.isPy27; + + src = fetchFromGitHub { + owner = "parkouss"; + repo = "webmacs"; + rev = version; + fetchSubmodules = true; + sha256 = "1hzb9341hybgrqcy1w20hshm6xaiby4wbjpjkigf4zq389407368"; + }; + + propagatedBuildInputs = with python3Packages; [ + pyqtwebengine + setuptools + dateparser + jinja2 + pygments + ]; + + checkInputs = [ + python3Packages.pytest + #python3Packages.pytest-xvfb + #python3Packages.pytest-qt + python3Packages.pytestCheckHook + herbstluftwm + + # The following are listed in test-requirements.txt but appear not + # to be needed at present: + + # python3Packages.pytest-mock + # python3Packages.flake8 + ]; + + # See https://github.com/parkouss/webmacs/blob/1a04fb7bd3f33d39cb4d71621b48c2458712ed39/setup.py#L32 + # Don't know why they're using CC for g++. + preConfigure = '' + export CC=$CXX + ''; + + doCheck = false; # test dependencies not packaged up yet + + dontWrapQtApps = true; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Keyboard-based web browser with Emacs/conkeror heritage"; + longDescription = '' + webmacs is yet another browser for keyboard-based web navigation. + + It mainly targets emacs-like navigation, and started as a clone (in terms of + features) of conkeror. + + Based on QtWebEngine and Python 3. Fully customizable in Python. + ''; + homepage = https://webmacs.readthedocs.io/en/latest/; + changelog = https://github.com/parkouss/webmacs/blob/master/CHANGELOG.md; + license = licenses.gpl3; + maintainers = with maintainers; [ jacg ]; + platforms = platforms.all; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/c14/default.nix b/nixpkgs/pkgs/applications/networking/c14/default.nix new file mode 100644 index 000000000000..c000a37ff029 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/c14/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "c14-cli"; + version = "0.3"; + + goPackagePath = "github.com/online-net/c14-cli"; + + src = fetchFromGitHub { + owner = "online-net"; + repo = "c14-cli"; + rev = version; + sha256 = "0b1piviy6vvdbak8y8bc24rk3c1fi67vv3352pmnzvrhsar2r5yf"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "C14 is designed for data archiving & long-term backups."; + homepage = https://www.online.net/en/storage/c14-cold-storage; + license = licenses.mit; + maintainers = with maintainers; [ apeyroux ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/c14/deps.nix b/nixpkgs/pkgs/applications/networking/c14/deps.nix new file mode 100644 index 000000000000..fe51488c7066 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/c14/deps.nix @@ -0,0 +1 @@ +[] diff --git a/nixpkgs/pkgs/applications/networking/calls/default.nix b/nixpkgs/pkgs/applications/networking/calls/default.nix new file mode 100644 index 000000000000..d57775c3d8fa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/calls/default.nix @@ -0,0 +1,85 @@ +{ stdenv +, fetchFromGitLab +, meson +, ninja +, pkgconfig +, libhandy +, modemmanager +, gtk3 +, gom +, gsound +, evolution-data-server +, folks +, desktop-file-utils +, libpeas +, dbus +, vala +, wrapGAppsHook +, xorg +, xvfb_run +, libxml2 +}: + +stdenv.mkDerivation rec { + pname = "calls"; + version = "0.1.1"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = "calls"; + rev = "v${version}"; + sha256 = "01inx4mvrzvklwrfryw5hw9p89v8cn78m3qmv97g7a3v0h5c0n35"; + }; + + nativeBuildInputs = [ + meson + ninja + pkgconfig + desktop-file-utils + vala + wrapGAppsHook + ]; + + buildInputs = [ + modemmanager + libhandy + evolution-data-server + folks + gom + gsound + gtk3 + libhandy + libpeas + ]; + + checkInputs = [ + dbus + xvfb_run + ]; + + mesonFlags = [ + # docs fail to build + # https://source.puri.sm/Librem5/calls/issues/99 + "-Dgtk_doc=false" + ]; + + doCheck = true; + + checkPhase = '' + runHook preCheck + NO_AT_BRIDGE=1 \ + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --print-errorlogs + runHook postCheck + ''; + + meta = with stdenv.lib; { + description = "A phone dialer and call handler"; + homepage = https://source.puri.sm/Librem5/calls; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ craigem lheckemann ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cawbird/default.nix b/nixpkgs/pkgs/applications/networking/cawbird/default.nix new file mode 100644 index 000000000000..6462dd499493 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cawbird/default.nix @@ -0,0 +1,76 @@ +{ stdenv +, fetchFromGitHub +, glib +, gtk3 +, json-glib +, sqlite +, libsoup +, gettext +, gspell +, vala +, meson +, ninja +, pkgconfig +, dconf +, gst_all_1 +, wrapGAppsHook +, gobject-introspection +, glib-networking +, python3 +}: + +stdenv.mkDerivation rec { + version = "1.0.3.1"; + pname = "cawbird"; + + src = fetchFromGitHub { + owner = "IBBoard"; + repo = "cawbird"; + rev = "v${version}"; + sha256 = "sha256:1v1y4bx0mm518b9vlpsry12fw1qz2j28jfhjqq73blvzd89lgb0y"; + }; + + nativeBuildInputs = [ + meson + ninja + vala + pkgconfig + wrapGAppsHook + python3 + gobject-introspection # for setup hook + ]; + + buildInputs = [ + glib + gtk3 + json-glib + sqlite + libsoup + gettext + dconf + gspell + glib-networking + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-bad + (gst-plugins-good.override { + gtkSupport = true; + }) + gst-libav + ]); + + postPatch = '' + chmod +x data/meson_post_install.py # patchShebangs requires executable file + patchShebangs data/meson_post_install.py + ''; + + meta = with stdenv.lib; { + description = "Native GTK Twitter client for the Linux desktop"; + longDescription = "Cawbird is a modern, easy and fun Twitter client. Fork of the discontinued Corebird."; + homepage = "https://ibboard.co.uk/cawbird/"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with stdenv.lib.maintainers; [ jonafato schmittlauch ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/charles/default.nix b/nixpkgs/pkgs/applications/networking/charles/default.nix new file mode 100644 index 000000000000..4c1f7ea77492 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/charles/default.nix @@ -0,0 +1,67 @@ +{ +stdenv +, makeWrapper +, makeDesktopItem +, fetchurl +, jre +}: + +let + generic = { version, sha256, ... }@attrs: + let + desktopItem = makeDesktopItem { + categories = "Network;Development;WebDevelopment;Java;"; + desktopName = "Charles"; + exec = "charles %F"; + genericName = "Web Debugging Proxy"; + icon = "charles-proxy"; + mimeType = "application/x-charles-savedsession;application/x-charles-savedsession+xml;application/x-charles-savedsession+json;application/har+json;application/vnd.tcpdump.pcap;application/x-charles-trace"; + name = "Charles"; + startupNotify = "true"; + }; + + in stdenv.mkDerivation { + pname = "charles"; + inherit version; + + src = fetchurl { + url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz"; + inherit sha256; + }; + buildInputs = [ makeWrapper ]; + + installPhase = '' + makeWrapper ${jre}/bin/java $out/bin/charles \ + --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar" + + for fn in lib/*.jar; do + install -D -m644 $fn $out/share/java/$(basename $fn) + done + + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications/ + + mkdir -p $out/share/icons + cp -r icon $out/share/icons/hicolor + ''; + + meta = with stdenv.lib; { + description = "Web Debugging Proxy"; + homepage = https://www.charlesproxy.com/; + maintainers = [ maintainers.kalbasit ]; + license = stdenv.lib.licenses.unfree; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + }; + }; + +in { + charles4 = (generic { + version = "4.2.8"; + sha256 = "1jzjdhzxgrq7pdfryfkg0hsjpyni14ma4x8jbdk1rqll78ccr080"; + }); + charles3 = (generic { + version = "3.12.3"; + sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss"; + }); +} + diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix new file mode 100644 index 000000000000..6712dcd486bc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix @@ -0,0 +1,27 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "cloudflared"; + version = "2019.7.0"; + + goPackagePath = "github.com/cloudflare/cloudflared"; + + src = fetchFromGitHub { + owner = "cloudflare"; + repo = "cloudflared"; + rev = version; + sha256 = "19229p7c9m7v0xpmzi5rfwjzm845ikq8pndkry2si9azks18x77q"; + }; + + goDeps = ./deps.nix; + + buildFlagsArray = "-ldflags=-X main.Version=${version}"; + + meta = with stdenv.lib; { + description = "CloudFlare Argo Tunnel daemon (and DNS-over-HTTPS client)"; + homepage = https://www.cloudflare.com/products/argo-tunnel; + license = licenses.unfree; + platforms = platforms.unix; + maintainers = [ maintainers.thoughtpolice maintainers.enorris ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/deps.nix b/nixpkgs/pkgs/applications/networking/cloudflared/deps.nix new file mode 100644 index 000000000000..e5ca7be00705 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cloudflared/deps.nix @@ -0,0 +1,453 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "github.com/BurntSushi/toml"; + fetch = { + type = "git"; + url = "https://github.com/BurntSushi/toml"; + rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005"; + sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "4b2b341e8d7715fae06375aa633dbb6e91b3fb46"; + sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x"; + }; + } + { + goPackagePath = "github.com/certifi/gocertifi"; + fetch = { + type = "git"; + url = "https://github.com/certifi/gocertifi"; + rev = "deb3ae2ef2610fde3330947281941c562861188b"; + sha256 = "1xy09y1fdfcny1z09hd4493w1acj5min9z2sx4gfpshc80icrmr6"; + }; + } + { + goPackagePath = "github.com/cloudflare/brotli-go"; + fetch = { + type = "git"; + url = "https://github.com/cloudflare/brotli-go"; + rev = "18c9f6c67e3dfc12e0ddaca748d2887f97a7ac28"; + sha256 = "10112y4k8qing552n0df9w33cgminrzm6g3x7ng0vgin4sv59785"; + }; + } + { + goPackagePath = "github.com/cloudflare/golibs"; + fetch = { + type = "git"; + url = "https://github.com/cloudflare/golibs"; + rev = "333127dbecfcc23a8db7d9a4f52785d23aff44a1"; + sha256 = "170hbv9wyfmb5da9a6wjz2mphp0pylv23h8qp8h5kwa2i9frdqqi"; + }; + } + { + goPackagePath = "github.com/coredns/coredns"; + fetch = { + type = "git"; + url = "https://github.com/coredns/coredns"; + rev = "2e322f6e8a54f18c6aef9c25a7c432c291a3d9f7"; + sha256 = "0s9x5yww1qd9pzh2w846g9qw0n86ygymjiqjn15ws6ha3nj5p75p"; + }; + } + { + goPackagePath = "github.com/coreos/go-oidc"; + fetch = { + type = "git"; + url = "https://github.com/coreos/go-oidc"; + rev = "a93f71fdfe73d2c0f5413c0565eea0af6523a6df"; + sha256 = "00pmmky0y9a9l767xn16xlf52h81j4869n6j0xql79rybp6xc1f3"; + }; + } + { + goPackagePath = "github.com/coreos/go-systemd"; + fetch = { + type = "git"; + url = "https://github.com/coreos/go-systemd"; + rev = "95778dfbb74eb7e4dbaf43bf7d71809650ef8076"; + sha256 = "1s3bg9p78wkixn2bqb2p23wbsqfg949ml6crw2b498s71mwh8rcf"; + }; + } + { + goPackagePath = "github.com/coreos/pkg"; + fetch = { + type = "git"; + url = "https://github.com/coreos/pkg"; + rev = "97fdf19511ea361ae1c100dd393cc47f8dcfa1e1"; + sha256 = "1srn87wih25l09f75483hnxsr8fc6rq3bk7w1x8125ym39p6mg21"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "8991bc29aa16c548c550c7ff78260e27b9ab7c73"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/elgs/gosqljson"; + fetch = { + type = "git"; + url = "https://github.com/elgs/gosqljson"; + rev = "027aa4915315a0b2825c0f025cea347829b974fa"; + sha256 = "14i45m1y505acvsk4l725bp8p9w3mcg49khz9hxkzg3afg7nc5gq"; + }; + } + { + goPackagePath = "github.com/equinox-io/equinox"; + fetch = { + type = "git"; + url = "https://github.com/equinox-io/equinox"; + rev = "5205c98a6c11dc72747ce12fff6cd620a99fde05"; + sha256 = "19gya2zhs3xqfjh8y6s63yw9q8h1x710rl1drf4a1fmgdhaf2lrv"; + }; + } + { + goPackagePath = "github.com/facebookgo/grace"; + fetch = { + type = "git"; + url = "https://github.com/facebookgo/grace"; + rev = "75cf19382434e82df4dd84953f566b8ad23d6e9e"; + sha256 = "15chyvgv5y59w9x2asm0vh29cmmcji7f5vxvv8gqcr15nkyi61q0"; + }; + } + { + goPackagePath = "github.com/flynn/go-shlex"; + fetch = { + type = "git"; + url = "https://github.com/flynn/go-shlex"; + rev = "3f9db97f856818214da2e1057f8ad84803971cff"; + sha256 = "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia"; + }; + } + { + goPackagePath = "github.com/getsentry/raven-go"; + fetch = { + type = "git"; + url = "https://github.com/getsentry/raven-go"; + rev = "ed7bcb39ff10f39ab08e317ce16df282845852fa"; + sha256 = "0pqggcjbia9sidxqxnyd5z5k44iswxaqss3qvkka8bfm082kczij"; + }; + } + { + goPackagePath = "github.com/golang-collections/collections"; + fetch = { + type = "git"; + url = "https://github.com/golang-collections/collections"; + rev = "604e922904d35e97f98a774db7881f049cd8d970"; + sha256 = "04g0xc1bs4aphc2rcj9knah2shmck500qagnazy4mg052b84ggwm"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "b5d812f8a3706043e23a9cd5babf2e5423744d30"; + sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"; + }; + } + { + goPackagePath = "github.com/google/uuid"; + fetch = { + type = "git"; + url = "https://github.com/google/uuid"; + rev = "0cd6bf5da1e1c83f8b45653022c74f71af0538a4"; + sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb"; + }; + } + { + goPackagePath = "github.com/gorilla/mux"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/mux"; + rev = "c5c6c98bc25355028a63748a498942a6398ccd22"; + sha256 = "0im4da3hqxb6zr8g3m640qz234f5gs0a8hqhcz35mkvfqlv48f62"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b"; + sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1"; + }; + } + { + goPackagePath = "github.com/grpc-ecosystem/grpc-opentracing"; + fetch = { + type = "git"; + url = "https://github.com/grpc-ecosystem/grpc-opentracing"; + rev = "8e809c8a86450a29b90dcc9efbf062d0fe6d9746"; + sha256 = "1yz3gxhdipmi63n32y5srwx7p254k3fm8y64cimkb1gz7sw99nxw"; + }; + } + { + goPackagePath = "github.com/jonboulle/clockwork"; + fetch = { + type = "git"; + url = "https://github.com/jonboulle/clockwork"; + rev = "2eee05ed794112d45db504eb05aa693efd2b8b09"; + sha256 = "1pqxhsdavbp1n5grgyx2j6ylvql2fzn2cvpsgkc8li69dil7sibl"; + }; + } + { + goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; + fetch = { + type = "git"; + url = "https://github.com/konsorten/go-windows-terminal-sequences"; + rev = "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e"; + sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7"; + }; + } + { + goPackagePath = "github.com/lib/pq"; + fetch = { + type = "git"; + url = "https://github.com/lib/pq"; + rev = "51e2106eed1cea199c802d2a49e91e2491b02056"; + sha256 = "00kp0k7sd7xrv92crd2xja68z096b2fw0mlz58mdjlri9w72hqbf"; + }; + } + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "3a70a971f94a22f2fa562ffcc7a0eb45f5daf045"; + sha256 = "0l640974j804c1yyjfgyxqlsivz0yrzmbql4mhcw2azryigkp08p"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "c2a7a6ca930a4cd0bc33a3f298eb71960732a3a7"; + sha256 = "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + }; + } + { + goPackagePath = "github.com/mholt/caddy"; + fetch = { + type = "git"; + url = "https://github.com/mholt/caddy"; + rev = "d3b731e9255b72d4571a5aac125634cf1b6031dc"; + sha256 = "1183cfaryw7m3hvngzv87w80pc9vp3369sjyz7a0dlbr39jip1r0"; + }; + } + { + goPackagePath = "github.com/miekg/dns"; + fetch = { + type = "git"; + url = "https://github.com/miekg/dns"; + rev = "73601d4aed9d844322611759d7f3619110b7c88e"; + sha256 = "1frnj97bbch1qhg55fx2yz6mdjsz8fw94sj7pkrjms239j7vqcvm"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "af06845cf3004701891bf4fdb884bfe4920b3727"; + sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1"; + }; + } + { + goPackagePath = "github.com/opentracing/opentracing-go"; + fetch = { + type = "git"; + url = "https://github.com/opentracing/opentracing-go"; + rev = "659c90643e714681897ec2521c60567dd21da733"; + sha256 = "0aj9cbm21zsg1i5l25hz8gn0yf99yxyxcp1gqh3yd5g4knj2cgzf"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "645ef00459ed84a119197bfb8d8205042c6df63d"; + sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "792786c7400a136282c1664665ae0a8db921c6c2"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "967789050ba94deca04a5e84cce8ad472ce313c1"; + sha256 = "1djwz6shmyx5kbp9b1pim3kncq2jwn3qhbx4b0b4lq7msww76hpz"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "fd36f4220a901265f90734c3183c5f0c91daa0b8"; + sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "a82f4c12f983cc2649298185f296632953e50d3e"; + sha256 = "0pcgnxrv2i31jljqzhkv5hpdz92f6zrkh2p1i7i59acfz1fxhq0s"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "8368d24ba045f26503eb745b624d930cbe214c79"; + sha256 = "0cfrgsy82c964hcmzzyk6ccghpr9dkfvdlxa0cj9cfc0w94cqvrl"; + }; + } + { + goPackagePath = "github.com/rifflock/lfshook"; + fetch = { + type = "git"; + url = "https://github.com/rifflock/lfshook"; + rev = "b9218ef580f59a2e72dad1aa33d660150445d05a"; + sha256 = "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "839c75faf7f98a33d445d181f3018b5c3409a45e"; + sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "12b6f73e6084dad08a7c6e575284b177ecafbc71"; + sha256 = "01f80s0q64pw5drfgqwwk1wfwwkvd2lhbs56lhhkff4ni83k73fd"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "f416ebab96af27ca70b6e5c23d6a0747530da626"; + sha256 = "1cmddgh6x1c3lij50r8245jhqgi4j00add4wjpqpc2dmcg5928m3"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "1da14a5a36f220ea3f03470682b737b1dfd5de22"; + sha256 = "1ivqwn3r44vlldlj53669jvsd6klwsg7hmla7f0vz03ny8xz4lpz"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "1d60e4601c6fd243af51cc01ddf169918a5407ca"; + sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "12500544f89f9420afe9529ba8940bf72d294972"; + sha256 = "1y37dlbbsp1dkfqaf563fwlf3xl74ymswmy52faqyv0wpcbwixgy"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + { + goPackagePath = "google.golang.org/genproto"; + fetch = { + type = "git"; + url = "https://github.com/google/go-genproto"; + rev = "d1146b9035b912113a38af3b138eb2af567b2c67"; + sha256 = "1ry1vbbnfh7i3zrv3vmbsbmq2w8jmz88ykd6cxviijnxvms3zab8"; + }; + } + { + goPackagePath = "google.golang.org/grpc"; + fetch = { + type = "git"; + url = "https://github.com/grpc/grpc-go"; + rev = "236199dd5f8031d698fb64091194aecd1c3895b2"; + sha256 = "0rzpcmp5fscg3smn0aiaahgimv74smylg701na5px3pn5iymh94a"; + }; + } + { + goPackagePath = "gopkg.in/urfave/cli.v2"; + fetch = { + type = "git"; + url = "https://github.com/cbranch/cli"; + rev = "d604b6ffeee878fbf084fd2761466b6649989cee"; + sha256 = "16csqipw5vrbb91m9w9g72jlxlrhcyxa79fz6fjp6803znmjdpk2"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "51d6538a90f86fe93ac480b35f37b2be17fef232"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } + { + goPackagePath = "zombiezen.com/go/capnproto2"; + fetch = { + type = "git"; + url = "https://github.com/zombiezen/go-capnproto2"; + rev = "7cfd211c19c7f5783c695f3654efa46f0df259c3"; + sha256 = "0nzw3g8xpxyzwqqv3ja0iznd0j18l1rwagwhf9sinwdjjgmh51sy"; + }; + } +] \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix new file mode 100644 index 000000000000..9295e90794d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "argo"; + version = "2.4.3"; + + src = fetchFromGitHub { + owner = "argoproj"; + repo = "argo"; + rev = "v${version}"; + sha256 = "15726n5rrbzszq5dpmrxbw9cn7ahihn28jqk274270140gz5aak1"; + }; + + goDeps = ./deps.nix; + goPackagePath = "github.com/argoproj/argo"; + subPackages = [ "cmd/argo" ]; + + meta = with lib; { + description = "Container native workflow engine for Kubernetes"; + homepage = https://github.com/argoproj/argo; + license = licenses.asl20; + maintainers = with maintainers; [ groodt ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/deps.nix new file mode 100644 index 000000000000..b275cd21cf48 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argo/deps.nix @@ -0,0 +1,903 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "cloud.google.com/go"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/gocloud"; + rev = "ceeb313ad77b789a7fa5287b36a1d127b69b7093"; + sha256 = "0z5z3qag9g4fc7g6di7ijxzz0s3c7al1rx0sxxkbqbpwlgk4iwf2"; + }; + } + { + goPackagePath = "contrib.go.opencensus.io/exporter/ocagent"; + fetch = { + type = "git"; + url = "https://github.com/census-ecosystem/opencensus-go-exporter-ocagent"; + rev = "f9129169651c35ecbdc1186c3ba4aa876ee62e1e"; + sha256 = "09n7w31668f6f55qw6qkw85mp6mhkmxs2x5hk4vr0p5qiqap576h"; + }; + } + { + goPackagePath = "github.com/Azure/go-autorest"; + fetch = { + type = "git"; + url = "https://github.com/Azure/go-autorest"; + rev = "880eb0e2aca291c40538ddef66e5914fb1cc1d7f"; + sha256 = "0v6d6la29n3kkgn7r3b63pf96cpj5kf88rddkm2x2vqb9x2gmi0p"; + }; + } + { + goPackagePath = "github.com/Knetic/govaluate"; + fetch = { + type = "git"; + url = "https://github.com/Knetic/govaluate"; + rev = "9aa49832a739dcd78a5542ff189fb82c3e423116"; + sha256 = "12klijhq4fckzbhv0cwygbazj6lvhmdqksha9y6jgfmwzv51kwv5"; + }; + } + { + goPackagePath = "github.com/PuerkitoBio/purell"; + fetch = { + type = "git"; + url = "https://github.com/PuerkitoBio/purell"; + rev = "44968752391892e1b0d0b821ee79e9a85fa13049"; + sha256 = "0c525frsxmalrn55hzzsxy17ng8avkd40ga0wxfw9haxsdjgqdqy"; + }; + } + { + goPackagePath = "github.com/PuerkitoBio/urlesc"; + fetch = { + type = "git"; + url = "https://github.com/PuerkitoBio/urlesc"; + rev = "de5bf2ad457846296e2031421a34e2568e304e35"; + sha256 = "0n0srpqwbaan1wrhh2b7ysz543pjs1xw2rghvqyffg9l0g8kzgcw"; + }; + } + { + goPackagePath = "github.com/argoproj/pkg"; + fetch = { + type = "git"; + url = "https://github.com/argoproj/pkg"; + rev = "5616f48963eebf7cca912632230032b263bb62bc"; + sha256 = "1m50mpmgdv4hjdpl994xdkdbjfwv7dagn6mhix17cb5mf61ixs6z"; + }; + } + { + goPackagePath = "github.com/aws/aws-sdk-go"; + fetch = { + type = "git"; + url = "https://github.com/aws/aws-sdk-go"; + rev = "d57c8d96f72d9475194ccf18d2ba70ac294b0cb3"; + sha256 = "09bv2ay7vnv15vj83ysqs98v0hcjg0nziwnp7qjdr0iasrhl4r21"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "37c8de3658fcb183f997c4e13e8337516ab753e6"; + sha256 = "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"; + }; + } + { + goPackagePath = "github.com/census-instrumentation/opencensus-proto"; + fetch = { + type = "git"; + url = "https://github.com/census-instrumentation/opencensus-proto"; + rev = "d89fa54de508111353cb0b06403c00569be780d8"; + sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj"; + }; + } + { + goPackagePath = "github.com/colinmarc/hdfs"; + fetch = { + type = "git"; + url = "https://github.com/colinmarc/hdfs"; + rev = "9746310a4d311e21ce43b2a645c5a1e64c5e8efa"; + sha256 = "0r5dyadjck22i7fyci67r00ajbcqgx52z13rhriy0sw68j510r1r"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "8991bc29aa16c548c550c7ff78260e27b9ab7c73"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/dgrijalva/jwt-go"; + fetch = { + type = "git"; + url = "https://github.com/dgrijalva/jwt-go"; + rev = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e"; + sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp"; + }; + } + { + goPackagePath = "github.com/docker/spdystream"; + fetch = { + type = "git"; + url = "https://github.com/docker/spdystream"; + rev = "6480d4af844c189cf5dd913db24ddd339d3a4f85"; + sha256 = "19glzj20vvy19igsl5bji9xrxi9m0ixhk4zs98dg15mh8ah36zak"; + }; + } + { + goPackagePath = "github.com/dustin/go-humanize"; + fetch = { + type = "git"; + url = "https://github.com/dustin/go-humanize"; + rev = "9f541cc9db5d55bce703bd99987c9d5cb8eea45e"; + sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3"; + }; + } + { + goPackagePath = "github.com/emicklei/go-restful"; + fetch = { + type = "git"; + url = "https://github.com/emicklei/go-restful"; + rev = "6ac3b8eb89d325e5c750d77f344a6870464d03c3"; + sha256 = "0dgjld5240xhz45rj929ffm452n931qfw3fx8x99vhlnii9qrwz2"; + }; + } + { + goPackagePath = "github.com/emirpasic/gods"; + fetch = { + type = "git"; + url = "https://github.com/emirpasic/gods"; + rev = "1615341f118ae12f353cc8a983f35b584342c9b3"; + sha256 = "0i5qqq7ajvw3mikr95zl9rsnfsjanzwpqqs6kzzplsfgsifybar1"; + }; + } + { + goPackagePath = "github.com/evanphx/json-patch"; + fetch = { + type = "git"; + url = "https://github.com/evanphx/json-patch"; + rev = "026c730a0dcc5d11f93f1cf1cc65b01247ea7b6f"; + sha256 = "144mk2v9q37l1qjf8498nff4hhz96mlkl7ls7ihixbmrji4lmch4"; + }; + } + { + goPackagePath = "github.com/ghodss/yaml"; + fetch = { + type = "git"; + url = "https://github.com/ghodss/yaml"; + rev = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7"; + sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g"; + }; + } + { + goPackagePath = "github.com/go-openapi/jsonpointer"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/jsonpointer"; + rev = "a105a905c5e6ad147f08504784917f3e178e0ba5"; + sha256 = "1s3cqf4svrbygvvpvi7hf122szsgihas52vqh0bba3avf4w03g9n"; + }; + } + { + goPackagePath = "github.com/go-openapi/jsonreference"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/jsonreference"; + rev = "2903bfd4bfbaf188694f1edf731f2725a8fa344f"; + sha256 = "0v933yvcwyzzlpdxwb9204ki7lls2rwfd96ww2i901ndvz37kdf8"; + }; + } + { + goPackagePath = "github.com/go-openapi/spec"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/spec"; + rev = "bdfd7e07daecc404d77868a88b2364d0aed0ee5a"; + sha256 = "1r2my46qc85fp1j4lbddmd6c1n0am9bq1wyqsnw7x8raiznqxp5l"; + }; + } + { + goPackagePath = "github.com/go-openapi/swag"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/swag"; + rev = "c3d0f7896d589f3babb99eea24bbc7de98108e72"; + sha256 = "1z34vqc5yz6rzvarrvlhkimxx33p74iaxb28l1mv716njvlsmjhg"; + }; + } + { + goPackagePath = "github.com/go-sql-driver/mysql"; + fetch = { + type = "git"; + url = "https://github.com/go-sql-driver/mysql"; + rev = "72cd26f257d44c1114970e19afddcd812016007e"; + sha256 = "1fvsvwc1v2i0gqn01mynvi1shp5xm0xaym6xng09fcbqb56lbjx1"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "0ca988a254f991240804bf9821f3450d87ccbb1b"; + sha256 = "0slfyrmbpdcppf0z3waar90bpszdhi2gv705ys1b0zx5x6ax8f1a"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "6c65a5562fc06764971b7c5d05c76c75e84bdbf7"; + sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym"; + }; + } + { + goPackagePath = "github.com/google/gofuzz"; + fetch = { + type = "git"; + url = "https://github.com/google/gofuzz"; + rev = "f140a6486e521aad38f5917de355cbf147cc0496"; + sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36"; + }; + } + { + goPackagePath = "github.com/googleapis/gnostic"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/gnostic"; + rev = "ab0dd09aa10e2952b28e12ecd35681b20463ebab"; + sha256 = "1f4bs71hrqkwg8fdhsxh25s12xnkxly13cnmp6m4qj6vc6k6zr2n"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "c3e18be99d19e6b3e8f1559eea2c161a665c4b6b"; + sha256 = "03n1n0nwz3k9qshmriycqznnnvd3dkzsfwpnfjzzvafjxk9kyapv"; + }; + } + { + goPackagePath = "github.com/grpc-ecosystem/grpc-gateway"; + fetch = { + type = "git"; + url = "https://github.com/grpc-ecosystem/grpc-gateway"; + rev = "471f45a5a99a578de7a8638dc7ed29e245bde097"; + sha256 = "1jbr14p1dh6jpq3q6b4nq97ryh56h17ali0nckicpxhdrvxgi81c"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-uuid"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-uuid"; + rev = "4f571afc59f3043a65f8fe6bf46d887b10a01d43"; + sha256 = "0jvb88m0rq41bwgirsadgw7mnayl27av3gd2vqa3xvxp3fy0hp5k"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/golang-lru"; + rev = "7f827b33c0f158ec5dfbba01bb0b14a4541fd81d"; + sha256 = "1p2igd58xkm8yaj2c2wxiplkf2hj6kxwrg6ss7mx61s5rd71v5xb"; + }; + } + { + goPackagePath = "github.com/imdario/mergo"; + fetch = { + type = "git"; + url = "https://github.com/imdario/mergo"; + rev = "7c29201646fa3de8506f701213473dd407f19646"; + sha256 = "05ir0jj74w0yfi1lrhjd97v759in1dpsma64cgmbiqvyp6hfmmf8"; + }; + } + { + goPackagePath = "github.com/inconshreveable/mousetrap"; + fetch = { + type = "git"; + url = "https://github.com/inconshreveable/mousetrap"; + rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"; + sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; + }; + } + { + goPackagePath = "github.com/jbenet/go-context"; + fetch = { + type = "git"; + url = "https://github.com/jbenet/go-context"; + rev = "d14ea06fba99483203c19d92cfcd13ebe73135f4"; + sha256 = "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl"; + }; + } + { + goPackagePath = "github.com/jcmturner/gofork"; + fetch = { + type = "git"; + url = "https://github.com/jcmturner/gofork"; + rev = "dc7c13fece037a4a36e2b3c69db4991498d30692"; + sha256 = "0xzsnjqv3d59w9pgqzf6550wdwaqnac7zcdgqfd25w65yhcffzhr"; + }; + } + { + goPackagePath = "github.com/jmespath/go-jmespath"; + fetch = { + type = "git"; + url = "https://github.com/jmespath/go-jmespath"; + rev = "c2b33e84"; + sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz"; + }; + } + { + goPackagePath = "github.com/json-iterator/go"; + fetch = { + type = "git"; + url = "https://github.com/json-iterator/go"; + rev = "27518f6661eba504be5a7a9a9f6d9460d892ade3"; + sha256 = "0n79p4s67zl5zprxv7diayw3vavnmmfqkmd6snz0i9bxp825dsyz"; + }; + } + { + goPackagePath = "github.com/kevinburke/ssh_config"; + fetch = { + type = "git"; + url = "https://github.com/kevinburke/ssh_config"; + rev = "6cfae18c12b8934b1afba3ce8159476fdef666ba"; + sha256 = "05jvz5r58a057zxvic9dyr9v2wilha8l6366npwkqgxmnmk9sh5f"; + }; + } + { + goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; + fetch = { + type = "git"; + url = "https://github.com/konsorten/go-windows-terminal-sequences"; + rev = "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e"; + sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7"; + }; + } + { + goPackagePath = "github.com/lib/pq"; + fetch = { + type = "git"; + url = "https://github.com/lib/pq"; + rev = "3427c32cb71afc948325f299f040e53c1dd78979"; + sha256 = "08j1smm6rassdssdks4yh9aspa1dv1g5nvwimmknspvhx8a7waqz"; + }; + } + { + goPackagePath = "github.com/mailru/easyjson"; + fetch = { + type = "git"; + url = "https://github.com/mailru/easyjson"; + rev = "b2ccc519800e761ac8000b95e5d57c80a897ff9e"; + sha256 = "0q85h383mhbkcjm2vqm72bi8n2252fv3c56q3lclzb8n2crnjcdk"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + }; + } + { + goPackagePath = "github.com/minio/minio-go"; + fetch = { + type = "git"; + url = "https://github.com/minio/minio-go"; + rev = "c6c2912aa5522e5f5a505e6cba30e95f0d8456fa"; + sha256 = "0f5av1da4xbcy34j6dfy7c90na4a1capmsyac9qswq4xzq2zky10"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "af06845cf3004701891bf4fdb884bfe4920b3727"; + sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-ps"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-ps"; + rev = "621e5597135b1d14a7d9c2bfc7bc312e7c58463c"; + sha256 = "0sjkz24kqz5nzgncnvdlzhlyba4jwmf6cxj8c4p8mb44679gkphh"; + }; + } + { + goPackagePath = "github.com/modern-go/concurrent"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/concurrent"; + rev = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94"; + sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs"; + }; + } + { + goPackagePath = "github.com/modern-go/reflect2"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/reflect2"; + rev = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd"; + sha256 = "1721y3yr3dpx5dx5ashf063qczk2awy5zjir1jvp1h5hn7qz4i49"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "ba968bfe8b2f7e042a574c888954fccecfa385b4"; + sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "792786c7400a136282c1664665ae0a8db921c6c2"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "c5b7fccd204277076155f10851dad72b76a49317"; + sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016"; + sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "31bed53e4047fd6c510e43a941f90cb31be0972a"; + sha256 = "1q16br348117ffycxdwsldb0i39p34miclfa8z93k6vjwnrqbh2l"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "00ec24a6a2d86e7074629c8384715dbb05adccd8"; + sha256 = "1z5jq5rjala0a0di4nwk1rai0z9f73qwqj6mgcbpjbg2qknlb544"; + }; + } + { + goPackagePath = "github.com/sergi/go-diff"; + fetch = { + type = "git"; + url = "https://github.com/sergi/go-diff"; + rev = "1744e2970ca51c86172c8190fadad617561ed6e7"; + sha256 = "0swiazj8wphs2zmk1qgq75xza6m19snif94h2m6fi8dqkwqdl7c7"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "839c75faf7f98a33d445d181f3018b5c3409a45e"; + sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x"; + }; + } + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "fe5e611709b0c57fa4a89136deaa8e1d4004d053"; + sha256 = "1pn7g9jmhqc9yg6x02dgp4phiggnnxz8a11pv5y4vxhrvkjm6h71"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "298182f68c66c05229eb03ac171abe6e309ee79a"; + sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd"; + }; + } + { + goPackagePath = "github.com/src-d/gcfg"; + fetch = { + type = "git"; + url = "https://github.com/src-d/gcfg"; + rev = "1ac3a1ac202429a54835fe8408a92880156b489d"; + sha256 = "044j95skmyrwjw5fwjk6ka32rjgsg0ar0mfp9np19sh1acwv4x4r"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "477a77ecc69700c7cdeb1fa9e129548e1c1c393c"; + sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "221dbe5ed46703ee255b1da0dec05086f5035f62"; + sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb"; + }; + } + { + goPackagePath = "github.com/tidwall/gjson"; + fetch = { + type = "git"; + url = "https://github.com/tidwall/gjson"; + rev = "c5e72cdf74dff23857243dd662c465b810891c21"; + sha256 = "0cg23va26ga6d0gckp5i3ramc98cbz6ij9gn9dqqyc8igvcx9cb3"; + }; + } + { + goPackagePath = "github.com/tidwall/match"; + fetch = { + type = "git"; + url = "https://github.com/tidwall/match"; + rev = "33827db735fff6510490d69a8622612558a557ed"; + sha256 = "1ip5nkjvmzzzsypyzdd9nsnzbhwssprlx8qs5llqh16fl7kcvi3n"; + }; + } + { + goPackagePath = "github.com/tidwall/pretty"; + fetch = { + type = "git"; + url = "https://github.com/tidwall/pretty"; + rev = "1166b9ac2b65e46a43d8618d30d1554f4652d49b"; + sha256 = "1jwpj5903lh8hsj9apm2gwd70809zq0gjgmivkxaq4iq29wnv0n9"; + }; + } + { + goPackagePath = "github.com/valyala/bytebufferpool"; + fetch = { + type = "git"; + url = "https://github.com/valyala/bytebufferpool"; + rev = "e746df99fe4a3986f4d4f79e13c1e0117ce9c2f7"; + sha256 = "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93"; + }; + } + { + goPackagePath = "github.com/valyala/fasttemplate"; + fetch = { + type = "git"; + url = "https://github.com/valyala/fasttemplate"; + rev = "8b5e4e491ab636663841c42ea3c5a9adebabaf36"; + sha256 = "0l131znbv8v67y20s4q361mwiww2c33zdc68mwvxchzk1gpy5ywq"; + }; + } + { + goPackagePath = "github.com/xanzy/ssh-agent"; + fetch = { + type = "git"; + url = "https://github.com/xanzy/ssh-agent"; + rev = "6a3e2ff9e7c564f36873c2e36413f634534f1c44"; + sha256 = "1chjlnv5d6svpymxgsr62d992m2xi6jb5lybjc5zn1h3hv1m01av"; + }; + } + { + goPackagePath = "go.opencensus.io"; + fetch = { + type = "git"; + url = "https://github.com/census-instrumentation/opencensus-go"; + rev = "aab39bd6a98b853ab66c8a564f5d6cfcad59ce8a"; + sha256 = "1x1ysvpyak1hcmfgvy0mk30g1ammbsmw19c9s0brz5h9wn7m4vva"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "9756ffdc24725223350eb3266ffb92590d28f278"; + sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "ba9fcec4b297b415637633c5a6e8fa592e4a16c3"; + sha256 = "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33"; + sha256 = "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "112230192c580c3556b8cee6403af37a4fc5f28c"; + sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "9109b7679e13aa34a54834cfb4949cac4b96e576"; + sha256 = "169sg6fyjkykiylrgxr0pynv2zc3frkgssbsk5w2lqyl8mb319hl"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "golang.org/x/time"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/time"; + rev = "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef"; + sha256 = "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "be0da057c5e3c2df569a2c25cd280149b7d7e7d0"; + sha256 = "19i9sjvbk79sgzyzjzrnmf575rnwj2bjsj4r1fmp7827dq97kqks"; + }; + } + { + goPackagePath = "google.golang.org/api"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/google-api-go-client"; + rev = "feb0267beb8644f5088a03be4d5ec3f8c7020152"; + sha256 = "1lzdzkd2i41v6amxs9jah1q44qbvf1yvm8906jpfjiq6c3ffhqss"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "5f2a59506353b8d5ba8cbbcd9f3c1f41f1eaf079"; + sha256 = "1gwcwh8w5b1l15pjm8pqs3bbymvjcak3wva37zi5z9ilzr8c5wnx"; + }; + } + { + goPackagePath = "google.golang.org/genproto"; + fetch = { + type = "git"; + url = "https://github.com/google/go-genproto"; + rev = "24fa4b261c55da65468f2abfdae2b024eef27dfb"; + sha256 = "109zhaqlfd8zkbr1hk6zqbs6vcxfrk64scjwh2nswph05gr0m84d"; + }; + } + { + goPackagePath = "google.golang.org/grpc"; + fetch = { + type = "git"; + url = "https://github.com/grpc/grpc-go"; + rev = "6eaf6f47437a6b4e2153a190160ef39a92c7eceb"; + sha256 = "1cn33r2gclmq2v1ndpf1n5bmhf2qs8mms7ii5cnl6f9ch4r2c4k3"; + }; + } + { + goPackagePath = "gopkg.in/inf.v0"; + fetch = { + type = "git"; + url = "https://github.com/go-inf/inf"; + rev = "d2d2541c53f18d2a059457998ce2876cc8e67cbf"; + sha256 = "00k5iqjcp371fllqxncv7jkf80hn1zww92zm78cclbcn4ybigkng"; + }; + } + { + goPackagePath = "gopkg.in/ini.v1"; + fetch = { + type = "git"; + url = "https://github.com/go-ini/ini"; + rev = "d4cae42d398bc0095297fc3315669590d29166ea"; + sha256 = "1z7531wz62305hwg9y2f04d819am8x3ys96ssy6qndlzmw60yjsr"; + }; + } + { + goPackagePath = "gopkg.in/jcmturner/aescts.v1"; + fetch = { + type = "git"; + url = "https://github.com/jcmturner/aescts"; + rev = "f6abebb3171c4c1b1fea279cb7c7325020a26290"; + sha256 = "0rbq4zf3db48xa2gqdp2swws7wizmbwagigqkr1zxzd1ramps6rv"; + }; + } + { + goPackagePath = "gopkg.in/jcmturner/dnsutils.v1"; + fetch = { + type = "git"; + url = "https://github.com/jcmturner/dnsutils"; + rev = "13eeb8d49ffb74d7a75784c35e4d900607a3943c"; + sha256 = "0l543c64pyzbnrc00jspg21672l3a0kjjw9pbdxwna93w8d8m927"; + }; + } + { + goPackagePath = "gopkg.in/jcmturner/gokrb5.v5"; + fetch = { + type = "git"; + url = "https://github.com/jcmturner/gokrb5"; + rev = "32ba44ca5b42f17a4a9f33ff4305e70665a1bc0f"; + sha256 = "0jynpkncifdd2ib2pc9qhh0r8q7ab7yw0ygzpzgisdzv8ars1diq"; + }; + } + { + goPackagePath = "gopkg.in/jcmturner/rpc.v0"; + fetch = { + type = "git"; + url = "https://github.com/jcmturner/rpc"; + rev = "4480c480c9cd343b54b0acb5b62261cbd33d7adf"; + sha256 = "0hivgq52gwxsqs5x1my2047k7nqh7wx3yi0llsj3lc3h2mjy4yhd"; + }; + } + { + goPackagePath = "gopkg.in/src-d/go-billy.v4"; + fetch = { + type = "git"; + url = "https://github.com/src-d/go-billy"; + rev = "780403cfc1bc95ff4d07e7b26db40a6186c5326e"; + sha256 = "0jcyi4ink2njgflp3f2mbl5b86p2w0rh945k5xplcl158i5wkrc6"; + }; + } + { + goPackagePath = "gopkg.in/src-d/go-git.v4"; + fetch = { + type = "git"; + url = "https://github.com/src-d/go-git"; + rev = "0d1a009cbb604db18be960db5f1525b99a55d727"; + sha256 = "0n4x7r69qrmpss51b3wd3vj4b9jmip4archz3fbqk6q1yyd1pxjb"; + }; + } + { + goPackagePath = "gopkg.in/warnings.v0"; + fetch = { + type = "git"; + url = "https://github.com/go-warnings/warnings"; + rev = "ec4a0fea49c7b46c2aeb0b51aac55779c607e52b"; + sha256 = "1kzj50jn708cingn7a13c2wdlzs6qv89dr2h4zj8d09647vlnd81"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "51d6538a90f86fe93ac480b35f37b2be17fef232"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } + { + goPackagePath = "k8s.io/api"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/api"; + rev = "e3a6b8045b0b303430f6d0c261fd9e35be50800e"; + sha256 = "1c1nrcy0j7aj93l2xgdw0asyvxa4h8pzz004drf7pvh9pvsg0vqq"; + }; + } + { + goPackagePath = "k8s.io/apimachinery"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/apimachinery"; + rev = "8f6ac2502e5143406f4eaedc4ca4262854d877ce"; + sha256 = "0v8cb63nvry4b0ls1h185hb3llp6rk0b4n92f76jcjsv1b7sspbi"; + }; + } + { + goPackagePath = "k8s.io/client-go"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/client-go"; + rev = "6d55c1b1f1ca8ad83d572bbc3ca55ba5526d9d71"; + sha256 = "1j8m0pqn9c6lwr7h5aq7zrpdd73bwbwnhy4mbc0654ylmc3lnq8q"; + }; + } + { + goPackagePath = "k8s.io/code-generator"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/code-generator"; + rev = "6c2a4329ac290d921e8616cad41635c87dbb1518"; + sha256 = "18kx2wcqb5cvivbl61q7vyic5rp0fica9n6xgrjfsxczjbihlq70"; + }; + } + { + goPackagePath = "k8s.io/gengo"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/gengo"; + rev = "a874a240740c2ae854082ec73d46c5efcedd2149"; + sha256 = "0z8gay4bj6l8cv7gzi55l2c3jx94caq28sk0x6p3s6wxqxmnqp92"; + }; + } + { + goPackagePath = "k8s.io/klog"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/klog"; + rev = "3ca30a56d8a775276f9cdae009ba326fdc05af7f"; + sha256 = "0a7kn145q4cbsd2cfpv7sz09prjrxl6aaqzdcgq7p7jxc23a7zps"; + }; + } + { + goPackagePath = "k8s.io/kube-openapi"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/kube-openapi"; + rev = "5e22f3d471e6f24ca20becfdffdc6206c7cecac8"; + sha256 = "08drikf269fhlnrhc29v7rhxl1950d94rl5x8l11n0qf2v2ffwib"; + }; + } + { + goPackagePath = "k8s.io/utils"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/utils"; + rev = "3a4a5477acf81b48e20870a3b9dc743f63c66730"; + sha256 = "1f01ck7nvm9rmw1fkylbnr1cdd9byiagl9ni40j9p9gfy5v5nxk8"; + }; + } + { + goPackagePath = "sigs.k8s.io/yaml"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes-sigs/yaml"; + rev = "fd68e9863619f6ec2fdd8625fe1f02e7c877e480"; + sha256 = "1p7hvjdr5jsyk7nys1g1pmgnf3ys6n320i6hds85afppk81k01kb"; + }; + } + { + goPackagePath = "upper.io/db.v3"; + fetch = { + type = "git"; + url = "https://upper.io/db.v3"; + rev = "fad80cdab4f761cb26416675df120f5d8c3f0db7"; + sha256 = "1bddpi278bzp39470llrgnsnnfyqqmzym5hmd8dxmczmzhhkirfv"; + }; + } +] \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix new file mode 100644 index 000000000000..67e91870f1a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "atlantis"; + version = "0.10.1"; + + src = fetchFromGitHub { + owner = "runatlantis"; + repo = "atlantis"; + rev = "v${version}"; + sha256 = "08k2dgz6rph68647ah1rdp7hqa5h1ar4gdy7vdjy5kn7gz21gmri"; + }; + + modSha256 = "1i4s3xcq2qc3zy00wk2l77935ilm6n5k1msilmdnj0061ia4860y"; + + subPackages = [ "." ]; + + meta = with stdenv.lib; { + homepage = https://github.com/runatlantis/atlantis; + description = "Terraform Pull Request Automation"; + platforms = platforms.all; + license = licenses.asl20; + maintainers = with maintainers; [ jpotier ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix new file mode 100644 index 000000000000..aac0dd10e15a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix @@ -0,0 +1,14 @@ +{stdenv, curl}: + +stdenv.mkDerivation { + name = "chronos-maven-deps"; + builder = ./fetch-chronos-deps.sh; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0mm2sb1p5zz6b0z2s4zhdlix6fafydsxmqjy8zbkwzw4f6lazzyl"; + + nativeBuildInputs = [ curl ]; + + impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix b/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix new file mode 100644 index 000000000000..78be19cd81e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, makeWrapper, fetchgit, curl, jdk, maven, nodejs, mesos }: + +stdenv.mkDerivation rec { + pname = "chronos"; + version = "286b2ccb8e4695f8e413406ceca85b60d3a87e22"; + + src = fetchgit { + url = "https://github.com/airbnb/chronos"; + rev = version; + sha256 = "0hrln3ad2g2cq2xqmy5mq32cdxxb9vb6v6jp6kcq03f8km6v3g9c"; + }; + + buildInputs = [ makeWrapper curl jdk maven nodejs mesos ]; + + mavenRepo = import ./chronos-deps.nix { inherit stdenv curl; }; + + buildPhase = '' + ln -s $mavenRepo .m2 + mvn package -Dmaven.repo.local=$(pwd)/.m2 + ''; + + installPhase = '' + mkdir -p $out/{bin,libexec/chronos} + cp target/chronos*.jar $out/libexec/chronos/${pname}-${version}.jar + + makeWrapper ${jdk.jre}/bin/java $out/bin/chronos \ + --add-flags "-Xmx384m -Xms384m -cp $out/libexec/chronos/${pname}-${version}.jar com.airbnb.scheduler.Main" \ + --prefix "MESOS_NATIVE_LIBRARY" : "$MESOS_NATIVE_LIBRARY" + ''; + + meta = with lib; { + homepage = http://airbnb.github.io/chronos; + license = licenses.asl20; + description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules"; + maintainers = with maintainers; [ offline ]; + platforms = platforms.unix; + broken = true; # doesn't build http://hydra.nixos.org/build/25768319 + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh b/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh new file mode 100644 index 000000000000..2e337076107d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh @@ -0,0 +1,1672 @@ +source $stdenv/setup +header "fetching Chronos maven repo" + +function fetchArtifact { + repoPath="$1" + echo "fetching $repoPath" + mkdir -p $(dirname $out/$repoPath) + curl --fail --location --insecure --max-redirs 20 "http://repo.maven.apache.org/maven2/$repoPath" --output "$out/$repoPath" || + curl --fail --location --insecure --max-redirs 20 "https://repository.apache.org/content/repositories/release/$repoPath" --output "$out/$repoPath" || + curl --fail --location --insecure --max-redirs 20 "http://downloads.mesosphere.io/maven/$repoPath" --output "$out/$repoPath" +} + +fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom +fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom +fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1 +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1 +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar +fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom +fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1 +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1 +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1 +fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom +fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar +fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar.sha1 +fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom.sha1 +fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar +fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom.sha1 +fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom +fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar.sha1 +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1 +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1 +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar +fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom +fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom.sha1 +fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar +fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom +fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar.sha1 +fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom.sha1 +fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar.sha1 +fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar +fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom.sha1 +fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom +fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar.sha1 +fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom +fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar +fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom.sha1 +fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom +fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom.sha1 +fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom +fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom.sha1 +fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom.sha1 +fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom +fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar.sha1 +fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom.sha1 +fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom +fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar +fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar +fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom +fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar.sha1 +fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom.sha1 +fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom +fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1 +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1 +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1 +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar +fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom.sha1 +fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1 +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1 +fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom +fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar +fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar.sha1 +fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom.sha1 +fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar.sha1 +fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar +fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom.sha1 +fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom +fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom.sha1 +fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom +fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar.sha1 +fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom +fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar +fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom.sha1 +fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom.sha1 +fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar +fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom +fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar.sha1 +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1 +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1 +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1 +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1 +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1 +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1 +fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom +fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1 +fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar.sha1 +fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom.sha1 +fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar +fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom +fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom.sha1 +fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar +fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar.sha1 +fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom +fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom +fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1 +fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom +fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom +fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom +fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1 +fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom.sha1 +fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar +fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar.sha1 +fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom +fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom.sha1 +fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom +fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom.sha1 +fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar +fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar.sha1 +fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom +fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom.sha1 +fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom +fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar +fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar.sha1 +fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom.sha1 +fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom +fetchArtifact com/google/google/1/google-1.pom +fetchArtifact com/google/google/1/google-1.pom.sha1 +fetchArtifact com/google/google/5/google-5.pom.sha1 +fetchArtifact com/google/google/5/google-5.pom +fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom +fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1 +fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom +fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar.sha1 +fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar +fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom.sha1 +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1 +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1 +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar +fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom +fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom.sha1 +fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom.sha1 +fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom +fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom.sha1 +fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom +fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom +fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom.sha1 +fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom +fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1 +fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom.sha1 +fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom +fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom +fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom.sha1 +fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom +fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom.sha1 +fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom.sha1 +fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom +fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar +fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar.sha1 +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1 +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1 +fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom +fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom.sha1 +fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar +fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar.sha1 +fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom +fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar +fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar.sha1 +fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom +fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar.sha1 +fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom +fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar +fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom +fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar.sha1 +fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar +fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar.sha1 +fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom +fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar +fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar +fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar.sha1 +fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom +fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar +fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar.sha1 +fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom +fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar.sha1 +fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar +fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom +fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom.sha1 +fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar.sha1 +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar.sha1 +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom +fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom +fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom.sha1 +fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom +fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom.sha1 +fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom +fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar +fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar.sha1 +fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar +fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom.sha1 +fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar.sha1 +fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom +fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom +fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom.sha1 +fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom.sha1 +fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom +fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom.sha1 +fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom +fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom.sha1 +fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar +fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom +fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar.sha1 +fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar +fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom.sha1 +fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom +fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar.sha1 +fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom.sha1 +fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom +fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom.sha1 +fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar +fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom +fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar.sha1 +fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar.sha1 +fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar +fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom +fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom.sha1 +fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar.sha1 +fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom.sha1 +fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar +fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom +fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom.sha1 +fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar.sha1 +fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom +fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar +fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar +fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom.sha1 +fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom +fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar.sha1 +fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom.sha1 +fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar.sha1 +fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom +fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar +fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom.sha1 +fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom +fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom +fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar.sha1 +fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom.sha1 +fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar +fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom +fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar.sha1 +fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom.sha1 +fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar +fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom.sha1 +fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom +fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar.sha1 +fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar +fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom +fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom.sha1 +fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom.sha1 +fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar +fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom +fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar.sha1 +fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom +fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom.sha1 +fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom.sha1 +fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom +fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom.sha1 +fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom +fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom.sha1 +fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar.sha1 +fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar +fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom +fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom +fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom.sha1 +fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom +fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom.sha1 +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1 +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1 +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1 +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1 +fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar +fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom +fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom.sha1 +fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar.sha1 +fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom +fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1 +fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom.sha1 +fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom +fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom +fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar +fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1 +fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1 +fetchArtifact asm/asm/3.1/asm-3.1.pom.sha1 +fetchArtifact asm/asm/3.1/asm-3.1.pom +fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom +fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom.sha1 +fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar.sha1 +fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar +fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom +fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom.sha1 +fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom +fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1 +fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom +fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1 +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1 +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1 +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1 +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1 +fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom +fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1 +fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom +fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1 +fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar +fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar.sha1 +fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom +fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom.sha1 +fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar.sha1 +fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar +fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom +fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom.sha1 +fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom +fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar.sha1 +fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom.sha1 +fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar +fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar +fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom.sha1 +fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom +fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar.sha1 +fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom.sha1 +fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar +fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom +fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar.sha1 +fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom +fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar +fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar.sha1 +fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom.sha1 +fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom.sha1 +fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom +fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom +fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar.sha1 +fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar +fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom.sha1 +fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar.sha1 +fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar +fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom.sha1 +fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom +fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar +fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom.sha1 +fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom +fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar.sha1 +fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar.sha1 +fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar +fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom +fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom.sha1 +fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom.sha1 +fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar.sha1 +fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom +fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar +fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom +fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom.sha1 +fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar +fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar.sha1 +fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom +fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom.sha1 +fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom.sha1 +fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom +fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar.sha1 +fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar +fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom.sha1 +fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom +fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar +fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar.sha1 +fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom +fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom.sha1 +fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom.sha1 +fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar.sha1 +fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom +fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar +fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom.sha1 +fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom +fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom +fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom.sha1 +fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar +fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar.sha1 +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar.sha1 +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom.sha1 +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom.sha1 +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar.sha1 +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar.sha1 +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom.sha1 +fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar.sha1 +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom.sha1 +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom.sha1 +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar.sha1 +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom +fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar +fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar.sha1 +fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom.sha1 +fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom +fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar +fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar.sha1 +fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom.sha1 +fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom +fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar +fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar +fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom +fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar.sha1 +fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom.sha1 +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1 +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1 +fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom +fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom.sha1 +fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom.sha1 +fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom +fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom +fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom.sha1 +fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom.sha1 +fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom +fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom +fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar +fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar.sha1 +fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom.sha1 +fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom +fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom.sha1 +fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar.sha1 +fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom +fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom.sha1 +fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar +fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom +fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar.sha1 +fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar +fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom.sha1 +fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar.sha1 +fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom +fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar +fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom.sha1 +fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar +fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom +fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar.sha1 +fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom.sha1 +fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom.sha1 +fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom +fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom.sha1 +fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom +fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar +fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom +fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom.sha1 +fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar.sha1 +fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom +fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom.sha1 +fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar +fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom +fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom.sha1 +fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar.sha1 +fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar.sha1 +fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom.sha1 +fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom +fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar +fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom +fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom.sha1 +fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom +fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom.sha1 +fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom.sha1 +fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom +fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom +fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom.sha1 +fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar +fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom +fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar.sha1 +fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom.sha1 +fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1 +fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom +fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1 +fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1 +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1 +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom +fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1 +fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1 +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1 +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar +fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1 +fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom +fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1 +fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom +fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom +fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1 +fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar.sha1 +fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar +fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom +fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom.sha1 +fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar +fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom.sha1 +fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom +fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar.sha1 +fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom.sha1 +fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1 +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1 +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar +fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom +fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar +fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom +fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar +fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom +fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom +fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom +fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar +fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom +fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar +fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1 +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1 +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar +fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar +fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom +fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom +fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom +fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom +fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom.sha1 +fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom.sha1 +fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar +fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom +fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom +fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom +fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom +fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom +fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom +fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom +fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom +fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom +fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom +fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom +fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom +fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom +fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar +fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom +fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom +fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom +fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom +fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom +fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom +fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom +fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom +fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar +fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar.sha1 +fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom +fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom +fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar.sha1 +fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar +fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar.sha1 +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar +fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar +fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom +fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar.sha1 +fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom +fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar +fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar.sha1 +fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom +fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom +fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom +fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom +fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom +fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom +fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom +fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom +fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom +fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom +fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom +fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom +fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom +fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom +fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom +fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom +fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom +fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom +fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom +fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom +fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom +fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom +fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom +fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom +fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom +fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom +fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom +fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar +fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom +fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom +fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom +fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom +fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom +fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom +fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom +fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom +fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom +fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom +fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom +fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom +fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom +fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom +fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom +fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom +fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom +fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom +fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom +fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom +fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom +fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar +fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom +fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1 +fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom +fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar +fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom +fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom.sha1 +fetchArtifact org/apache/apache/7/apache-7.pom +fetchArtifact org/apache/apache/7/apache-7.pom.sha1 +fetchArtifact org/apache/apache/4/apache-4.pom +fetchArtifact org/apache/apache/4/apache-4.pom.sha1 +fetchArtifact org/apache/apache/1/apache-1.pom +fetchArtifact org/apache/apache/1/apache-1.pom.sha1 +fetchArtifact org/apache/apache/9/apache-9.pom +fetchArtifact org/apache/apache/9/apache-9.pom.sha1 +fetchArtifact org/apache/apache/14/apache-14.pom.sha1 +fetchArtifact org/apache/apache/14/apache-14.pom +fetchArtifact org/apache/apache/13/apache-13.pom +fetchArtifact org/apache/apache/13/apache-13.pom.sha1 +fetchArtifact org/apache/apache/3/apache-3.pom +fetchArtifact org/apache/apache/3/apache-3.pom.sha1 +fetchArtifact org/apache/apache/5/apache-5.pom +fetchArtifact org/apache/apache/5/apache-5.pom.sha1 +fetchArtifact org/apache/apache/6/apache-6.pom.sha1 +fetchArtifact org/apache/apache/6/apache-6.pom +fetchArtifact org/apache/apache/11/apache-11.pom +fetchArtifact org/apache/apache/11/apache-11.pom.sha1 +fetchArtifact org/apache/apache/10/apache-10.pom +fetchArtifact org/apache/apache/10/apache-10.pom.sha1 +fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom +fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom.sha1 +fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar.sha1 +fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar +fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom +fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar +fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom.sha1 +fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar.sha1 +fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom +fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom.sha1 +fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom.sha1 +fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar +fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom +fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar.sha1 +fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar +fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar.sha1 +fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom.sha1 +fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom +fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom.sha1 +fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar +fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom +fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar.sha1 +fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar.sha1 +fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom.sha1 +fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom +fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar +fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom +fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar.sha1 +fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar +fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom.sha1 +fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar.sha1 +fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom +fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar +fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom.sha1 +fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar +fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar.sha1 +fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom.sha1 +fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom +fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar +fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom.sha1 +fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom +fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar.sha1 +fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom +fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom +fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom +fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom +fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom +fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom +fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom +fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom +fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom +fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom +fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom.sha1 +fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar.sha1 +fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar +fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom +fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom +fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar +fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom.sha1 +fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar.sha1 +fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar +fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom.sha1 +fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom +fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar.sha1 +fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom +fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar +fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar +fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom +fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom +fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom +fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom +fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom +fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom +fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom.sha1 +fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom.sha1 +fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom +fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar.sha1 +fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar +fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar +fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar.sha1 +fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom +fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom.sha1 +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1 +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1 +fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1 +fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom +fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom +fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar +fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar.sha1 +fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom +fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar +fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar.sha1 +fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar +fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar.sha1 +fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom +fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar.sha1 +fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar +fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom +fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom +fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar.sha1 +fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar +fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom +fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom +fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom.sha1 +fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom +fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom.sha1 +fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar +fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom.sha1 +fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar.sha1 +fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom +fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar +fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar.sha1 +fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom +fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom +fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom.sha1 +fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar +fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar.sha1 +fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom.sha1 +fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom +fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar +fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar.sha1 +fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar.sha1 +fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom.sha1 +fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar +fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom +fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar +fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom +fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar.sha1 +fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom.sha1 +fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar +fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom +fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1 +fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1 +fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom +fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1 +fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom +fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1 +fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1 +fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom +fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1 +fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom +fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom +fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom.sha1 +fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1 +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom +fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom +fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom +fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom +fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom +fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom +fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1 +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom +fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom +fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom +fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1 +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1 +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1 +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1 +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1 +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1 +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom +fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom +fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom +fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom +fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom +fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1 +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1 +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar +fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom +fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom.sha1 +fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar.sha1 +fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar +fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom.sha1 +fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom +fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom +fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom.sha1 +fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar +fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom.sha1 +fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom +fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar.sha1 +fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom +fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar +fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom.sha1 +fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar.sha1 +fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar.sha1 +fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom.sha1 +fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom +fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar +fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar.sha1 +fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom.sha1 +fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom +fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar +fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom +fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar +fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom.sha1 +fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar.sha1 +fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar +fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom +fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom.sha1 +fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar.sha1 +fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar +fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar.sha1 +fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom +fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom.sha1 +fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar +fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom.sha1 +fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar.sha1 +fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom +fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom +fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar +fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar.sha1 +fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom.sha1 +fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom.sha1 +fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom +fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar.sha1 +fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar +fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom +fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom.sha1 +fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar.sha1 +fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom +fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom.sha1 +fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar +fetchArtifact junit/junit/4.11/junit-4.11.jar +fetchArtifact junit/junit/4.11/junit-4.11.pom +fetchArtifact junit/junit/4.11/junit-4.11.jar.sha1 +fetchArtifact junit/junit/4.11/junit-4.11.pom.sha1 +fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom +fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar +fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1 +fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1 +fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom +fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1 +fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom +fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar.sha1 +fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar +fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom.sha1 +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1 +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1 +fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom +fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1 +fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom +fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar +fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar.sha1 +fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom.sha1 +fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom.sha1 +fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar.sha1 +fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar +fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom +fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom +fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar.sha1 +fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom.sha1 +fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar +fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom.sha1 +fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar +fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom +fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar.sha1 +fetchArtifact javax/activation/activation/1.1/activation-1.1.pom.sha1 +fetchArtifact javax/activation/activation/1.1/activation-1.1.pom +fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar.sha1 +fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom +fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar +fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom.sha1 +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1 +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1 +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom +fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar +fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom +fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar.sha1 +fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom.sha1 +fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar.sha1 +fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom +fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom.sha1 +fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar +fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom +fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1 +fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1 +fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar diff --git a/nixpkgs/pkgs/applications/networking/cluster/click/default.nix b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix new file mode 100644 index 000000000000..f4d6fce3545e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix @@ -0,0 +1,27 @@ +{ darwin, fetchFromGitHub, rustPlatform, stdenv }: + +with rustPlatform; + +buildRustPackage rec { + pname = "click"; + version = "0.4.2"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "databricks"; + repo = "click"; + sha256 = "18mpzvvww2g6y2d3m8wcfajzdshagihn59k03xvcknd5d8zxagl3"; + }; + + cargoSha256 = "0298x7wkr4j1l5flmv5vhl1ay8icvh4dlhsh4xi8fd3p8jl9jpqv"; + + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; + + meta = with stdenv.lib; { + description = ''The "Command Line Interactive Controller for Kubernetes"''; + homepage = https://github.com/databricks/click; + license = [ licenses.asl20 ]; + maintainers = [ maintainers.mbode ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix new file mode 100644 index 000000000000..88dbd177da04 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + pname = "cni"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "containernetworking"; + repo = pname; + rev = "v${version}"; + sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; + }; + + goPackagePath = "github.com/containernetworking/cni"; + meta = with stdenv.lib; { + description = "Container Network Interface - networking for Linux containers"; + license = licenses.asl20; + homepage = https://github.com/containernetworking/cni; + maintainers = with maintainers; [ offline vdemeester ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins-deps.nix new file mode 100644 index 000000000000..a6bbd333be43 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins-deps.nix @@ -0,0 +1,210 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/Microsoft/go-winio"; + fetch = { + type = "git"; + url = "https://github.com/Microsoft/go-winio"; + rev = "v0.4.11"; + sha256 = "14y1gryr3pb3zy09v2g8dh89m363rfd9sch0wgbabh531hfx72vn"; + }; + } + { + goPackagePath = "github.com/Microsoft/hcsshim"; + fetch = { + type = "git"; + url = "https://github.com/Microsoft/hcsshim"; + rev = "v0.7.4"; + sha256 = "0hky9p6xvkkx2jfkd4fy2d6iaikvlzalyw67gypyqyxygf2hsshg"; + }; + } + { + goPackagePath = "github.com/alexflint/go-filemutex"; + fetch = { + type = "git"; + url = "https://github.com/alexflint/go-filemutex"; + rev = "72bdc8eae2ae"; + sha256 = "082y6y9zv40q3kaqvsv6fyaw2fc42j0sn9z0dl9rbiz4szixj3c4"; + }; + } + { + goPackagePath = "github.com/buger/jsonparser"; + fetch = { + type = "git"; + url = "https://github.com/buger/jsonparser"; + rev = "f4dd9f5a6b44"; + sha256 = "12qa2n33s7yz88ywpr3k9kg3b4gm6rqgnv28iyikyxw8h5jascz5"; + }; + } + { + goPackagePath = "github.com/containernetworking/cni"; + fetch = { + type = "git"; + url = "https://github.com/containernetworking/cni"; + rev = "v0.7.0"; + sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; + }; + } + { + goPackagePath = "github.com/coreos/go-iptables"; + fetch = { + type = "git"; + url = "https://github.com/coreos/go-iptables"; + rev = "v0.4.1"; + sha256 = "0id1npqw3rd5rrkslf6i9yy6lpmd7l5qcglln38g85ylq7inysyi"; + }; + } + { + goPackagePath = "github.com/coreos/go-systemd"; + fetch = { + type = "git"; + url = "https://github.com/coreos/go-systemd"; + rev = "39ca1b05acc7"; + sha256 = "1kzqrrzqspa5qm7kwslxl3m16lqzns23c24rv474ajzwmj3ixmx1"; + }; + } + { + goPackagePath = "github.com/d2g/dhcp4"; + fetch = { + type = "git"; + url = "https://github.com/d2g/dhcp4"; + rev = "f0e4d29ff023"; + sha256 = "07gn9bjvnlfz2jv9wdq3gxxxm9lpwgrwk8z65072jdrz9rs9izpr"; + }; + } + { + goPackagePath = "github.com/d2g/dhcp4client"; + fetch = { + type = "git"; + url = "https://github.com/d2g/dhcp4client"; + rev = "bed07e1bc5b8"; + sha256 = "0kyjalv1kah7sk3i96abg71cgy5s9kzpff2zc7mwj69vicbj7mi3"; + }; + } + { + goPackagePath = "github.com/d2g/dhcp4server"; + fetch = { + type = "git"; + url = "https://github.com/d2g/dhcp4server"; + rev = "477b11cea4dc"; + sha256 = "010dpw6cxrsm6dm49w1q6qpz5xz3lbi5viz6wywxk49fxvnzmx9l"; + }; + } + { + goPackagePath = "github.com/godbus/dbus"; + fetch = { + type = "git"; + url = "https://github.com/godbus/dbus"; + rev = "885f9cc04c9c"; + sha256 = "0wjpaj4vr5lvpnwc5faf3qizd7zd2v9yq0fm0558wap1hiyqb8x8"; + }; + } + { + goPackagePath = "github.com/j-keck/arping"; + fetch = { + type = "git"; + url = "https://github.com/j-keck/arping"; + rev = "2cf9dc699c56"; + sha256 = "1bid8mpx3j4546ni0a6q5xyz7hb854g95qnxqmg5jzs9vrcird3c"; + }; + } + { + goPackagePath = "github.com/juju/errors"; + fetch = { + type = "git"; + url = "https://github.com/juju/errors"; + rev = "22422dad46e1"; + sha256 = "1766ys24y9qgngaqbx0g84lmh54b3369v8hk5fa1k8si2d34fxas"; + }; + } + { + goPackagePath = "github.com/mattn/go-shellwords"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-shellwords"; + rev = "v1.0.3"; + sha256 = "1pg7pl25wvpl2dbpyrv9p1r7prnqimxlf6136vn0dfm54j2x4mnr"; + }; + } + { + goPackagePath = "github.com/onsi/ginkgo"; + fetch = { + type = "git"; + url = "https://github.com/onsi/ginkgo"; + rev = "7f8ab55aaf3b"; + sha256 = "0nas6wqdym4jx42kw9wj80b58r69k9qhnvglz009lj34g5gba7rw"; + }; + } + { + goPackagePath = "github.com/onsi/gomega"; + fetch = { + type = "git"; + url = "https://github.com/onsi/gomega"; + rev = "2152b45fa28a"; + sha256 = "0amjlkawp84mmdqjgdamf93p1546cla6h4wwrx7hf5r862r2qcw2"; + }; + } + { + goPackagePath = "github.com/safchain/ethtool"; + fetch = { + type = "git"; + url = "https://github.com/safchain/ethtool"; + rev = "42ed695e3de8"; + sha256 = "0n5hkrzc1bh46nidcssx4539kvcmgj501v3kzh2pljpg27509daj"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "v1.0.6"; + sha256 = "029irw2lsbqi944gdrbkwdw0m2794sqni4g21gsnmz142hbzds8c"; + }; + } + { + goPackagePath = "github.com/vishvananda/netlink"; + fetch = { + type = "git"; + url = "https://github.com/vishvananda/netlink"; + rev = "023a6dafdcdf"; + sha256 = "1i5q8r8rg7lxzvq2vhbf25lrkzdlgficfv0bxg9rf7cgg6z819sn"; + }; + } + { + goPackagePath = "github.com/vishvananda/netns"; + fetch = { + type = "git"; + url = "https://github.com/vishvananda/netns"; + rev = "13995c7128cc"; + sha256 = "1zk6w8158qi4niva5rijchbv9ixgmijsgqshh54wdaav4xrhjshn"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "7c1a557ab941"; + sha256 = "1f1q9mby8m7ws3gbj90v0prhnf4g2sgf74azmw31kzwd6azlar3m"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "49bb7cea24b1"; + sha256 = "111q4qm3hcjvzvyv9y5rz8ydnyg48rckcygxqy6gv63q618wz6gn"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "66b7b1311ac8"; + sha256 = "00ny4r2bbj6rz939iy9g699acqydq7rfi6r6awn25w9i2dld9m13"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix new file mode 100644 index 000000000000..d0186fb9b4c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, fetchFromGitHub, go, removeReferencesTo, buildGoPackage }: +buildGoPackage rec { + pname = "cni-plugins"; + version = "0.8.3"; + + src = fetchFromGitHub { + owner = "containernetworking"; + repo = "plugins"; + rev = "v${version}"; + sha256 = "0dc4fs08x4x518yhgvq3drjvansnc0cb8rm4h5wiw7k3whjii3cd"; + }; + + goDeps = ./plugins-deps.nix; + goPackagePath = "github.com/containernetworking/plugins"; + subPackages = [ + "plugins/meta/bandwidth" + "plugins/meta/firewall" + "plugins/meta/flannel" + "plugins/meta/portmap" + "plugins/meta/sbr" + "plugins/meta/tuning" + "plugins/main/bridge" + "plugins/main/host-device" + "plugins/main/ipvlan" + "plugins/main/loopback" + "plugins/main/macvlan" + "plugins/main/ptp" + "plugins/main/vlan" + "plugins/ipam/dhcp" + "plugins/ipam/host-local" + "plugins/ipam/static" + ]; + meta = with lib; { + description = "Some standard networking plugins, maintained by the CNI team"; + homepage = https://github.com/containernetworking/plugins; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ cstrahan saschagrunert ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix new file mode 100644 index 000000000000..115dc3835fc5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix @@ -0,0 +1,33 @@ +# This file was generated by go2nix. +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "machine"; + version = "0.16.1"; + + goPackagePath = "github.com/docker/machine"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "docker"; + repo = "machine"; + sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy"; + }; + + postInstall = '' + mkdir -p \ + $bin/share/bash-completion/completions/ \ + $bin/share/zsh/site-functions/ + + cp go/src/github.com/docker/machine/contrib/completion/bash/* $bin/share/bash-completion/completions/ + cp go/src/github.com/docker/machine/contrib/completion/zsh/* $bin/share/zsh/site-functions/ + ''; + + meta = with stdenv.lib; { + homepage = https://docs.docker.com/machine/; + description = "Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage Docker Engine on the hosts."; + license = licenses.asl20; + maintainers = with maintainers; [ offline tailhook ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix new file mode 100644 index 000000000000..e321b2c1b0ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix @@ -0,0 +1,21 @@ +# This file was generated by go2nix. +[ + { + goPackagePath = "github.com/docker/machine"; + fetch = { + type = "git"; + url = "https://github.com/docker/machine"; + rev = "457c02d06a155827c1c4af9b5ab38c0b6b4e48ea"; + sha256 = "0hx5bhjc7q9ml6h6d2a5csqg6vqwjj68599q0cccw3pcfrb34gmd"; + }; + } + { + goPackagePath = "github.com/libvirt/libvirt-go"; + fetch = { + type = "git"; + url = "https://github.com/libvirt/libvirt-go"; + rev = "e9642325d747c353ca7b76b4893d5dbdc81c296f"; + sha256 = "1822b2kbwyxb2gigbiashcs7v4fsyw7k3sdlqh43ga0l6058fmhl"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix new file mode 100644 index 000000000000..de122dd2a5a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix @@ -0,0 +1,28 @@ +# This file was generated by go2nix. +{ stdenv, buildGoPackage, fetchFromGitHub, libvirt, pkgconfig }: + +buildGoPackage rec { + pname = "docker-machine-kvm"; + version = "0.10.0"; + + goPackagePath = "github.com/dhiltgen/docker-machine-kvm"; + goDeps = ./kvm-deps.nix; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "dhiltgen"; + repo = "docker-machine-kvm"; + sha256 = "0ch4zwb6h7hnr5l3skj1daypvpyms2i666lbnmakpw1fw3zvjmgy"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libvirt ]; + + meta = with stdenv.lib; { + homepage = https://github.com/dhiltgen/docker-machine-kvm; + description = "KVM driver for docker-machine."; + license = licenses.asl20; + maintainers = with maintainers; [ offline ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix new file mode 100644 index 000000000000..eb2946cec771 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix @@ -0,0 +1,32 @@ +{ stdenv, buildGoModule, libvirt, pkgconfig, minikube }: + +buildGoModule rec { + pname = "docker-machine-kvm2"; + version = minikube.version; + + goPackagePath = "k8s.io/minikube"; + subPackages = [ "cmd/drivers/kvm" ]; + + src = minikube.src; + + modSha256 = minikube.go-modules.outputHash; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libvirt ]; + + preBuild = '' + export buildFlagsArray=(-ldflags="-X k8s.io/minikube/pkg/drivers/kvm/version.VERSION=v${version}") + ''; + + postInstall = '' + mv $out/bin/kvm $out/bin/docker-machine-driver-kvm2 + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/kubernetes/minikube/blob/master/docs/drivers.md; + description = "KVM2 driver for docker-machine."; + license = licenses.asl20; + maintainers = with maintainers; [ tadfisher ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix new file mode 100644 index 000000000000..99cb7b98f5cc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix @@ -0,0 +1,21 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/docker/machine"; + fetch = { + type = "git"; + url = "https://github.com/docker/machine"; + rev = "5b274558ea6ca822c06dd407a4e774a0105c3f60"; + sha256 = "1wdq9h4bx7awgclh969gvmcnl9jvgv7ldfklnclh5iv47mi7q22d"; + }; + } + { + goPackagePath = "github.com/zchee/libhyperkit"; + fetch = { + type = "git"; + url = "https://github.com/zchee/libhyperkit"; + rev = "1a19a7693fac32b46ec6cdd22da6fbec974447fc"; + sha256 = "119f5gcl24znwnmi837jk667asd3lirx32jldpd4mbyb3sm9nz24"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix new file mode 100644 index 000000000000..1c2caff50d53 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix @@ -0,0 +1,27 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, Hypervisor, vmnet }: + +buildGoPackage rec { + pname = "docker-machine-xhyve"; + version = "0.3.3"; + + goPackagePath = "github.com/zchee/docker-machine-driver-xhyve"; + goDeps = ./xhyve-deps.nix; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "zchee"; + repo = "docker-machine-driver-xhyve"; + sha256 = "0rj6pyqp4yv4j28bglqjs95rip5i77vv8mrkmqv1rxrsl3i8aqqy"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ Hypervisor vmnet ]; + + meta = with stdenv.lib; { + homepage = https://github.com/zchee/docker-machine-driver-xhyve; + description = "Xhyve driver for docker-machine."; + license = licenses.bsd3; + maintainers = with maintainers; [ periklis ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix new file mode 100644 index 000000000000..f8c73c65991c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchurl, makeWrapper, jre +, version ? "1.6" }: + +let + versionMap = { + "1.5" = { + flinkVersion = "1.5.5"; + sha256 = "18wqcqi3gyqd40nspih99gq7ylfs20b35f4dcrspffagwkfp2l4z"; + }; + "1.6" = { + flinkVersion = "1.9.0"; + sha256 = "1dzfcmqz5j4b545wq2q3xb2xkbhqllr04s3av1afv54y61l5y952"; + }; + }; +in + +with versionMap.${version}; + +stdenv.mkDerivation rec { + name = "flink-${flinkVersion}"; + + src = fetchurl { + url = "mirror://apache/flink/${name}/${name}-bin-scala_2.11.tgz"; + inherit sha256; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = [ jre ]; + + installPhase = '' + rm bin/*.bat + + mkdir -p $out/bin $out/opt/flink + mv * $out/opt/flink/ + makeWrapper $out/opt/flink/bin/flink $out/bin/flink \ + --prefix PATH : ${jre}/bin + + cat <<EOF >> $out/opt/flink/conf/flink-conf.yaml + env.java.home: ${jre}" + env.log.dir: /tmp/flink-logs + EOF + ''; + + meta = with stdenv.lib; { + description = "A distributed stream processing framework"; + homepage = https://flink.apache.org; + downloadPage = https://flink.apache.org/downloads.html; + license = licenses.asl20; + platforms = platforms.all; + maintainers = with maintainers; [ mbode ]; + repositories.git = git://git.apache.org/flink.git; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix new file mode 100644 index 000000000000..904eabfcda82 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "fluxctl"; + version = "1.16.0"; + + src = fetchFromGitHub { + owner = "weaveworks"; + repo = "flux"; + rev = version; + sha256 = "1yk78w9cwssk5y69iapfzqf7mnrkam3w64x4zsx3zjpdmvp9dq7l"; + }; + + modSha256 = "17rh8yilxqv0dwljwm5ay43diwcy5pa1g2jff9wyhsh8q7sy9wln"; + + subPackages = [ "cmd/fluxctl" ]; + + meta = with stdenv.lib; { + description = "CLI client for Flux, the GitOps Kubernetes operator"; + homepage = "https://github.com/fluxcd/flux"; + license = licenses.asl20; + maintainers = with maintainers; [ Gonzih filalex77 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix new file mode 100644 index 000000000000..9bf801ee93d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix @@ -0,0 +1,40 @@ +{ lib, fetchFromGitHub, rustPlatform, pkgconfig +, libsodium, libarchive, openssl }: + +with rustPlatform; + +buildRustPackage rec { + pname = "habitat"; + version = "0.30.2"; + + src = fetchFromGitHub { + owner = "habitat-sh"; + repo = "habitat"; + rev = version; + sha256 = "0pqrm85pd9hqn5fwqjbyyrrfh4k7q9mi9qy9hm8yigk5l8mw44y1"; + }; + + cargoSha256 = "1ahfm5agvabqqqgjsyjb95xxbc7mng1mdyclcakwp1m1qdkxx9p0"; + + buildInputs = [ libsodium libarchive openssl ]; + + nativeBuildInputs = [ pkgconfig ]; + + cargoBuildFlags = ["--package hab"]; + + checkPhase = '' + runHook preCheck + echo "Running cargo test" + cargo test --package hab + runHook postCheck + ''; + + meta = with lib; { + description = "An application automation framework"; + homepage = https://www.habitat.sh; + license = licenses.asl20; + maintainers = [ maintainers.rushmorem ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + broken = true; # mark temporary as broken due git dependencies + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix new file mode 100644 index 000000000000..5fc35e6a0af1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix @@ -0,0 +1,161 @@ +{ stdenv, fetchurl, makeWrapper, pkgconfig, which, maven, cmake, jre, bash +, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2 +}: + +let + common = { version, sha256, dependencies-sha256, tomcat, opensslPkg ? openssl }: + let + # compile the hadoop tarball from sources, it requires some patches + binary-distributon = stdenv.mkDerivation rec { + name = "hadoop-${version}-bin"; + src = fetchurl { + url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}-src.tar.gz"; + inherit sha256; + }; + + postUnpack = stdenv.lib.optionalString (tomcat != null) '' + install -D ${tomcat.src} $sourceRoot/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/apache-tomcat-${tomcat.version}.tar.gz + install -D ${tomcat.src} $sourceRoot/hadoop-common-project/hadoop-kms/downloads/apache-tomcat-${tomcat.version}.tar.gz + ''; + + # perform fake build to make a fixed-output derivation of dependencies downloaded from maven central (~100Mb in ~3000 files) + fetched-maven-deps = stdenv.mkDerivation { + name = "hadoop-${version}-maven-deps"; + inherit src postUnpack nativeBuildInputs buildInputs; + buildPhase = '' + while mvn package -Dmaven.repo.local=$out/.m2 ${mavenFlags} -Dmaven.wagon.rto=5000; [ $? = 1 ]; do + echo "timeout, restart maven to continue downloading" + done + ''; + # keep only *.{pom,jar,xml,sha1,so,dll,dylib} and delete all ephemeral files with lastModified timestamps inside + installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = dependencies-sha256; + }; + + nativeBuildInputs = [ maven cmake pkgconfig ]; + buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 ]; + # most of the hardcoded pathes are fixed in 2.9.x and 3.0.0, this list of patched files might be reduced when 2.7.x and 2.8.x will be deprecated + postPatch = '' + for file in hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/HardLink.java \ + hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DockerContainerExecutor.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java \ + hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/MRJobConfig.java; do + if [ -f "$file" ]; then + substituteInPlace "$file" \ + --replace '/usr/bin/stat' 'stat' \ + --replace '/bin/bash' 'bash' \ + --replace '/bin/ls' 'ls' \ + --replace '/bin/mv' 'mv' + fi + done + ''; + dontConfigure = true; # do not trigger cmake hook + mavenFlags = "-Drequire.snappy -Drequire.bzip2 -DskipTests -Pdist,native -e"; + buildPhase = '' + # 'maven.repo.local' must be writable + mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetched-maven-deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 ${mavenFlags} + # remove runtime dependency on $jdk/jre/lib/amd64/server/libjvm.so + patchelf --set-rpath ${stdenv.lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhadoop.so.1.0.0 + patchelf --set-rpath ${stdenv.lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhdfs.so.0.0.0 + ''; + installPhase = "mv hadoop-dist/target/hadoop-${version} $out"; + }; + in + stdenv.mkDerivation { + pname = "hadoop"; + inherit version; + + src = binary-distributon; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/share/doc/hadoop + cp -dpR * $out/ + mv $out/*.txt $out/share/doc/hadoop/ + + # + # Do not use `wrapProgram` here, script renaming may result to weird things: http://i.imgur.com/0Xee013.png + # + mkdir -p $out/bin.wrapped + for n in $out/bin/*; do + if [ -f "$n" ]; then # only regular files + mv $n $out/bin.wrapped/ + makeWrapper $out/bin.wrapped/$(basename $n) $n \ + --prefix PATH : "${stdenv.lib.makeBinPath [ which jre bash coreutils ]}" \ + --prefix JAVA_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ opensslPkg snappy zlib bzip2 ]}" \ + --set JAVA_HOME "${jre}" \ + --set HADOOP_PREFIX "$out" + fi + done + ''; + + meta = with stdenv.lib; { + homepage = "http://hadoop.apache.org/"; + description = "Framework for distributed processing of large data sets across clusters of computers"; + license = licenses.asl20; + + longDescription = '' + The Apache Hadoop software library is a framework that allows for + the distributed processing of large data sets across clusters of + computers using a simple programming model. It is designed to + scale up from single servers to thousands of machines, each + offering local computation and storage. Rather than rely on + hardware to deliver high-avaiability, the library itself is + designed to detect and handle failures at the application layer, + so delivering a highly-availabile service on top of a cluster of + computers, each of which may be prone to failures. + ''; + maintainers = with maintainers; [ volth ]; + platforms = [ "x86_64-linux" ]; + }; + }; + + tomcat_6_0_48 = rec { + version = "6.0.48"; + src = fetchurl { + # do not use "mirror://apache/" here, tomcat-6 is legacy and has been removed from the mirrors + url = "https://archive.apache.org/dist/tomcat/tomcat-6/v${version}/bin/apache-tomcat-${version}.tar.gz"; + sha256 = "1w4jf28g8p25fmijixw6b02iqlagy2rvr57y3n90hvz341kb0bbc"; + }; + }; + +in { + hadoop_2_7 = common { + version = "2.7.7"; + sha256 = "1ahv67f3lwak3kbjvnk1gncq56z6dksbajj872iqd0awdsj3p5rf"; + dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r"; + tomcat = tomcat_6_0_48; + opensslPkg = openssl_1_0_2; + }; + hadoop_2_8 = common { + version = "2.8.4"; + sha256 = "16c3ljhrzibkjn3y1bmjxdgf0kn60l23ay5hqpp7vpbnqx52x68w"; + dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03"; + tomcat = tomcat_6_0_48; + opensslPkg = openssl_1_0_2; + }; + hadoop_2_9 = common { + version = "2.9.1"; + sha256 = "0qgmpfbpv7f521fkjy5ldzdb4lwiblhs0hyl8qy041ws17y5x7d7"; + dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x"; + tomcat = tomcat_6_0_48; + opensslPkg = openssl_1_0_2; + }; + hadoop_3_0 = common { + version = "3.0.3"; + sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5"; + dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m"; + tomcat = null; + }; + hadoop_3_1 = common { + version = "3.1.1"; + sha256 = "04hhdbyd4x1hy0fpy537f8mi0864hww97zap29x7dk1smrffwabd"; + dependencies-sha256 = "1q63jsxg3d31x0p8hvhpvbly2b07almyzsbhwphbczl3fhlqgiwn"; + tomcat = null; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix new file mode 100644 index 000000000000..45b6e9dcf334 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix @@ -0,0 +1,32 @@ +{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "helm"; + version = "3.0.1"; + + src = fetchFromGitHub { + owner = "helm"; + repo = "helm"; + rev = "v${version}"; + sha256 = "0l5rmmrb6b57w1szwp6g7ad3xv0pgvc394mzjr4bi3bzcjsn7wny"; + }; + modSha256 = "0xjzzwmq3i77anb7w2qfnz7vc0gxq02lylj0xs6dzwl543winshm"; + + goPackagePath = "k8s.io/helm"; + subPackages = [ "cmd/helm" ]; + buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.gitCommit=v${version}" ]; + + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + $out/bin/helm completion bash > helm.bash + $out/bin/helm completion zsh > helm.zsh + installShellCompletion helm.{bash,zsh} + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/kubernetes/helm; + description = "A package manager for kubernetes"; + license = licenses.asl20; + maintainers = with maintainers; [ rlupton20 edude03 saschagrunert ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix new file mode 100644 index 000000000000..6decad2f9fbe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix @@ -0,0 +1,39 @@ +{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm, ... }: + +let version = "0.85.0"; in + +buildGoModule { + pname = "helmfile"; + inherit version; + + src = fetchFromGitHub { + owner = "roboll"; + repo = "helmfile"; + rev = "v${version}"; + sha256 = "0k1019ddzhhl8kn70ibqf6srlfv92jkc26m78pic5c7ibqyq5fds"; + }; + + goPackagePath = "github.com/roboll/helmfile"; + + modSha256 = "1npjm3rs32c1rwx8xb9s03jhd156da6p66hpaqccm7b6zxsm32nv"; + + nativeBuildInputs = [ makeWrapper ]; + + buildFlagsArray = '' + -ldflags= + -X main.Version=${version} + ''; + + postInstall = '' + wrapProgram $out/bin/helmfile \ + --prefix PATH : ${lib.makeBinPath [ kubernetes-helm ]} + ''; + + meta = { + description = "Deploy Kubernetes Helm charts"; + homepage = https://github.com/roboll/helmfile; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pneumaticat yurrriq ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix new file mode 100644 index 000000000000..b9413577b104 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "heptio-ark"; + version = "0.10.0"; + + goPackagePath = "github.com/heptio/ark"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "heptio"; + repo = "ark"; + sha256 = "18h9hvp95va0hyl268gnzciwy1dqmc57bpifbj885870rdfp0ffv"; + }; + + postInstall = "rm $bin/bin/issue-template-gen"; + + meta = with stdenv.lib; { + description = "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes"; + homepage = https://heptio.github.io/ark/; + license = licenses.asl20; + maintainers = [maintainers.mbode]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix new file mode 100644 index 000000000000..4de0c3fbd7b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix @@ -0,0 +1,28 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "hetzner-kube"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "xetys"; + repo = "hetzner-kube"; + rev = version; + sha256 = "11202i3340vaz8xh59gwj5x0djcgbzq9jfy2214lcpml71qc85f0"; + }; + + modSha256 = "1j04xyjkz7jcqrs5p5z94jqagrzcxjr9m3lyp8i91c0ymxf5m2g3"; + + buildFlagsArray = '' + -ldflags= + -X github.com/xetys/hetzner-kube/cmd.version=${version} + ''; + + meta = { + description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud"; + homepage = https://github.com/xetys/hetzner-kube; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ eliasp ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/jx/3321-fix-location-of-thrift.patch b/nixpkgs/pkgs/applications/networking/cluster/jx/3321-fix-location-of-thrift.patch new file mode 100644 index 000000000000..223d6c6c2477 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/jx/3321-fix-location-of-thrift.patch @@ -0,0 +1,36 @@ +From 40b8eaacb3a24c466c17c8a65938330d5805b112 Mon Sep 17 00:00:00 2001 +From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com> +Date: Fri, 8 Mar 2019 14:10:11 -0800 +Subject: [PATCH] chore: fix the location of thrift + +Thrift is no longer available at the git.apache.org and it's now +distributed on GitHub at github.com/apache/thrift. + +fixes #3320 +--- + go.mod | 2 ++ + go.sum | 1 + + 2 files changed, 3 insertions(+) + +diff --git a/go.mod b/go.mod +index 04bcc84cc..e26c4cf1d 100644 +--- a/go.mod ++++ b/go.mod +@@ -184,3 +184,5 @@ replace k8s.io/metrics => k8s.io/metrics v0.0.0-20181128195641-3954d62a524d + replace k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190122181752-bebe27e40fb7 + + replace k8s.io/client-go => k8s.io/client-go v2.0.0-alpha.0.0.20190115164855-701b91367003+incompatible ++ ++replace git.apache.org/thrift.git => github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999 +diff --git a/go.sum b/go.sum +index c9fdf8768..6ed69e69d 100644 +--- a/go.sum ++++ b/go.sum +@@ -87,6 +87,7 @@ github.com/antham/chyle v1.4.0/go.mod h1:D94Z4aE/ECudyNoTHwkhqu77mjGPZtfPG8dNoeI + github.com/antham/envh v1.2.0/go.mod h1:ocIRPHuwwjyBVBtuUJOJc2TYzGg+d23xSAZexl4y9hQ= + github.com/antham/strumt v0.0.0-20171215230529-6776189777d3/go.mod h1:sE7EYIUE0nQzPiv5zQAmw2aVkei0j2xmb4gTIIqSFSI= + github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= ++github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= + github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= + github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= + github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= diff --git a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix new file mode 100644 index 000000000000..88aa8777ee5e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix @@ -0,0 +1,41 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + name = "jx"; + version = "1.3.967"; + + src = fetchFromGitHub { + owner = "jenkins-x"; + repo = "jx"; + rev = "v${version}"; + sha256 = "0a25m7sz134kch21bg6l86kvwl4cg6babqf57kqidq6kid1zgdaq"; + }; + + patches = [ + # https://github.com/jenkins-x/jx/pull/3321 + ./3321-fix-location-of-thrift.patch + ]; + + modSha256 = "0ljf0c0c3pc12nmhdbrwflcaj6hs8igzjw5hi6fyhi6n9cy87vac"; + + subPackages = [ "cmd/jx" ]; + + buildFlagsArray = '' + -ldflags= + -X github.com/jenkins-x/jx/pkg/version.Version=${version} + -X github.com/jenkins-x/jx/pkg/version.Revision=${version} + ''; + + meta = with lib; { + description = "JX is a command line tool for installing and using Jenkins X."; + homepage = https://jenkins-x.io; + longDescription = '' + Jenkins X provides automated CI+CD for Kubernetes with Preview + Environments on Pull Requests using Jenkins, Knative Build, Prow, + Skaffold and Helm. + ''; + license = licenses.asl20 ; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix new file mode 100644 index 000000000000..6fbad55f8070 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix @@ -0,0 +1,31 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "k9s"; + version = "0.9.3"; + # rev is the release commit, mainly for version command output + rev = "1a9a83b34cdd0c9b4e793ed6b4b5c16ea1a949a0"; + + src = fetchFromGitHub { + owner = "derailed"; + repo = "k9s"; + rev = version; + sha256 = "0k27mfccz563r18zlbaxll305vrmrx19ym6znsikvqxlmhy86g36"; + }; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/derailed/k9s/cmd.version=${version} + -X github.com/derailed/k9s/cmd.commit=${rev} + ''; + + modSha256 = "09rwbl8zd06ax5hidm5l1schwqvsr5ndlqh09w1rq9fqjijy649y"; + + meta = with stdenv.lib; { + description = "Kubernetes CLI To Manage Your Clusters In Style."; + homepage = https://github.com/derailed/k9s; + license = licenses.asl20; + maintainers = with maintainers; [ Gonzih ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix new file mode 100644 index 000000000000..52abc3189903 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, perl , taktuk}: + +stdenv.mkDerivation rec { + version = "1.2.2"; + pname = "kanif"; + + src = fetchurl { + url = "https://gforge.inria.fr/frs/download.php/26773/${pname}-${version}.tar.gz"; + sha256 = "3f0c549428dfe88457c1db293cfac2a22b203f872904c3abf372651ac12e5879"; + }; + + preBuild = '' + substituteInPlace ./kanif --replace "/usr/bin/perl" "${perl}/bin/perl" + substituteInPlace ./kanif --replace '$taktuk_command = "taktuk";' '$taktuk_command = "${taktuk}/bin/taktuk";' + ''; + + meta = { + description = "Cluster management and administration swiss army knife"; + longDescription = '' + Kanif is a tool for high performance computing clusters management and + administration. It combines the main functionalities of well-known cluster + management tools such as c3, pdsh and dsh, and mimics their syntax. It + provides three tools to run the same command on several nodes ("parallel + ssh", using the 'kash' command), to broadcast the copy of files or + directories to several nodes ('kaput' command), and to gather several + remote files or directories locally ('kaget' command). It relies on TakTuk + for efficiency and scalability.''; + homepage = http://taktuk.gforge.inria.fr/kanif; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.bzizou ]; + platforms = stdenv.lib.platforms.linux; + }; + +} + diff --git a/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix new file mode 100644 index 000000000000..1a14e1ed273e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix @@ -0,0 +1,23 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "kompose"; + version = "1.18.0"; + + goPackagePath = "github.com/kubernetes/kompose"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "kubernetes"; + repo = "kompose"; + sha256 = "1hb4bs710n9fghphhfakwg42wjscf136dcr05zwwfg7iyqx2cipc"; + }; + + meta = with stdenv.lib; { + description = "A tool to help users who are familiar with docker-compose move to Kubernetes"; + homepage = https://github.com/kubernetes/kompose; + license = licenses.asl20; + maintainers = with maintainers; [ thpham vdemeester ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix new file mode 100644 index 000000000000..359b289dbbcd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix @@ -0,0 +1,35 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "kontemplate"; + version = "1.8.0"; + goPackagePath = "github.com/tazjin/kontemplate"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "tazjin"; + repo = "kontemplate"; + rev = "v${version}"; + sha256 = "123mjmmm4hynraq1fpn3j5i0a1i87l265kkjraxxxbl0zacv74i1"; + }; + + meta = with lib; { + description = "Extremely simple Kubernetes resource templates"; + homepage = "http://kontemplate.works"; + downloadPage = "https://github.com/tazjin/kontemplate/releases"; + license = licenses.gpl3; + maintainers = with maintainers; [ mbode tazjin ]; + platforms = platforms.unix; + repositories.git = git://github.com/tazjin/kontemplate.git; + + longDescription = '' + Kontemplate is a simple CLI tool that can take sets of + Kubernetes resource files with placeholders and insert values + per environment. + + It can be used as a simple way of deploying the same set of + resources to different Kubernetes contexts with context-specific + configuration. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix new file mode 100644 index 000000000000..7693968bd550 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix @@ -0,0 +1,111 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.3.0 +[ + { + goPackagePath = "github.com/Masterminds/goutils"; + fetch = { + type = "git"; + url = "https://github.com/Masterminds/goutils"; + rev = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0"; + sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq"; + }; + } + { + goPackagePath = "github.com/Masterminds/semver"; + fetch = { + type = "git"; + url = "https://github.com/Masterminds/semver"; + rev = "5bc3b9184d48f1412b300b87a200cf020d9254cf"; + sha256 = "1vdfm653v50jf63cw0kg2hslx50cn4mk6lj3p51bi11jrg48kfng"; + }; + } + { + goPackagePath = "github.com/Masterminds/sprig"; + fetch = { + type = "git"; + url = "https://github.com/Masterminds/sprig"; + rev = "6f509977777c33eae63b2136d97f7b976cb971cc"; + sha256 = "05h9k6fhjxnpwlihj3z02q9kvqvnq53jix0ab84sx0666bci3cdh"; + }; + } + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "fb15b899a75114aa79cc930e33c46b577cc664b1"; + sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "c3de453c63f4bdb4dadffab9805ec00426c505f7"; + sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my"; + }; + } + { + goPackagePath = "github.com/ghodss/yaml"; + fetch = { + type = "git"; + url = "https://github.com/ghodss/yaml"; + rev = "25d852aebe32c875e9c044af3eef9c7dc6bc777f"; + sha256 = "1w9yq0bxzygc4qwkwwiy7k1k1yviaspcqqv18255k2xkjv5ipccz"; + }; + } + { + goPackagePath = "github.com/google/uuid"; + fetch = { + type = "git"; + url = "https://github.com/google/uuid"; + rev = "c2e93f3ae59f2904160ceaab466009f965df46d6"; + sha256 = "0zw8fvl6jqg0fmv6kmvhss0g4gkrbvgyvl2zgy5wdbdlgp4fja0h"; + }; + } + { + goPackagePath = "github.com/huandu/xstrings"; + fetch = { + type = "git"; + url = "https://github.com/huandu/xstrings"; + rev = "8bbcf2f9ccb55755e748b7644164cd4bdce94c1d"; + sha256 = "1ivvc95514z63k7cpz71l0dwlanffmsh1pijhaqmp41kfiby8rsx"; + }; + } + { + goPackagePath = "github.com/imdario/mergo"; + fetch = { + type = "git"; + url = "https://github.com/imdario/mergo"; + rev = "4c317f2286be3bd0c4f1a0e622edc6398ec4656d"; + sha256 = "0bihha1qsgfjk14yv1hwddv3d8dzxpbjlaxwwyys6lhgxz1cr9h9"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "9756ffdc24725223350eb3266ffb92590d28f278"; + sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8"; + }; + } + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "947dcec5ba9c011838740e680966fd7087a71d0d"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "51d6538a90f86fe93ac480b35f37b2be17fef232"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix new file mode 100644 index 000000000000..267f25f8bb58 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix @@ -0,0 +1,73 @@ +{ stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata }: + +let + goPackagePath = "k8s.io/kops"; + + generic = { version, sha256, ...}@attrs: + let attrs' = builtins.removeAttrs attrs ["version" "sha256"] ; in + buildGoPackage { + pname = "kops"; + inherit version; + + inherit goPackagePath; + + src = fetchFromGitHub { + rev = version; + owner = "kubernetes"; + repo = "kops"; + inherit sha256; + }; + + buildInputs = [go-bindata]; + subPackages = ["cmd/kops"]; + + buildFlagsArray = '' + -ldflags= + -X k8s.io/kops.Version=${version} + -X k8s.io/kops.GitVersion=${version} + ''; + + preBuild = '' + (cd go/src/k8s.io/kops + go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...) + ''; + + postInstall = '' + mkdir -p $bin/share/bash-completion/completions + mkdir -p $bin/share/zsh/site-functions + $bin/bin/kops completion bash > $bin/share/bash-completion/completions/kops + $bin/bin/kops completion zsh > $bin/share/zsh/site-functions/_kops + ''; + + meta = with stdenv.lib; { + description = "Easiest way to get a production Kubernetes up and running"; + homepage = https://github.com/kubernetes/kops; + license = licenses.asl20; + maintainers = with maintainers; [offline zimbatm kampka]; + platforms = platforms.unix; + }; + } // attrs'; +in rec { + + mkKops = generic; + + kops_1_12 = mkKops { + version = "1.12.3"; + sha256 = "0rpbaz54l5v1z7ab5kpxcb4jyakkl5ysgz1sxajqmw2d6dvf7xly"; + }; + + kops_1_13 = mkKops { + version = "1.13.2"; + sha256 = "0lkkg34vn020r62ga8vg5d3a8jwvq00xlv3p1s01nkz33f6salng"; + }; + + kops_1_14 = mkKops { + version = "1.14.1"; + sha256 = "0ikd8qwrjh8s1sc95g18sm0q6p33swz2m1rjd8zw34mb2w9jv76n"; + }; + + kops_1_15 = mkKops { + version = "1.15.0"; + sha256 = "0sjas8pn0njl767b1y15g7cci2q3kxkxwmgr0wvs7vi3n1s1sf9d"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix new file mode 100644 index 000000000000..a3cb55ce329c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "kube-router"; + version = "0.3.1"; + + goPackagePath = "github.com/cloudnativelabs/kube-router"; + + src = fetchFromGitHub { + owner = "cloudnativelabs"; + repo = pname; + rev = "v${version}"; + sha256 = "06azrghcxp6n4bvrqxpwhmg60qk4jqcrkl1lh1rardlzhl71lk1h"; + }; + + buildFlagsArray = '' + -ldflags= + -X + ${goPackagePath}/pkg/cmd.version=${version} + -X + ${goPackagePath}/pkg/cmd.buildDate=Nix + ''; + + meta = with lib; { + homepage = "https://www.kube-router.io/"; + description = "All-in-one router, firewall and service proxy for Kubernetes"; + license = licenses.asl20; + maintainers = with maintainers; [ colemickens johanot ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix new file mode 100644 index 000000000000..7058c009f2dd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix @@ -0,0 +1,33 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kube3d"; + version = "1.3.1"; + k3sVersion = "0.9.1"; + + goPackagePath = "github.com/rancher/k3d"; + + src = fetchFromGitHub { + owner = "rancher"; + repo = "k3d"; + rev = "v${version}"; + sha256 = "0bdpjnzyxd6mdc1qv0ml89qds6305kn3wmyci2kv6g2y7r7wxvm2"; + }; + + buildFlagsArray = '' + -ldflags= + -w -s + -X github.com/rancher/k3d/version.Version=${version} + -X github.com/rancher/k3d/version.K3sVersion=v${k3sVersion} + ''; + + modSha256 = "1qadf3gc2626l4jpad4lzi649nh8if9m6fgs2cf46r1nish16h95"; + + meta = with stdenv.lib; { + homepage = "https://github.com/rancher/k3d"; + description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ kuznero jlesquembre ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix new file mode 100644 index 000000000000..69d013e3f034 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub, ... }: + +let version = "0.13.1"; in + +buildGoPackage { + pname = "kubecfg"; + inherit version; + + src = fetchFromGitHub { + owner = "bitnami"; + repo = "kubecfg"; + rev = "v${version}"; + sha256 = "0x2mg13p8r1sgqr1bbzh57kfymb8z392y43djgks2agc7rjnd45f"; + }; + + goPackagePath = "github.com/bitnami/kubecfg"; + + meta = { + description = "A tool for managing Kubernetes resources as code"; + homepage = https://github.com/bitnami/kubecfg; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ benley ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix new file mode 100644 index 000000000000..fed40523a9b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix @@ -0,0 +1,31 @@ +{ stdenv, kubernetes }: + +stdenv.mkDerivation { + name = "kubectl-${kubernetes.version}"; + + # kubectl is currently part of the main distribution but will eventially be + # split out (see homepage) + src = kubernetes; + + outputs = [ "out" "man" ]; + + installPhase = '' + mkdir -p \ + "$out/bin" \ + "$out/share/bash-completion/completions" \ + "$out/share/zsh/site-functions" \ + "$man/share/man/man1" + + cp bin/kubectl $out/bin/kubectl + + cp "${kubernetes.man}/share/man/man1"/kubectl* "$man/share/man/man1" + + $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl + $out/bin/kubectl completion zsh > $out/share/zsh/site-functions/_kubectl + ''; + + meta = kubernetes.meta // { + description = "Kubernetes CLI"; + homepage = "https://github.com/kubernetes/kubectl"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix new file mode 100644 index 000000000000..aaf183ad6667 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix @@ -0,0 +1,29 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "kubeless"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "kubeless"; + repo = "kubeless"; + rev = "v${version}"; + sha256 = "1f5w6kn9rsaxx9nf6kzyjkzm3s9ycy1c8h78hb61v4x915xd3040"; + }; + + goPackagePath = "github.com/kubeless/kubeless"; + + subPackages = [ "cmd/kubeless" ]; + + buildFlagsArray = '' + -ldflags=-X github.com/kubeless/kubeless/pkg/version.Version=${version} + ''; + + meta = with stdenv.lib; { + homepage = "https://kubeless.io"; + description = "The Kubernetes Native Serverless Framework"; + license = licenses.asl20; + maintainers = with maintainers; [ "00-matt" ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix new file mode 100644 index 000000000000..f852c3ac0a3a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix @@ -0,0 +1,79 @@ +{ stdenv, lib, fetchFromGitHub, removeReferencesTo, which, go, go-bindata, makeWrapper, rsync +, components ? [ + "cmd/kubeadm" + "cmd/kubectl" + "cmd/kubelet" + "cmd/kube-apiserver" + "cmd/kube-controller-manager" + "cmd/kube-proxy" + "cmd/kube-scheduler" + "test/e2e/e2e.test" + ] +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "kubernetes"; + version = "1.16.4"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = "kubernetes"; + rev = "v${version}"; + sha256 = "05rpwmzkxhbvckcs7hspy6krdfskd8jnsn9g43fhidjvqhxyh6n3"; + }; + + buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; + + outputs = ["out" "man" "pause"]; + + postPatch = '' + # go env breaks the sandbox + substituteInPlace "hack/lib/golang.sh" \ + --replace 'echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)"' 'echo "${go.GOOS}/${go.GOARCH}"' + + substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}" + # hack/update-munge-docs.sh only performs some tests on the documentation. + # They broke building k8s; disabled for now. + echo "true" > "hack/update-munge-docs.sh" + + patchShebangs ./hack + ''; + + WHAT=concatStringsSep " " components; + + postBuild = '' + ./hack/update-generated-docs.sh + (cd build/pause && cc pause.c -o pause) + ''; + + installPhase = '' + mkdir -p "$out/bin" "$out/share/bash-completion/completions" "$out/share/zsh/site-functions" "$man/share/man" "$pause/bin" + + cp _output/local/go/bin/* "$out/bin/" + cp build/pause/pause "$pause/bin/pause" + cp -R docs/man/man1 "$man/share/man" + + cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons + patchShebangs $out/bin/kube-addons + wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl" + + cp ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh + + $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl + $out/bin/kubectl completion zsh > $out/share/zsh/site-functions/_kubectl + ''; + + preFixup = '' + find $out/bin $pause/bin -type f -exec remove-references-to -t ${go} '{}' + + ''; + + meta = { + description = "Production-Grade Container Scheduling and Management"; + license = licenses.asl20; + homepage = https://kubernetes.io; + maintainers = with maintainers; [johanot offline saschagrunert]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh new file mode 100755 index 000000000000..22a459f51349 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +# Copyright 2014 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Generate Docker daemon options based on flannel env file. + +# exit on any error +set -e + +usage() { + echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY] + +Generate Docker daemon options based on flannel env file +OPTIONS: + -f Path to flannel env file. Defaults to /run/flannel/subnet.env + -d Path to Docker env file to write to. Defaults to /run/docker_opts.env + -i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500 + -c Output combined Docker options into DOCKER_OPTS var + -k Set the combined options key to this value (default DOCKER_OPTS=) + -m Do not output --ip-masq (useful for older Docker version) +" >/dev/stderr + exit 1 +} + +flannel_env="/run/flannel/subnet.env" +docker_env="/run/docker_opts.env" +combined_opts_key="DOCKER_OPTS" +indiv_opts=false +combined_opts=false +ipmasq=true +val="" + +while getopts "f:d:icmk:" opt; do + case $opt in + f) + flannel_env=$OPTARG + ;; + d) + docker_env=$OPTARG + ;; + i) + indiv_opts=true + ;; + c) + combined_opts=true + ;; + m) + ipmasq=false + ;; + k) + combined_opts_key=$OPTARG + ;; + \?) + usage + ;; + esac +done + +if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then + indiv_opts=true + combined_opts=true +fi + +if [[ -f "${flannel_env}" ]]; then + source "${flannel_env}" +fi + +if [[ -n "$FLANNEL_SUBNET" ]]; then + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below + DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET" +fi + +if [[ -n "$FLANNEL_MTU" ]]; then + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below + DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU" +fi + +if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below + DOCKER_OPT_IPMASQ="--ip-masq=false" +fi + +eval docker_opts="\$${combined_opts_key}" +docker_opts+=" " + +echo -n "" >"${docker_env}" + +# OPT_LOOP +for opt in $(compgen -v DOCKER_OPT_); do + eval val=\$"${opt}" + + if [[ "$indiv_opts" = true ]]; then + echo "$opt=\"$val\"" >>"${docker_env}" + fi + + docker_opts+="$val " +done + +if [[ "$combined_opts" = true ]]; then + echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}" +fi diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix new file mode 100644 index 000000000000..3a2463447a2c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kubeseal"; + version = "0.9.6"; + + src = fetchFromGitHub { + owner = "bitnami-labs"; + repo = "sealed-secrets"; + rev = "v${version}"; + sha256 = "09ds5qn13l6l8kl2i01hgy6pqr30z1rm447ax32lf79zp8hca3r3"; + }; + + modSha256 = "04dmjyz3vi2l0dfpyy42lkp2fv1vlfkvblrxh1dvb37phrkd5lbd"; + + subPackages = [ "cmd/kubeseal" ]; + + meta = with lib; { + description = "A Kubernetes controller and tool for one-way encrypted Secrets"; + homepage = "https://github.com/bitnami-labs/sealed-secrets"; + license = licenses.asl20; + maintainers = with maintainers; [ groodt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix new file mode 100644 index 000000000000..779edad8de34 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, lib, ... }: + +stdenv.mkDerivation rec { + pname = "kubetail"; + version = "1.6.10"; + + src = fetchFromGitHub { + owner = "johanhaleby"; + repo = "kubetail"; + rev = version; + sha256 = "0bg872n9fs6pl03rmjny9sgby718yznx9jwi5rx3hi4km3ha9j0b"; + }; + + installPhase = '' + install -Dm755 kubetail "$out/bin/kubetail" + install -Dm755 completion/kubetail.bash "$out/share/bash-completion/completions/kubetail" + install -Dm755 completion/kubetail.fish "$out/share/fish/vendor_completions.d/kubetail.fish" + install -Dm755 completion/kubetail.zsh "$out/share/zsh/site-functions/_kubetail" + ''; + + meta = with lib; { + description = "Bash script to tail Kubernetes logs from multiple pods at the same time"; + longDescription = '' + Bash script that enables you to aggregate (tail/follow) logs from + multiple pods into one stream. This is the same as running "kubectl logs + -f " but for multiple pods. + ''; + homepage = https://github.com/johanhaleby/kubetail; + license = licenses.asl20; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix new file mode 100644 index 000000000000..84e9b8899431 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix @@ -0,0 +1,48 @@ +{ stdenv, lib, fetchFromGitHub, buildGoModule, makeWrapper }: + +let + + # Cache schema as a package so network calls are not + # necessary at runtime, allowing use in package builds + schema = stdenv.mkDerivation { + name = "kubeval-schema"; + src = fetchFromGitHub { + owner = "instrumenta"; + repo = "kubernetes-json-schema"; + rev = "6a498a60dc68c5f6a1cc248f94b5cd1e7241d699"; + sha256 = "1y9m2ma3n4h7sf2lg788vjw6pkfyi0fa7gzc870faqv326n6x2jr"; + }; + + installPhase = '' + mkdir -p $out/kubernetes-json-schema/master + cp -R . $out/kubernetes-json-schema/master + ''; + }; + +in + +buildGoModule rec { + pname = "kubeval"; + version = "0.14.0"; + + src = fetchFromGitHub { + owner = "instrumenta"; + repo = "kubeval"; + rev = "${version}"; + sha256 = "0kpwk7bv36m3i8vavm1pqc8l611c6l9qbagcc64v6r85qig4w5xv"; + }; + + buildInputs = [ makeWrapper ]; + + modSha256 = "0y9x44y3bchi8xg0a6jmp2rmi8dybkl6qlywb6nj1viab1s8dd4y"; + + postFixup = "wrapProgram $out/bin/kubeval --set KUBEVAL_SCHEMA_LOCATION file:///${schema}/kubernetes-json-schema/master"; + + meta = with lib; { + description = "Validate your Kubernetes configuration files"; + homepage = https://github.com/instrumenta/kubeval; + license = licenses.asl20; + maintainers = with maintainers; [ nicknovitski ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix new file mode 100644 index 000000000000..8c0265d14914 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, buildGoModule }: + +buildGoModule { + pname = "linkerd-unstablle"; + version = "2019-07-26"; + + src = fetchFromGitHub { + owner = "linkerd"; + repo = "linkerd2"; + rev = "065dd3ec9d4b84c90383b31be16ccadd34a8ab0d"; + sha256 = "01m8g627sd126as0a74fy9svmymwd41sifd897nhn6kz78a21gq8"; + }; + + modSha256 = "0gahhywpcj16ww4l8s3wjwvavq24fpy258snhyf94ipy6lb797sl"; + + subPackages = [ "cli/cmd" ]; + + meta = with stdenv.lib; { + description = "A service mesh for Kubernetes and beyond."; + homepage = https://linkerd.io/; + license = licenses.asl20; + maintainers = with maintainers; [ Gonzih ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix new file mode 100644 index 000000000000..aad752643645 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix @@ -0,0 +1,35 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "luigi"; + version = "2.8.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "1869lb6flmca6s7ccws7mvyn66nvrqjky40jwf2liv9fg0lp8899"; + }; + + # Relax version constraint + postPatch = '' + sed -i 's/<2.2.0//' setup.py + ''; + + propagatedBuildInputs = with python3Packages; [ tornado_4 python-daemon boto3 ]; + + # Requires tox, hadoop, and google cloud + doCheck = false; + + # This enables accessing modules stored in cwd + makeWrapperArgs = ["--prefix PYTHONPATH . :"]; + + meta = with lib; { + homepage = https://github.com/spotify/luigi; + description = "Python package that helps you build complex pipelines of batch jobs"; + longDescription = '' + Luigi handles dependency resolution, workflow management, visualization, + handling failures, command line integration, and much more. + ''; + license = [ licenses.asl20 ]; + maintainers = [ maintainers.bhipple ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix b/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix new file mode 100644 index 000000000000..72bd82be6c16 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix @@ -0,0 +1,30 @@ +{ stdenv, makeWrapper, jdk, mesos, fetchurl }: + +stdenv.mkDerivation rec { + pname = "marathon"; + version = "1.4.2"; + + src = fetchurl { + url = "https://downloads.mesosphere.com/marathon/v${version}/marathon-${version}.tgz"; + sha256 = "6eab65a95c87a989e922aca2b49ba872b50a94e46a8fd4831d1ab41f319d6932"; + }; + + buildInputs = [ makeWrapper jdk mesos ]; + + installPhase = '' + mkdir -p $out/{bin,libexec/marathon} + cp target/scala-*/marathon*.jar $out/libexec/marathon/${pname}-${version}.jar + + makeWrapper ${jdk.jre}/bin/java $out/bin/marathon \ + --add-flags "-Xmx512m -jar $out/libexec/marathon/${pname}-${version}.jar" \ + --set "MESOS_NATIVE_JAVA_LIBRARY" "$MESOS_NATIVE_JAVA_LIBRARY" + ''; + + meta = with stdenv.lib; { + homepage = https://mesosphere.github.io/marathon; + description = "Cluster-wide init and control system for services in cgroups or Docker containers"; + license = licenses.asl20; + maintainers = with maintainers; [ kamilchm kevincox pradeepchhetri ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix b/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix new file mode 100644 index 000000000000..1ad30335b94d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix @@ -0,0 +1,262 @@ +{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh +, unzip, gnutar, jdk, python, wrapPython +, setuptools, boto, pythonProtobuf, apr, subversion, gzip +, leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent +, ethtool, coreutils, which, iptables, maven +, bash, autoreconfHook +, utf8proc, lz4 +, withJava ? !stdenv.isDarwin +}: + +let + mavenRepo = import ./mesos-deps.nix { inherit stdenv curl; }; + # `tar -z` requires gzip on $PATH, so wrap tar. + # At some point, we should try to patch mesos so we add gzip to the PATH when + # tar is invoked. I think that only needs to be done here: + # src/common/command_utils.cpp + # https://github.com/NixOS/nixpkgs/issues/13783 + tarWithGzip = lib.overrideDerivation gnutar (oldAttrs: { + # Original builder is bash 4.3.42 from bootstrap tools, too old for makeWrapper. + builder = "${bash}/bin/bash"; + buildInputs = (oldAttrs.buildInputs or []) ++ [ makeWrapper ]; + postInstall = (oldAttrs.postInstall or "") + '' + wrapProgram $out/bin/tar --prefix PATH ":" "${gzip}/bin" + ''; + }); + +in stdenv.mkDerivation rec { + version = "1.4.1"; + pname = "mesos"; + + enableParallelBuilding = true; + dontDisableStatic = true; + + src = fetchurl { + url = "mirror://apache/mesos/${version}/${pname}-${version}.tar.gz"; + sha256 = "1c7l0rim9ija913gpppz2mcms08ywyqhlzbbspqsi7wwfdd7jwsr"; + }; + + patches = [ + # https://reviews.apache.org/r/36610/ + # TODO: is this still needed? + ./rb36610.patch + + # see https://github.com/cstrahan/mesos/tree/nixos-${version} + ./nixos.patch + ]; + nativeBuildInputs = [ + autoreconfHook + ]; + buildInputs = [ + makeWrapper curl sasl + python wrapPython boto setuptools leveldb + subversion apr glog openssl libevent + utf8proc lz4 + ] ++ lib.optionals stdenv.isLinux [ + libnl + ] ++ lib.optionals withJava [ + jdk maven + ]; + + propagatedBuildInputs = [ + pythonProtobuf + ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=format-overflow -Wno-error=class-memaccess"; + + preConfigure = '' + # https://issues.apache.org/jira/browse/MESOS-6616 + configureFlagsArray+=( + "CXXFLAGS=-O2 -Wno-error=strict-aliasing" + ) + + substituteInPlace 3rdparty/stout/include/stout/jsonify.hpp \ + --replace '<xlocale.h>' '<locale.h>' + # Fix cases where makedev(),major(),minor() are referenced through + # <sys/types.h> instead of <sys/sysmacros.h> + sed 1i'#include <sys/sysmacros.h>' -i src/linux/fs.cpp + sed 1i'#include <sys/sysmacros.h>' -i src/slave/containerizer/mesos/isolators/gpu/isolator.cpp + substituteInPlace 3rdparty/stout/include/stout/os/posix/chown.hpp \ + --subst-var-by chown ${coreutils}/bin/chown + + substituteInPlace 3rdparty/stout/Makefile.am \ + --replace "-lprotobuf" \ + "${pythonProtobuf.protobuf}/lib/libprotobuf.a" + + substituteInPlace 3rdparty/stout/include/stout/os/posix/fork.hpp \ + --subst-var-by sh ${bash}/bin/bash + + substituteInPlace 3rdparty/stout/include/stout/posix/os.hpp \ + --subst-var-by tar ${tarWithGzip}/bin/tar + + substituteInPlace src/cli/mesos-scp \ + --subst-var-by scp ${openssh}/bin/scp + + substituteInPlace src/common/command_utils.cpp \ + --subst-var-by curl ${curl}/bin/curl \ + --subst-var-by gzip ${gzip}/bin/gzip \ + --subst-var-by sha512sum ${coreutils}/bin/sha512sum \ + --subst-var-by tar ${tarWithGzip}/bin/tar + + substituteInPlace src/launcher/fetcher.cpp \ + --subst-var-by cp ${coreutils}/bin/cp \ + --subst-var-by gzip ${gzip}/bin/gzip \ + --subst-var-by tar ${tarWithGzip}/bin/tar \ + --subst-var-by unzip ${unzip}/bin/unzip + + substituteInPlace src/python/cli/src/mesos/cli.py \ + --subst-var-by mesos-resolve $out/bin/mesos-resolve + + substituteInPlace src/python/native_common/ext_modules.py.in \ + --replace "-lprotobuf" \ + "${pythonProtobuf.protobuf}/lib/libprotobuf.a" + + substituteInPlace src/slave/containerizer/mesos/isolators/gpu/volume.cpp \ + --subst-var-by cp ${coreutils}/bin/cp \ + --subst-var-by which ${which}/bin/which + + substituteInPlace src/slave/containerizer/mesos/isolators/posix/disk.cpp \ + --subst-var-by du ${coreutils}/bin/du + + substituteInPlace src/slave/containerizer/mesos/provisioner/backends/copy.cpp \ + --subst-var-by cp ${coreutils}/bin/cp \ + --subst-var-by rm ${coreutils}/bin/rm + + substituteInPlace src/uri/fetchers/copy.cpp \ + --subst-var-by cp ${coreutils}/bin/cp + + substituteInPlace src/uri/fetchers/curl.cpp \ + --subst-var-by curl ${curl}/bin/curl + + substituteInPlace src/uri/fetchers/docker.cpp \ + --subst-var-by curl ${curl}/bin/curl + + substituteInPlace src/Makefile.am \ + --subst-var-by mavenRepo ${mavenRepo} \ + --replace "-lprotobuf" \ + "${pythonProtobuf.protobuf}/lib/libprotobuf.a" + + '' + lib.optionalString stdenv.isLinux '' + + substituteInPlace src/linux/perf.cpp \ + --subst-var-by perf ${perf}/bin/perf + + substituteInPlace src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + + substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/linux.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + + substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/shared.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + + substituteInPlace src/slave/containerizer/mesos/isolators/gpu/isolator.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + + substituteInPlace src/slave/containerizer/mesos/isolators/namespaces/pid.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + + substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/cni.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + + substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp \ + --subst-var-by iptables ${iptables}/bin/iptables + + substituteInPlace src/slave/containerizer/mesos/isolators/network/port_mapping.cpp \ + --subst-var-by ethtool ${ethtool}/sbin/ethtool \ + --subst-var-by ip ${iproute}/bin/ip \ + --subst-var-by mount ${utillinux}/bin/mount \ + --subst-var-by tc ${iproute}/bin/tc + + substituteInPlace src/slave/containerizer/mesos/isolators/volume/image.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + + substituteInPlace src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp \ + --subst-var-by mount ${utillinux}/bin/mount + ''; + + configureFlags = [ + "--sbindir=\${out}/bin" + "--with-apr=${apr.dev}" + "--with-svn=${subversion.dev}" + "--with-leveldb=${leveldb}" + "--with-glog=${glog}" + "--enable-optimize" + "--disable-python-dependency-install" + "--enable-ssl" + "--with-ssl=${openssl.dev}" + "--enable-libevent" + "--with-libevent=${libevent.dev}" + "--with-protobuf=${pythonProtobuf.protobuf}" + "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar" + (if withJava then "--enable-java" else "--disable-java") + ] ++ lib.optionals stdenv.isLinux [ + "--with-network-isolator" + "--with-nl=${libnl.dev}" + ]; + + postInstall = '' + rm -rf $out/var + rm $out/bin/*.sh + + # Inspired by: pkgs/development/python-modules/generic/default.nix + pushd src/python + mkdir -p $out/lib/${python.libPrefix}/site-packages + export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH" + ${python}/bin/${python.executable} setup.py install \ + --install-lib=$out/lib/${python.libPrefix}/site-packages \ + --old-and-unmanageable \ + --prefix="$out" + rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py* + popd + + # optional python dependency for mesos cli + pushd src/python/cli + ${python}/bin/${python.executable} setup.py install \ + --install-lib=$out/lib/${python.libPrefix}/site-packages \ + --old-and-unmanageable \ + --prefix="$out" + popd + '' + stdenv.lib.optionalString withJava '' + mkdir -p $out/share/java + cp src/java/target/mesos-*.jar $out/share/java + + MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary} + + mkdir -p $out/nix-support + touch $out/nix-support/setup-hook + echo "export MESOS_NATIVE_JAVA_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook + echo "export MESOS_NATIVE_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook + ''; + + postFixup = '' + if test -e $out/nix-support/propagated-build-inputs; then + ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages + fi + + for inputsfile in propagated-build-inputs propagated-native-build-inputs; do + if test -e $out/nix-support/$inputsfile; then + createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)" + fi + done + + for f in $out/libexec/mesos/python/mesos/*.py; do + ${python}/bin/${python.executable} -c "import py_compile; py_compile.compile('$f')" + done + + # wrap the python programs + for prog in mesos-cat mesos-ps mesos-scp mesos-tail; do + wrapProgram "$out/bin/$prog" \ + --prefix PYTHONPATH ":" "$out/lib/${python.libPrefix}/site-packages" + true + done + ''; + + meta = with lib; { + homepage = "http://mesos.apache.org"; + license = licenses.asl20; + description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks"; + maintainers = with maintainers; [ cstrahan kevincox offline ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh b/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh new file mode 100644 index 000000000000..cf7318ecb273 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh @@ -0,0 +1,1359 @@ +source $stdenv/setup +header "fetching Apache Mesos maven repo" + +function fetchArtifact { + repoPath="$1" + echo "Fetching $repoPath" + url="http://repo.maven.apache.org/maven2/$repoPath" + mkdir -p $(dirname $out/$repoPath) + curl --fail --location --insecure --retry 3 --max-redirs 20 "$url" --output "$out/$repoPath" +} + +fetchArtifact org/apache/apache/11/apache-11.pom +fetchArtifact org/apache/apache/11/apache-11.pom.sha1 +fetchArtifact org/apache/apache/10/apache-10.pom +fetchArtifact org/apache/apache/10/apache-10.pom.sha1 +fetchArtifact org/apache/apache/7/apache-7.pom +fetchArtifact org/apache/apache/7/apache-7.pom.sha1 +fetchArtifact org/apache/apache/9/apache-9.pom +fetchArtifact org/apache/apache/9/apache-9.pom.sha1 +fetchArtifact org/apache/apache/13/apache-13.pom +fetchArtifact org/apache/apache/13/apache-13.pom.sha1 +fetchArtifact org/apache/apache/3/apache-3.pom +fetchArtifact org/apache/apache/3/apache-3.pom.sha1 +fetchArtifact org/apache/apache/6/apache-6.pom +fetchArtifact org/apache/apache/6/apache-6.pom.sha1 +fetchArtifact org/apache/apache/4/apache-4.pom +fetchArtifact org/apache/apache/4/apache-4.pom.sha1 +fetchArtifact org/apache/apache/2/apache-2.pom +fetchArtifact org/apache/apache/2/apache-2.pom.sha1 +fetchArtifact org/apache/apache/5/apache-5.pom +fetchArtifact org/apache/apache/5/apache-5.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom +fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar +fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom +fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom +fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar +fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom +fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar +fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom +fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar +fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom +fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar +fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar +fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar +fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar +fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar +fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom +fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar +fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar +fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar.sha1 +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1 +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar +fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1 +fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom +fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom +fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom +fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom +fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom +fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom +fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom +fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom +fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom +fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom +fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom +fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom +fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom +fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1 +fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom +fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom +fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom +fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar +fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar.sha1 +fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom +fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom.sha1 +fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar +fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar.sha1 +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom.sha1 +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar +fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar +fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar +fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom +fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar +fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom +fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom +fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom +fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom +fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom +fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom +fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom +fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom +fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1 +fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom +fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom +fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom +fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom +fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar +fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom +fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar +fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom +fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar +fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom +fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom +fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom +fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom +fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom +fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar +fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom +fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar +fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom +fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom +fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar +fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar.sha1 +fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom +fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom +fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar +fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom +fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar +fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom +fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar +fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom +fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom +fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom +fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom +fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar +fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom +fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar +fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom +fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom +fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar +fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar.sha1 +fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom +fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar +fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom +fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom +fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar +fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom +fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar +fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom +fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar +fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom +fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar +fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom +fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom +fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1 +fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom +fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom +fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar +fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar.sha1 +fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom +fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar +fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom +fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom +fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar +fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom +fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar +fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar +fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom +fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1 +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar +fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom +fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom +fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom +fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1 +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar +fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1 +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar +fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar +fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom +fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1 +fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar +fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar.sha1 +fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom +fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom.sha1 +fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom +fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar +fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom +fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar +fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom +fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar +fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom +fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar +fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom +fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar +fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar +fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar +fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar +fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1 +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1 +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar +fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar +fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1 +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar +fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1 +fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom +fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1 +fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar +fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar.sha1 +fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom +fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1 +fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar +fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar +fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom +fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar +fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom +fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar +fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom +fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom.sha1 +fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar +fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar.sha1 +fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom +fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar +fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar.sha1 +fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom +fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom +fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom +fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom +fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom +fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar +fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1 +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar +fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar.sha1 +fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom +fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar +fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom +fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar +fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom +fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar +fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar.sha1 +fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom +fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1 +fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar +fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar.sha1 +fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom +fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom.sha1 +fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar +fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar.sha1 +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1 +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar +fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1 +fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom +fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom.sha1 +fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom +fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom.sha1 +fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar +fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar.sha1 +fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom +fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom +fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom +fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom +fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom +fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom.sha1 +fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom +fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1 +fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar +fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar.sha1 +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1 +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar +fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1 +fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom +fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1 +fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom +fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1 +fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom +fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1 +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1 +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar +fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1 +fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom +fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1 +fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom +fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom.sha1 +fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar +fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar.sha1 +fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom +fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom.sha1 +fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom +fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom.sha1 +fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom +fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom.sha1 +fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar +fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar.sha1 +fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom +fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom.sha1 +fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar +fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar.sha1 +fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom +fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1 +fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom +fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1 +fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom +fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom.sha1 +fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar +fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar.sha1 +fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom +fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom.sha1 +fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom +fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar +fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom +fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar +fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom +fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom +fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom +fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom +fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom +fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom +fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom +fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom +fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom +fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar +fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar +fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar +fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar +fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom +fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom +fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom +fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar +fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar +fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar +fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom +fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar +fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar +fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom +fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar +fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom +fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom +fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar +fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom +fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar +fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar +fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom +fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom +fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom +fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar +fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1 +fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom +fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.sha1 +fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom +fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom +fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom +fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom +fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1 +fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom +fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom +fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom +fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom +fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom +fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1 +fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom +fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1 +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1 +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar +fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1 +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1 +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar +fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1 +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1 +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar +fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1 +fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom +fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom.sha1 +fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom +fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar +fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar.sha1 +fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom +fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom +fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar +fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1 +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1 +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar +fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1 +fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom +fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar +fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar.sha1 +fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom +fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar +fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1 +fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom +fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar +fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar.sha1 +fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom +fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1 +fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar +fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar.sha1 +fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom +fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1 +fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar +fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar.sha1 +fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom +fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1 +fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom +fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom.sha1 +fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar +fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar.sha1 +fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom +fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom.sha1 +fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom +fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom.sha1 +fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar +fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar.sha1 +fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom +fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom.sha1 +fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom +fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom.sha1 +fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom +fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom.sha1 +fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom +fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom.sha1 +fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar +fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar.sha1 +fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom +fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom.sha1 +fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar +fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar.sha1 +fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom +fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom.sha1 +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1 +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar +fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1 +fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom +fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1 +fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom +fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom.sha1 +fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar +fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar.sha1 +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1 +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar +fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1 +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1 +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar +fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1 +fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom +fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom.sha1 +fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar +fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar.sha1 +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom.sha1 +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar.sha1 +fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom +fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom.sha1 +fetchArtifact com/google/google/1/google-1.pom +fetchArtifact com/google/google/1/google-1.pom.sha1 +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1 +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar +fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1 +fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom +fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1 +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1 +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar +fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1 +fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom +fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1 +fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom +fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom.sha1 +fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar +fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar.sha1 +fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom +fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom.sha1 +fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar +fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar.sha1 +fetchArtifact junit/junit/4.10/junit-4.10.pom +fetchArtifact junit/junit/4.10/junit-4.10.pom.sha1 +fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom +fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1 +fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar +fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1 +fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom +fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1 +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1 +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar +fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1 +fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom +fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1 +fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar +fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar.sha1 +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1 +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar +fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1 +fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom +fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom +fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar +fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar.sha1 +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar +fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1 +fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom +fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1 +fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom +fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1 +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar +fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1 +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1 +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar +fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1 +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1 +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar +fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1 +fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom +fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom.sha1 +fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar +fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar.sha1 +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1 +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar +fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1 +fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom +fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1 +fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar +fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1 +fetchArtifact velocity/velocity/1.5/velocity-1.5.pom +fetchArtifact velocity/velocity/1.5/velocity-1.5.pom.sha1 +fetchArtifact velocity/velocity/1.5/velocity-1.5.jar +fetchArtifact velocity/velocity/1.5/velocity-1.5.jar.sha1 +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1 +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar +fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1 +fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom +fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1 +fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar +fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar.sha1 +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1 +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar +fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1 +fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom +fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom +fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar +fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar.sha1 +fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom +fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom +fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom +fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1 +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar +fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1 +fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom +fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1 +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1 +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar +fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1 +fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom +fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1 +fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar +fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar.sha1 +fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom +fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom.sha1 +fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar +fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar.sha1 +fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom +fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom.sha1 +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1 +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar +fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1 +fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom +fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1 +fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom +fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom.sha1 +fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar +fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar.sha1 +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1 +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar +fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1 +fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom +fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1 +fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom +fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom.sha1 +fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar +fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar.sha1 +fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom +fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom.sha1 +fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom +fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom.sha1 +fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom +fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom.sha1 +fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar +fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar.sha1 +fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom +fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.sha1 +fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar +fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar.sha1 +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1 +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar +fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1 +fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom +fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom.sha1 +fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar +fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar.sha1 +fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom +fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom.sha1 +fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar +fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar.sha1 +fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom +fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom.sha1 +fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar +fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar.sha1 +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1 +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar +fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1 +fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom +fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom.sha1 +fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar +fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar.sha1 +fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom +fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1 +fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar +fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar.sha1 +fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom +fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1 +fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar +fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1 +fetchArtifact asm/asm/3.2/asm-3.2.pom +fetchArtifact asm/asm/3.2/asm-3.2.pom.sha1 +fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom +fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1 +fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom +fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom.sha1 +fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom +fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom.sha1 +fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar +fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar.sha1 +fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom +fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom.sha1 +fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom +fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom.sha1 +fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar +fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar.sha1 +fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom +fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom.sha1 +fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom +fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom.sha1 +fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar +fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar.sha1 +fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom +fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom.sha1 +fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar +fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar.sha1 +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1 +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar +fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1 + +stopNest diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix new file mode 100644 index 000000000000..1cf819870f4e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix @@ -0,0 +1,14 @@ +{stdenv, curl}: + +stdenv.mkDerivation { + name = "mesos-maven-deps"; + builder = ./fetch-mesos-deps.sh; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "10h0qs7svw0cqjkyxs8z6s3qraa8ga920zfrr59rdlanbwg4klly"; + + nativeBuildInputs = [ curl ]; + + impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch b/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch new file mode 100644 index 000000000000..a6fea024b087 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch @@ -0,0 +1,731 @@ +diff --git i/3rdparty/stout/include/stout/os/posix/fork.hpp w/3rdparty/stout/include/stout/os/posix/fork.hpp +index a29967d..290b98b 100644 +--- i/3rdparty/stout/include/stout/os/posix/fork.hpp ++++ w/3rdparty/stout/include/stout/os/posix/fork.hpp +@@ -369,7 +369,7 @@ private: + if (exec.isSome()) { + // Execute the command (via '/bin/sh -c command'). + const char* command = exec.get().command.c_str(); +- execlp("sh", "sh", "-c", command, (char*) nullptr); ++ execlp("@sh@", "sh", "-c", command, (char*) nullptr); + EXIT(EXIT_FAILURE) + << "Failed to execute '" << command << "': " << os::strerror(errno); + } else if (wait.isSome()) { +diff --git i/3rdparty/stout/include/stout/posix/os.hpp w/3rdparty/stout/include/stout/posix/os.hpp +index 8511dfd..1e7be01 100644 +--- i/3rdparty/stout/include/stout/posix/os.hpp ++++ w/3rdparty/stout/include/stout/posix/os.hpp +@@ -366,7 +366,7 @@ inline Try<std::set<pid_t>> pids(Option<pid_t> group, Option<pid_t> session) + inline Try<Nothing> tar(const std::string& path, const std::string& archive) + { + Try<std::string> tarOut = +- os::shell("tar %s %s %s", "-czf", archive.c_str(), path.c_str()); ++ os::shell("@tar@ %s %s %s", "-czf", archive.c_str(), path.c_str()); + + if (tarOut.isError()) { + return Error("Failed to archive " + path + ": " + tarOut.error()); +diff --git i/src/Makefile.am w/src/Makefile.am +index 68fff14..c572f92 100644 +--- i/src/Makefile.am ++++ w/src/Makefile.am +@@ -1775,7 +1775,7 @@ if HAS_JAVA + + $(MESOS_JAR): $(MESOS_JAR_SOURCE) $(MESOS_JAR_GENERATED) java/mesos.pom + @echo "Building mesos-$(PACKAGE_VERSION).jar ..." +- @cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom clean package ++ @cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom -Dmaven.repo.local=@mavenRepo@ clean package + + # Convenience library for JNI bindings. + # TODO(Charles Reiss): We really should be building the Java library +diff --git i/src/cli/mesos-scp w/src/cli/mesos-scp +index a71ab07..1043d1b 100755 +--- i/src/cli/mesos-scp ++++ w/src/cli/mesos-scp +@@ -19,7 +19,8 @@ if sys.version_info < (2,6,0): + + + def scp(host, src, dst): +- cmd = 'scp -pr %s %s' % (src, host + ':' + dst) ++ cmd = '@scp@ -pr %s %s' % (src, host + ':' + dst) ++ + try: + process = subprocess.Popen( + cmd, +diff --git i/src/common/command_utils.cpp w/src/common/command_utils.cpp +index c50be76..388cc53 100644 +--- i/src/common/command_utils.cpp ++++ w/src/common/command_utils.cpp +@@ -142,7 +142,7 @@ Future<Nothing> tar( + + argv.emplace_back(input); + +- return launch("tar", argv) ++ return launch("@tar@", argv) + .then([]() { return Nothing(); }); + } + +@@ -164,7 +164,7 @@ Future<Nothing> untar( + argv.emplace_back(directory.get()); + } + +- return launch("tar", argv) ++ return launch("@tar@", argv) + .then([]() { return Nothing(); }); + } + +@@ -172,7 +172,7 @@ Future<Nothing> untar( + Future<string> sha512(const Path& input) + { + #ifdef __linux__ +- const string cmd = "sha512sum"; ++ const string cmd = "@sha512sum@"; + vector<string> argv = { + cmd, + input // Input file to compute shasum. +@@ -208,7 +208,7 @@ Future<Nothing> gzip(const Path& input) + input + }; + +- return launch("gzip", argv) ++ return launch("@gzip@", argv) + .then([]() { return Nothing(); }); + } + +@@ -221,7 +221,7 @@ Future<Nothing> decompress(const Path& input) + input + }; + +- return launch("gzip", argv) ++ return launch("@gzip@", argv) + .then([]() { return Nothing(); }); + } + +diff --git i/src/launcher/fetcher.cpp w/src/launcher/fetcher.cpp +index 42980f5..3aebeed 100644 +--- i/src/launcher/fetcher.cpp ++++ w/src/launcher/fetcher.cpp +@@ -80,17 +80,17 @@ static Try<bool> extract( + strings::endsWith(sourcePath, ".tar.bz2") || + strings::endsWith(sourcePath, ".txz") || + strings::endsWith(sourcePath, ".tar.xz")) { +- command = {"tar", "-C", destinationDirectory, "-xf", sourcePath}; ++ command = {"@tar@", "-C", destinationDirectory, "-xf", sourcePath}; + } else if (strings::endsWith(sourcePath, ".gz")) { + string pathWithoutExtension = sourcePath.substr(0, sourcePath.length() - 3); + string filename = Path(pathWithoutExtension).basename(); + string destinationPath = path::join(destinationDirectory, filename); + +- command = {"gunzip", "-d", "-c"}; ++ command = {"@gunzip@", "-d", "-c"}; + in = Subprocess::PATH(sourcePath); + out = Subprocess::PATH(destinationPath); + } else if (strings::endsWith(sourcePath, ".zip")) { +- command = {"unzip", "-o", "-d", destinationDirectory, sourcePath}; ++ command = {"@unzip@", "-o", "-d", destinationDirectory, sourcePath}; + } else { + return false; + } +@@ -193,7 +193,7 @@ static Try<string> copyFile( + const string& sourcePath, + const string& destinationPath) + { +- int status = os::spawn("cp", {"cp", sourcePath, destinationPath}); ++ int status = os::spawn("cp", {"@cp@", sourcePath, destinationPath}); + + if (status == -1) { + return ErrnoError("Failed to copy '" + sourcePath + "'"); +diff --git i/src/linux/perf.cpp w/src/linux/perf.cpp +index b301e25..356a2cf 100644 +--- i/src/linux/perf.cpp ++++ w/src/linux/perf.cpp +@@ -128,7 +128,7 @@ private: + // NOTE: The supervisor childhook places perf in its own process group + // and will kill the perf process when the parent dies. + Try<Subprocess> _perf = subprocess( +- "perf", ++ "@perf@", + argv, + Subprocess::PIPE(), + Subprocess::PIPE(), +diff --git i/src/linux/systemd.cpp w/src/linux/systemd.cpp +index 6318f48..394d88d 100644 +--- i/src/linux/systemd.cpp ++++ w/src/linux/systemd.cpp +@@ -196,13 +196,21 @@ bool exists() + // This is static as the init system should not change while we are running. + static const bool exists = []() -> bool { + // (1) Test whether `/sbin/init` links to systemd. +- const Result<string> realpath = os::realpath("/sbin/init"); +- if (realpath.isError() || realpath.isNone()) { +- LOG(WARNING) << "Failed to test /sbin/init for systemd environment: " +- << (realpath.isError() ? realpath.error() +- : "does not exist"); +- +- return false; ++ // cstrahan(nixos): first assume we're on NixOS, then try non-NixOS ++ Result<string> realpath = os::realpath("/run/current-system/systemd/lib/systemd/systemd"); ++ Result<string> realpathNixOS = realpath; ++ if (realpathNixOS.isError() || realpathNixOS.isNone()) { ++ Result<string> realpathNonNixOS = realpath = os::realpath("/sbin/init"); ++ if (realpathNonNixOS.isError() || realpathNonNixOS.isNone()) { ++ LOG(WARNING) << "Failed to test /run/current-system/systemd/lib/systemd/systemd for systemd environment: " ++ << (realpathNixOS.isError() ? realpathNixOS.error() ++ : "does not exist"); ++ LOG(WARNING) << "Failed to test /sbin/init for systemd environment: " ++ << (realpathNonNixOS.isError() ? realpathNonNixOS.error() ++ : "does not exist"); ++ ++ return false; ++ } + } + + CHECK_SOME(realpath); +@@ -278,6 +286,10 @@ Path hierarchy() + + Try<Nothing> daemonReload() + { ++ // cstrahan(nixos): should we patch these `systemctl`s? ++ // probably don't want to hard-code a particular systemd store path here, ++ // but if we use /run/current-system/sw/bin/systemctl, ++ // we won't be able to support non-NixOS distros. + Try<string> daemonReload = os::shell("systemctl daemon-reload"); + if (daemonReload.isError()) { + return Error("Failed to reload systemd daemon: " + daemonReload.error()); +diff --git i/src/python/cli/src/mesos/cli.py w/src/python/cli/src/mesos/cli.py +index 4a9b558..c08a8b9 100644 +--- i/src/python/cli/src/mesos/cli.py ++++ w/src/python/cli/src/mesos/cli.py +@@ -40,7 +40,7 @@ def resolve(master): + import subprocess + + process = subprocess.Popen( +- ['mesos-resolve', master], ++ ['@mesos-resolve@', master], + stdin=None, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, +diff --git i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp +index 5b630c1..d63ad69 100644 +--- i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp ++++ w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp +@@ -499,7 +499,7 @@ Future<Option<ContainerLaunchInfo>> DockerVolumeIsolatorProcess::_prepare( + // unsafe arbitrary commands). + CommandInfo* command = launchInfo.add_pre_exec_commands(); + command->set_shell(false); +- command->set_value("mount"); ++ command->set_value("@mount@"); + command->add_arguments("mount"); + command->add_arguments("-n"); + command->add_arguments("--rbind"); +diff --git i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp +index d7fe9a8..1361a4e 100644 +--- i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp ++++ w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp +@@ -154,9 +154,9 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags) + // here because 'create' will only be invoked during + // initialization. + Try<string> mount = os::shell( +- "mount --bind %s %s && " +- "mount --make-private %s && " +- "mount --make-shared %s", ++ "@mount@ --bind %s %s && " ++ "@mount@ --make-private %s && " ++ "@mount@ --make-shared %s", + workDir->c_str(), + workDir->c_str(), + workDir->c_str(), +@@ -175,8 +175,8 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags) + LOG(INFO) << "Making '" << workDir.get() << "' a shared mount"; + + Try<string> mount = os::shell( +- "mount --make-private %s && " +- "mount --make-shared %s", ++ "@mount@ --make-private %s && " ++ "@mount@ --make-shared %s", + workDir->c_str(), + workDir->c_str()); + +@@ -422,7 +422,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands( + + CommandInfo command; + command.set_shell(false); +- command.set_value("mount"); ++ command.set_value("@mount@"); + command.add_arguments("mount"); + command.add_arguments("-n"); + command.add_arguments("--rbind"); +@@ -610,7 +610,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands( + // TODO(jieyu): Consider the mode in the volume. + CommandInfo command; + command.set_shell(false); +- command.set_value("mount"); ++ command.set_value("@mount@"); + command.add_arguments("mount"); + command.add_arguments("-n"); + command.add_arguments("--rbind"); +diff --git i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp +index 927d95b..576dc63 100644 +--- i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp ++++ w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp +@@ -208,7 +208,7 @@ Future<Option<ContainerLaunchInfo>> SharedFilesystemIsolatorProcess::prepare( + } + + launchInfo.add_pre_exec_commands()->set_value( +- "mount -n --bind " + hostPath + " " + volume.container_path()); ++ "@mount@ -n --bind " + hostPath + " " + volume.container_path()); + } + + return launchInfo; +diff --git i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp +index 25636b5..33ec315 100644 +--- i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp ++++ w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp +@@ -401,7 +401,7 @@ Future<Option<ContainerLaunchInfo>> NvidiaGpuIsolatorProcess::_prepare( + } + + launchInfo.add_pre_exec_commands()->set_value( +- "mount --no-mtab --rbind --read-only " + ++ "@mount@ --no-mtab --rbind --read-only " + + volume.HOST_PATH() + " " + target); + } + +diff --git i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp +index 536a3c7..e2819dd 100644 +--- i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp ++++ w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp +@@ -274,7 +274,7 @@ Try<NvidiaVolume> NvidiaVolume::create() + string path = path::join(hostPath, "bin", binary); + + if (!os::exists(path)) { +- string command = "which " + binary; ++ string command = "@which@ " + binary; + Try<string> which = os::shell(command); + + if (which.isSome()) { +@@ -288,7 +288,7 @@ Try<NvidiaVolume> NvidiaVolume::create() + : "No such file or directory")); + } + +- command = "cp " + realpath.get() + " " + path; ++ command = "@cp@ " + realpath.get() + " " + path; + Try<string> cp = os::shell(command); + if (cp.isError()) { + return Error("Failed to os::shell '" + command + "': " + cp.error()); +@@ -360,7 +360,7 @@ Try<NvidiaVolume> NvidiaVolume::create() + Path(realpath.get()).basename()); + + if (!os::exists(libraryPath)) { +- string command = "cp " + realpath.get() + " " + libraryPath; ++ string command = "@cp@ " + realpath.get() + " " + libraryPath; + Try<string> cp = os::shell(command); + if (cp.isError()) { + return Error("Failed to os::shell '" + command + "':" +diff --git i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp +index 42bc2e1..2f9066e 100644 +--- i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp ++++ w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp +@@ -131,7 +131,7 @@ Future<Option<ContainerLaunchInfo>> NamespacesPidIsolatorProcess::prepare( + // + // TOOD(jieyu): Consider unmount the existing /proc. + launchInfo.add_pre_exec_commands()->set_value( +- "mount -n -t proc proc /proc -o nosuid,noexec,nodev"); ++ "@mount@ -n -t proc proc /proc -o nosuid,noexec,nodev"); + + return launchInfo; + } +diff --git i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp +index fc68f04..267b040 100644 +--- i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp ++++ w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp +@@ -205,9 +205,9 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags) + // here because 'create' will only be invoked during + // initialization. + Try<string> mount = os::shell( +- "mount --bind %s %s && " +- "mount --make-private %s && " +- "mount --make-shared %s", ++ "@mount@ --bind %s %s && " ++ "@mount@ --make-private %s && " ++ "@mount@ --make-shared %s", + rootDir->c_str(), + rootDir->c_str(), + rootDir->c_str(), +@@ -227,8 +227,8 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags) + LOG(INFO) << "Making '" << rootDir.get() << "' a shared mount"; + + Try<string> mount = os::shell( +- "mount --make-private %s && " +- "mount --make-shared %s", ++ "@mount@ --make-private %s && " ++ "@mount@ --make-shared %s", + rootDir->c_str(), + rootDir->c_str()); + +diff --git i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp +index 43cf3e4..94bad8b 100644 +--- i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp ++++ w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp +@@ -301,7 +301,7 @@ Try<Nothing> PortMapper::addPortMapping( + # Check if the `chain` exists in the iptable. If it does not + # exist go ahead and install the chain in the iptables NAT + # table. +- iptables -w -t nat --list %s ++ @iptables@ -w -t nat --list %s + if [ $? -ne 0 ]; then + # NOTE: When we create the chain, there is a possibility of a + # race due to which a container launch can fail. This can +@@ -315,25 +315,25 @@ Try<Nothing> PortMapper::addPortMapping( + # since it can happen only when the chain is created the first + # time and two commands for creation of the chain are executed + # simultaneously. +- (iptables -w -t nat -N %s || exit 1) ++ (@iptables@ -w -t nat -N %s || exit 1) + + # Once the chain has been installed add a rule in the PREROUTING + # chain to jump to this chain for any packets that are + # destined to a local address. +- (iptables -w -t nat -A PREROUTING \ ++ (@iptables@ -w -t nat -A PREROUTING \ + -m addrtype --dst-type LOCAL -j %s || exit 1) + + # For locally generated packets we need a rule in the OUTPUT + # chain as well, since locally generated packets directly hit + # the output CHAIN, bypassing PREROUTING. +- (iptables -w -t nat -A OUTPUT \ ++ (@iptables@ -w -t nat -A OUTPUT \ + ! -d 127.0.0.0/8 -m addrtype \ + --dst-type LOCAL -j %s || exit 1) + fi + + # Within the `chain` go ahead and install the DNAT rule, if it + # does not exist. +- (iptables -w -t nat -C %s || iptables -t nat -A %s))~", ++ (@iptables@ -w -t nat -C %s || @iptables@ -t nat -A %s))~", + chain, + chain, + chain, +@@ -360,7 +360,7 @@ Try<Nothing> PortMapper::delPortMapping() + # The iptables command searches for the DNAT rules with tag + # "container_id: <CNI_CONTAINERID>", and if it exists goes ahead + # and deletes it. +- iptables -w -t nat -S %s | sed "/%s/ s/-A/iptables -w -t nat -D/e")~", ++ @iptables@ -w -t nat -S %s | sed "/%s/ s/-A/@iptables@ -w -t nat -D/e")~", + chain, + getIptablesRuleTag()).get(); + +diff --git i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp +index 57d4ccd..68c9577 100644 +--- i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp ++++ w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp +@@ -1394,19 +1394,19 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags) + // Check the availability of a few Linux commands that we will use. + // We use the blocking os::shell here because 'create' will only be + // invoked during initialization. +- Try<string> checkCommandTc = os::shell("tc filter show"); ++ Try<string> checkCommandTc = os::shell("@tc@ filter show"); + if (checkCommandTc.isError()) { + return Error("Check command 'tc' failed: " + checkCommandTc.error()); + } + + // NOTE: loopback device always exists. +- Try<string> checkCommandEthtool = os::shell("ethtool -k lo"); ++ Try<string> checkCommandEthtool = os::shell("@ethtool@ -k lo"); + if (checkCommandEthtool.isError()) { + return Error("Check command 'ethtool' failed: " + + checkCommandEthtool.error()); + } + +- Try<string> checkCommandIp = os::shell("ip link show"); ++ Try<string> checkCommandIp = os::shell("@ip@ link show"); + if (checkCommandIp.isError()) { + return Error("Check command 'ip' failed: " + checkCommandIp.error()); + } +@@ -1940,9 +1940,9 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags) + // visible. It's OK to use the blocking os::shell here because + // 'create' will only be invoked during initialization. + Try<string> mount = os::shell( +- "mount --bind %s %s && " +- "mount --make-slave %s && " +- "mount --make-shared %s", ++ "@mount@ --bind %s %s && " ++ "@mount@ --make-slave %s && " ++ "@mount@ --make-shared %s", + bindMountRoot->c_str(), + bindMountRoot->c_str(), + bindMountRoot->c_str(), +@@ -1959,8 +1959,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags) + // shared mount yet (possibly due to slave crash while preparing + // the work directory mount). It's safe to re-do the following. + Try<string> mount = os::shell( +- "mount --make-slave %s && " +- "mount --make-shared %s", ++ "@mount@ --make-slave %s && " ++ "@mount@ --make-shared %s", + bindMountRoot->c_str(), + bindMountRoot->c_str()); + +@@ -1979,8 +1979,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags) + // so that they are in different peer groups. + if (entry.shared() == bindMountEntry->shared()) { + Try<string> mount = os::shell( +- "mount --make-slave %s && " +- "mount --make-shared %s", ++ "@mount@ --make-slave %s && " ++ "@mount@ --make-shared %s", + bindMountRoot->c_str(), + bindMountRoot->c_str()); + +@@ -3927,6 +3927,8 @@ Try<Nothing> PortMappingIsolatorProcess::removeHostIPFilters( + // TODO(jieyu): Use the Subcommand abstraction to remove most of the + // logic here. Completely remove this function once we can assume a + // newer kernel where 'setns' works for mount namespaces. ++// cstrahan(nixos): this is executed in the container, ++// so we don't want to substitute paths here. + string PortMappingIsolatorProcess::scripts(Info* info) + { + ostringstream script; +@@ -3937,7 +3939,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) + // Mark the mount point PORT_MAPPING_BIND_MOUNT_ROOT() as slave + // mount so that changes in the container will not be propagated to + // the host. +- script << "mount --make-rslave " << bindMountRoot << "\n"; ++ script << "@mount@ --make-rslave " << bindMountRoot << "\n"; + + // Disable IPv6 when IPv6 module is loaded as IPv6 packets won't be + // forwarded anyway. +@@ -3945,7 +3947,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) + << " echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6\n"; + + // Configure lo and eth0. +- script << "ip link set " << lo << " address " << hostMAC ++ script << "@ip@ link set " << lo << " address " << hostMAC + << " mtu " << hostEth0MTU << " up\n"; + + // NOTE: This is mostly a kernel issue: in veth_xmit() the kernel +@@ -3954,12 +3956,12 @@ string PortMappingIsolatorProcess::scripts(Info* info) + // when we receive a packet with a bad checksum. Disabling rx + // checksum offloading ensures the TCP layer will checksum and drop + // it. +- script << "ethtool -K " << eth0 << " rx off\n"; +- script << "ip link set " << eth0 << " address " << hostMAC << " up\n"; +- script << "ip addr add " << hostIPNetwork << " dev " << eth0 << "\n"; ++ script << "@ethtool@ -K " << eth0 << " rx off\n"; ++ script << "@ip@ link set " << eth0 << " address " << hostMAC << " up\n"; ++ script << "@ip@ addr add " << hostIPNetwork << " dev " << eth0 << "\n"; + + // Set up the default gateway to match that of eth0. +- script << "ip route add default via " << hostDefaultGateway << "\n"; ++ script << "@ip@ route add default via " << hostDefaultGateway << "\n"; + + // Restrict the ephemeral ports that can be used by the container. + script << "echo " << info->ephemeralPorts.lower() << " " +@@ -3988,19 +3990,19 @@ string PortMappingIsolatorProcess::scripts(Info* info) + } + + // Set up filters on lo and eth0. +- script << "tc qdisc add dev " << lo << " ingress\n"; +- script << "tc qdisc add dev " << eth0 << " ingress\n"; ++ script << "@tc@ qdisc add dev " << lo << " ingress\n"; ++ script << "@tc@ qdisc add dev " << eth0 << " ingress\n"; + + // Allow talking between containers and from container to host. + // TODO(chzhcn): Consider merging the following two filters. +- script << "tc filter add dev " << lo << " parent " << ingress::HANDLE ++ script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE + << " protocol ip" + << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32" + << " flowid ffff:0" + << " match ip dst " << hostIPNetwork.address() + << " action mirred egress redirect dev " << eth0 << "\n"; + +- script << "tc filter add dev " << lo << " parent " << ingress::HANDLE ++ script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE + << " protocol ip" + << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32" + << " flowid ffff:0" +@@ -4011,7 +4013,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) + foreach (const PortRange& range, + getPortRanges(info->nonEphemeralPorts + info->ephemeralPorts)) { + // Local traffic inside a container will not be redirected to eth0. +- script << "tc filter add dev " << lo << " parent " << ingress::HANDLE ++ script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE + << " protocol ip" + << " prio " << Priority(IP_FILTER_PRIORITY, HIGH).get() << " u32" + << " flowid ffff:0" +@@ -4020,7 +4022,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) + + // Traffic going to host loopback IP and ports assigned to this + // container will be redirected to lo. +- script << "tc filter add dev " << eth0 << " parent " << ingress::HANDLE ++ script << "@tc@ filter add dev " << eth0 << " parent " << ingress::HANDLE + << " protocol ip" + << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32" + << " flowid ffff:0" +@@ -4032,14 +4034,14 @@ string PortMappingIsolatorProcess::scripts(Info* info) + } + + // Do not forward the ICMP packet if the destination IP is self. +- script << "tc filter add dev " << lo << " parent " << ingress::HANDLE ++ script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE + << " protocol ip" + << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32" + << " flowid ffff:0" + << " match ip protocol 1 0xff" + << " match ip dst " << hostIPNetwork.address() << "\n"; + +- script << "tc filter add dev " << lo << " parent " << ingress::HANDLE ++ script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE + << " protocol ip" + << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32" + << " flowid ffff:0" +@@ -4048,9 +4050,9 @@ string PortMappingIsolatorProcess::scripts(Info* info) + << net::IP::Network::LOOPBACK_V4().address() << "\n"; + + // Display the filters created on eth0 and lo. +- script << "tc filter show dev " << eth0 ++ script << "@tc@ filter show dev " << eth0 + << " parent " << ingress::HANDLE << "\n"; +- script << "tc filter show dev " << lo ++ script << "@tc@ filter show dev " << lo + << " parent " << ingress::HANDLE << "\n"; + + // If throughput limit for container egress traffic exists, use HTB +@@ -4062,9 +4064,9 @@ string PortMappingIsolatorProcess::scripts(Info* info) + // throughput. TBF requires other parameters such as 'burst' that + // HTB already has default values for. + if (egressRateLimitPerContainer.isSome()) { +- script << "tc qdisc add dev " << eth0 << " root handle " ++ script << "@tc@ qdisc add dev " << eth0 << " root handle " + << CONTAINER_TX_HTB_HANDLE << " htb default 1\n"; +- script << "tc class add dev " << eth0 << " parent " ++ script << "@tc@ class add dev " << eth0 << " parent " + << CONTAINER_TX_HTB_HANDLE << " classid " + << CONTAINER_TX_HTB_CLASS_ID << " htb rate " + << egressRateLimitPerContainer.get().bytes() * 8 << "bit\n"; +@@ -4075,12 +4077,12 @@ string PortMappingIsolatorProcess::scripts(Info* info) + // fq_codel, which has a larger buffer and better control on + // buffer bloat. + // TODO(cwang): Verity that fq_codel qdisc is available. +- script << "tc qdisc add dev " << eth0 ++ script << "@tc@ qdisc add dev " << eth0 + << " parent " << CONTAINER_TX_HTB_CLASS_ID << " fq_codel\n"; + + // Display the htb qdisc and class created on eth0. +- script << "tc qdisc show dev " << eth0 << "\n"; +- script << "tc class show dev " << eth0 << "\n"; ++ script << "@tc@ qdisc show dev " << eth0 << "\n"; ++ script << "@tc@ class show dev " << eth0 << "\n"; + } + + return script.str(); +diff --git i/src/slave/containerizer/mesos/isolators/posix/disk.cpp w/src/slave/containerizer/mesos/isolators/posix/disk.cpp +index eb23025..db268ea 100644 +--- i/src/slave/containerizer/mesos/isolators/posix/disk.cpp ++++ w/src/slave/containerizer/mesos/isolators/posix/disk.cpp +@@ -572,7 +572,7 @@ private: + // NOTE: The supervisor childhook will watch the parent process and kill + // the 'du' process in case that the parent die. + Try<Subprocess> s = subprocess( +- "du", ++ "@du@", + command, + Subprocess::PATH(os::DEV_NULL), + Subprocess::PIPE(), +diff --git i/src/slave/containerizer/mesos/isolators/volume/image.cpp w/src/slave/containerizer/mesos/isolators/volume/image.cpp +index 35966aa..b62fc86 100644 +--- i/src/slave/containerizer/mesos/isolators/volume/image.cpp ++++ w/src/slave/containerizer/mesos/isolators/volume/image.cpp +@@ -231,7 +231,7 @@ Future<Option<ContainerLaunchInfo>> VolumeImageIsolatorProcess::_prepare( + + CommandInfo* command = launchInfo.add_pre_exec_commands(); + command->set_shell(false); +- command->set_value("mount"); ++ command->set_value("@mount@"); + command->add_arguments("mount"); + command->add_arguments("-n"); + command->add_arguments("--rbind"); +diff --git i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp +index b321b86..8ed3e78 100644 +--- i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp ++++ w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp +@@ -265,7 +265,7 @@ Future<Option<ContainerLaunchInfo>> VolumeSandboxPathIsolatorProcess::prepare( + + CommandInfo* command = launchInfo.add_pre_exec_commands(); + command->set_shell(false); +- command->set_value("mount"); ++ command->set_value("@mount@"); + command->add_arguments("mount"); + command->add_arguments("-n"); + command->add_arguments("--rbind"); +diff --git i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp +index 69faa03..01a3ed6 100644 +--- i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp ++++ w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp +@@ -266,7 +266,7 @@ Future<Nothing> CopyBackendProcess::_provision( + #endif // __APPLE__ || __FreeBSD__ + + Try<Subprocess> s = subprocess( +- "cp", ++ "@cp@", + args, + Subprocess::PATH(os::DEV_NULL), + Subprocess::PATH(os::DEV_NULL), +@@ -313,7 +313,7 @@ Future<bool> CopyBackendProcess::destroy(const string& rootfs) + vector<string> argv{"rm", "-rf", rootfs}; + + Try<Subprocess> s = subprocess( +- "rm", ++ "@rm@", + argv, + Subprocess::PATH(os::DEV_NULL), + Subprocess::FD(STDOUT_FILENO), +diff --git i/src/uri/fetchers/copy.cpp w/src/uri/fetchers/copy.cpp +index 17f69be..831b08a 100644 +--- i/src/uri/fetchers/copy.cpp ++++ w/src/uri/fetchers/copy.cpp +@@ -97,8 +97,8 @@ Future<Nothing> CopyFetcherPlugin::fetch( + VLOG(1) << "Copying '" << uri.path() << "' to '" << directory << "'"; + + #ifndef __WINDOWS__ +- const char* copyCommand = "cp"; +- const vector<string> argv = {"cp", "-a", uri.path(), directory}; ++ const char* copyCommand = "@cp@"; ++ const vector<string> argv = {"@cp@", "-a", uri.path(), directory}; + #else // __WINDOWS__ + const char* copyCommand = os::Shell::name; + const vector<string> argv = +diff --git i/src/uri/fetchers/curl.cpp w/src/uri/fetchers/curl.cpp +index f34daf2..6a50341 100644 +--- i/src/uri/fetchers/curl.cpp ++++ w/src/uri/fetchers/curl.cpp +@@ -109,7 +109,7 @@ Future<Nothing> CurlFetcherPlugin::fetch( + }; + + Try<Subprocess> s = subprocess( +- "curl", ++ "@curl@", + argv, + Subprocess::PATH(os::DEV_NULL), + Subprocess::PIPE(), +diff --git i/src/uri/fetchers/docker.cpp w/src/uri/fetchers/docker.cpp +index 91db13b..82a7fc4 100644 +--- i/src/uri/fetchers/docker.cpp ++++ w/src/uri/fetchers/docker.cpp +@@ -114,7 +114,7 @@ static Future<http::Response> curl( + + // TODO(jieyu): Kill the process if discard is called. + Try<Subprocess> s = subprocess( +- "curl", ++ "@curl@", + argv, + Subprocess::PATH(os::DEV_NULL), + Subprocess::PIPE(), +@@ -229,7 +229,7 @@ static Future<int> download( + + // TODO(jieyu): Kill the process if discard is called. + Try<Subprocess> s = subprocess( +- "curl", ++ "@curl@", + argv, + Subprocess::PATH(os::DEV_NULL), + Subprocess::PIPE(), diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch b/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch new file mode 100644 index 000000000000..bee578cc3e93 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch @@ -0,0 +1,12 @@ +diff --git a/src/linux/fs.cpp b/src/linux/fs.cpp +index 913e233..c2917a6 100644 +--- a/src/linux/fs.cpp ++++ b/src/linux/fs.cpp +@@ -17,6 +17,7 @@ + #include <errno.h> + #include <stdio.h> + #include <string.h> ++#include <syscall.h> + + #include <linux/limits.h> + #include <linux/unistd.h> diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix new file mode 100644 index 000000000000..5637e486ef11 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix @@ -0,0 +1,68 @@ +{ stdenv, buildGoModule, fetchFromGitHub, go-bindata, libvirt, qemu +, gpgme, makeWrapper, vmnet +, docker-machine-kvm, docker-machine-kvm2 +, extraDrivers ? [] +}: + +let + drivers = stdenv.lib.filter (d: d != null) (extraDrivers + ++ stdenv.lib.optionals stdenv.isLinux [ docker-machine-kvm docker-machine-kvm2 ]); + + binPath = drivers + ++ stdenv.lib.optionals stdenv.isLinux ([ libvirt qemu ]); + +in buildGoModule rec { + pname = "minikube"; + version = "1.2.0"; + + kubernetesVersion = "1.15.0"; + + goPackagePath = "k8s.io/minikube"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = "minikube"; + rev = "v${version}"; + sha256 = "0l9znrp49877cp1bkwx84c8lv282ga5a946rjbxi8gznkf3kwaw7"; + }; + + modSha256 = "1cp63n0x2lgbqvvymx9byx48r42qw6w224x5x4iiarc2nryfdhn0"; + + buildInputs = [ go-bindata makeWrapper gpgme ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin vmnet; + subPackages = [ "cmd/minikube" ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin "cmd/drivers/hyperkit"; + + preBuild = '' + go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/... + + VERSION_MAJOR=$(grep "^VERSION_MAJOR" Makefile | sed "s/^.*\s//") + VERSION_MINOR=$(grep "^VERSION_MINOR" Makefile | sed "s/^.*\s//") + ISO_VERSION=v$VERSION_MAJOR.$VERSION_MINOR.0 + ISO_BUCKET=$(grep "^ISO_BUCKET" Makefile | sed "s/^.*\s//") + KUBERNETES_VERSION=${kubernetesVersion} + + export buildFlagsArray="-ldflags=\ + -X k8s.io/minikube/pkg/version.version=v${version} \ + -X k8s.io/minikube/pkg/version.isoVersion=$ISO_VERSION \ + -X k8s.io/minikube/pkg/version.isoPath=$ISO_BUCKET \ + -X k8s.io/minikube/vendor/k8s.io/client-go/pkg/version.gitVersion=$KUBERNETES_VERSION \ + -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitVersion=$KUBERNETES_VERSION" + ''; + + postInstall = '' + wrapProgram $out/bin/${pname} --prefix PATH : $out/bin:${stdenv.lib.makeBinPath binPath} + mkdir -p $out/share/bash-completion/completions/ + MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $out/bin/minikube completion bash > $out/share/bash-completion/completions/minikube + mkdir -p $out/share/zsh/site-functions/ + MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $out/bin/minikube completion zsh > $out/share/zsh/site-functions/_minikube + ''+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' + mv $out/bin/hyperkit $out/bin/docker-machine-driver-hyperkit + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/kubernetes/minikube; + description = "A tool that makes it easy to run Kubernetes locally"; + license = licenses.asl20; + maintainers = with maintainers; [ ebzzry copumpkin vdemeester ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix new file mode 100644 index 000000000000..43e960d9403e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix @@ -0,0 +1,67 @@ +{ lib, buildGoPackage, fetchFromGitHub, go-bindata, pkgconfig, makeWrapper +, glib, gtk3, libappindicator-gtk3, gpgme, openshift, ostree, libselinux, btrfs-progs +, lvm2, docker-machine-kvm +}: + +let + version = "1.34.0"; + + # Update these on version bumps according to Makefile + centOsIsoVersion = "v1.15.0"; + openshiftVersion = "v3.11.0"; + +in buildGoPackage rec { + pname = "minishift"; + inherit version; + + src = fetchFromGitHub { + owner = "minishift"; + repo = "minishift"; + rev = "v${version}"; + sha256 = "0nc1g4lmz5ww6rjyyanp9vq4sj6fvi9zf9qjc4lpsmapddhjkdy7"; + }; + + nativeBuildInputs = [ pkgconfig go-bindata makeWrapper ]; + buildInputs = [ glib gtk3 libappindicator-gtk3 gpgme ostree libselinux btrfs-progs lvm2 ]; + + goPackagePath = "github.com/minishift/minishift"; + subPackages = [ "cmd/minishift" ]; + + postPatch = '' + # minishift downloads openshift if not found therefore set the cache to /nix/store/... + substituteInPlace pkg/minishift/cache/oc_caching.go \ + --replace 'filepath.Join(oc.MinishiftCacheDir, OC_CACHE_DIR, oc.OpenShiftVersion, runtime.GOOS)' '"${openshift}/bin"' \ + --replace '"runtime"' "" + ''; + + buildFlagsArray = '' + -ldflags= + -X ${goPackagePath}/pkg/version.minishiftVersion=${version} + -X ${goPackagePath}/pkg/version.centOsIsoVersion=${centOsIsoVersion} + -X ${goPackagePath}/pkg/version.openshiftVersion=${openshiftVersion} + ''; + + preBuild = '' + (cd go/src/github.com/minishift/minishift + mkdir -p out/bindata + go-bindata -prefix addons -o out/bindata/addon_assets.go -pkg bindata addons/...) + ''; + + postInstall = '' + wrapProgram "$bin/bin/minishift" \ + --prefix PATH ':' '${lib.makeBinPath [ docker-machine-kvm openshift ]}' + ''; + + meta = with lib; { + description = "Run OpenShift locally"; + longDescription = '' + Minishift is a tool that helps you run OpenShift locally by running + a single-node OpenShift cluster inside a VM. You can try out OpenShift + or develop with it, day-to-day, on your local host. + ''; + homepage = https://github.com/minishift/minishift; + maintainers = with maintainers; [ fpletz vdemeester ]; + platforms = platforms.linux; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix new file mode 100644 index 000000000000..6afbbf215a3f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix @@ -0,0 +1,41 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "nomad"; + version = "0.10.2"; + rev = "v${version}"; + + goPackagePath = "github.com/hashicorp/nomad"; + subPackages = [ "." ]; + + src = fetchFromGitHub { + owner = "hashicorp"; + repo = pname; + inherit rev; + sha256 = "1kv67rkqnxiz2dkmc1v1df6qx9j5j4h7cis00v2i15sl824g22jw"; + }; + + # ui: + # Nomad release commits include the compiled version of the UI, but the file + # is only included if we build with the ui tag. + # nonvidia: + # We disable Nvidia GPU scheduling on Linux, as it doesn't work there: + # Ref: https://github.com/hashicorp/nomad/issues/5535 + preBuild = let + tags = ["ui"] + ++ stdenv.lib.optional stdenv.isLinux "nonvidia"; + tagsString = stdenv.lib.concatStringsSep " " tags; + in '' + export buildFlagsArray=( + -tags="${tagsString}" + ) + ''; + + meta = with stdenv.lib; { + homepage = https://www.nomadproject.io/; + description = "A Distributed, Highly Available, Datacenter-Aware Scheduler"; + platforms = platforms.unix; + license = licenses.mpl20; + maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix new file mode 100644 index 000000000000..3b96ef4ea45e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix @@ -0,0 +1,86 @@ +{ stdenv, lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, utillinux +, coreutils, kerberos, clang +, components ? [ + "cmd/oc" + "cmd/openshift" + ] +}: + +with lib; + +let + version = "3.11.0"; + ver = stdenv.lib.elemAt (stdenv.lib.splitVersion version); + versionMajor = ver 0; + versionMinor = ver 1; + versionPatch = ver 2; + gitCommit = "0cbc58b"; + # version is in vendor/k8s.io/kubernetes/pkg/version/base.go + k8sversion = "v1.11.1"; + k8sgitcommit = "b1b2997"; + k8sgitMajor = "0"; + k8sgitMinor = "1"; +in buildGoPackage rec { + pname = "openshift-origin"; + inherit version; + + src = fetchFromGitHub { + owner = "openshift"; + repo = "origin"; + rev = "v${version}"; + sha256 = "06q4v2a1mm6c659ab0rzkqz6b66vx4avqfg0s9xckwhq420lzgka"; + }; + + goPackagePath = "github.com/openshift/origin"; + + buildInputs = [ which rsync go-bindata kerberos clang ]; + + patchPhase = '' + patchShebangs ./hack + + substituteInPlace pkg/oc/clusterup/docker/host/host.go \ + --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt findmnt' \ + 'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/findmnt' + + substituteInPlace pkg/oc/clusterup/docker/host/host.go \ + --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mount' \ + 'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/mount' + + substituteInPlace pkg/oc/clusterup/docker/host/host.go \ + --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mkdir' \ + 'nsenter --mount=/rootfs/proc/1/ns/mnt ${coreutils}/bin/mkdir' + ''; + + buildPhase = '' + cd go/src/${goPackagePath} + # Openshift build require this variables to be set + # unless there is a .git folder which is not the case with fetchFromGitHub + echo "OS_GIT_VERSION=v${version}" >> os-version-defs + echo "OS_GIT_MAJOR=${versionMajor}" >> os-version-defs + echo "OS_GIT_MINOR=${versionMinor}" >> os-version-defs + echo "OS_GIT_PATCH=${versionPatch}" >> os-version-defs + echo "OS_GIT_COMMIT=${gitCommit}" >> os-version-defs + echo "KUBE_GIT_VERSION=${k8sversion}" >> os-version-defs + echo "KUBE_GIT_COMMIT=${k8sgitcommit}" >> os-version-defs + echo "KUBE_GIT_MAJOR=${k8sgitMajor}" >> os-version-defs + echo "KUBE_GIT_MINOR=${k8sgitMinor}" >> os-version-defs + export OS_VERSION_FILE="os-version-defs" + export CC=clang + make all WHAT='${concatStringsSep " " components}' + ''; + + installPhase = '' + mkdir -p $bin/bin + cp -a "_output/local/bin/$(go env GOOS)/$(go env GOARCH)/"* "$bin/bin/" + install -D -t "$bin/etc/bash_completion.d" contrib/completions/bash/* + install -D -t "$bin/share/zsh/site-functions" contrib/completions/zsh/* + ''; + + meta = with stdenv.lib; { + description = "Build, deploy, and manage your applications with Docker and Kubernetes"; + license = licenses.asl20; + homepage = http://www.openshift.org; + maintainers = with maintainers; [offline bachp moretea]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix new file mode 100644 index 000000000000..de0bb015852c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix @@ -0,0 +1,24 @@ +{ lib, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + pname = "pachyderm"; + version = "1.8.5"; + rev = "v${version}"; + + goPackagePath = "github.com/pachyderm/pachyderm"; + subPackages = [ "src/server/cmd/pachctl" ]; + + src = fetchFromGitHub { + inherit rev; + owner = "pachyderm"; + repo = "pachyderm"; + sha256 = "1b9x2xn0sxsjid15lnwr79lps8xzf24i7jfl0i48nabdigmi04wp"; + }; + + meta = with lib; { + description = "Containerized Data Analytics"; + homepage = https://github.com/pachyderm/pachyderm; + license = licenses.asl20; + maintainers = with maintainers; [offline]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix new file mode 100644 index 000000000000..26c39f8cbe21 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl, makeWrapper, hadoop, jre, bash }: + +stdenv.mkDerivation rec { + + name = "pig-0.17.0"; + + src = fetchurl { + url = "mirror://apache/pig/${name}/${name}.tar.gz"; + sha256 = "1wwpg0w47f49rnivn2d26vrxgyfl9gpqx3vmzbl5lhx6x5l3fqbd"; + + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out + mv * $out + + # no need for the windows batch script + rm $out/bin/pig.cmd $out/bin/pig.py + + for n in $out/{bin,sbin}"/"*; do + wrapProgram $n \ + --prefix PATH : "${stdenv.lib.makeBinPath [ jre bash ]}" \ + --set JAVA_HOME "${jre}" --set HADOOP_PREFIX "${hadoop}" + done + ''; + + meta = with stdenv.lib; { + homepage = https://pig.apache.org/; + description = "High-level language for Apache Hadoop"; + license = licenses.asl20; + + longDescription = '' + Apache Pig is a platform for analyzing large data sets that consists of a + high-level language for expressing data analysis programs, coupled with + infrastructure for evaluating these programs. The salient property of Pig + programs is that their structure is amenable to substantial parallelization, + which in turns enables them to handle very large data sets. + ''; + + platforms = platforms.linux; + maintainers = [ maintainers.skeidel ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/prow/13918-fix-go-sum.patch b/nixpkgs/pkgs/applications/networking/cluster/prow/13918-fix-go-sum.patch new file mode 100644 index 000000000000..ae407727b9d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/prow/13918-fix-go-sum.patch @@ -0,0 +1,22 @@ +From b0ab95b9664916618ebf5fe637b1bc4de4ba9a6e Mon Sep 17 00:00:00 2001 +From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com> +Date: Wed, 14 Aug 2019 23:07:51 -0700 +Subject: [PATCH] fix the hash of gomodules.xyz/jsonpatch/v2 + +--- + go.sum | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/go.sum b/go.sum +index 6bb130b4d9b..b3f48a85d4a 100644 +--- a/go.sum ++++ b/go.sum +@@ -452,7 +452,7 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138 h1:H3uGjxCR/6Ds0Mjgyp7LMK8 + golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= + golang.org/x/tools v0.0.0-20190404132500-923d25813098 h1:MtqjsZmyGRgMmLUgxnmMJ6RYdvd2ib8ipiayHhqSxs4= + golang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +-gomodules.xyz/jsonpatch/v2 v2.0.0 h1:lHNQverf0+Gm1TbSbVIDWVXOhZ2FpZopxRqpr2uIjs4= ++gomodules.xyz/jsonpatch/v2 v2.0.0 h1:OyHbl+7IOECpPKfVK42oFr6N7+Y2dR+Jsb/IiDV3hOo= + gomodules.xyz/jsonpatch/v2 v2.0.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= + google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= + google.golang.org/api v0.0.0-20181021000519-a2651947f503/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= diff --git a/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix new file mode 100644 index 000000000000..1c802802c096 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix @@ -0,0 +1,71 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "prow-unstable"; + version = "2019-08-14"; + rev = "35a7744f5737bbc1c4e1256a9c9c5ad135c650e4"; + + src = fetchFromGitHub { + inherit rev; + + owner = "kubernetes"; + repo = "test-infra"; + sha256 = "07kdlzrj59xyaa73vlx4s50fpg0brrkb0h0cyjgx81a0hsc7s03k"; + }; + + patches = [ + # https://github.com/kubernetes/test-infra/pull/13918 + ./13918-fix-go-sum.patch + ]; + + modSha256 = "06q1zvhm78k64aj475k1xl38h7nk83mysd0bja0wknja048ymgsq"; + + subPackages = [ + "./prow/cmd/admission" + "./prow/cmd/artifact-uploader" + "./prow/cmd/branchprotector" + "./prow/cmd/build" + "./prow/cmd/checkconfig" + "./prow/cmd/clonerefs" + "./prow/cmd/config-bootstrapper" + "./prow/cmd/crier" + "./prow/cmd/deck" + "./prow/cmd/entrypoint" + "./prow/cmd/gcsupload" + "./prow/cmd/gerrit" + "./prow/cmd/hook" + "./prow/cmd/horologium" + "./prow/cmd/initupload" + "./prow/cmd/jenkins-operator" + "./prow/cmd/mkbuild-cluster" + "./prow/cmd/mkpj" + "./prow/cmd/mkpod" + "./prow/cmd/peribolos" + "./prow/cmd/phaino" + "./prow/cmd/phony" + "./prow/cmd/pipeline" + "./prow/cmd/plank" + "./prow/cmd/sidecar" + "./prow/cmd/sinker" + "./prow/cmd/status-reconciler" + "./prow/cmd/sub" + "./prow/cmd/tackle" + "./prow/cmd/tide" + "./prow/cmd/tot" + ]; + + meta = with lib; { + description = "Prow is a Kubernetes based CI/CD system"; + longDescription = '' + Prow is a Kubernetes based CI/CD system. Jobs can be triggered by various + types of events and report their status to many different services. In + addition to job execution, Prow provides GitHub automation in the form of + policy enforcement, chat-ops via /foo style commands, and automatic PR + merging. + ''; + homepage = "https://github.com/kubernetes/test-infra/tree/master/prow"; + license = licenses.asl20; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix new file mode 100644 index 000000000000..9e578b9b333a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "qbec"; + version = "0.7.5"; + + src = fetchFromGitHub { + owner = "splunk"; + repo = "qbec"; + rev = "v${version}"; + sha256 = "1q3rbxih4fn0zv8dni5dxb3pq840spplfy08x941najqfgflv9gb"; + }; + + modSha256 = "0s1brqvzm1ghhqb46aqfj0lpnaq76rav0hwwb82ccw8h7052y4jn"; + + meta = with lib; { + description = "Configure kubernetes objects on multiple clusters using jsonnet https://qbec.io"; + homepage = https://github.com/splunk/qbec; + license = licenses.asl20; + maintainers = with maintainers; [ groodt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix new file mode 100644 index 000000000000..32dbced0a461 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix @@ -0,0 +1,43 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +# SHA of ${version} for the tool's help output +let rev = "c9c2a461cd3397909fe6e45ff71836347ef89fd8"; +in +buildGoPackage rec { + pname = "sonobuoy"; + version = "0.16.1"; + + goPackagePath = "github.com/heptio/sonobuoy"; + + buildFlagsArray = + let t = goPackagePath; + in '' + -ldflags= + -s -X ${t}/pkg/buildinfo.Version=${version} + -X ${t}/pkg/buildinfo.GitSHA=${rev} + -X ${t}/pkg/buildDate=unknown + ''; + + src = fetchFromGitHub { + sha256 = "14qc5a7jbr403wjpk6pgpb94i72yx647sg9srz07q6drq650kyfv"; + rev = "v${version}"; + repo = "sonobuoy"; + owner = "vmware-tanzu"; + }; + + meta = with lib; { + description = '' + Diagnostic tool that makes it easier to understand the + state of a Kubernetes cluster. + ''; + longDescription = '' + Sonobuoy is a diagnostic tool that makes it easier to understand the state of + a Kubernetes cluster by running a set of Kubernetes conformance tests in an + accessible and non-destructive manner. + ''; + + homepage = "https://sonobuoy.io"; + license = licenses.asl20; + maintainers = with maintainers; [ carlosdagos saschagrunert ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix new file mode 100644 index 000000000000..2180d8d30489 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix @@ -0,0 +1,27 @@ +{ pkgs, nodejs, stdenv, lib, ... }: + +let + + packageName = with lib; concatStrings (map (entry: (concatStrings (mapAttrsToList (key: value: "${key}-${value}") entry))) (importJSON ./package.json)); + + nodePackages = import ./node-composition.nix { + inherit pkgs nodejs; + inherit (stdenv.hostPlatform) system; + }; +in +nodePackages."${packageName}".override { + nativeBuildInputs = [ pkgs.makeWrapper ]; + + postInstall = '' + # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems + patchShebangs --build "$out/lib/node_modules/spacegun/node_modules/" + # compile Typescript sources + npm run build + ''; + + meta = with lib; { + description = "Version controlled multi-cluster deployment manager for kubernetes"; + maintainers = with maintainers; [ kampka ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh b/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh new file mode 100644 index 000000000000..293a72a16237 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nodePackages.node2nix + +node2nix \ + --nodejs-10 \ + --node-env ../../../../development/node-packages/node-env.nix \ + --development \ + --input package.json \ + --output node-packages.nix \ + --composition node-composition.nix diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix new file mode 100644 index 000000000000..6a5283528fca --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.7.0. Do not edit! + +{pkgs ? import <nixpkgs> { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}: + +let + nodeEnv = import ../../../../development/node-packages/node-env.nix { + inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; + inherit nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages.nix { + inherit (pkgs) fetchurl fetchgit; + inherit nodeEnv; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix new file mode 100644 index 000000000000..a69352a9c21c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix @@ -0,0 +1,11420 @@ +# This file has been generated by node2nix 1.7.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "@babel/code-frame-7.5.5" = { + name = "_at_babel_slash_code-frame"; + packageName = "@babel/code-frame"; + version = "7.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz"; + sha512 = "27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw=="; + }; + }; + "@babel/core-7.6.2" = { + name = "_at_babel_slash_core"; + packageName = "@babel/core"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz"; + sha512 = "l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ=="; + }; + }; + "@babel/generator-7.6.2" = { + name = "_at_babel_slash_generator"; + packageName = "@babel/generator"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz"; + sha512 = "j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ=="; + }; + }; + "@babel/helper-function-name-7.1.0" = { + name = "_at_babel_slash_helper-function-name"; + packageName = "@babel/helper-function-name"; + version = "7.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz"; + sha512 = "A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw=="; + }; + }; + "@babel/helper-get-function-arity-7.0.0" = { + name = "_at_babel_slash_helper-get-function-arity"; + packageName = "@babel/helper-get-function-arity"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz"; + sha512 = "r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ=="; + }; + }; + "@babel/helper-plugin-utils-7.0.0" = { + name = "_at_babel_slash_helper-plugin-utils"; + packageName = "@babel/helper-plugin-utils"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz"; + sha512 = "CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA=="; + }; + }; + "@babel/helper-split-export-declaration-7.4.4" = { + name = "_at_babel_slash_helper-split-export-declaration"; + packageName = "@babel/helper-split-export-declaration"; + version = "7.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz"; + sha512 = "Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q=="; + }; + }; + "@babel/helpers-7.6.2" = { + name = "_at_babel_slash_helpers"; + packageName = "@babel/helpers"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz"; + sha512 = "3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA=="; + }; + }; + "@babel/highlight-7.5.0" = { + name = "_at_babel_slash_highlight"; + packageName = "@babel/highlight"; + version = "7.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz"; + sha512 = "7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ=="; + }; + }; + "@babel/parser-7.6.2" = { + name = "_at_babel_slash_parser"; + packageName = "@babel/parser"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz"; + sha512 = "mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg=="; + }; + }; + "@babel/plugin-syntax-object-rest-spread-7.2.0" = { + name = "_at_babel_slash_plugin-syntax-object-rest-spread"; + packageName = "@babel/plugin-syntax-object-rest-spread"; + version = "7.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz"; + sha512 = "t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA=="; + }; + }; + "@babel/template-7.6.0" = { + name = "_at_babel_slash_template"; + packageName = "@babel/template"; + version = "7.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz"; + sha512 = "5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ=="; + }; + }; + "@babel/traverse-7.6.2" = { + name = "_at_babel_slash_traverse"; + packageName = "@babel/traverse"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz"; + sha512 = "8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ=="; + }; + }; + "@babel/types-7.6.1" = { + name = "_at_babel_slash_types"; + packageName = "@babel/types"; + version = "7.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz"; + sha512 = "X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g=="; + }; + }; + "@cnakazawa/watch-1.0.3" = { + name = "_at_cnakazawa_slash_watch"; + packageName = "@cnakazawa/watch"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz"; + sha512 = "r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA=="; + }; + }; + "@jest/console-24.9.0" = { + name = "_at_jest_slash_console"; + packageName = "@jest/console"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz"; + sha512 = "Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ=="; + }; + }; + "@jest/core-24.9.0" = { + name = "_at_jest_slash_core"; + packageName = "@jest/core"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz"; + sha512 = "Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A=="; + }; + }; + "@jest/environment-24.9.0" = { + name = "_at_jest_slash_environment"; + packageName = "@jest/environment"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz"; + sha512 = "5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ=="; + }; + }; + "@jest/fake-timers-24.9.0" = { + name = "_at_jest_slash_fake-timers"; + packageName = "@jest/fake-timers"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz"; + sha512 = "eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A=="; + }; + }; + "@jest/reporters-24.9.0" = { + name = "_at_jest_slash_reporters"; + packageName = "@jest/reporters"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz"; + sha512 = "mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw=="; + }; + }; + "@jest/source-map-24.9.0" = { + name = "_at_jest_slash_source-map"; + packageName = "@jest/source-map"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz"; + sha512 = "/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg=="; + }; + }; + "@jest/test-result-24.9.0" = { + name = "_at_jest_slash_test-result"; + packageName = "@jest/test-result"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz"; + sha512 = "XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA=="; + }; + }; + "@jest/test-sequencer-24.9.0" = { + name = "_at_jest_slash_test-sequencer"; + packageName = "@jest/test-sequencer"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz"; + sha512 = "6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A=="; + }; + }; + "@jest/transform-24.9.0" = { + name = "_at_jest_slash_transform"; + packageName = "@jest/transform"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz"; + sha512 = "TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ=="; + }; + }; + "@jest/types-24.9.0" = { + name = "_at_jest_slash_types"; + packageName = "@jest/types"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz"; + sha512 = "XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw=="; + }; + }; + "@kubernetes/client-node-0.10.3" = { + name = "_at_kubernetes_slash_client-node"; + packageName = "@kubernetes/client-node"; + version = "0.10.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.10.3.tgz"; + sha512 = "mw+1zdKfMW4QN2ns82SKFhAvqC4SVUAiItto4oFg3Me+a510h3h9N5O7ad6m4efAmlQBlMc6Y5FHz70dAwuiMg=="; + }; + }; + "@sindresorhus/is-0.7.0" = { + name = "_at_sindresorhus_slash_is"; + packageName = "@sindresorhus/is"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz"; + sha512 = "ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow=="; + }; + }; + "@types/accepts-1.3.5" = { + name = "_at_types_slash_accepts"; + packageName = "@types/accepts"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz"; + sha512 = "jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ=="; + }; + }; + "@types/axios-0.14.0" = { + name = "_at_types_slash_axios"; + packageName = "@types/axios"; + version = "0.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz"; + sha1 = "ec2300fbe7d7dddd7eb9d3abf87999964cafce46"; + }; + }; + "@types/babel-types-7.0.7" = { + name = "_at_types_slash_babel-types"; + packageName = "@types/babel-types"; + version = "7.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz"; + sha512 = "dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="; + }; + }; + "@types/babel__core-7.1.3" = { + name = "_at_types_slash_babel__core"; + packageName = "@types/babel__core"; + version = "7.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz"; + sha512 = "8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA=="; + }; + }; + "@types/babel__generator-7.6.0" = { + name = "_at_types_slash_babel__generator"; + packageName = "@types/babel__generator"; + version = "7.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.0.tgz"; + sha512 = "c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw=="; + }; + }; + "@types/babel__template-7.0.2" = { + name = "_at_types_slash_babel__template"; + packageName = "@types/babel__template"; + version = "7.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz"; + sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg=="; + }; + }; + "@types/babel__traverse-7.0.7" = { + name = "_at_types_slash_babel__traverse"; + packageName = "@types/babel__traverse"; + version = "7.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.7.tgz"; + sha512 = "CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw=="; + }; + }; + "@types/babylon-6.16.5" = { + name = "_at_types_slash_babylon"; + packageName = "@types/babylon"; + version = "6.16.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz"; + sha512 = "xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w=="; + }; + }; + "@types/body-parser-1.17.1" = { + name = "_at_types_slash_body-parser"; + packageName = "@types/body-parser"; + version = "1.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz"; + sha512 = "RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w=="; + }; + }; + "@types/caseless-0.12.2" = { + name = "_at_types_slash_caseless"; + packageName = "@types/caseless"; + version = "0.12.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz"; + sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w=="; + }; + }; + "@types/command-line-args-5.0.0" = { + name = "_at_types_slash_command-line-args"; + packageName = "@types/command-line-args"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.0.0.tgz"; + sha512 = "4eOPXyn5DmP64MCMF8ePDvdlvlzt2a+F8ZaVjqmh2yFCpGjc1kI3kGnCFYX9SCsGTjQcWIyVZ86IHCEyjy/MNg=="; + }; + }; + "@types/connect-3.4.32" = { + name = "_at_types_slash_connect"; + packageName = "@types/connect"; + version = "3.4.32"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz"; + sha512 = "4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg=="; + }; + }; + "@types/cookies-0.7.4" = { + name = "_at_types_slash_cookies"; + packageName = "@types/cookies"; + version = "0.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz"; + sha512 = "oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw=="; + }; + }; + "@types/cron-1.7.1" = { + name = "_at_types_slash_cron"; + packageName = "@types/cron"; + version = "1.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cron/-/cron-1.7.1.tgz"; + sha512 = "48brwgU18DqA0mQX1As5OcJEo1yNjaXMM6Mk4r8K1dOzLJRQ37FE/kCivKx7ClKEHfhX2FdcxKzJ1B744a+V3A=="; + }; + }; + "@types/events-3.0.0" = { + name = "_at_types_slash_events"; + packageName = "@types/events"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz"; + sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="; + }; + }; + "@types/express-4.17.1" = { + name = "_at_types_slash_express"; + packageName = "@types/express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express/-/express-4.17.1.tgz"; + sha512 = "VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w=="; + }; + }; + "@types/express-serve-static-core-4.16.9" = { + name = "_at_types_slash_express-serve-static-core"; + packageName = "@types/express-serve-static-core"; + version = "4.16.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz"; + sha512 = "GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ=="; + }; + }; + "@types/formidable-1.0.31" = { + name = "_at_types_slash_formidable"; + packageName = "@types/formidable"; + version = "1.0.31"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.31.tgz"; + sha512 = "dIhM5t8lRP0oWe2HF8MuPvdd1TpPTjhDMAqemcq6oIZQCBQTovhBAdTQ5L5veJB4pdQChadmHuxtB0YzqvfU3Q=="; + }; + }; + "@types/glob-7.1.1" = { + name = "_at_types_slash_glob"; + packageName = "@types/glob"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz"; + sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w=="; + }; + }; + "@types/http-assert-1.5.1" = { + name = "_at_types_slash_http-assert"; + packageName = "@types/http-assert"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz"; + sha512 = "PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ=="; + }; + }; + "@types/istanbul-lib-coverage-2.0.1" = { + name = "_at_types_slash_istanbul-lib-coverage"; + packageName = "@types/istanbul-lib-coverage"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz"; + sha512 = "hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg=="; + }; + }; + "@types/istanbul-lib-report-1.1.1" = { + name = "_at_types_slash_istanbul-lib-report"; + packageName = "@types/istanbul-lib-report"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz"; + sha512 = "3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg=="; + }; + }; + "@types/istanbul-reports-1.1.1" = { + name = "_at_types_slash_istanbul-reports"; + packageName = "@types/istanbul-reports"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz"; + sha512 = "UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA=="; + }; + }; + "@types/jest-24.0.18" = { + name = "_at_types_slash_jest"; + packageName = "@types/jest"; + version = "24.0.18"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/jest/-/jest-24.0.18.tgz"; + sha512 = "jcDDXdjTcrQzdN06+TSVsPPqxvsZA/5QkYfIZlq1JMw7FdP5AZylbOc+6B/cuDurctRe+MziUMtQ3xQdrbjqyQ=="; + }; + }; + "@types/jest-diff-20.0.1" = { + name = "_at_types_slash_jest-diff"; + packageName = "@types/jest-diff"; + version = "20.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz"; + sha512 = "yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA=="; + }; + }; + "@types/js-yaml-3.12.1" = { + name = "_at_types_slash_js-yaml"; + packageName = "@types/js-yaml"; + version = "3.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.1.tgz"; + sha512 = "SGGAhXLHDx+PK4YLNcNGa6goPf9XRWQNAUUbffkwVGGXIxmDKWyGGL4inzq2sPmExu431Ekb9aEMn9BkPqEYFA=="; + }; + }; + "@types/keygrip-1.0.1" = { + name = "_at_types_slash_keygrip"; + packageName = "@types/keygrip"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz"; + sha1 = "ff540462d2fb4d0a88441ceaf27d287b01c3d878"; + }; + }; + "@types/koa-2.0.50" = { + name = "_at_types_slash_koa"; + packageName = "@types/koa"; + version = "2.0.50"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa/-/koa-2.0.50.tgz"; + sha512 = "TcgOD2lh0EISSadAk1DOBYw7kNoY9XdeB3vEMOKiDDaTMYm+V54nyPsU7Ulb/htb5OBIR79RgTeCWntCcophLw=="; + }; + }; + "@types/koa-compose-3.2.4" = { + name = "_at_types_slash_koa-compose"; + packageName = "@types/koa-compose"; + version = "3.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.4.tgz"; + sha512 = "ioou0rxkuWL+yBQYsHUQAzRTfVxAg8Y2VfMftU+Y3RA03/MzuFL0x/M2sXXj3PkfnENbHsjeHR1aMdezLYpTeA=="; + }; + }; + "@types/koa-router-7.0.42" = { + name = "_at_types_slash_koa-router"; + packageName = "@types/koa-router"; + version = "7.0.42"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.0.42.tgz"; + sha512 = "mggrNY7Ywwjt7QjaMAlbb1ixE+v7AFskOeyKdmZT/NvPVEAo48gYUxIcF8ILlMc3eg1bo6SxNoUcbxhTv7edrA=="; + }; + }; + "@types/koa-send-4.1.2" = { + name = "_at_types_slash_koa-send"; + packageName = "@types/koa-send"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-send/-/koa-send-4.1.2.tgz"; + sha512 = "rfqKIv9bFds39Jxvsp8o3YJLnEQVPVriYA14AuO2OY65IHh/4UX4U/iMs5L0wATpcRmm1bbe0BNk23TRwx3VQQ=="; + }; + }; + "@types/koa-static-4.0.1" = { + name = "_at_types_slash_koa-static"; + packageName = "@types/koa-static"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-static/-/koa-static-4.0.1.tgz"; + sha512 = "SSpct5fEcAeRkBHa3RiwCIRfDHcD1cZRhwRF///ZfvRt8KhoqRrhK6wpDlYPk/vWHVFE9hPGqh68bhzsHkir4w=="; + }; + }; + "@types/koa-views-2.0.3" = { + name = "_at_types_slash_koa-views"; + packageName = "@types/koa-views"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-views/-/koa-views-2.0.3.tgz"; + sha512 = "XLn//7qUUz2U9ZKXyHPwVIcQbZcW3phYTFXHGa1eW5BN88bi8n2fegvwJ+TokL2jRmRqBWwMB5p7Aab9iq1sZw=="; + }; + }; + "@types/lodash-4.14.141" = { + name = "_at_types_slash_lodash"; + packageName = "@types/lodash"; + version = "4.14.141"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.141.tgz"; + sha512 = "v5NYIi9qEbFEUpCyikmnOYe4YlP8BMUdTcNCAquAKzu+FA7rZ1onj9x80mbnDdOW/K5bFf3Tv5kJplP33+gAbQ=="; + }; + }; + "@types/lodash.clonedeep-4.5.6" = { + name = "_at_types_slash_lodash.clonedeep"; + packageName = "@types/lodash.clonedeep"; + version = "4.5.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz"; + sha512 = "cE1jYr2dEg1wBImvXlNtp0xDoS79rfEdGozQVgliDZj1uERH4k+rmEMTudP9b4VQ8O6nRb5gPqft0QzEQGMQgA=="; + }; + }; + "@types/mime-2.0.1" = { + name = "_at_types_slash_mime"; + packageName = "@types/mime"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz"; + sha512 = "FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="; + }; + }; + "@types/minimatch-3.0.3" = { + name = "_at_types_slash_minimatch"; + packageName = "@types/minimatch"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz"; + sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="; + }; + }; + "@types/mkdirp-0.5.2" = { + name = "_at_types_slash_mkdirp"; + packageName = "@types/mkdirp"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz"; + sha512 = "U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg=="; + }; + }; + "@types/node-10.14.20" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "10.14.20"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-10.14.20.tgz"; + sha512 = "An+MXSV8CGXz/BO9C1KKsoJ/8WDrvlNUaRMsm2h+IHZuSyQkM8U5bJJkb8ItLKA73VePG/nUK+t+EuW2IWuhsQ=="; + }; + }; + "@types/node-12.7.11" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "12.7.11"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-12.7.11.tgz"; + sha512 = "Otxmr2rrZLKRYIybtdG/sgeO+tHY20GxeDjcGmUnmmlCWyEnv2a2x1ZXBo3BTec4OiTXMQCiazB8NMBf0iRlFw=="; + }; + }; + "@types/ora-3.2.0" = { + name = "_at_types_slash_ora"; + packageName = "@types/ora"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/ora/-/ora-3.2.0.tgz"; + sha512 = "jll99xUKpiFbIFZSQcxm4numfsLaOWBzWNaRk3PvTSE7BPqTzzOCFmS0mQ7m8qkTfmYhuYbehTGsxkvRLPC++w=="; + }; + }; + "@types/range-parser-1.2.3" = { + name = "_at_types_slash_range-parser"; + packageName = "@types/range-parser"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz"; + sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; + }; + }; + "@types/request-2.48.3" = { + name = "_at_types_slash_request"; + packageName = "@types/request"; + version = "2.48.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/request/-/request-2.48.3.tgz"; + sha512 = "3Wo2jNYwqgXcIz/rrq18AdOZUQB8cQ34CXZo+LUwPJNpvRAL86+Kc2wwI8mqpz9Cr1V+enIox5v+WZhy/p3h8w=="; + }; + }; + "@types/serve-static-1.13.3" = { + name = "_at_types_slash_serve-static"; + packageName = "@types/serve-static"; + version = "1.13.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz"; + sha512 = "oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g=="; + }; + }; + "@types/stack-utils-1.0.1" = { + name = "_at_types_slash_stack-utils"; + packageName = "@types/stack-utils"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz"; + sha512 = "l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw=="; + }; + }; + "@types/tough-cookie-2.3.5" = { + name = "_at_types_slash_tough-cookie"; + packageName = "@types/tough-cookie"; + version = "2.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz"; + sha512 = "SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg=="; + }; + }; + "@types/underscore-1.9.3" = { + name = "_at_types_slash_underscore"; + packageName = "@types/underscore"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.3.tgz"; + sha512 = "SwbHKB2DPIDlvYqtK5O+0LFtZAyrUSw4c0q+HWwmH1Ve3KMQ0/5PlV3RX97+3dP7yMrnNQ8/bCWWvQpPl03Mug=="; + }; + }; + "@types/websocket-0.0.40" = { + name = "_at_types_slash_websocket"; + packageName = "@types/websocket"; + version = "0.0.40"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/websocket/-/websocket-0.0.40.tgz"; + sha512 = "ldteZwWIgl9cOy7FyvYn+39Ah4+PfpVE72eYKw75iy2L0zTbhbcwvzeJ5IOu6DQP93bjfXq0NGHY6FYtmYoqFQ=="; + }; + }; + "@types/ws-6.0.3" = { + name = "_at_types_slash_ws"; + packageName = "@types/ws"; + version = "6.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/ws/-/ws-6.0.3.tgz"; + sha512 = "yBTM0P05Tx9iXGq00BbJPo37ox68R5vaGTXivs6RGh/BQ6QP5zqZDGWdAO6JbRE/iR1l80xeGAwCQS2nMV9S/w=="; + }; + }; + "@types/yargs-13.0.3" = { + name = "_at_types_slash_yargs"; + packageName = "@types/yargs"; + version = "13.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz"; + sha512 = "K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ=="; + }; + }; + "@types/yargs-parser-13.1.0" = { + name = "_at_types_slash_yargs-parser"; + packageName = "@types/yargs-parser"; + version = "13.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz"; + sha512 = "gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg=="; + }; + }; + "@webassemblyjs/ast-1.8.5" = { + name = "_at_webassemblyjs_slash_ast"; + packageName = "@webassemblyjs/ast"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz"; + sha512 = "aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ=="; + }; + }; + "@webassemblyjs/floating-point-hex-parser-1.8.5" = { + name = "_at_webassemblyjs_slash_floating-point-hex-parser"; + packageName = "@webassemblyjs/floating-point-hex-parser"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz"; + sha512 = "9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ=="; + }; + }; + "@webassemblyjs/helper-api-error-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-api-error"; + packageName = "@webassemblyjs/helper-api-error"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz"; + sha512 = "Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA=="; + }; + }; + "@webassemblyjs/helper-buffer-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-buffer"; + packageName = "@webassemblyjs/helper-buffer"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz"; + sha512 = "Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q=="; + }; + }; + "@webassemblyjs/helper-code-frame-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-code-frame"; + packageName = "@webassemblyjs/helper-code-frame"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz"; + sha512 = "VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ=="; + }; + }; + "@webassemblyjs/helper-fsm-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-fsm"; + packageName = "@webassemblyjs/helper-fsm"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz"; + sha512 = "kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow=="; + }; + }; + "@webassemblyjs/helper-module-context-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-module-context"; + packageName = "@webassemblyjs/helper-module-context"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz"; + sha512 = "/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g=="; + }; + }; + "@webassemblyjs/helper-wasm-bytecode-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-wasm-bytecode"; + packageName = "@webassemblyjs/helper-wasm-bytecode"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz"; + sha512 = "Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ=="; + }; + }; + "@webassemblyjs/helper-wasm-section-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-wasm-section"; + packageName = "@webassemblyjs/helper-wasm-section"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz"; + sha512 = "VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA=="; + }; + }; + "@webassemblyjs/ieee754-1.8.5" = { + name = "_at_webassemblyjs_slash_ieee754"; + packageName = "@webassemblyjs/ieee754"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz"; + sha512 = "aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g=="; + }; + }; + "@webassemblyjs/leb128-1.8.5" = { + name = "_at_webassemblyjs_slash_leb128"; + packageName = "@webassemblyjs/leb128"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz"; + sha512 = "plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A=="; + }; + }; + "@webassemblyjs/utf8-1.8.5" = { + name = "_at_webassemblyjs_slash_utf8"; + packageName = "@webassemblyjs/utf8"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz"; + sha512 = "U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw=="; + }; + }; + "@webassemblyjs/wasm-edit-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-edit"; + packageName = "@webassemblyjs/wasm-edit"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz"; + sha512 = "A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q=="; + }; + }; + "@webassemblyjs/wasm-gen-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-gen"; + packageName = "@webassemblyjs/wasm-gen"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz"; + sha512 = "BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg=="; + }; + }; + "@webassemblyjs/wasm-opt-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-opt"; + packageName = "@webassemblyjs/wasm-opt"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz"; + sha512 = "HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q=="; + }; + }; + "@webassemblyjs/wasm-parser-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-parser"; + packageName = "@webassemblyjs/wasm-parser"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz"; + sha512 = "pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw=="; + }; + }; + "@webassemblyjs/wast-parser-1.8.5" = { + name = "_at_webassemblyjs_slash_wast-parser"; + packageName = "@webassemblyjs/wast-parser"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz"; + sha512 = "daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg=="; + }; + }; + "@webassemblyjs/wast-printer-1.8.5" = { + name = "_at_webassemblyjs_slash_wast-printer"; + packageName = "@webassemblyjs/wast-printer"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz"; + sha512 = "w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg=="; + }; + }; + "@xtuc/ieee754-1.2.0" = { + name = "_at_xtuc_slash_ieee754"; + packageName = "@xtuc/ieee754"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz"; + sha512 = "DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="; + }; + }; + "@xtuc/long-4.2.2" = { + name = "_at_xtuc_slash_long"; + packageName = "@xtuc/long"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz"; + sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="; + }; + }; + "abab-2.0.2" = { + name = "abab"; + packageName = "abab"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz"; + sha512 = "2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg=="; + }; + }; + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "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=="; + }; + }; + "acorn-3.3.0" = { + name = "acorn"; + packageName = "acorn"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"; + sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a"; + }; + }; + "acorn-4.0.13" = { + name = "acorn"; + packageName = "acorn"; + version = "4.0.13"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz"; + sha1 = "105495ae5361d697bd195c825192e1ad7f253787"; + }; + }; + "acorn-5.7.3" = { + name = "acorn"; + packageName = "acorn"; + version = "5.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz"; + sha512 = "T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="; + }; + }; + "acorn-6.3.0" = { + name = "acorn"; + packageName = "acorn"; + version = "6.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz"; + sha512 = "/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA=="; + }; + }; + "acorn-globals-3.1.0" = { + name = "acorn-globals"; + packageName = "acorn-globals"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz"; + sha1 = "fd8270f71fbb4996b004fa880ee5d46573a731bf"; + }; + }; + "acorn-globals-4.3.4" = { + name = "acorn-globals"; + packageName = "acorn-globals"; + version = "4.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz"; + sha512 = "clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A=="; + }; + }; + "acorn-walk-6.2.0" = { + name = "acorn-walk"; + packageName = "acorn-walk"; + version = "6.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz"; + sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="; + }; + }; + "aggregate-error-1.0.0" = { + name = "aggregate-error"; + packageName = "aggregate-error"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz"; + sha1 = "888344dad0220a72e3af50906117f48771925fac"; + }; + }; + "ajv-6.10.2" = { + name = "ajv"; + packageName = "ajv"; + version = "6.10.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz"; + sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw=="; + }; + }; + "ajv-errors-1.0.1" = { + name = "ajv-errors"; + packageName = "ajv-errors"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz"; + sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="; + }; + }; + "ajv-keywords-3.4.1" = { + name = "ajv-keywords"; + packageName = "ajv-keywords"; + version = "3.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz"; + sha512 = "RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="; + }; + }; + "align-text-0.1.4" = { + name = "align-text"; + packageName = "align-text"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"; + sha1 = "0cd90a561093f35d0a99256c22b7069433fad117"; + }; + }; + "ansi-colors-3.2.4" = { + name = "ansi-colors"; + packageName = "ansi-colors"; + version = "3.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz"; + sha512 = "hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA=="; + }; + }; + "ansi-escapes-3.2.0" = { + name = "ansi-escapes"; + packageName = "ansi-escapes"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz"; + sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="; + }; + }; + "ansi-html-0.0.7" = { + name = "ansi-html"; + packageName = "ansi-html"; + version = "0.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz"; + sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e"; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "ansi-regex-3.0.0" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"; + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; + }; + }; + "ansi-regex-4.1.0" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"; + sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="; + }; + }; + "ansi-styles-2.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"; + sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; + }; + }; + "ansi-styles-3.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; + }; + }; + "any-promise-1.3.0" = { + name = "any-promise"; + packageName = "any-promise"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"; + sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f"; + }; + }; + "anymatch-2.0.0" = { + name = "anymatch"; + packageName = "anymatch"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"; + sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw=="; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; + }; + }; + "argparse-1.0.10" = { + name = "argparse"; + packageName = "argparse"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; + sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; + }; + }; + "arr-diff-4.0.0" = { + name = "arr-diff"; + packageName = "arr-diff"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"; + sha1 = "d6461074febfec71e7e15235761a329a5dc7c520"; + }; + }; + "arr-flatten-1.1.0" = { + name = "arr-flatten"; + packageName = "arr-flatten"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"; + sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="; + }; + }; + "arr-union-3.1.0" = { + name = "arr-union"; + packageName = "arr-union"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"; + sha1 = "e39b09aea9def866a8f206e288af63919bae39c4"; + }; + }; + "array-back-3.1.0" = { + name = "array-back"; + packageName = "array-back"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz"; + sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="; + }; + }; + "array-equal-1.0.0" = { + name = "array-equal"; + packageName = "array-equal"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz"; + sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93"; + }; + }; + "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"; + }; + }; + "array-flatten-2.1.2" = { + name = "array-flatten"; + packageName = "array-flatten"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz"; + sha512 = "hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="; + }; + }; + "array-union-1.0.2" = { + name = "array-union"; + packageName = "array-union"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz"; + sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39"; + }; + }; + "array-uniq-1.0.3" = { + name = "array-uniq"; + packageName = "array-uniq"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"; + sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6"; + }; + }; + "array-unique-0.3.2" = { + name = "array-unique"; + packageName = "array-unique"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"; + sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"; + }; + }; + "asap-2.0.6" = { + name = "asap"; + packageName = "asap"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"; + sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46"; + }; + }; + "asn1-0.2.4" = { + name = "asn1"; + packageName = "asn1"; + version = "0.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; + sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; + }; + }; + "asn1.js-4.10.1" = { + name = "asn1.js"; + packageName = "asn1.js"; + version = "4.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz"; + sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw=="; + }; + }; + "assert-1.5.0" = { + name = "assert"; + packageName = "assert"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz"; + sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA=="; + }; + }; + "assert-plus-1.0.0" = { + name = "assert-plus"; + packageName = "assert-plus"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + }; + "assign-symbols-1.0.0" = { + name = "assign-symbols"; + packageName = "assign-symbols"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"; + sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"; + }; + }; + "astral-regex-1.0.0" = { + name = "astral-regex"; + packageName = "astral-regex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz"; + sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="; + }; + }; + "async-1.5.2" = { + name = "async"; + packageName = "async"; + version = "1.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz"; + sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a"; + }; + }; + "async-each-1.0.3" = { + name = "async-each"; + packageName = "async-each"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"; + sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="; + }; + }; + "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=="; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "atob-2.1.2" = { + name = "atob"; + packageName = "atob"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"; + sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="; + }; + }; + "awesome-typescript-loader-5.2.1" = { + name = "awesome-typescript-loader"; + packageName = "awesome-typescript-loader"; + version = "5.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz"; + sha512 = "slv66OAJB8orL+UUaTI3pKlLorwIvS4ARZzYR9iJJyGsEgOqueMfOMdKySWzZ73vIkEe3fcwFgsKMg4d8zyb1g=="; + }; + }; + "aws-sign2-0.7.0" = { + name = "aws-sign2"; + packageName = "aws-sign2"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + }; + "aws4-1.8.0" = { + name = "aws4"; + packageName = "aws4"; + version = "1.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"; + sha512 = "ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="; + }; + }; + "axios-0.19.0" = { + name = "axios"; + packageName = "axios"; + version = "0.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz"; + sha512 = "1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ=="; + }; + }; + "babel-6.23.0" = { + name = "babel"; + packageName = "babel"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz"; + sha1 = "d0d1e7d803e974765beea3232d4e153c0efb90f4"; + }; + }; + "babel-code-frame-6.26.0" = { + name = "babel-code-frame"; + packageName = "babel-code-frame"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz"; + sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"; + }; + }; + "babel-core-6.26.3" = { + name = "babel-core"; + packageName = "babel-core"; + version = "6.26.3"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz"; + sha512 = "6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA=="; + }; + }; + "babel-generator-6.26.1" = { + name = "babel-generator"; + packageName = "babel-generator"; + version = "6.26.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz"; + sha512 = "HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA=="; + }; + }; + "babel-helper-builder-binary-assignment-operator-visitor-6.24.1" = { + name = "babel-helper-builder-binary-assignment-operator-visitor"; + packageName = "babel-helper-builder-binary-assignment-operator-visitor"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz"; + sha1 = "cce4517ada356f4220bcae8a02c2b346f9a56664"; + }; + }; + "babel-helper-call-delegate-6.24.1" = { + name = "babel-helper-call-delegate"; + packageName = "babel-helper-call-delegate"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz"; + sha1 = "ece6aacddc76e41c3461f88bfc575bd0daa2df8d"; + }; + }; + "babel-helper-define-map-6.26.0" = { + name = "babel-helper-define-map"; + packageName = "babel-helper-define-map"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz"; + sha1 = "a5f56dab41a25f97ecb498c7ebaca9819f95be5f"; + }; + }; + "babel-helper-explode-assignable-expression-6.24.1" = { + name = "babel-helper-explode-assignable-expression"; + packageName = "babel-helper-explode-assignable-expression"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz"; + sha1 = "f25b82cf7dc10433c55f70592d5746400ac22caa"; + }; + }; + "babel-helper-function-name-6.24.1" = { + name = "babel-helper-function-name"; + packageName = "babel-helper-function-name"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz"; + sha1 = "d3475b8c03ed98242a25b48351ab18399d3580a9"; + }; + }; + "babel-helper-get-function-arity-6.24.1" = { + name = "babel-helper-get-function-arity"; + packageName = "babel-helper-get-function-arity"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz"; + sha1 = "8f7782aa93407c41d3aa50908f89b031b1b6853d"; + }; + }; + "babel-helper-hoist-variables-6.24.1" = { + name = "babel-helper-hoist-variables"; + packageName = "babel-helper-hoist-variables"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz"; + sha1 = "1ecb27689c9d25513eadbc9914a73f5408be7a76"; + }; + }; + "babel-helper-optimise-call-expression-6.24.1" = { + name = "babel-helper-optimise-call-expression"; + packageName = "babel-helper-optimise-call-expression"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz"; + sha1 = "f7a13427ba9f73f8f4fa993c54a97882d1244257"; + }; + }; + "babel-helper-regex-6.26.0" = { + name = "babel-helper-regex"; + packageName = "babel-helper-regex"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz"; + sha1 = "325c59f902f82f24b74faceed0363954f6495e72"; + }; + }; + "babel-helper-remap-async-to-generator-6.24.1" = { + name = "babel-helper-remap-async-to-generator"; + packageName = "babel-helper-remap-async-to-generator"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz"; + sha1 = "5ec581827ad723fecdd381f1c928390676e4551b"; + }; + }; + "babel-helper-replace-supers-6.24.1" = { + name = "babel-helper-replace-supers"; + packageName = "babel-helper-replace-supers"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz"; + sha1 = "bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"; + }; + }; + "babel-helpers-6.24.1" = { + name = "babel-helpers"; + packageName = "babel-helpers"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz"; + sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2"; + }; + }; + "babel-jest-24.9.0" = { + name = "babel-jest"; + packageName = "babel-jest"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz"; + sha512 = "ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw=="; + }; + }; + "babel-messages-6.23.0" = { + name = "babel-messages"; + packageName = "babel-messages"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz"; + sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e"; + }; + }; + "babel-plugin-check-es2015-constants-6.22.0" = { + name = "babel-plugin-check-es2015-constants"; + packageName = "babel-plugin-check-es2015-constants"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz"; + sha1 = "35157b101426fd2ffd3da3f75c7d1e91835bbf8a"; + }; + }; + "babel-plugin-istanbul-5.2.0" = { + name = "babel-plugin-istanbul"; + packageName = "babel-plugin-istanbul"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz"; + sha512 = "5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw=="; + }; + }; + "babel-plugin-jest-hoist-24.9.0" = { + name = "babel-plugin-jest-hoist"; + packageName = "babel-plugin-jest-hoist"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz"; + sha512 = "2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw=="; + }; + }; + "babel-plugin-syntax-async-functions-6.13.0" = { + name = "babel-plugin-syntax-async-functions"; + packageName = "babel-plugin-syntax-async-functions"; + version = "6.13.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz"; + sha1 = "cad9cad1191b5ad634bf30ae0872391e0647be95"; + }; + }; + "babel-plugin-syntax-exponentiation-operator-6.13.0" = { + name = "babel-plugin-syntax-exponentiation-operator"; + packageName = "babel-plugin-syntax-exponentiation-operator"; + version = "6.13.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz"; + sha1 = "9ee7e8337290da95288201a6a57f4170317830de"; + }; + }; + "babel-plugin-syntax-trailing-function-commas-6.22.0" = { + name = "babel-plugin-syntax-trailing-function-commas"; + packageName = "babel-plugin-syntax-trailing-function-commas"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz"; + sha1 = "ba0360937f8d06e40180a43fe0d5616fff532cf3"; + }; + }; + "babel-plugin-transform-async-to-generator-6.24.1" = { + name = "babel-plugin-transform-async-to-generator"; + packageName = "babel-plugin-transform-async-to-generator"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz"; + sha1 = "6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"; + }; + }; + "babel-plugin-transform-es2015-arrow-functions-6.22.0" = { + name = "babel-plugin-transform-es2015-arrow-functions"; + packageName = "babel-plugin-transform-es2015-arrow-functions"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz"; + sha1 = "452692cb711d5f79dc7f85e440ce41b9f244d221"; + }; + }; + "babel-plugin-transform-es2015-block-scoped-functions-6.22.0" = { + name = "babel-plugin-transform-es2015-block-scoped-functions"; + packageName = "babel-plugin-transform-es2015-block-scoped-functions"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz"; + sha1 = "bbc51b49f964d70cb8d8e0b94e820246ce3a6141"; + }; + }; + "babel-plugin-transform-es2015-block-scoping-6.26.0" = { + name = "babel-plugin-transform-es2015-block-scoping"; + packageName = "babel-plugin-transform-es2015-block-scoping"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz"; + sha1 = "d70f5299c1308d05c12f463813b0a09e73b1895f"; + }; + }; + "babel-plugin-transform-es2015-classes-6.24.1" = { + name = "babel-plugin-transform-es2015-classes"; + packageName = "babel-plugin-transform-es2015-classes"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz"; + sha1 = "5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"; + }; + }; + "babel-plugin-transform-es2015-computed-properties-6.24.1" = { + name = "babel-plugin-transform-es2015-computed-properties"; + packageName = "babel-plugin-transform-es2015-computed-properties"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz"; + sha1 = "6fe2a8d16895d5634f4cd999b6d3480a308159b3"; + }; + }; + "babel-plugin-transform-es2015-destructuring-6.23.0" = { + name = "babel-plugin-transform-es2015-destructuring"; + packageName = "babel-plugin-transform-es2015-destructuring"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz"; + sha1 = "997bb1f1ab967f682d2b0876fe358d60e765c56d"; + }; + }; + "babel-plugin-transform-es2015-duplicate-keys-6.24.1" = { + name = "babel-plugin-transform-es2015-duplicate-keys"; + packageName = "babel-plugin-transform-es2015-duplicate-keys"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz"; + sha1 = "73eb3d310ca969e3ef9ec91c53741a6f1576423e"; + }; + }; + "babel-plugin-transform-es2015-for-of-6.23.0" = { + name = "babel-plugin-transform-es2015-for-of"; + packageName = "babel-plugin-transform-es2015-for-of"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz"; + sha1 = "f47c95b2b613df1d3ecc2fdb7573623c75248691"; + }; + }; + "babel-plugin-transform-es2015-function-name-6.24.1" = { + name = "babel-plugin-transform-es2015-function-name"; + packageName = "babel-plugin-transform-es2015-function-name"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz"; + sha1 = "834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"; + }; + }; + "babel-plugin-transform-es2015-literals-6.22.0" = { + name = "babel-plugin-transform-es2015-literals"; + packageName = "babel-plugin-transform-es2015-literals"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz"; + sha1 = "4f54a02d6cd66cf915280019a31d31925377ca2e"; + }; + }; + "babel-plugin-transform-es2015-modules-amd-6.24.1" = { + name = "babel-plugin-transform-es2015-modules-amd"; + packageName = "babel-plugin-transform-es2015-modules-amd"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz"; + sha1 = "3b3e54017239842d6d19c3011c4bd2f00a00d154"; + }; + }; + "babel-plugin-transform-es2015-modules-commonjs-6.26.2" = { + name = "babel-plugin-transform-es2015-modules-commonjs"; + packageName = "babel-plugin-transform-es2015-modules-commonjs"; + version = "6.26.2"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz"; + sha512 = "CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q=="; + }; + }; + "babel-plugin-transform-es2015-modules-systemjs-6.24.1" = { + name = "babel-plugin-transform-es2015-modules-systemjs"; + packageName = "babel-plugin-transform-es2015-modules-systemjs"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz"; + sha1 = "ff89a142b9119a906195f5f106ecf305d9407d23"; + }; + }; + "babel-plugin-transform-es2015-modules-umd-6.24.1" = { + name = "babel-plugin-transform-es2015-modules-umd"; + packageName = "babel-plugin-transform-es2015-modules-umd"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz"; + sha1 = "ac997e6285cd18ed6176adb607d602344ad38468"; + }; + }; + "babel-plugin-transform-es2015-object-super-6.24.1" = { + name = "babel-plugin-transform-es2015-object-super"; + packageName = "babel-plugin-transform-es2015-object-super"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz"; + sha1 = "24cef69ae21cb83a7f8603dad021f572eb278f8d"; + }; + }; + "babel-plugin-transform-es2015-parameters-6.24.1" = { + name = "babel-plugin-transform-es2015-parameters"; + packageName = "babel-plugin-transform-es2015-parameters"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz"; + sha1 = "57ac351ab49caf14a97cd13b09f66fdf0a625f2b"; + }; + }; + "babel-plugin-transform-es2015-shorthand-properties-6.24.1" = { + name = "babel-plugin-transform-es2015-shorthand-properties"; + packageName = "babel-plugin-transform-es2015-shorthand-properties"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz"; + sha1 = "24f875d6721c87661bbd99a4622e51f14de38aa0"; + }; + }; + "babel-plugin-transform-es2015-spread-6.22.0" = { + name = "babel-plugin-transform-es2015-spread"; + packageName = "babel-plugin-transform-es2015-spread"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz"; + sha1 = "d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"; + }; + }; + "babel-plugin-transform-es2015-sticky-regex-6.24.1" = { + name = "babel-plugin-transform-es2015-sticky-regex"; + packageName = "babel-plugin-transform-es2015-sticky-regex"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz"; + sha1 = "00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"; + }; + }; + "babel-plugin-transform-es2015-template-literals-6.22.0" = { + name = "babel-plugin-transform-es2015-template-literals"; + packageName = "babel-plugin-transform-es2015-template-literals"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz"; + sha1 = "a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"; + }; + }; + "babel-plugin-transform-es2015-typeof-symbol-6.23.0" = { + name = "babel-plugin-transform-es2015-typeof-symbol"; + packageName = "babel-plugin-transform-es2015-typeof-symbol"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz"; + sha1 = "dec09f1cddff94b52ac73d505c84df59dcceb372"; + }; + }; + "babel-plugin-transform-es2015-unicode-regex-6.24.1" = { + name = "babel-plugin-transform-es2015-unicode-regex"; + packageName = "babel-plugin-transform-es2015-unicode-regex"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz"; + sha1 = "d38b12f42ea7323f729387f18a7c5ae1faeb35e9"; + }; + }; + "babel-plugin-transform-exponentiation-operator-6.24.1" = { + name = "babel-plugin-transform-exponentiation-operator"; + packageName = "babel-plugin-transform-exponentiation-operator"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz"; + sha1 = "2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"; + }; + }; + "babel-plugin-transform-regenerator-6.26.0" = { + name = "babel-plugin-transform-regenerator"; + packageName = "babel-plugin-transform-regenerator"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz"; + sha1 = "e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"; + }; + }; + "babel-plugin-transform-strict-mode-6.24.1" = { + name = "babel-plugin-transform-strict-mode"; + packageName = "babel-plugin-transform-strict-mode"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz"; + sha1 = "d5faf7aa578a65bbe591cf5edae04a0c67020758"; + }; + }; + "babel-preset-env-1.7.0" = { + name = "babel-preset-env"; + packageName = "babel-preset-env"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz"; + sha512 = "9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg=="; + }; + }; + "babel-preset-jest-24.9.0" = { + name = "babel-preset-jest"; + packageName = "babel-preset-jest"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz"; + sha512 = "izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg=="; + }; + }; + "babel-register-6.26.0" = { + name = "babel-register"; + packageName = "babel-register"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz"; + sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071"; + }; + }; + "babel-runtime-6.26.0" = { + name = "babel-runtime"; + packageName = "babel-runtime"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"; + sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe"; + }; + }; + "babel-template-6.26.0" = { + name = "babel-template"; + packageName = "babel-template"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz"; + sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02"; + }; + }; + "babel-traverse-6.26.0" = { + name = "babel-traverse"; + packageName = "babel-traverse"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz"; + sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"; + }; + }; + "babel-types-6.26.0" = { + name = "babel-types"; + packageName = "babel-types"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"; + sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497"; + }; + }; + "babylon-6.18.0" = { + name = "babylon"; + packageName = "babylon"; + version = "6.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz"; + sha512 = "q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "base-0.11.2" = { + name = "base"; + packageName = "base"; + version = "0.11.2"; + src = fetchurl { + url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz"; + sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg=="; + }; + }; + "base64-js-1.3.1" = { + name = "base64-js"; + packageName = "base64-js"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz"; + sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="; + }; + }; + "base64url-3.0.1" = { + name = "base64url"; + packageName = "base64url"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz"; + sha512 = "ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="; + }; + }; + "batch-0.6.1" = { + name = "batch"; + packageName = "batch"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz"; + sha1 = "dc34314f4e679318093fc760272525f94bf25c16"; + }; + }; + "bcrypt-pbkdf-1.0.2" = { + name = "bcrypt-pbkdf"; + packageName = "bcrypt-pbkdf"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; + }; + }; + "bfj-6.1.2" = { + name = "bfj"; + packageName = "bfj"; + version = "6.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz"; + sha512 = "BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw=="; + }; + }; + "big.js-5.2.2" = { + name = "big.js"; + packageName = "big.js"; + version = "5.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"; + sha512 = "vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="; + }; + }; + "binary-extensions-1.13.1" = { + name = "binary-extensions"; + packageName = "binary-extensions"; + version = "1.13.1"; + src = fetchurl { + url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz"; + sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="; + }; + }; + "bluebird-3.7.0" = { + name = "bluebird"; + packageName = "bluebird"; + version = "3.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz"; + sha512 = "aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg=="; + }; + }; + "bn.js-4.11.8" = { + name = "bn.js"; + packageName = "bn.js"; + version = "4.11.8"; + src = fetchurl { + url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz"; + sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="; + }; + }; + "body-parser-1.19.0" = { + name = "body-parser"; + packageName = "body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; + }; + }; + "bonjour-3.5.0" = { + name = "bonjour"; + packageName = "bonjour"; + version = "3.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz"; + sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "braces-2.3.2" = { + name = "braces"; + packageName = "braces"; + version = "2.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz"; + sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w=="; + }; + }; + "brorand-1.1.0" = { + name = "brorand"; + packageName = "brorand"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"; + sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; + }; + }; + "browser-process-hrtime-0.1.3" = { + name = "browser-process-hrtime"; + packageName = "browser-process-hrtime"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz"; + sha512 = "bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="; + }; + }; + "browser-resolve-1.11.3" = { + name = "browser-resolve"; + packageName = "browser-resolve"; + version = "1.11.3"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz"; + sha512 = "exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ=="; + }; + }; + "browserify-aes-1.2.0" = { + name = "browserify-aes"; + packageName = "browserify-aes"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz"; + sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA=="; + }; + }; + "browserify-cipher-1.0.1" = { + name = "browserify-cipher"; + packageName = "browserify-cipher"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz"; + sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w=="; + }; + }; + "browserify-des-1.0.2" = { + name = "browserify-des"; + packageName = "browserify-des"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz"; + sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A=="; + }; + }; + "browserify-rsa-4.0.1" = { + name = "browserify-rsa"; + packageName = "browserify-rsa"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz"; + sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524"; + }; + }; + "browserify-sign-4.0.4" = { + name = "browserify-sign"; + packageName = "browserify-sign"; + version = "4.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz"; + sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"; + }; + }; + "browserify-zlib-0.2.0" = { + name = "browserify-zlib"; + packageName = "browserify-zlib"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz"; + sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA=="; + }; + }; + "browserslist-3.2.8" = { + name = "browserslist"; + packageName = "browserslist"; + version = "3.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz"; + sha512 = "WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ=="; + }; + }; + "bs-logger-0.2.6" = { + name = "bs-logger"; + packageName = "bs-logger"; + version = "0.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz"; + sha512 = "pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog=="; + }; + }; + "bser-2.1.0" = { + name = "bser"; + packageName = "bser"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz"; + sha512 = "8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg=="; + }; + }; + "buffer-4.9.1" = { + name = "buffer"; + packageName = "buffer"; + version = "4.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz"; + sha1 = "6d1bb601b07a4efced97094132093027c95bc298"; + }; + }; + "buffer-from-1.1.1" = { + name = "buffer-from"; + packageName = "buffer-from"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"; + sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="; + }; + }; + "buffer-indexof-1.1.1" = { + name = "buffer-indexof"; + packageName = "buffer-indexof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz"; + sha512 = "4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="; + }; + }; + "buffer-xor-1.0.3" = { + name = "buffer-xor"; + packageName = "buffer-xor"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz"; + sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9"; + }; + }; + "builtin-status-codes-3.0.0" = { + name = "builtin-status-codes"; + packageName = "builtin-status-codes"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"; + sha1 = "85982878e21b98e1c66425e03d0174788f569ee8"; + }; + }; + "byline-5.0.0" = { + name = "byline"; + packageName = "byline"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz"; + sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1"; + }; + }; + "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"; + }; + }; + "bytes-3.1.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"; + sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="; + }; + }; + "cacache-10.0.4" = { + name = "cacache"; + packageName = "cacache"; + version = "10.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz"; + sha512 = "Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA=="; + }; + }; + "cacache-12.0.3" = { + name = "cacache"; + packageName = "cacache"; + version = "12.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz"; + sha512 = "kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw=="; + }; + }; + "cache-base-1.0.1" = { + name = "cache-base"; + packageName = "cache-base"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"; + sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ=="; + }; + }; + "cache-content-type-1.0.1" = { + name = "cache-content-type"; + packageName = "cache-content-type"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz"; + sha512 = "IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA=="; + }; + }; + "cacheable-request-2.1.4" = { + name = "cacheable-request"; + packageName = "cacheable-request"; + version = "2.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz"; + sha1 = "0d808801b6342ad33c91df9d0b44dc09b91e5c3d"; + }; + }; + "callsites-3.1.0" = { + name = "callsites"; + packageName = "callsites"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"; + sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="; + }; + }; + "camelcase-1.2.1" = { + name = "camelcase"; + packageName = "camelcase"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"; + sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"; + }; + }; + "camelcase-4.1.0" = { + name = "camelcase"; + packageName = "camelcase"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz"; + sha1 = "d545635be1e33c542649c69173e5de6acfae34dd"; + }; + }; + "camelcase-5.3.1" = { + name = "camelcase"; + packageName = "camelcase"; + version = "5.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"; + sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="; + }; + }; + "caniuse-lite-1.0.30000999" = { + name = "caniuse-lite"; + packageName = "caniuse-lite"; + version = "1.0.30000999"; + src = fetchurl { + url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz"; + sha512 = "1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg=="; + }; + }; + "capture-exit-2.0.0" = { + name = "capture-exit"; + packageName = "capture-exit"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz"; + sha512 = "PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g=="; + }; + }; + "caseless-0.12.0" = { + name = "caseless"; + packageName = "caseless"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + }; + "center-align-0.1.3" = { + name = "center-align"; + packageName = "center-align"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"; + sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad"; + }; + }; + "chalk-1.1.3" = { + name = "chalk"; + packageName = "chalk"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"; + sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; + }; + }; + "chalk-2.4.2" = { + name = "chalk"; + packageName = "chalk"; + version = "2.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; + sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; + }; + }; + "character-parser-2.2.0" = { + name = "character-parser"; + packageName = "character-parser"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz"; + sha1 = "c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0"; + }; + }; + "check-types-8.0.3" = { + name = "check-types"; + packageName = "check-types"; + version = "8.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz"; + sha512 = "YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ=="; + }; + }; + "chokidar-2.1.8" = { + name = "chokidar"; + packageName = "chokidar"; + version = "2.1.8"; + src = fetchurl { + url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz"; + sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg=="; + }; + }; + "chownr-1.1.3" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz"; + sha512 = "i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw=="; + }; + }; + "chrome-trace-event-1.0.2" = { + name = "chrome-trace-event"; + packageName = "chrome-trace-event"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz"; + sha512 = "9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ=="; + }; + }; + "ci-info-2.0.0" = { + name = "ci-info"; + packageName = "ci-info"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz"; + sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="; + }; + }; + "cipher-base-1.0.4" = { + name = "cipher-base"; + packageName = "cipher-base"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz"; + sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q=="; + }; + }; + "class-utils-0.3.6" = { + name = "class-utils"; + packageName = "class-utils"; + version = "0.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"; + sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="; + }; + }; + "clean-css-4.2.1" = { + name = "clean-css"; + packageName = "clean-css"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz"; + sha512 = "4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g=="; + }; + }; + "clean-stack-1.3.0" = { + name = "clean-stack"; + packageName = "clean-stack"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz"; + sha1 = "9e821501ae979986c46b1d66d2d432db2fd4ae31"; + }; + }; + "cli-cursor-2.1.0" = { + name = "cli-cursor"; + packageName = "cli-cursor"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz"; + sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5"; + }; + }; + "cli-spinners-2.2.0" = { + name = "cli-spinners"; + packageName = "cli-spinners"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz"; + sha512 = "tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ=="; + }; + }; + "cliui-2.1.0" = { + name = "cliui"; + packageName = "cliui"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"; + sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1"; + }; + }; + "cliui-4.1.0" = { + name = "cliui"; + packageName = "cliui"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz"; + sha512 = "4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ=="; + }; + }; + "cliui-5.0.0" = { + name = "cliui"; + packageName = "cliui"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"; + sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="; + }; + }; + "clone-1.0.4" = { + name = "clone"; + packageName = "clone"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"; + sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e"; + }; + }; + "clone-response-1.0.2" = { + name = "clone-response"; + packageName = "clone-response"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz"; + sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b"; + }; + }; + "co-4.6.0" = { + name = "co"; + packageName = "co"; + version = "4.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz"; + sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"; + }; + }; + "co-body-5.2.0" = { + name = "co-body"; + packageName = "co-body"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz"; + sha512 = "sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ=="; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "collection-visit-1.0.0" = { + name = "collection-visit"; + packageName = "collection-visit"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"; + sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0"; + }; + }; + "color-convert-1.9.3" = { + name = "color-convert"; + packageName = "color-convert"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; + sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; + }; + }; + "color-name-1.1.3" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; + }; + }; + "command-line-args-5.1.1" = { + name = "command-line-args"; + packageName = "command-line-args"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz"; + sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg=="; + }; + }; + "commander-2.20.1" = { + name = "commander"; + packageName = "commander"; + version = "2.20.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz"; + sha512 = "cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg=="; + }; + }; + "commondir-1.0.1" = { + name = "commondir"; + packageName = "commondir"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"; + sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b"; + }; + }; + "component-emitter-1.3.0" = { + name = "component-emitter"; + packageName = "component-emitter"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"; + sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="; + }; + }; + "compressible-2.0.17" = { + name = "compressible"; + packageName = "compressible"; + version = "2.0.17"; + src = fetchurl { + url = "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz"; + sha512 = "BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw=="; + }; + }; + "compression-1.7.4" = { + name = "compression"; + packageName = "compression"; + version = "1.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz"; + sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "concat-stream-1.6.2" = { + name = "concat-stream"; + packageName = "concat-stream"; + version = "1.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"; + sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="; + }; + }; + "condense-newlines-0.2.1" = { + name = "condense-newlines"; + packageName = "condense-newlines"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz"; + sha1 = "3de985553139475d32502c83b02f60684d24c55f"; + }; + }; + "config-chain-1.1.12" = { + name = "config-chain"; + packageName = "config-chain"; + version = "1.1.12"; + src = fetchurl { + url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz"; + sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA=="; + }; + }; + "connect-history-api-fallback-1.6.0" = { + name = "connect-history-api-fallback"; + packageName = "connect-history-api-fallback"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz"; + sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg=="; + }; + }; + "console-browserify-1.1.0" = { + name = "console-browserify"; + packageName = "console-browserify"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz"; + sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10"; + }; + }; + "consolidate-0.15.1" = { + name = "consolidate"; + packageName = "consolidate"; + version = "0.15.1"; + src = fetchurl { + url = "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz"; + sha512 = "DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw=="; + }; + }; + "constantinople-3.1.2" = { + name = "constantinople"; + packageName = "constantinople"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz"; + sha512 = "yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw=="; + }; + }; + "constants-browserify-1.0.0" = { + name = "constants-browserify"; + packageName = "constants-browserify"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz"; + sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75"; + }; + }; + "content-disposition-0.5.3" = { + name = "content-disposition"; + packageName = "content-disposition"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"; + sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g=="; + }; + }; + "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=="; + }; + }; + "convert-source-map-1.6.0" = { + name = "convert-source-map"; + packageName = "convert-source-map"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz"; + sha512 = "eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A=="; + }; + }; + "cookie-0.4.0" = { + name = "cookie"; + packageName = "cookie"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"; + sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="; + }; + }; + "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"; + }; + }; + "cookies-0.7.3" = { + name = "cookies"; + packageName = "cookies"; + version = "0.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cookies/-/cookies-0.7.3.tgz"; + sha512 = "+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A=="; + }; + }; + "copy-concurrently-1.0.5" = { + name = "copy-concurrently"; + packageName = "copy-concurrently"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz"; + sha512 = "f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A=="; + }; + }; + "copy-descriptor-0.1.1" = { + name = "copy-descriptor"; + packageName = "copy-descriptor"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"; + sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; + }; + }; + "copy-webpack-plugin-4.6.0" = { + name = "copy-webpack-plugin"; + packageName = "copy-webpack-plugin"; + version = "4.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz"; + sha512 = "Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA=="; + }; + }; + "core-js-2.6.9" = { + name = "core-js"; + packageName = "core-js"; + version = "2.6.9"; + src = fetchurl { + url = "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz"; + sha512 = "HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "create-ecdh-4.0.3" = { + name = "create-ecdh"; + packageName = "create-ecdh"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz"; + sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw=="; + }; + }; + "create-hash-1.2.0" = { + name = "create-hash"; + packageName = "create-hash"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz"; + sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg=="; + }; + }; + "create-hmac-1.1.7" = { + name = "create-hmac"; + packageName = "create-hmac"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz"; + sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg=="; + }; + }; + "cron-1.7.2" = { + name = "cron"; + packageName = "cron"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/cron/-/cron-1.7.2.tgz"; + sha512 = "+SaJ2OfeRvfQqwXQ2kgr0Y5pzBR/lijf5OpnnaruwWnmI799JfWr2jN2ItOV9s3A/+TFOt6mxvKzQq5F0Jp6VQ=="; + }; + }; + "cross-spawn-6.0.5" = { + name = "cross-spawn"; + packageName = "cross-spawn"; + version = "6.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"; + sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ=="; + }; + }; + "crypto-browserify-3.12.0" = { + name = "crypto-browserify"; + packageName = "crypto-browserify"; + version = "3.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz"; + sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg=="; + }; + }; + "cssom-0.3.8" = { + name = "cssom"; + packageName = "cssom"; + version = "0.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz"; + sha512 = "b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="; + }; + }; + "cssstyle-1.4.0" = { + name = "cssstyle"; + packageName = "cssstyle"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz"; + sha512 = "GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA=="; + }; + }; + "cyclist-1.0.1" = { + name = "cyclist"; + packageName = "cyclist"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz"; + sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9"; + }; + }; + "d-1.0.1" = { + name = "d"; + packageName = "d"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz"; + sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA=="; + }; + }; + "dashdash-1.14.1" = { + name = "dashdash"; + packageName = "dashdash"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + }; + "data-urls-1.1.0" = { + name = "data-urls"; + packageName = "data-urls"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz"; + sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ=="; + }; + }; + "date-now-0.1.4" = { + name = "date-now"; + packageName = "date-now"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"; + sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b"; + }; + }; + "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=="; + }; + }; + "debug-3.1.0" = { + name = "debug"; + packageName = "debug"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"; + sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="; + }; + }; + "debug-3.2.6" = { + name = "debug"; + packageName = "debug"; + version = "3.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"; + sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ=="; + }; + }; + "debug-4.1.1" = { + name = "debug"; + packageName = "debug"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"; + sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="; + }; + }; + "decamelize-1.2.0" = { + name = "decamelize"; + packageName = "decamelize"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"; + sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; + }; + }; + "decode-uri-component-0.2.0" = { + name = "decode-uri-component"; + packageName = "decode-uri-component"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; + sha1 = "eb3913333458775cb84cd1a1fae062106bb87545"; + }; + }; + "decompress-response-3.3.0" = { + name = "decompress-response"; + packageName = "decompress-response"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz"; + sha1 = "80a4dd323748384bfa248083622aedec982adff3"; + }; + }; + "deep-equal-1.0.1" = { + name = "deep-equal"; + packageName = "deep-equal"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz"; + sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5"; + }; + }; + "deep-is-0.1.3" = { + name = "deep-is"; + packageName = "deep-is"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"; + sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; + }; + }; + "default-gateway-4.2.0" = { + name = "default-gateway"; + packageName = "default-gateway"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz"; + sha512 = "h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA=="; + }; + }; + "defaults-1.0.3" = { + name = "defaults"; + packageName = "defaults"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz"; + sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d"; + }; + }; + "define-properties-1.1.3" = { + name = "define-properties"; + packageName = "define-properties"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"; + sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ=="; + }; + }; + "define-property-0.2.5" = { + name = "define-property"; + packageName = "define-property"; + version = "0.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"; + sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116"; + }; + }; + "define-property-1.0.0" = { + name = "define-property"; + packageName = "define-property"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"; + sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"; + }; + }; + "define-property-2.0.2" = { + name = "define-property"; + packageName = "define-property"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz"; + sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ=="; + }; + }; + "del-4.1.1" = { + name = "del"; + packageName = "del"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/del/-/del-4.1.1.tgz"; + sha512 = "QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ=="; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "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"; + }; + }; + "des.js-1.0.0" = { + name = "des.js"; + packageName = "des.js"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz"; + sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"; + }; + }; + "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"; + }; + }; + "detect-file-1.0.0" = { + name = "detect-file"; + packageName = "detect-file"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz"; + sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7"; + }; + }; + "detect-indent-4.0.0" = { + name = "detect-indent"; + packageName = "detect-indent"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz"; + sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208"; + }; + }; + "detect-newline-2.1.0" = { + name = "detect-newline"; + packageName = "detect-newline"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz"; + sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"; + }; + }; + "detect-node-2.0.4" = { + name = "detect-node"; + packageName = "detect-node"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz"; + sha512 = "ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw=="; + }; + }; + "diff-sequences-24.9.0" = { + name = "diff-sequences"; + packageName = "diff-sequences"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz"; + sha512 = "Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew=="; + }; + }; + "diffie-hellman-5.0.3" = { + name = "diffie-hellman"; + packageName = "diffie-hellman"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz"; + sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg=="; + }; + }; + "dir-glob-2.2.2" = { + name = "dir-glob"; + packageName = "dir-glob"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz"; + sha512 = "f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw=="; + }; + }; + "dns-equal-1.0.0" = { + name = "dns-equal"; + packageName = "dns-equal"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz"; + sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d"; + }; + }; + "dns-packet-1.3.1" = { + name = "dns-packet"; + packageName = "dns-packet"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz"; + sha512 = "0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg=="; + }; + }; + "dns-txt-2.0.2" = { + name = "dns-txt"; + packageName = "dns-txt"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz"; + sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6"; + }; + }; + "doctypes-1.1.0" = { + name = "doctypes"; + packageName = "doctypes"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz"; + sha1 = "ea80b106a87538774e8a3a4a5afe293de489e0a9"; + }; + }; + "domain-browser-1.2.0" = { + name = "domain-browser"; + packageName = "domain-browser"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz"; + sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="; + }; + }; + "domexception-1.0.1" = { + name = "domexception"; + packageName = "domexception"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz"; + sha512 = "raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug=="; + }; + }; + "duplexer-0.1.1" = { + name = "duplexer"; + packageName = "duplexer"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz"; + sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1"; + }; + }; + "duplexer3-0.1.4" = { + name = "duplexer3"; + packageName = "duplexer3"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz"; + sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"; + }; + }; + "duplexify-3.7.1" = { + name = "duplexify"; + packageName = "duplexify"; + version = "3.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz"; + sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g=="; + }; + }; + "ecc-jsbn-0.1.2" = { + name = "ecc-jsbn"; + packageName = "ecc-jsbn"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; + }; + }; + "editorconfig-0.15.3" = { + name = "editorconfig"; + packageName = "editorconfig"; + version = "0.15.3"; + src = fetchurl { + url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz"; + sha512 = "M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g=="; + }; + }; + "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"; + }; + }; + "ejs-2.7.1" = { + name = "ejs"; + packageName = "ejs"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz"; + sha512 = "kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ=="; + }; + }; + "electron-to-chromium-1.3.275" = { + name = "electron-to-chromium"; + packageName = "electron-to-chromium"; + version = "1.3.275"; + src = fetchurl { + url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.275.tgz"; + sha512 = "/YWtW/VapMnuYA1lNOaa1F4GhR1LBf+CUTp60lzDPEEh0XOzyOAyULyYZVF9vziZ3qSbTqCwmKwsyRXp66STbw=="; + }; + }; + "elliptic-6.5.1" = { + name = "elliptic"; + packageName = "elliptic"; + version = "6.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz"; + sha512 = "xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg=="; + }; + }; + "emoji-regex-7.0.3" = { + name = "emoji-regex"; + packageName = "emoji-regex"; + version = "7.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"; + sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="; + }; + }; + "emojis-list-2.1.0" = { + name = "emojis-list"; + packageName = "emojis-list"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz"; + sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389"; + }; + }; + "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"; + }; + }; + "end-of-stream-1.4.4" = { + name = "end-of-stream"; + packageName = "end-of-stream"; + version = "1.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; + }; + }; + "enhanced-resolve-4.1.0" = { + name = "enhanced-resolve"; + packageName = "enhanced-resolve"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz"; + sha512 = "F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng=="; + }; + }; + "errno-0.1.7" = { + name = "errno"; + packageName = "errno"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz"; + sha512 = "MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg=="; + }; + }; + "error-ex-1.3.2" = { + name = "error-ex"; + packageName = "error-ex"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"; + sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="; + }; + }; + "error-inject-1.0.0" = { + name = "error-inject"; + packageName = "error-inject"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz"; + sha1 = "e2b3d91b54aed672f309d950d154850fa11d4f37"; + }; + }; + "es-abstract-1.15.0" = { + name = "es-abstract"; + packageName = "es-abstract"; + version = "1.15.0"; + src = fetchurl { + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz"; + sha512 = "bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ=="; + }; + }; + "es-to-primitive-1.2.0" = { + name = "es-to-primitive"; + packageName = "es-to-primitive"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz"; + sha512 = "qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg=="; + }; + }; + "es5-ext-0.10.51" = { + name = "es5-ext"; + packageName = "es5-ext"; + version = "0.10.51"; + src = fetchurl { + url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz"; + sha512 = "oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ=="; + }; + }; + "es6-iterator-2.0.3" = { + name = "es6-iterator"; + packageName = "es6-iterator"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz"; + sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7"; + }; + }; + "es6-promise-4.2.8" = { + name = "es6-promise"; + packageName = "es6-promise"; + version = "4.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz"; + sha512 = "HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="; + }; + }; + "es6-symbol-3.1.2" = { + name = "es6-symbol"; + packageName = "es6-symbol"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz"; + sha512 = "/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ=="; + }; + }; + "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"; + }; + }; + "escape-string-regexp-1.0.5" = { + name = "escape-string-regexp"; + packageName = "escape-string-regexp"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + }; + "escodegen-1.12.0" = { + name = "escodegen"; + packageName = "escodegen"; + version = "1.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz"; + sha512 = "TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg=="; + }; + }; + "eslint-scope-4.0.3" = { + name = "eslint-scope"; + packageName = "eslint-scope"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz"; + sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg=="; + }; + }; + "esprima-3.1.3" = { + name = "esprima"; + packageName = "esprima"; + version = "3.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"; + sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633"; + }; + }; + "esprima-4.0.1" = { + name = "esprima"; + packageName = "esprima"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; + sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; + }; + }; + "esrecurse-4.2.1" = { + name = "esrecurse"; + packageName = "esrecurse"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz"; + sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ=="; + }; + }; + "estraverse-4.3.0" = { + name = "estraverse"; + packageName = "estraverse"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"; + sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="; + }; + }; + "esutils-2.0.3" = { + name = "esutils"; + packageName = "esutils"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"; + sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="; + }; + }; + "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"; + }; + }; + "eventemitter3-4.0.0" = { + name = "eventemitter3"; + packageName = "eventemitter3"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz"; + sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg=="; + }; + }; + "events-3.0.0" = { + name = "events"; + packageName = "events"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.0.0.tgz"; + sha512 = "Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="; + }; + }; + "eventsource-1.0.7" = { + name = "eventsource"; + packageName = "eventsource"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz"; + sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ=="; + }; + }; + "evp_bytestokey-1.0.3" = { + name = "evp_bytestokey"; + packageName = "evp_bytestokey"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"; + sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA=="; + }; + }; + "exec-sh-0.3.2" = { + name = "exec-sh"; + packageName = "exec-sh"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz"; + sha512 = "9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg=="; + }; + }; + "execa-1.0.0" = { + name = "execa"; + packageName = "execa"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz"; + sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA=="; + }; + }; + "exit-0.1.2" = { + name = "exit"; + packageName = "exit"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"; + sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c"; + }; + }; + "expand-brackets-2.1.4" = { + name = "expand-brackets"; + packageName = "expand-brackets"; + version = "2.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz"; + sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622"; + }; + }; + "expand-tilde-2.0.2" = { + name = "expand-tilde"; + packageName = "expand-tilde"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz"; + sha1 = "97e801aa052df02454de46b02bf621642cdc8502"; + }; + }; + "expect-24.9.0" = { + name = "expect"; + packageName = "expect"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz"; + sha512 = "wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q=="; + }; + }; + "express-4.17.1" = { + name = "express"; + packageName = "express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz"; + sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; + }; + }; + "extend-3.0.2" = { + name = "extend"; + packageName = "extend"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; + sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; + }; + }; + "extend-shallow-2.0.1" = { + name = "extend-shallow"; + packageName = "extend-shallow"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"; + sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; + }; + }; + "extend-shallow-3.0.2" = { + name = "extend-shallow"; + packageName = "extend-shallow"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"; + sha1 = "26a71aaf073b39fb2127172746131c2704028db8"; + }; + }; + "extglob-2.0.4" = { + name = "extglob"; + packageName = "extglob"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz"; + sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw=="; + }; + }; + "extsprintf-1.3.0" = { + name = "extsprintf"; + packageName = "extsprintf"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + }; + "fast-deep-equal-2.0.1" = { + name = "fast-deep-equal"; + packageName = "fast-deep-equal"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; + sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; + }; + }; + "fast-json-stable-stringify-2.0.0" = { + name = "fast-json-stable-stringify"; + packageName = "fast-json-stable-stringify"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; + sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + }; + }; + "fast-levenshtein-2.0.6" = { + name = "fast-levenshtein"; + packageName = "fast-levenshtein"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; + sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; + }; + }; + "faye-websocket-0.10.0" = { + name = "faye-websocket"; + packageName = "faye-websocket"; + version = "0.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz"; + sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"; + }; + }; + "faye-websocket-0.11.3" = { + name = "faye-websocket"; + packageName = "faye-websocket"; + version = "0.11.3"; + src = fetchurl { + url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz"; + sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA=="; + }; + }; + "fb-watchman-2.0.0" = { + name = "fb-watchman"; + packageName = "fb-watchman"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz"; + sha1 = "54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"; + }; + }; + "figgy-pudding-3.5.1" = { + name = "figgy-pudding"; + packageName = "figgy-pudding"; + version = "3.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz"; + sha512 = "vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w=="; + }; + }; + "filesize-3.6.1" = { + name = "filesize"; + packageName = "filesize"; + version = "3.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz"; + sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg=="; + }; + }; + "fill-range-4.0.0" = { + name = "fill-range"; + packageName = "fill-range"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"; + sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7"; + }; + }; + "finalhandler-1.1.2" = { + name = "finalhandler"; + packageName = "finalhandler"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; + sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; + }; + }; + "find-cache-dir-1.0.0" = { + name = "find-cache-dir"; + packageName = "find-cache-dir"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz"; + sha1 = "9288e3e9e3cc3748717d39eade17cf71fc30ee6f"; + }; + }; + "find-cache-dir-2.1.0" = { + name = "find-cache-dir"; + packageName = "find-cache-dir"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz"; + sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ=="; + }; + }; + "find-replace-3.0.0" = { + name = "find-replace"; + packageName = "find-replace"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz"; + sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ=="; + }; + }; + "find-up-2.1.0" = { + name = "find-up"; + packageName = "find-up"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"; + sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; + }; + }; + "find-up-3.0.0" = { + name = "find-up"; + packageName = "find-up"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"; + sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="; + }; + }; + "findup-sync-3.0.0" = { + name = "findup-sync"; + packageName = "findup-sync"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz"; + sha512 = "YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg=="; + }; + }; + "flush-write-stream-1.1.1" = { + name = "flush-write-stream"; + packageName = "flush-write-stream"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz"; + sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w=="; + }; + }; + "follow-redirects-1.5.10" = { + name = "follow-redirects"; + packageName = "follow-redirects"; + version = "1.5.10"; + src = fetchurl { + url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz"; + sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ=="; + }; + }; + "for-in-1.0.2" = { + name = "for-in"; + packageName = "for-in"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"; + sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80"; + }; + }; + "forever-agent-0.6.1" = { + name = "forever-agent"; + packageName = "forever-agent"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + }; + "form-data-2.3.3" = { + name = "form-data"; + packageName = "form-data"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; + sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; + }; + }; + "form-data-2.5.1" = { + name = "form-data"; + packageName = "form-data"; + version = "2.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz"; + sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA=="; + }; + }; + "formidable-1.2.1" = { + name = "formidable"; + packageName = "formidable"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz"; + sha512 = "Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg=="; + }; + }; + "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"; + }; + }; + "fragment-cache-0.2.1" = { + name = "fragment-cache"; + packageName = "fragment-cache"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"; + sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19"; + }; + }; + "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"; + }; + }; + "from2-2.3.0" = { + name = "from2"; + packageName = "from2"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz"; + sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af"; + }; + }; + "fs-write-stream-atomic-1.0.10" = { + name = "fs-write-stream-atomic"; + packageName = "fs-write-stream-atomic"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz"; + sha1 = "b47df53493ef911df75731e70a9ded0189db40c9"; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "fsevents-1.2.9" = { + name = "fsevents"; + packageName = "fsevents"; + version = "1.2.9"; + src = fetchurl { + url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz"; + sha512 = "oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw=="; + }; + }; + "function-bind-1.1.1" = { + name = "function-bind"; + packageName = "function-bind"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"; + sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="; + }; + }; + "get-caller-file-1.0.3" = { + name = "get-caller-file"; + packageName = "get-caller-file"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz"; + sha512 = "3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="; + }; + }; + "get-caller-file-2.0.5" = { + name = "get-caller-file"; + packageName = "get-caller-file"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"; + sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; + }; + }; + "get-paths-0.0.7" = { + name = "get-paths"; + packageName = "get-paths"; + version = "0.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/get-paths/-/get-paths-0.0.7.tgz"; + sha512 = "0wdJt7C1XKQxuCgouqd+ZvLJ56FQixKoki9MrFaO4EriqzXOiH9gbukaDE1ou08S8Ns3/yDzoBAISNPqj6e6tA=="; + }; + }; + "get-stream-3.0.0" = { + name = "get-stream"; + packageName = "get-stream"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz"; + sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14"; + }; + }; + "get-stream-4.1.0" = { + name = "get-stream"; + packageName = "get-stream"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"; + sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w=="; + }; + }; + "get-value-2.0.6" = { + name = "get-value"; + packageName = "get-value"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"; + sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28"; + }; + }; + "getpass-0.1.7" = { + name = "getpass"; + packageName = "getpass"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + }; + "glob-7.1.4" = { + name = "glob"; + packageName = "glob"; + version = "7.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"; + sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="; + }; + }; + "glob-parent-3.1.0" = { + name = "glob-parent"; + packageName = "glob-parent"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"; + sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; + }; + }; + "global-modules-1.0.0" = { + name = "global-modules"; + packageName = "global-modules"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz"; + sha512 = "sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg=="; + }; + }; + "global-modules-2.0.0" = { + name = "global-modules"; + packageName = "global-modules"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz"; + sha512 = "NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A=="; + }; + }; + "global-prefix-1.0.2" = { + name = "global-prefix"; + packageName = "global-prefix"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz"; + sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe"; + }; + }; + "global-prefix-3.0.0" = { + name = "global-prefix"; + packageName = "global-prefix"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz"; + sha512 = "awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg=="; + }; + }; + "globals-11.12.0" = { + name = "globals"; + packageName = "globals"; + version = "11.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"; + sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="; + }; + }; + "globals-9.18.0" = { + name = "globals"; + packageName = "globals"; + version = "9.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz"; + sha512 = "S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="; + }; + }; + "globby-6.1.0" = { + name = "globby"; + packageName = "globby"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz"; + sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c"; + }; + }; + "globby-7.1.1" = { + name = "globby"; + packageName = "globby"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz"; + sha1 = "fb2ccff9401f8600945dfada97440cca972b8680"; + }; + }; + "got-8.3.2" = { + name = "got"; + packageName = "got"; + version = "8.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/got/-/got-8.3.2.tgz"; + sha512 = "qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw=="; + }; + }; + "graceful-fs-4.2.2" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz"; + sha512 = "IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="; + }; + }; + "growly-1.3.0" = { + name = "growly"; + packageName = "growly"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz"; + sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081"; + }; + }; + "gzip-size-5.1.1" = { + name = "gzip-size"; + packageName = "gzip-size"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz"; + sha512 = "FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA=="; + }; + }; + "handle-thing-2.0.0" = { + name = "handle-thing"; + packageName = "handle-thing"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz"; + sha512 = "d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ=="; + }; + }; + "handlebars-4.4.2" = { + name = "handlebars"; + packageName = "handlebars"; + version = "4.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/handlebars/-/handlebars-4.4.2.tgz"; + sha512 = "cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg=="; + }; + }; + "har-schema-2.0.0" = { + name = "har-schema"; + packageName = "har-schema"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + }; + "har-validator-5.1.3" = { + name = "har-validator"; + packageName = "har-validator"; + version = "5.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"; + sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g=="; + }; + }; + "has-1.0.3" = { + name = "has"; + packageName = "has"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz"; + sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="; + }; + }; + "has-ansi-2.0.0" = { + name = "has-ansi"; + packageName = "has-ansi"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; + sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; + }; + }; + "has-flag-3.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + }; + "has-symbol-support-x-1.4.2" = { + name = "has-symbol-support-x"; + packageName = "has-symbol-support-x"; + version = "1.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz"; + sha512 = "3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="; + }; + }; + "has-symbols-1.0.0" = { + name = "has-symbols"; + packageName = "has-symbols"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz"; + sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44"; + }; + }; + "has-to-string-tag-x-1.4.1" = { + name = "has-to-string-tag-x"; + packageName = "has-to-string-tag-x"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz"; + sha512 = "vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw=="; + }; + }; + "has-value-0.3.1" = { + name = "has-value"; + packageName = "has-value"; + version = "0.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"; + sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f"; + }; + }; + "has-value-1.0.0" = { + name = "has-value"; + packageName = "has-value"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"; + sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177"; + }; + }; + "has-values-0.1.4" = { + name = "has-values"; + packageName = "has-values"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"; + sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771"; + }; + }; + "has-values-1.0.0" = { + name = "has-values"; + packageName = "has-values"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz"; + sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; + }; + }; + "hash-base-3.0.4" = { + name = "hash-base"; + packageName = "hash-base"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz"; + sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918"; + }; + }; + "hash.js-1.1.7" = { + name = "hash.js"; + packageName = "hash.js"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"; + sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; + }; + }; + "hmac-drbg-1.0.1" = { + name = "hmac-drbg"; + packageName = "hmac-drbg"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"; + sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1"; + }; + }; + "home-or-tmp-2.0.0" = { + name = "home-or-tmp"; + packageName = "home-or-tmp"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz"; + sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8"; + }; + }; + "homedir-polyfill-1.0.3" = { + name = "homedir-polyfill"; + packageName = "homedir-polyfill"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz"; + sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA=="; + }; + }; + "hoopy-0.1.4" = { + name = "hoopy"; + packageName = "hoopy"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz"; + sha512 = "HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="; + }; + }; + "hosted-git-info-2.8.4" = { + name = "hosted-git-info"; + packageName = "hosted-git-info"; + version = "2.8.4"; + src = fetchurl { + url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz"; + sha512 = "pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ=="; + }; + }; + "hpack.js-2.1.6" = { + name = "hpack.js"; + packageName = "hpack.js"; + version = "2.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz"; + sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2"; + }; + }; + "html-encoding-sniffer-1.0.2" = { + name = "html-encoding-sniffer"; + packageName = "html-encoding-sniffer"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz"; + sha512 = "71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw=="; + }; + }; + "html-entities-1.2.1" = { + name = "html-entities"; + packageName = "html-entities"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz"; + sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f"; + }; + }; + "http-assert-1.4.1" = { + name = "http-assert"; + packageName = "http-assert"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz"; + sha512 = "rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw=="; + }; + }; + "http-cache-semantics-3.8.1" = { + name = "http-cache-semantics"; + packageName = "http-cache-semantics"; + version = "3.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz"; + sha512 = "5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="; + }; + }; + "http-deceiver-1.2.7" = { + name = "http-deceiver"; + packageName = "http-deceiver"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz"; + sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87"; + }; + }; + "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"; + }; + }; + "http-errors-1.7.2" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"; + sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg=="; + }; + }; + "http-errors-1.7.3" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz"; + sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw=="; + }; + }; + "http-parser-js-0.4.10" = { + name = "http-parser-js"; + packageName = "http-parser-js"; + version = "0.4.10"; + src = fetchurl { + url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz"; + sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4"; + }; + }; + "http-proxy-1.18.0" = { + name = "http-proxy"; + packageName = "http-proxy"; + version = "1.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz"; + sha512 = "84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ=="; + }; + }; + "http-proxy-middleware-0.19.1" = { + name = "http-proxy-middleware"; + packageName = "http-proxy-middleware"; + version = "0.19.1"; + src = fetchurl { + url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz"; + sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q=="; + }; + }; + "http-signature-1.2.0" = { + name = "http-signature"; + packageName = "http-signature"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + }; + "https-browserify-1.0.0" = { + name = "https-browserify"; + packageName = "https-browserify"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz"; + sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "ieee754-1.1.13" = { + name = "ieee754"; + packageName = "ieee754"; + version = "1.1.13"; + src = fetchurl { + url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz"; + sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="; + }; + }; + "iferr-0.1.5" = { + name = "iferr"; + packageName = "iferr"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz"; + sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"; + }; + }; + "ignore-3.3.10" = { + name = "ignore"; + packageName = "ignore"; + version = "3.3.10"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz"; + sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="; + }; + }; + "import-local-2.0.0" = { + name = "import-local"; + packageName = "import-local"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz"; + sha512 = "b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ=="; + }; + }; + "imurmurhash-0.1.4" = { + name = "imurmurhash"; + packageName = "imurmurhash"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + }; + "indent-string-3.2.0" = { + name = "indent-string"; + packageName = "indent-string"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz"; + sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289"; + }; + }; + "infer-owner-1.0.4" = { + name = "infer-owner"; + packageName = "infer-owner"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz"; + sha512 = "IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="; + }; + }; + "inflation-2.0.0" = { + name = "inflation"; + packageName = "inflation"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz"; + sha1 = "8b417e47c28f925a45133d914ca1fd389107f30f"; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.1" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"; + sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; + }; + }; + "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"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "ini-1.3.5" = { + name = "ini"; + packageName = "ini"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz"; + sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="; + }; + }; + "internal-ip-4.3.0" = { + name = "internal-ip"; + packageName = "internal-ip"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz"; + sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg=="; + }; + }; + "interpret-1.2.0" = { + name = "interpret"; + packageName = "interpret"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz"; + sha512 = "mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="; + }; + }; + "into-stream-3.1.0" = { + name = "into-stream"; + packageName = "into-stream"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz"; + sha1 = "96fb0a936c12babd6ff1752a17d05616abd094c6"; + }; + }; + "invariant-2.2.4" = { + name = "invariant"; + packageName = "invariant"; + version = "2.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"; + sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="; + }; + }; + "invert-kv-2.0.0" = { + name = "invert-kv"; + packageName = "invert-kv"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz"; + sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="; + }; + }; + "ip-1.1.5" = { + name = "ip"; + packageName = "ip"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz"; + sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a"; + }; + }; + "ip-regex-2.1.0" = { + name = "ip-regex"; + packageName = "ip-regex"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz"; + sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"; + }; + }; + "ipaddr.js-1.9.0" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz"; + sha512 = "M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="; + }; + }; + "is-absolute-url-3.0.3" = { + name = "is-absolute-url"; + packageName = "is-absolute-url"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz"; + sha512 = "opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q=="; + }; + }; + "is-accessor-descriptor-0.1.6" = { + name = "is-accessor-descriptor"; + packageName = "is-accessor-descriptor"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"; + sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"; + }; + }; + "is-accessor-descriptor-1.0.0" = { + name = "is-accessor-descriptor"; + packageName = "is-accessor-descriptor"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"; + sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ=="; + }; + }; + "is-arrayish-0.2.1" = { + name = "is-arrayish"; + packageName = "is-arrayish"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"; + sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; + }; + }; + "is-binary-path-1.0.1" = { + name = "is-binary-path"; + packageName = "is-binary-path"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"; + sha1 = "75f16642b480f187a711c814161fd3a4a7655898"; + }; + }; + "is-buffer-1.1.6" = { + name = "is-buffer"; + packageName = "is-buffer"; + version = "1.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"; + sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="; + }; + }; + "is-buffer-2.0.4" = { + name = "is-buffer"; + packageName = "is-buffer"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz"; + sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="; + }; + }; + "is-callable-1.1.4" = { + name = "is-callable"; + packageName = "is-callable"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz"; + sha512 = "r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="; + }; + }; + "is-ci-2.0.0" = { + name = "is-ci"; + packageName = "is-ci"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz"; + sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w=="; + }; + }; + "is-data-descriptor-0.1.4" = { + name = "is-data-descriptor"; + packageName = "is-data-descriptor"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"; + sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56"; + }; + }; + "is-data-descriptor-1.0.0" = { + name = "is-data-descriptor"; + packageName = "is-data-descriptor"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"; + sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ=="; + }; + }; + "is-date-object-1.0.1" = { + name = "is-date-object"; + packageName = "is-date-object"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz"; + sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"; + }; + }; + "is-descriptor-0.1.6" = { + name = "is-descriptor"; + packageName = "is-descriptor"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz"; + sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg=="; + }; + }; + "is-descriptor-1.0.2" = { + name = "is-descriptor"; + packageName = "is-descriptor"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"; + sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg=="; + }; + }; + "is-expression-3.0.0" = { + name = "is-expression"; + packageName = "is-expression"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz"; + sha1 = "39acaa6be7fd1f3471dc42c7416e61c24317ac9f"; + }; + }; + "is-extendable-0.1.1" = { + name = "is-extendable"; + packageName = "is-extendable"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"; + sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; + }; + }; + "is-extendable-1.0.1" = { + name = "is-extendable"; + packageName = "is-extendable"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"; + sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA=="; + }; + }; + "is-extglob-2.1.1" = { + name = "is-extglob"; + packageName = "is-extglob"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"; + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; + }; + }; + "is-finite-1.0.2" = { + name = "is-finite"; + packageName = "is-finite"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"; + sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa"; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-fullwidth-code-point-2.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; + sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; + }; + }; + "is-generator-fn-2.1.0" = { + name = "is-generator-fn"; + packageName = "is-generator-fn"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz"; + sha512 = "cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="; + }; + }; + "is-generator-function-1.0.7" = { + name = "is-generator-function"; + packageName = "is-generator-function"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz"; + sha512 = "YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw=="; + }; + }; + "is-glob-3.1.0" = { + name = "is-glob"; + packageName = "is-glob"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"; + sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; + }; + }; + "is-glob-4.0.1" = { + name = "is-glob"; + packageName = "is-glob"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"; + sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg=="; + }; + }; + "is-number-3.0.0" = { + name = "is-number"; + packageName = "is-number"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"; + sha1 = "24fd6201a4782cf50561c810276afc7d12d71195"; + }; + }; + "is-object-1.0.1" = { + name = "is-object"; + packageName = "is-object"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz"; + sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470"; + }; + }; + "is-path-cwd-2.2.0" = { + name = "is-path-cwd"; + packageName = "is-path-cwd"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz"; + sha512 = "w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ=="; + }; + }; + "is-path-in-cwd-2.1.0" = { + name = "is-path-in-cwd"; + packageName = "is-path-in-cwd"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz"; + sha512 = "rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ=="; + }; + }; + "is-path-inside-2.1.0" = { + name = "is-path-inside"; + packageName = "is-path-inside"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz"; + sha512 = "wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg=="; + }; + }; + "is-plain-obj-1.1.0" = { + name = "is-plain-obj"; + packageName = "is-plain-obj"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz"; + sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e"; + }; + }; + "is-plain-object-2.0.4" = { + name = "is-plain-object"; + packageName = "is-plain-object"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"; + sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="; + }; + }; + "is-promise-2.1.0" = { + name = "is-promise"; + packageName = "is-promise"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz"; + sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"; + }; + }; + "is-regex-1.0.4" = { + name = "is-regex"; + packageName = "is-regex"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz"; + sha1 = "5517489b547091b0930e095654ced25ee97e9491"; + }; + }; + "is-retry-allowed-1.2.0" = { + name = "is-retry-allowed"; + packageName = "is-retry-allowed"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz"; + sha512 = "RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="; + }; + }; + "is-stream-1.1.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"; + sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; + }; + }; + "is-symbol-1.0.2" = { + name = "is-symbol"; + packageName = "is-symbol"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz"; + sha512 = "HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw=="; + }; + }; + "is-typedarray-1.0.0" = { + name = "is-typedarray"; + packageName = "is-typedarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + }; + "is-whitespace-0.3.0" = { + name = "is-whitespace"; + packageName = "is-whitespace"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz"; + sha1 = "1639ecb1be036aec69a54cbb401cfbed7114ab7f"; + }; + }; + "is-windows-1.0.2" = { + name = "is-windows"; + packageName = "is-windows"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"; + sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="; + }; + }; + "is-wsl-1.1.0" = { + name = "is-wsl"; + packageName = "is-wsl"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz"; + sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d"; + }; + }; + "isarray-0.0.1" = { + name = "isarray"; + packageName = "isarray"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"; + sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "isexe-2.0.0" = { + name = "isexe"; + packageName = "isexe"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"; + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; + }; + }; + "isobject-2.1.0" = { + name = "isobject"; + packageName = "isobject"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"; + sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89"; + }; + }; + "isobject-3.0.1" = { + name = "isobject"; + packageName = "isobject"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"; + sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; + }; + }; + "isomorphic-ws-4.0.1" = { + name = "isomorphic-ws"; + packageName = "isomorphic-ws"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz"; + sha512 = "BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="; + }; + }; + "isstream-0.1.2" = { + name = "isstream"; + packageName = "isstream"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + }; + "istanbul-lib-coverage-2.0.5" = { + name = "istanbul-lib-coverage"; + packageName = "istanbul-lib-coverage"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz"; + sha512 = "8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA=="; + }; + }; + "istanbul-lib-instrument-3.3.0" = { + name = "istanbul-lib-instrument"; + packageName = "istanbul-lib-instrument"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz"; + sha512 = "5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA=="; + }; + }; + "istanbul-lib-report-2.0.8" = { + name = "istanbul-lib-report"; + packageName = "istanbul-lib-report"; + version = "2.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz"; + sha512 = "fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ=="; + }; + }; + "istanbul-lib-source-maps-3.0.6" = { + name = "istanbul-lib-source-maps"; + packageName = "istanbul-lib-source-maps"; + version = "3.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz"; + sha512 = "R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw=="; + }; + }; + "istanbul-reports-2.2.6" = { + name = "istanbul-reports"; + packageName = "istanbul-reports"; + version = "2.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz"; + sha512 = "SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA=="; + }; + }; + "isurl-1.0.0" = { + name = "isurl"; + packageName = "isurl"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz"; + sha512 = "1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w=="; + }; + }; + "jest-24.9.0" = { + name = "jest"; + packageName = "jest"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz"; + sha512 = "YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw=="; + }; + }; + "jest-changed-files-24.9.0" = { + name = "jest-changed-files"; + packageName = "jest-changed-files"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz"; + sha512 = "6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg=="; + }; + }; + "jest-cli-24.9.0" = { + name = "jest-cli"; + packageName = "jest-cli"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz"; + sha512 = "+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg=="; + }; + }; + "jest-config-24.9.0" = { + name = "jest-config"; + packageName = "jest-config"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz"; + sha512 = "RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ=="; + }; + }; + "jest-diff-24.9.0" = { + name = "jest-diff"; + packageName = "jest-diff"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz"; + sha512 = "qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ=="; + }; + }; + "jest-docblock-24.9.0" = { + name = "jest-docblock"; + packageName = "jest-docblock"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz"; + sha512 = "F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA=="; + }; + }; + "jest-each-24.9.0" = { + name = "jest-each"; + packageName = "jest-each"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz"; + sha512 = "ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog=="; + }; + }; + "jest-environment-jsdom-24.9.0" = { + name = "jest-environment-jsdom"; + packageName = "jest-environment-jsdom"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz"; + sha512 = "Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA=="; + }; + }; + "jest-environment-node-24.9.0" = { + name = "jest-environment-node"; + packageName = "jest-environment-node"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz"; + sha512 = "6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA=="; + }; + }; + "jest-get-type-24.9.0" = { + name = "jest-get-type"; + packageName = "jest-get-type"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz"; + sha512 = "lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="; + }; + }; + "jest-haste-map-24.9.0" = { + name = "jest-haste-map"; + packageName = "jest-haste-map"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz"; + sha512 = "kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ=="; + }; + }; + "jest-jasmine2-24.9.0" = { + name = "jest-jasmine2"; + packageName = "jest-jasmine2"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz"; + sha512 = "Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw=="; + }; + }; + "jest-leak-detector-24.9.0" = { + name = "jest-leak-detector"; + packageName = "jest-leak-detector"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz"; + sha512 = "tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA=="; + }; + }; + "jest-matcher-utils-24.9.0" = { + name = "jest-matcher-utils"; + packageName = "jest-matcher-utils"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz"; + sha512 = "OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA=="; + }; + }; + "jest-message-util-24.9.0" = { + name = "jest-message-util"; + packageName = "jest-message-util"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz"; + sha512 = "oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw=="; + }; + }; + "jest-mock-24.9.0" = { + name = "jest-mock"; + packageName = "jest-mock"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz"; + sha512 = "3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w=="; + }; + }; + "jest-pnp-resolver-1.2.1" = { + name = "jest-pnp-resolver"; + packageName = "jest-pnp-resolver"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz"; + sha512 = "pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ=="; + }; + }; + "jest-regex-util-24.9.0" = { + name = "jest-regex-util"; + packageName = "jest-regex-util"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz"; + sha512 = "05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA=="; + }; + }; + "jest-resolve-24.9.0" = { + name = "jest-resolve"; + packageName = "jest-resolve"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz"; + sha512 = "TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ=="; + }; + }; + "jest-resolve-dependencies-24.9.0" = { + name = "jest-resolve-dependencies"; + packageName = "jest-resolve-dependencies"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz"; + sha512 = "Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g=="; + }; + }; + "jest-runner-24.9.0" = { + name = "jest-runner"; + packageName = "jest-runner"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz"; + sha512 = "KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg=="; + }; + }; + "jest-runtime-24.9.0" = { + name = "jest-runtime"; + packageName = "jest-runtime"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz"; + sha512 = "8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw=="; + }; + }; + "jest-serializer-24.9.0" = { + name = "jest-serializer"; + packageName = "jest-serializer"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz"; + sha512 = "DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ=="; + }; + }; + "jest-snapshot-24.9.0" = { + name = "jest-snapshot"; + packageName = "jest-snapshot"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz"; + sha512 = "uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew=="; + }; + }; + "jest-util-24.9.0" = { + name = "jest-util"; + packageName = "jest-util"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz"; + sha512 = "x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg=="; + }; + }; + "jest-validate-24.9.0" = { + name = "jest-validate"; + packageName = "jest-validate"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz"; + sha512 = "HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ=="; + }; + }; + "jest-watcher-24.9.0" = { + name = "jest-watcher"; + packageName = "jest-watcher"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz"; + sha512 = "+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw=="; + }; + }; + "jest-worker-24.9.0" = { + name = "jest-worker"; + packageName = "jest-worker"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz"; + sha512 = "51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw=="; + }; + }; + "js-beautify-1.10.2" = { + name = "js-beautify"; + packageName = "js-beautify"; + version = "1.10.2"; + src = fetchurl { + url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.2.tgz"; + sha512 = "ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ=="; + }; + }; + "js-stringify-1.0.2" = { + name = "js-stringify"; + packageName = "js-stringify"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz"; + sha1 = "1736fddfd9724f28a3682adc6230ae7e4e9679db"; + }; + }; + "js-tokens-3.0.2" = { + name = "js-tokens"; + packageName = "js-tokens"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"; + sha1 = "9866df395102130e38f7f996bceb65443209c25b"; + }; + }; + "js-tokens-4.0.0" = { + name = "js-tokens"; + packageName = "js-tokens"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; + sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; + }; + }; + "js-yaml-3.13.1" = { + name = "js-yaml"; + packageName = "js-yaml"; + version = "3.13.1"; + src = fetchurl { + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"; + sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw=="; + }; + }; + "jsbn-0.1.1" = { + name = "jsbn"; + packageName = "jsbn"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + }; + "jsdom-11.12.0" = { + name = "jsdom"; + packageName = "jsdom"; + version = "11.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz"; + sha512 = "y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw=="; + }; + }; + "jsesc-0.5.0" = { + name = "jsesc"; + packageName = "jsesc"; + version = "0.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"; + sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d"; + }; + }; + "jsesc-1.3.0" = { + name = "jsesc"; + packageName = "jsesc"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz"; + sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b"; + }; + }; + "jsesc-2.5.2" = { + name = "jsesc"; + packageName = "jsesc"; + version = "2.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"; + sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="; + }; + }; + "json-buffer-3.0.0" = { + name = "json-buffer"; + packageName = "json-buffer"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz"; + sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"; + }; + }; + "json-parse-better-errors-1.0.2" = { + name = "json-parse-better-errors"; + packageName = "json-parse-better-errors"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"; + sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="; + }; + }; + "json-schema-0.2.3" = { + name = "json-schema"; + packageName = "json-schema"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + }; + "json-schema-traverse-0.4.1" = { + name = "json-schema-traverse"; + packageName = "json-schema-traverse"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; + }; + }; + "json-stringify-safe-5.0.1" = { + name = "json-stringify-safe"; + packageName = "json-stringify-safe"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + }; + "json3-3.3.3" = { + name = "json3"; + packageName = "json3"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz"; + sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA=="; + }; + }; + "json5-0.5.1" = { + name = "json5"; + packageName = "json5"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"; + sha1 = "1eade7acc012034ad84e2396767ead9fa5495821"; + }; + }; + "json5-1.0.1" = { + name = "json5"; + packageName = "json5"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"; + sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="; + }; + }; + "json5-2.1.1" = { + name = "json5"; + packageName = "json5"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz"; + sha512 = "l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ=="; + }; + }; + "jsonpath-plus-0.19.0" = { + name = "jsonpath-plus"; + packageName = "jsonpath-plus"; + version = "0.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz"; + sha512 = "GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg=="; + }; + }; + "jsprim-1.4.1" = { + name = "jsprim"; + packageName = "jsprim"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + }; + "jstransformer-1.0.0" = { + name = "jstransformer"; + packageName = "jstransformer"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz"; + sha1 = "ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3"; + }; + }; + "keygrip-1.0.3" = { + name = "keygrip"; + packageName = "keygrip"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/keygrip/-/keygrip-1.0.3.tgz"; + sha512 = "/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g=="; + }; + }; + "keyv-3.0.0" = { + name = "keyv"; + packageName = "keyv"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz"; + sha512 = "eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA=="; + }; + }; + "killable-1.0.1" = { + name = "killable"; + packageName = "killable"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz"; + sha512 = "LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg=="; + }; + }; + "kind-of-3.2.2" = { + name = "kind-of"; + packageName = "kind-of"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"; + sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64"; + }; + }; + "kind-of-4.0.0" = { + name = "kind-of"; + packageName = "kind-of"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"; + sha1 = "20813df3d712928b207378691a45066fae72dd57"; + }; + }; + "kind-of-5.1.0" = { + name = "kind-of"; + packageName = "kind-of"; + version = "5.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"; + sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="; + }; + }; + "kind-of-6.0.2" = { + name = "kind-of"; + packageName = "kind-of"; + version = "6.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz"; + sha512 = "s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="; + }; + }; + "kleur-3.0.3" = { + name = "kleur"; + packageName = "kleur"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz"; + sha512 = "eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="; + }; + }; + "koa-2.8.2" = { + name = "koa"; + packageName = "koa"; + version = "2.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/koa/-/koa-2.8.2.tgz"; + sha512 = "q1uZOgpl3wjr5FS/tjbABJ8lA5+NeKa9eq7QyBP5xxgOBwJN4iBrMEgO3LroE51lrIw3BsO0WZZ0Yi6giSiMDw=="; + }; + }; + "koa-body-4.1.1" = { + name = "koa-body"; + packageName = "koa-body"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-body/-/koa-body-4.1.1.tgz"; + sha512 = "rLb/KVD8qplEcK8Qsu6F4Xw+uHkmx3MWogDVmMX07DpjXizhw3pOEp1ja1MqqAcl0ei75AsrbGVDlySmsUrreA=="; + }; + }; + "koa-compose-3.2.1" = { + name = "koa-compose"; + packageName = "koa-compose"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz"; + sha1 = "a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"; + }; + }; + "koa-compose-4.1.0" = { + name = "koa-compose"; + packageName = "koa-compose"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz"; + sha512 = "8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="; + }; + }; + "koa-convert-1.2.0" = { + name = "koa-convert"; + packageName = "koa-convert"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz"; + sha1 = "da40875df49de0539098d1700b50820cebcd21d0"; + }; + }; + "koa-is-json-1.0.0" = { + name = "koa-is-json"; + packageName = "koa-is-json"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz"; + sha1 = "273c07edcdcb8df6a2c1ab7d59ee76491451ec14"; + }; + }; + "koa-router-7.4.0" = { + name = "koa-router"; + packageName = "koa-router"; + version = "7.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz"; + sha512 = "IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g=="; + }; + }; + "koa-send-5.0.0" = { + name = "koa-send"; + packageName = "koa-send"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-send/-/koa-send-5.0.0.tgz"; + sha512 = "90ZotV7t0p3uN9sRwW2D484rAaKIsD8tAVtypw/aBU+ryfV+fR2xrcAwhI8Wl6WRkojLUs/cB9SBSCuIb+IanQ=="; + }; + }; + "koa-static-5.0.0" = { + name = "koa-static"; + packageName = "koa-static"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz"; + sha512 = "UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ=="; + }; + }; + "koa-views-6.2.1" = { + name = "koa-views"; + packageName = "koa-views"; + version = "6.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-views/-/koa-views-6.2.1.tgz"; + sha512 = "wU3tw48KuskaJg0x1JZmC73UWGgVmh6B54HuHDzTrkavig+dBI0NbFeGiWsaOCZREQkaTfIVXSPSByDant71ew=="; + }; + }; + "lazy-cache-1.0.4" = { + name = "lazy-cache"; + packageName = "lazy-cache"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz"; + sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"; + }; + }; + "lcid-2.0.0" = { + name = "lcid"; + packageName = "lcid"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz"; + sha512 = "avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA=="; + }; + }; + "left-pad-1.3.0" = { + name = "left-pad"; + packageName = "left-pad"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz"; + sha512 = "XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="; + }; + }; + "leven-3.1.0" = { + name = "leven"; + packageName = "leven"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz"; + sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="; + }; + }; + "levn-0.3.0" = { + name = "levn"; + packageName = "levn"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"; + sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; + }; + }; + "load-json-file-4.0.0" = { + name = "load-json-file"; + packageName = "load-json-file"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz"; + sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b"; + }; + }; + "loader-runner-2.4.0" = { + name = "loader-runner"; + packageName = "loader-runner"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz"; + sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="; + }; + }; + "loader-utils-1.2.3" = { + name = "loader-utils"; + packageName = "loader-utils"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz"; + sha512 = "fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA=="; + }; + }; + "locate-path-2.0.0" = { + name = "locate-path"; + packageName = "locate-path"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"; + sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; + }; + }; + "locate-path-3.0.0" = { + name = "locate-path"; + packageName = "locate-path"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"; + sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="; + }; + }; + "lodash-4.17.15" = { + name = "lodash"; + packageName = "lodash"; + version = "4.17.15"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz"; + sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="; + }; + }; + "lodash.camelcase-4.3.0" = { + name = "lodash.camelcase"; + packageName = "lodash.camelcase"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"; + sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6"; + }; + }; + "lodash.clonedeep-4.5.0" = { + name = "lodash.clonedeep"; + packageName = "lodash.clonedeep"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"; + sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef"; + }; + }; + "lodash.memoize-4.1.2" = { + name = "lodash.memoize"; + packageName = "lodash.memoize"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"; + sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe"; + }; + }; + "lodash.sortby-4.7.0" = { + name = "lodash.sortby"; + packageName = "lodash.sortby"; + version = "4.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz"; + sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438"; + }; + }; + "log-symbols-2.2.0" = { + name = "log-symbols"; + packageName = "log-symbols"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz"; + sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg=="; + }; + }; + "loglevel-1.6.4" = { + name = "loglevel"; + packageName = "loglevel"; + version = "1.6.4"; + src = fetchurl { + url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz"; + sha512 = "p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g=="; + }; + }; + "loglevelnext-1.0.5" = { + name = "loglevelnext"; + packageName = "loglevelnext"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz"; + sha512 = "V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A=="; + }; + }; + "long-4.0.0" = { + name = "long"; + packageName = "long"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/long/-/long-4.0.0.tgz"; + sha512 = "XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="; + }; + }; + "longest-1.0.1" = { + name = "longest"; + packageName = "longest"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz"; + sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097"; + }; + }; + "loose-envify-1.4.0" = { + name = "loose-envify"; + packageName = "loose-envify"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"; + sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="; + }; + }; + "lowercase-keys-1.0.0" = { + name = "lowercase-keys"; + packageName = "lowercase-keys"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz"; + sha1 = "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"; + }; + }; + "lowercase-keys-1.0.1" = { + name = "lowercase-keys"; + packageName = "lowercase-keys"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz"; + sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="; + }; + }; + "lru-cache-4.1.5" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "4.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"; + sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="; + }; + }; + "lru-cache-5.1.1" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"; + sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="; + }; + }; + "make-dir-1.3.0" = { + name = "make-dir"; + packageName = "make-dir"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz"; + sha512 = "2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ=="; + }; + }; + "make-dir-2.1.0" = { + name = "make-dir"; + packageName = "make-dir"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz"; + sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="; + }; + }; + "make-error-1.3.5" = { + name = "make-error"; + packageName = "make-error"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz"; + sha512 = "c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g=="; + }; + }; + "makeerror-1.0.11" = { + name = "makeerror"; + packageName = "makeerror"; + version = "1.0.11"; + src = fetchurl { + url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz"; + sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c"; + }; + }; + "mamacro-0.0.3" = { + name = "mamacro"; + packageName = "mamacro"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz"; + sha512 = "qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA=="; + }; + }; + "map-age-cleaner-0.1.3" = { + name = "map-age-cleaner"; + packageName = "map-age-cleaner"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz"; + sha512 = "bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w=="; + }; + }; + "map-cache-0.2.2" = { + name = "map-cache"; + packageName = "map-cache"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"; + sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"; + }; + }; + "map-visit-1.0.0" = { + name = "map-visit"; + packageName = "map-visit"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"; + sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"; + }; + }; + "md5.js-1.3.5" = { + name = "md5.js"; + packageName = "md5.js"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz"; + sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg=="; + }; + }; + "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"; + }; + }; + "mem-4.3.0" = { + name = "mem"; + packageName = "mem"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz"; + sha512 = "qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w=="; + }; + }; + "memory-fs-0.4.1" = { + name = "memory-fs"; + packageName = "memory-fs"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz"; + sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552"; + }; + }; + "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"; + }; + }; + "merge-stream-2.0.0" = { + name = "merge-stream"; + packageName = "merge-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"; + sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="; + }; + }; + "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"; + }; + }; + "micromatch-3.1.10" = { + name = "micromatch"; + packageName = "micromatch"; + version = "3.1.10"; + src = fetchurl { + url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"; + sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg=="; + }; + }; + "miller-rabin-4.0.1" = { + name = "miller-rabin"; + packageName = "miller-rabin"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz"; + sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA=="; + }; + }; + "mime-1.6.0" = { + name = "mime"; + packageName = "mime"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; + sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; + }; + }; + "mime-2.4.4" = { + name = "mime"; + packageName = "mime"; + version = "2.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz"; + sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="; + }; + }; + "mime-db-1.40.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.40.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz"; + sha512 = "jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="; + }; + }; + "mime-types-2.1.24" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.24"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz"; + sha512 = "WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ=="; + }; + }; + "mimic-fn-1.2.0" = { + name = "mimic-fn"; + packageName = "mimic-fn"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz"; + sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="; + }; + }; + "mimic-fn-2.1.0" = { + name = "mimic-fn"; + packageName = "mimic-fn"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"; + sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="; + }; + }; + "mimic-response-1.0.1" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz"; + sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="; + }; + }; + "minimalistic-assert-1.0.1" = { + name = "minimalistic-assert"; + packageName = "minimalistic-assert"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; + sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; + }; + }; + "minimalistic-crypto-utils-1.0.1" = { + name = "minimalistic-crypto-utils"; + packageName = "minimalistic-crypto-utils"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"; + sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-0.0.8" = { + name = "minimist"; + packageName = "minimist"; + version = "0.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + }; + "minimist-1.2.0" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"; + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + }; + }; + "mississippi-2.0.0" = { + name = "mississippi"; + packageName = "mississippi"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz"; + sha512 = "zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw=="; + }; + }; + "mississippi-3.0.0" = { + name = "mississippi"; + packageName = "mississippi"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz"; + sha512 = "x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA=="; + }; + }; + "mixin-deep-1.3.2" = { + name = "mixin-deep"; + packageName = "mixin-deep"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"; + sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=="; + }; + }; + "mkdirp-0.5.1" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + }; + "moment-2.24.0" = { + name = "moment"; + packageName = "moment"; + version = "2.24.0"; + src = fetchurl { + url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz"; + sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="; + }; + }; + "moment-timezone-0.5.26" = { + name = "moment-timezone"; + packageName = "moment-timezone"; + version = "0.5.26"; + src = fetchurl { + url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.26.tgz"; + sha512 = "sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g=="; + }; + }; + "move-concurrently-1.0.1" = { + name = "move-concurrently"; + packageName = "move-concurrently"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz"; + sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92"; + }; + }; + "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"; + }; + }; + "ms-2.1.1" = { + name = "ms"; + packageName = "ms"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; + sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; + }; + }; + "ms-2.1.2" = { + name = "ms"; + packageName = "ms"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; + sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; + }; + }; + "multicast-dns-6.2.3" = { + name = "multicast-dns"; + packageName = "multicast-dns"; + version = "6.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz"; + sha512 = "ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g=="; + }; + }; + "multicast-dns-service-types-1.1.0" = { + name = "multicast-dns-service-types"; + packageName = "multicast-dns-service-types"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz"; + sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901"; + }; + }; + "mz-2.7.0" = { + name = "mz"; + packageName = "mz"; + version = "2.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"; + sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="; + }; + }; + "nan-2.14.0" = { + name = "nan"; + packageName = "nan"; + version = "2.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"; + sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="; + }; + }; + "nanomatch-1.2.13" = { + name = "nanomatch"; + packageName = "nanomatch"; + version = "1.2.13"; + src = fetchurl { + url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"; + sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA=="; + }; + }; + "natural-compare-1.4.0" = { + name = "natural-compare"; + packageName = "natural-compare"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"; + sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"; + }; + }; + "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=="; + }; + }; + "neo-async-2.6.1" = { + name = "neo-async"; + packageName = "neo-async"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz"; + sha512 = "iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="; + }; + }; + "next-tick-1.0.0" = { + name = "next-tick"; + packageName = "next-tick"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz"; + sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c"; + }; + }; + "nice-try-1.0.5" = { + name = "nice-try"; + packageName = "nice-try"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"; + sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="; + }; + }; + "node-forge-0.8.5" = { + name = "node-forge"; + packageName = "node-forge"; + version = "0.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz"; + sha512 = "vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q=="; + }; + }; + "node-forge-0.9.0" = { + name = "node-forge"; + packageName = "node-forge"; + version = "0.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz"; + sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ=="; + }; + }; + "node-int64-0.4.0" = { + name = "node-int64"; + packageName = "node-int64"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"; + sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b"; + }; + }; + "node-jose-1.1.3" = { + name = "node-jose"; + packageName = "node-jose"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-jose/-/node-jose-1.1.3.tgz"; + sha512 = "kupfi4uGWhRjnOmtie2T64cLge5a1TZyalEa8uWWWBgtKBcu41A4IGKpI9twZAxRnmviamEUQRK7LSyfFb2w8A=="; + }; + }; + "node-libs-browser-2.2.1" = { + name = "node-libs-browser"; + packageName = "node-libs-browser"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz"; + sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q=="; + }; + }; + "node-modules-regexp-1.0.0" = { + name = "node-modules-regexp"; + packageName = "node-modules-regexp"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz"; + sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40"; + }; + }; + "node-notifier-5.4.3" = { + name = "node-notifier"; + packageName = "node-notifier"; + version = "5.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz"; + sha512 = "M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q=="; + }; + }; + "nopt-4.0.1" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"; + sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; + }; + }; + "normalize-package-data-2.5.0" = { + name = "normalize-package-data"; + packageName = "normalize-package-data"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"; + sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="; + }; + }; + "normalize-path-2.1.1" = { + name = "normalize-path"; + packageName = "normalize-path"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"; + sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"; + }; + }; + "normalize-path-3.0.0" = { + name = "normalize-path"; + packageName = "normalize-path"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"; + sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="; + }; + }; + "normalize-url-2.0.1" = { + name = "normalize-url"; + packageName = "normalize-url"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz"; + sha512 = "D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw=="; + }; + }; + "npm-run-path-2.0.2" = { + name = "npm-run-path"; + packageName = "npm-run-path"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"; + sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f"; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "nwsapi-2.1.4" = { + name = "nwsapi"; + packageName = "nwsapi"; + version = "2.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz"; + sha512 = "iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw=="; + }; + }; + "oauth-sign-0.9.0" = { + name = "oauth-sign"; + packageName = "oauth-sign"; + version = "0.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; + sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "object-copy-0.1.0" = { + name = "object-copy"; + packageName = "object-copy"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"; + sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c"; + }; + }; + "object-hash-1.3.1" = { + name = "object-hash"; + packageName = "object-hash"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz"; + sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="; + }; + }; + "object-inspect-1.6.0" = { + name = "object-inspect"; + packageName = "object-inspect"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz"; + sha512 = "GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="; + }; + }; + "object-keys-1.1.1" = { + name = "object-keys"; + packageName = "object-keys"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"; + sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="; + }; + }; + "object-visit-1.0.1" = { + name = "object-visit"; + packageName = "object-visit"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"; + sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb"; + }; + }; + "object.assign-4.1.0" = { + name = "object.assign"; + packageName = "object.assign"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz"; + sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w=="; + }; + }; + "object.getownpropertydescriptors-2.0.3" = { + name = "object.getownpropertydescriptors"; + packageName = "object.getownpropertydescriptors"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz"; + sha1 = "8758c846f5b407adab0f236e0986f14b051caa16"; + }; + }; + "object.pick-1.3.0" = { + name = "object.pick"; + packageName = "object.pick"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"; + sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747"; + }; + }; + "obuf-1.1.2" = { + name = "obuf"; + packageName = "obuf"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz"; + sha512 = "PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="; + }; + }; + "oidc-token-hash-3.0.2" = { + name = "oidc-token-hash"; + packageName = "oidc-token-hash"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-3.0.2.tgz"; + sha512 = "dTzp80/y/da+um+i+sOucNqiPpwRL7M/xPwj7pH1TFA2/bqQ+OK2sJahSXbemEoLtPkHcFLyhLhLWZa9yW5+RA=="; + }; + }; + "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"; + }; + }; + "on-headers-1.0.2" = { + name = "on-headers"; + packageName = "on-headers"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "onetime-2.0.1" = { + name = "onetime"; + packageName = "onetime"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz"; + sha1 = "067428230fd67443b2794b22bba528b6867962d4"; + }; + }; + "only-0.0.2" = { + name = "only"; + packageName = "only"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/only/-/only-0.0.2.tgz"; + sha1 = "2afde84d03e50b9a8edc444e30610a70295edfb4"; + }; + }; + "opener-1.5.1" = { + name = "opener"; + packageName = "opener"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz"; + sha512 = "goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA=="; + }; + }; + "openid-client-2.5.0" = { + name = "openid-client"; + packageName = "openid-client"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/openid-client/-/openid-client-2.5.0.tgz"; + sha512 = "t3hFD7xEoW1U25RyBcRFaL19fGGs6hNVTysq9pgmiltH0IVUPzH/bQV9w24pM5Q7MunnGv2/5XjIru6BQcWdxg=="; + }; + }; + "opn-5.5.0" = { + name = "opn"; + packageName = "opn"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz"; + sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA=="; + }; + }; + "optimist-0.6.1" = { + name = "optimist"; + packageName = "optimist"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz"; + sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686"; + }; + }; + "optionator-0.8.2" = { + name = "optionator"; + packageName = "optionator"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz"; + sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64"; + }; + }; + "ora-3.4.0" = { + name = "ora"; + packageName = "ora"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz"; + sha512 = "eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg=="; + }; + }; + "original-1.0.2" = { + name = "original"; + packageName = "original"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz"; + sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg=="; + }; + }; + "os-browserify-0.3.0" = { + name = "os-browserify"; + packageName = "os-browserify"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz"; + sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27"; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-locale-3.1.0" = { + name = "os-locale"; + packageName = "os-locale"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz"; + sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q=="; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; + }; + }; + "p-any-1.1.0" = { + name = "p-any"; + packageName = "p-any"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-any/-/p-any-1.1.0.tgz"; + sha512 = "Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g=="; + }; + }; + "p-cancelable-0.4.1" = { + name = "p-cancelable"; + packageName = "p-cancelable"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz"; + sha512 = "HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ=="; + }; + }; + "p-defer-1.0.0" = { + name = "p-defer"; + packageName = "p-defer"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz"; + sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"; + }; + }; + "p-each-series-1.0.0" = { + name = "p-each-series"; + packageName = "p-each-series"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz"; + sha1 = "930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"; + }; + }; + "p-finally-1.0.0" = { + name = "p-finally"; + packageName = "p-finally"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"; + sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae"; + }; + }; + "p-is-promise-1.1.0" = { + name = "p-is-promise"; + packageName = "p-is-promise"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz"; + sha1 = "9c9456989e9f6588017b0434d56097675c3da05e"; + }; + }; + "p-is-promise-2.1.0" = { + name = "p-is-promise"; + packageName = "p-is-promise"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz"; + sha512 = "Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="; + }; + }; + "p-limit-1.3.0" = { + name = "p-limit"; + packageName = "p-limit"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz"; + sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q=="; + }; + }; + "p-limit-2.2.1" = { + name = "p-limit"; + packageName = "p-limit"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz"; + sha512 = "85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg=="; + }; + }; + "p-locate-2.0.0" = { + name = "p-locate"; + packageName = "p-locate"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"; + sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; + }; + }; + "p-locate-3.0.0" = { + name = "p-locate"; + packageName = "p-locate"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"; + sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="; + }; + }; + "p-map-2.1.0" = { + name = "p-map"; + packageName = "p-map"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz"; + sha512 = "y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="; + }; + }; + "p-reduce-1.0.0" = { + name = "p-reduce"; + packageName = "p-reduce"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz"; + sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"; + }; + }; + "p-retry-3.0.1" = { + name = "p-retry"; + packageName = "p-retry"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz"; + sha512 = "XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w=="; + }; + }; + "p-some-2.0.1" = { + name = "p-some"; + packageName = "p-some"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/p-some/-/p-some-2.0.1.tgz"; + sha1 = "65d87c8b154edbcf5221d167778b6d2e150f6f06"; + }; + }; + "p-timeout-2.0.1" = { + name = "p-timeout"; + packageName = "p-timeout"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz"; + sha512 = "88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA=="; + }; + }; + "p-try-1.0.0" = { + name = "p-try"; + packageName = "p-try"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz"; + sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; + }; + }; + "p-try-2.2.0" = { + name = "p-try"; + packageName = "p-try"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"; + sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="; + }; + }; + "pako-1.0.10" = { + name = "pako"; + packageName = "pako"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz"; + sha512 = "0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw=="; + }; + }; + "parallel-transform-1.2.0" = { + name = "parallel-transform"; + packageName = "parallel-transform"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz"; + sha512 = "P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg=="; + }; + }; + "parse-asn1-5.1.5" = { + name = "parse-asn1"; + packageName = "parse-asn1"; + version = "5.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz"; + sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ=="; + }; + }; + "parse-json-4.0.0" = { + name = "parse-json"; + packageName = "parse-json"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz"; + sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0"; + }; + }; + "parse-passwd-1.0.0" = { + name = "parse-passwd"; + packageName = "parse-passwd"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz"; + sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6"; + }; + }; + "parse5-4.0.0" = { + name = "parse5"; + packageName = "parse5"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz"; + sha512 = "VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA=="; + }; + }; + "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=="; + }; + }; + "pascalcase-0.1.1" = { + name = "pascalcase"; + packageName = "pascalcase"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"; + sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14"; + }; + }; + "path-browserify-0.0.1" = { + name = "path-browserify"; + packageName = "path-browserify"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz"; + sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="; + }; + }; + "path-dirname-1.0.2" = { + name = "path-dirname"; + packageName = "path-dirname"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"; + sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; + }; + }; + "path-exists-3.0.0" = { + name = "path-exists"; + packageName = "path-exists"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"; + sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "path-is-inside-1.0.2" = { + name = "path-is-inside"; + packageName = "path-is-inside"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"; + sha1 = "365417dede44430d1c11af61027facf074bdfc53"; + }; + }; + "path-key-2.0.1" = { + name = "path-key"; + packageName = "path-key"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"; + sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40"; + }; + }; + "path-parse-1.0.6" = { + name = "path-parse"; + packageName = "path-parse"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; + sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; + }; + }; + "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"; + }; + }; + "path-to-regexp-1.7.0" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz"; + sha1 = "59fde0f435badacba103a84e9d3bc64e96b9937d"; + }; + }; + "path-type-3.0.0" = { + name = "path-type"; + packageName = "path-type"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz"; + sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg=="; + }; + }; + "pbkdf2-3.0.17" = { + name = "pbkdf2"; + packageName = "pbkdf2"; + version = "3.0.17"; + src = fetchurl { + url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz"; + sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA=="; + }; + }; + "performance-now-2.1.0" = { + name = "performance-now"; + packageName = "performance-now"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + }; + "pify-2.3.0" = { + name = "pify"; + packageName = "pify"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"; + sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c"; + }; + }; + "pify-3.0.0" = { + name = "pify"; + packageName = "pify"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + }; + "pify-4.0.1" = { + name = "pify"; + packageName = "pify"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"; + sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="; + }; + }; + "pinkie-2.0.4" = { + name = "pinkie"; + packageName = "pinkie"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"; + sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; + }; + }; + "pinkie-promise-2.0.1" = { + name = "pinkie-promise"; + packageName = "pinkie-promise"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; + sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; + }; + }; + "pirates-4.0.1" = { + name = "pirates"; + packageName = "pirates"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz"; + sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA=="; + }; + }; + "pkg-dir-2.0.0" = { + name = "pkg-dir"; + packageName = "pkg-dir"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz"; + sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b"; + }; + }; + "pkg-dir-3.0.0" = { + name = "pkg-dir"; + packageName = "pkg-dir"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz"; + sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw=="; + }; + }; + "pn-1.1.0" = { + name = "pn"; + packageName = "pn"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz"; + sha512 = "2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="; + }; + }; + "portfinder-1.0.24" = { + name = "portfinder"; + packageName = "portfinder"; + version = "1.0.24"; + src = fetchurl { + url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz"; + sha512 = "ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg=="; + }; + }; + "posix-character-classes-0.1.1" = { + name = "posix-character-classes"; + packageName = "posix-character-classes"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"; + sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"; + }; + }; + "prelude-ls-1.1.2" = { + name = "prelude-ls"; + packageName = "prelude-ls"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"; + sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54"; + }; + }; + "prepend-http-2.0.0" = { + name = "prepend-http"; + packageName = "prepend-http"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz"; + sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897"; + }; + }; + "prettier-1.18.2" = { + name = "prettier"; + packageName = "prettier"; + version = "1.18.2"; + src = fetchurl { + url = "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz"; + sha512 = "OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw=="; + }; + }; + "pretty-2.0.0" = { + name = "pretty"; + packageName = "pretty"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz"; + sha1 = "adbc7960b7bbfe289a557dc5f737619a220d06a5"; + }; + }; + "pretty-format-24.9.0" = { + name = "pretty-format"; + packageName = "pretty-format"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz"; + sha512 = "00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA=="; + }; + }; + "private-0.1.8" = { + name = "private"; + packageName = "private"; + version = "0.1.8"; + src = fetchurl { + url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz"; + sha512 = "VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="; + }; + }; + "process-0.11.10" = { + name = "process"; + packageName = "process"; + version = "0.11.10"; + src = fetchurl { + url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz"; + sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; + }; + }; + "promise-7.3.1" = { + name = "promise"; + packageName = "promise"; + version = "7.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz"; + sha512 = "nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="; + }; + }; + "promise-inflight-1.0.1" = { + name = "promise-inflight"; + packageName = "promise-inflight"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz"; + sha1 = "98472870bf228132fcbdd868129bad12c3c029e3"; + }; + }; + "prompts-2.2.1" = { + name = "prompts"; + packageName = "prompts"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz"; + sha512 = "VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw=="; + }; + }; + "proto-list-1.2.4" = { + name = "proto-list"; + packageName = "proto-list"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz"; + sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; + }; + }; + "proxy-addr-2.0.5" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz"; + sha512 = "t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ=="; + }; + }; + "prr-1.0.1" = { + name = "prr"; + packageName = "prr"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz"; + sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476"; + }; + }; + "pseudomap-1.0.2" = { + name = "pseudomap"; + packageName = "pseudomap"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"; + sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; + }; + }; + "psl-1.4.0" = { + name = "psl"; + packageName = "psl"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz"; + sha512 = "HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw=="; + }; + }; + "public-encrypt-4.0.3" = { + name = "public-encrypt"; + packageName = "public-encrypt"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz"; + sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q=="; + }; + }; + "pug-2.0.4" = { + name = "pug"; + packageName = "pug"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz"; + sha512 = "XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw=="; + }; + }; + "pug-attrs-2.0.4" = { + name = "pug-attrs"; + packageName = "pug-attrs"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz"; + sha512 = "TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ=="; + }; + }; + "pug-code-gen-2.0.2" = { + name = "pug-code-gen"; + packageName = "pug-code-gen"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz"; + sha512 = "kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw=="; + }; + }; + "pug-error-1.3.3" = { + name = "pug-error"; + packageName = "pug-error"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz"; + sha512 = "qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="; + }; + }; + "pug-filters-3.1.1" = { + name = "pug-filters"; + packageName = "pug-filters"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz"; + sha512 = "lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg=="; + }; + }; + "pug-lexer-4.1.0" = { + name = "pug-lexer"; + packageName = "pug-lexer"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz"; + sha512 = "i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA=="; + }; + }; + "pug-linker-3.0.6" = { + name = "pug-linker"; + packageName = "pug-linker"; + version = "3.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz"; + sha512 = "bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg=="; + }; + }; + "pug-load-2.0.12" = { + name = "pug-load"; + packageName = "pug-load"; + version = "2.0.12"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz"; + sha512 = "UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg=="; + }; + }; + "pug-parser-5.0.1" = { + name = "pug-parser"; + packageName = "pug-parser"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz"; + sha512 = "nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA=="; + }; + }; + "pug-runtime-2.0.5" = { + name = "pug-runtime"; + packageName = "pug-runtime"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz"; + sha512 = "P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="; + }; + }; + "pug-strip-comments-1.0.4" = { + name = "pug-strip-comments"; + packageName = "pug-strip-comments"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz"; + sha512 = "i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw=="; + }; + }; + "pug-walk-1.1.8" = { + name = "pug-walk"; + packageName = "pug-walk"; + version = "1.1.8"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz"; + sha512 = "GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="; + }; + }; + "pump-2.0.1" = { + name = "pump"; + packageName = "pump"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz"; + sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA=="; + }; + }; + "pump-3.0.0" = { + name = "pump"; + packageName = "pump"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"; + sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww=="; + }; + }; + "pumpify-1.5.1" = { + name = "pumpify"; + packageName = "pumpify"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz"; + sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ=="; + }; + }; + "punycode-1.3.2" = { + name = "punycode"; + packageName = "punycode"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"; + sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d"; + }; + }; + "punycode-1.4.1" = { + name = "punycode"; + packageName = "punycode"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + }; + "punycode-2.1.1" = { + name = "punycode"; + packageName = "punycode"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; + sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; + }; + }; + "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=="; + }; + }; + "qs-6.7.0" = { + name = "qs"; + packageName = "qs"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"; + sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="; + }; + }; + "query-string-5.1.1" = { + name = "query-string"; + packageName = "query-string"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz"; + sha512 = "gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw=="; + }; + }; + "querystring-0.2.0" = { + name = "querystring"; + packageName = "querystring"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"; + sha1 = "b209849203bb25df820da756e747005878521620"; + }; + }; + "querystring-es3-0.2.1" = { + name = "querystring-es3"; + packageName = "querystring-es3"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz"; + sha1 = "9ec61f79049875707d69414596fd907a4d711e73"; + }; + }; + "querystringify-2.1.1" = { + name = "querystringify"; + packageName = "querystringify"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz"; + sha512 = "w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA=="; + }; + }; + "randombytes-2.1.0" = { + name = "randombytes"; + packageName = "randombytes"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"; + sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="; + }; + }; + "randomfill-1.0.4" = { + name = "randomfill"; + packageName = "randomfill"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz"; + sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw=="; + }; + }; + "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.4.0" = { + name = "raw-body"; + packageName = "raw-body"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz"; + sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q=="; + }; + }; + "raw-body-2.4.1" = { + name = "raw-body"; + packageName = "raw-body"; + version = "2.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz"; + sha512 = "9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA=="; + }; + }; + "react-is-16.10.2" = { + name = "react-is"; + packageName = "react-is"; + version = "16.10.2"; + src = fetchurl { + url = "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz"; + sha512 = "INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA=="; + }; + }; + "read-pkg-3.0.0" = { + name = "read-pkg"; + packageName = "read-pkg"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz"; + sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389"; + }; + }; + "read-pkg-up-4.0.0" = { + name = "read-pkg-up"; + packageName = "read-pkg-up"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz"; + sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA=="; + }; + }; + "readable-stream-2.3.6" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"; + sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw=="; + }; + }; + "readable-stream-3.4.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz"; + sha512 = "jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ=="; + }; + }; + "readdirp-2.2.1" = { + name = "readdirp"; + packageName = "readdirp"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz"; + sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ=="; + }; + }; + "realpath-native-1.1.0" = { + name = "realpath-native"; + packageName = "realpath-native"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz"; + sha512 = "wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA=="; + }; + }; + "rechoir-0.6.2" = { + name = "rechoir"; + packageName = "rechoir"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"; + sha1 = "85204b54dba82d5742e28c96756ef43af50e3384"; + }; + }; + "regenerate-1.4.0" = { + name = "regenerate"; + packageName = "regenerate"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz"; + sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg=="; + }; + }; + "regenerator-runtime-0.11.1" = { + name = "regenerator-runtime"; + packageName = "regenerator-runtime"; + version = "0.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"; + sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="; + }; + }; + "regenerator-transform-0.10.1" = { + name = "regenerator-transform"; + packageName = "regenerator-transform"; + version = "0.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz"; + sha512 = "PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q=="; + }; + }; + "regex-not-1.0.2" = { + name = "regex-not"; + packageName = "regex-not"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"; + sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A=="; + }; + }; + "regexpu-core-2.0.0" = { + name = "regexpu-core"; + packageName = "regexpu-core"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz"; + sha1 = "49d038837b8dcf8bfa5b9a42139938e6ea2ae240"; + }; + }; + "regjsgen-0.2.0" = { + name = "regjsgen"; + packageName = "regjsgen"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz"; + sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7"; + }; + }; + "regjsparser-0.1.5" = { + name = "regjsparser"; + packageName = "regjsparser"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"; + sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"; + }; + }; + "remove-trailing-separator-1.1.0" = { + name = "remove-trailing-separator"; + packageName = "remove-trailing-separator"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; + sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef"; + }; + }; + "repeat-element-1.1.3" = { + name = "repeat-element"; + packageName = "repeat-element"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz"; + sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="; + }; + }; + "repeat-string-1.6.1" = { + name = "repeat-string"; + packageName = "repeat-string"; + version = "1.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"; + sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637"; + }; + }; + "repeating-2.0.1" = { + name = "repeating"; + packageName = "repeating"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"; + sha1 = "5214c53a926d3552707527fbab415dbc08d06dda"; + }; + }; + "request-2.88.0" = { + name = "request"; + packageName = "request"; + version = "2.88.0"; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz"; + sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg=="; + }; + }; + "request-promise-core-1.1.2" = { + name = "request-promise-core"; + packageName = "request-promise-core"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz"; + sha512 = "UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag=="; + }; + }; + "request-promise-native-1.0.7" = { + name = "request-promise-native"; + packageName = "request-promise-native"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz"; + sha512 = "rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w=="; + }; + }; + "require-directory-2.1.1" = { + name = "require-directory"; + packageName = "require-directory"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"; + sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; + }; + }; + "require-main-filename-1.0.1" = { + name = "require-main-filename"; + packageName = "require-main-filename"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz"; + sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1"; + }; + }; + "require-main-filename-2.0.0" = { + name = "require-main-filename"; + packageName = "require-main-filename"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"; + sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="; + }; + }; + "requires-port-1.0.0" = { + name = "requires-port"; + packageName = "requires-port"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"; + sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff"; + }; + }; + "resolve-1.1.7" = { + name = "resolve"; + packageName = "resolve"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"; + sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b"; + }; + }; + "resolve-1.12.0" = { + name = "resolve"; + packageName = "resolve"; + version = "1.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz"; + sha512 = "B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w=="; + }; + }; + "resolve-cwd-2.0.0" = { + name = "resolve-cwd"; + packageName = "resolve-cwd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz"; + sha1 = "00a9f7387556e27038eae232caa372a6a59b665a"; + }; + }; + "resolve-dir-1.0.1" = { + name = "resolve-dir"; + packageName = "resolve-dir"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz"; + sha1 = "79a40644c362be82f26effe739c9bb5382046f43"; + }; + }; + "resolve-from-3.0.0" = { + name = "resolve-from"; + packageName = "resolve-from"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz"; + sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748"; + }; + }; + "resolve-path-1.4.0" = { + name = "resolve-path"; + packageName = "resolve-path"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz"; + sha1 = "c4bda9f5efb2fce65247873ab36bb4d834fe16f7"; + }; + }; + "resolve-url-0.2.1" = { + name = "resolve-url"; + packageName = "resolve-url"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"; + sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a"; + }; + }; + "responselike-1.0.2" = { + name = "responselike"; + packageName = "responselike"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz"; + sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7"; + }; + }; + "restore-cursor-2.0.0" = { + name = "restore-cursor"; + packageName = "restore-cursor"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz"; + sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf"; + }; + }; + "ret-0.1.15" = { + name = "ret"; + packageName = "ret"; + version = "0.1.15"; + src = fetchurl { + url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"; + sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="; + }; + }; + "retry-0.12.0" = { + name = "retry"; + packageName = "retry"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz"; + sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b"; + }; + }; + "right-align-0.1.3" = { + name = "right-align"; + packageName = "right-align"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz"; + sha1 = "61339b722fe6a3515689210d24e14c96148613ef"; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="; + }; + }; + "ripemd160-2.0.2" = { + name = "ripemd160"; + packageName = "ripemd160"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz"; + sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA=="; + }; + }; + "rsvp-4.8.5" = { + name = "rsvp"; + packageName = "rsvp"; + version = "4.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz"; + sha512 = "nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="; + }; + }; + "run-queue-1.0.3" = { + name = "run-queue"; + packageName = "run-queue"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz"; + sha1 = "e848396f057d223f24386924618e25694161ec47"; + }; + }; + "rxjs-6.5.3" = { + name = "rxjs"; + packageName = "rxjs"; + version = "6.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz"; + sha512 = "wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA=="; + }; + }; + "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=="; + }; + }; + "safe-buffer-5.2.0" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz"; + sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="; + }; + }; + "safe-regex-1.1.0" = { + name = "safe-regex"; + packageName = "safe-regex"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"; + sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e"; + }; + }; + "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=="; + }; + }; + "sane-4.1.0" = { + name = "sane"; + packageName = "sane"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz"; + sha512 = "hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA=="; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; + }; + }; + "schema-utils-1.0.0" = { + name = "schema-utils"; + packageName = "schema-utils"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz"; + sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g=="; + }; + }; + "select-hose-2.0.0" = { + name = "select-hose"; + packageName = "select-hose"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz"; + sha1 = "625d8658f865af43ec962bfc376a37359a4994ca"; + }; + }; + "selfsigned-1.10.7" = { + name = "selfsigned"; + packageName = "selfsigned"; + version = "1.10.7"; + src = fetchurl { + url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz"; + sha512 = "8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA=="; + }; + }; + "semver-5.7.1" = { + name = "semver"; + packageName = "semver"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"; + sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="; + }; + }; + "semver-6.3.0" = { + name = "semver"; + packageName = "semver"; + version = "6.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"; + sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="; + }; + }; + "send-0.17.1" = { + name = "send"; + packageName = "send"; + version = "0.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; + sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; + }; + }; + "serialize-javascript-1.9.1" = { + name = "serialize-javascript"; + packageName = "serialize-javascript"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz"; + sha512 = "0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A=="; + }; + }; + "serve-index-1.9.1" = { + name = "serve-index"; + packageName = "serve-index"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz"; + sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239"; + }; + }; + "serve-static-1.14.1" = { + name = "serve-static"; + packageName = "serve-static"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; + sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "set-value-2.0.1" = { + name = "set-value"; + packageName = "set-value"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"; + sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw=="; + }; + }; + "setimmediate-1.0.5" = { + name = "setimmediate"; + packageName = "setimmediate"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"; + sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; + }; + }; + "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=="; + }; + }; + "setprototypeof-1.1.1" = { + name = "setprototypeof"; + packageName = "setprototypeof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; + sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; + }; + }; + "sha.js-2.4.11" = { + name = "sha.js"; + packageName = "sha.js"; + version = "2.4.11"; + src = fetchurl { + url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz"; + sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ=="; + }; + }; + "shebang-command-1.2.0" = { + name = "shebang-command"; + packageName = "shebang-command"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"; + sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; + }; + }; + "shebang-regex-1.0.0" = { + name = "shebang-regex"; + packageName = "shebang-regex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"; + sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; + }; + }; + "shelljs-0.8.3" = { + name = "shelljs"; + packageName = "shelljs"; + version = "0.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz"; + sha512 = "fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A=="; + }; + }; + "shellwords-0.1.1" = { + name = "shellwords"; + packageName = "shellwords"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz"; + sha512 = "vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="; + }; + }; + "sigmund-1.0.1" = { + name = "sigmund"; + packageName = "sigmund"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"; + sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590"; + }; + }; + "signal-exit-3.0.2" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"; + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; + }; + }; + "simple-git-1.96.0" = { + name = "simple-git"; + packageName = "simple-git"; + version = "1.96.0"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-git/-/simple-git-1.96.0.tgz"; + sha512 = "+gXuzJFpGtK9zCa7rPMMNs8AF2weWMsB0Vlyym5VkFX2VGQ3VBzKhnxPN//PWrGuPFGQ/u0F1yL6rZoPhj/KPQ=="; + }; + }; + "sisteransi-1.0.3" = { + name = "sisteransi"; + packageName = "sisteransi"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz"; + sha512 = "SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg=="; + }; + }; + "slash-1.0.0" = { + name = "slash"; + packageName = "slash"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz"; + sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"; + }; + }; + "slash-2.0.0" = { + name = "slash"; + packageName = "slash"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz"; + sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="; + }; + }; + "snapdragon-0.8.2" = { + name = "snapdragon"; + packageName = "snapdragon"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz"; + sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg=="; + }; + }; + "snapdragon-node-2.1.1" = { + name = "snapdragon-node"; + packageName = "snapdragon-node"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"; + sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw=="; + }; + }; + "snapdragon-util-3.0.1" = { + name = "snapdragon-util"; + packageName = "snapdragon-util"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"; + sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ=="; + }; + }; + "sockjs-0.3.19" = { + name = "sockjs"; + packageName = "sockjs"; + version = "0.3.19"; + src = fetchurl { + url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz"; + sha512 = "V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw=="; + }; + }; + "sockjs-client-1.4.0" = { + name = "sockjs-client"; + packageName = "sockjs-client"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz"; + sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g=="; + }; + }; + "sort-keys-2.0.0" = { + name = "sort-keys"; + packageName = "sort-keys"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz"; + sha1 = "658535584861ec97d730d6cf41822e1f56684128"; + }; + }; + "source-list-map-2.0.1" = { + name = "source-list-map"; + packageName = "source-list-map"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz"; + sha512 = "qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="; + }; + }; + "source-map-0.5.7" = { + name = "source-map"; + packageName = "source-map"; + version = "0.5.7"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + }; + "source-map-0.6.1" = { + name = "source-map"; + packageName = "source-map"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; + sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; + }; + }; + "source-map-resolve-0.5.2" = { + name = "source-map-resolve"; + packageName = "source-map-resolve"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz"; + sha512 = "MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA=="; + }; + }; + "source-map-support-0.4.18" = { + name = "source-map-support"; + packageName = "source-map-support"; + version = "0.4.18"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz"; + sha512 = "try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA=="; + }; + }; + "source-map-support-0.5.13" = { + name = "source-map-support"; + packageName = "source-map-support"; + version = "0.5.13"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz"; + sha512 = "SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="; + }; + }; + "source-map-url-0.4.0" = { + name = "source-map-url"; + packageName = "source-map-url"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz"; + sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3"; + }; + }; + "spdx-correct-3.1.0" = { + name = "spdx-correct"; + packageName = "spdx-correct"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"; + sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q=="; + }; + }; + "spdx-exceptions-2.2.0" = { + name = "spdx-exceptions"; + packageName = "spdx-exceptions"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"; + sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="; + }; + }; + "spdx-expression-parse-3.0.0" = { + name = "spdx-expression-parse"; + packageName = "spdx-expression-parse"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"; + sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg=="; + }; + }; + "spdx-license-ids-3.0.5" = { + name = "spdx-license-ids"; + packageName = "spdx-license-ids"; + version = "3.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"; + sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="; + }; + }; + "spdy-4.0.1" = { + name = "spdy"; + packageName = "spdy"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz"; + sha512 = "HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA=="; + }; + }; + "spdy-transport-3.0.0" = { + name = "spdy-transport"; + packageName = "spdy-transport"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz"; + sha512 = "hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw=="; + }; + }; + "split-string-3.1.0" = { + name = "split-string"; + packageName = "split-string"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"; + sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw=="; + }; + }; + "sprintf-js-1.0.3" = { + name = "sprintf-js"; + packageName = "sprintf-js"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + }; + "sshpk-1.16.1" = { + name = "sshpk"; + packageName = "sshpk"; + version = "1.16.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; + sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; + }; + }; + "ssri-5.3.0" = { + name = "ssri"; + packageName = "ssri"; + version = "5.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz"; + sha512 = "XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ=="; + }; + }; + "ssri-6.0.1" = { + name = "ssri"; + packageName = "ssri"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz"; + sha512 = "3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA=="; + }; + }; + "stack-utils-1.0.2" = { + name = "stack-utils"; + packageName = "stack-utils"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz"; + sha512 = "MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA=="; + }; + }; + "static-extend-0.1.2" = { + name = "static-extend"; + packageName = "static-extend"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz"; + sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6"; + }; + }; + "statuses-1.5.0" = { + name = "statuses"; + packageName = "statuses"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; + sha1 = "161c7dac177659fd9811f43771fa99381478628c"; + }; + }; + "stealthy-require-1.1.1" = { + name = "stealthy-require"; + packageName = "stealthy-require"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz"; + sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b"; + }; + }; + "stream-browserify-2.0.2" = { + name = "stream-browserify"; + packageName = "stream-browserify"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz"; + sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg=="; + }; + }; + "stream-each-1.2.3" = { + name = "stream-each"; + packageName = "stream-each"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz"; + sha512 = "vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw=="; + }; + }; + "stream-http-2.8.3" = { + name = "stream-http"; + packageName = "stream-http"; + version = "2.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz"; + sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw=="; + }; + }; + "stream-shift-1.0.0" = { + name = "stream-shift"; + packageName = "stream-shift"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz"; + sha1 = "d5c752825e5367e786f78e18e445ea223a155952"; + }; + }; + "strict-uri-encode-1.1.0" = { + name = "strict-uri-encode"; + packageName = "strict-uri-encode"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"; + sha1 = "279b225df1d582b1f54e65addd4352e18faa0713"; + }; + }; + "string-length-2.0.0" = { + name = "string-length"; + packageName = "string-length"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz"; + sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed"; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string-width-2.1.1" = { + name = "string-width"; + packageName = "string-width"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; + sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; + }; + }; + "string-width-3.1.0" = { + name = "string-width"; + packageName = "string-width"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"; + sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="; + }; + }; + "string.prototype.trimleft-2.1.0" = { + name = "string.prototype.trimleft"; + packageName = "string.prototype.trimleft"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz"; + sha512 = "FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw=="; + }; + }; + "string.prototype.trimright-2.1.0" = { + name = "string.prototype.trimright"; + packageName = "string.prototype.trimright"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz"; + sha512 = "fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg=="; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-ansi-4.0.0" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; + }; + }; + "strip-ansi-5.2.0" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"; + sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="; + }; + }; + "strip-bom-3.0.0" = { + name = "strip-bom"; + packageName = "strip-bom"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"; + sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"; + }; + }; + "strip-eof-1.0.0" = { + name = "strip-eof"; + packageName = "strip-eof"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"; + sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf"; + }; + }; + "supports-color-2.0.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"; + sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; + }; + }; + "supports-color-5.5.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; + sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; + }; + }; + "supports-color-6.1.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz"; + sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ=="; + }; + }; + "symbol-tree-3.2.4" = { + name = "symbol-tree"; + packageName = "symbol-tree"; + version = "3.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"; + sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="; + }; + }; + "tapable-1.1.3" = { + name = "tapable"; + packageName = "tapable"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz"; + sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="; + }; + }; + "terser-4.3.8" = { + name = "terser"; + packageName = "terser"; + version = "4.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz"; + sha512 = "otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ=="; + }; + }; + "terser-webpack-plugin-1.4.1" = { + name = "terser-webpack-plugin"; + packageName = "terser-webpack-plugin"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz"; + sha512 = "ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg=="; + }; + }; + "test-exclude-5.2.3" = { + name = "test-exclude"; + packageName = "test-exclude"; + version = "5.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz"; + sha512 = "M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g=="; + }; + }; + "thenify-3.3.0" = { + name = "thenify"; + packageName = "thenify"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz"; + sha1 = "e69e38a1babe969b0108207978b9f62b88604839"; + }; + }; + "thenify-all-1.6.0" = { + name = "thenify-all"; + packageName = "thenify-all"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"; + sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"; + }; + }; + "throat-4.1.0" = { + name = "throat"; + packageName = "throat"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz"; + sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a"; + }; + }; + "through2-2.0.5" = { + name = "through2"; + packageName = "through2"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"; + sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="; + }; + }; + "thunky-1.0.3" = { + name = "thunky"; + packageName = "thunky"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz"; + sha512 = "YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow=="; + }; + }; + "timed-out-4.0.1" = { + name = "timed-out"; + packageName = "timed-out"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz"; + sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f"; + }; + }; + "timers-browserify-2.0.11" = { + name = "timers-browserify"; + packageName = "timers-browserify"; + version = "2.0.11"; + src = fetchurl { + url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz"; + sha512 = "60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ=="; + }; + }; + "tmpl-1.0.4" = { + name = "tmpl"; + packageName = "tmpl"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz"; + sha1 = "23640dd7b42d00433911140820e5cf440e521dd1"; + }; + }; + "to-arraybuffer-1.0.1" = { + name = "to-arraybuffer"; + packageName = "to-arraybuffer"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"; + sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43"; + }; + }; + "to-fast-properties-1.0.3" = { + name = "to-fast-properties"; + packageName = "to-fast-properties"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz"; + sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47"; + }; + }; + "to-fast-properties-2.0.0" = { + name = "to-fast-properties"; + packageName = "to-fast-properties"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"; + sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e"; + }; + }; + "to-object-path-0.3.0" = { + name = "to-object-path"; + packageName = "to-object-path"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"; + sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af"; + }; + }; + "to-regex-3.0.2" = { + name = "to-regex"; + packageName = "to-regex"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"; + sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw=="; + }; + }; + "to-regex-range-2.1.1" = { + name = "to-regex-range"; + packageName = "to-regex-range"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"; + sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38"; + }; + }; + "toidentifier-1.0.0" = { + name = "toidentifier"; + packageName = "toidentifier"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; + sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; + }; + }; + "token-stream-0.0.1" = { + name = "token-stream"; + packageName = "token-stream"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz"; + sha1 = "ceeefc717a76c4316f126d0b9dbaa55d7e7df01a"; + }; + }; + "tough-cookie-2.4.3" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"; + sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ=="; + }; + }; + "tr46-1.0.1" = { + name = "tr46"; + packageName = "tr46"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz"; + sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09"; + }; + }; + "trim-right-1.0.1" = { + name = "trim-right"; + packageName = "trim-right"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz"; + sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003"; + }; + }; + "tryer-1.0.1" = { + name = "tryer"; + packageName = "tryer"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz"; + sha512 = "c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="; + }; + }; + "ts-jest-24.1.0" = { + name = "ts-jest"; + packageName = "ts-jest"; + version = "24.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ts-jest/-/ts-jest-24.1.0.tgz"; + sha512 = "HEGfrIEAZKfu1pkaxB9au17b1d9b56YZSqz5eCVE8mX68+5reOvlM93xGOzzCREIov9mdH7JBG+s0UyNAqr0tQ=="; + }; + }; + "tslib-1.10.0" = { + name = "tslib"; + packageName = "tslib"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz"; + sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="; + }; + }; + "tty-browserify-0.0.0" = { + name = "tty-browserify"; + packageName = "tty-browserify"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz"; + sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6"; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-0.14.5" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + }; + "type-1.2.0" = { + name = "type"; + packageName = "type"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz"; + sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="; + }; + }; + "type-check-0.3.2" = { + name = "type-check"; + packageName = "type-check"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"; + sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72"; + }; + }; + "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=="; + }; + }; + "typedarray-0.0.6" = { + name = "typedarray"; + packageName = "typedarray"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"; + sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; + }; + }; + "typedarray-to-buffer-3.1.5" = { + name = "typedarray-to-buffer"; + packageName = "typedarray-to-buffer"; + version = "3.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"; + sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="; + }; + }; + "typescript-3.6.3" = { + name = "typescript"; + packageName = "typescript"; + version = "3.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz"; + sha512 = "N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw=="; + }; + }; + "typical-4.0.0" = { + name = "typical"; + packageName = "typical"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz"; + sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="; + }; + }; + "uglify-js-2.8.29" = { + name = "uglify-js"; + packageName = "uglify-js"; + version = "2.8.29"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz"; + sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd"; + }; + }; + "uglify-js-3.6.0" = { + name = "uglify-js"; + packageName = "uglify-js"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz"; + sha512 = "W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg=="; + }; + }; + "uglify-to-browserify-1.0.2" = { + name = "uglify-to-browserify"; + packageName = "uglify-to-browserify"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"; + sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7"; + }; + }; + "underscore-1.9.1" = { + name = "underscore"; + packageName = "underscore"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz"; + sha512 = "5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="; + }; + }; + "union-value-1.0.1" = { + name = "union-value"; + packageName = "union-value"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"; + sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg=="; + }; + }; + "unique-filename-1.1.1" = { + name = "unique-filename"; + packageName = "unique-filename"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz"; + sha512 = "Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ=="; + }; + }; + "unique-slug-2.0.2" = { + name = "unique-slug"; + packageName = "unique-slug"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz"; + sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w=="; + }; + }; + "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"; + }; + }; + "unset-value-1.0.0" = { + name = "unset-value"; + packageName = "unset-value"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz"; + sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"; + }; + }; + "upath-1.2.0" = { + name = "upath"; + packageName = "upath"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz"; + sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="; + }; + }; + "uri-js-4.2.2" = { + name = "uri-js"; + packageName = "uri-js"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"; + sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="; + }; + }; + "urijs-1.19.1" = { + name = "urijs"; + packageName = "urijs"; + version = "1.19.1"; + src = fetchurl { + url = "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz"; + sha512 = "xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg=="; + }; + }; + "urix-0.1.0" = { + name = "urix"; + packageName = "urix"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"; + sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72"; + }; + }; + "url-0.11.0" = { + name = "url"; + packageName = "url"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz"; + sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"; + }; + }; + "url-parse-1.4.7" = { + name = "url-parse"; + packageName = "url-parse"; + version = "1.4.7"; + src = fetchurl { + url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz"; + sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg=="; + }; + }; + "url-parse-lax-3.0.0" = { + name = "url-parse-lax"; + packageName = "url-parse-lax"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz"; + sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c"; + }; + }; + "url-to-options-1.0.1" = { + name = "url-to-options"; + packageName = "url-to-options"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz"; + sha1 = "1505a03a289a48cbd7a434efbaeec5055f5633a9"; + }; + }; + "use-3.1.1" = { + name = "use"; + packageName = "use"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz"; + sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="; + }; + }; + "util-0.10.3" = { + name = "util"; + packageName = "util"; + version = "0.10.3"; + src = fetchurl { + url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz"; + sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9"; + }; + }; + "util-0.11.1" = { + name = "util"; + packageName = "util"; + version = "0.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz"; + sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ=="; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "util.promisify-1.0.0" = { + name = "util.promisify"; + packageName = "util.promisify"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz"; + sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA=="; + }; + }; + "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"; + }; + }; + "uuid-3.3.3" = { + name = "uuid"; + packageName = "uuid"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz"; + sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="; + }; + }; + "v8-compile-cache-2.0.3" = { + name = "v8-compile-cache"; + packageName = "v8-compile-cache"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz"; + sha512 = "CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w=="; + }; + }; + "validate-npm-package-license-3.0.4" = { + name = "validate-npm-package-license"; + packageName = "validate-npm-package-license"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"; + sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="; + }; + }; + "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"; + }; + }; + "verror-1.10.0" = { + name = "verror"; + packageName = "verror"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + }; + "vm-browserify-1.1.0" = { + name = "vm-browserify"; + packageName = "vm-browserify"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz"; + sha512 = "iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw=="; + }; + }; + "void-elements-2.0.1" = { + name = "void-elements"; + packageName = "void-elements"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"; + sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec"; + }; + }; + "w3c-hr-time-1.0.1" = { + name = "w3c-hr-time"; + packageName = "w3c-hr-time"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz"; + sha1 = "82ac2bff63d950ea9e3189a58a65625fedf19045"; + }; + }; + "walker-1.0.7" = { + name = "walker"; + packageName = "walker"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz"; + sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb"; + }; + }; + "watchpack-1.6.0" = { + name = "watchpack"; + packageName = "watchpack"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz"; + sha512 = "i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA=="; + }; + }; + "wbuf-1.7.3" = { + name = "wbuf"; + packageName = "wbuf"; + version = "1.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz"; + sha512 = "O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA=="; + }; + }; + "wcwidth-1.0.1" = { + name = "wcwidth"; + packageName = "wcwidth"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz"; + sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"; + }; + }; + "webidl-conversions-4.0.2" = { + name = "webidl-conversions"; + packageName = "webidl-conversions"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz"; + sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="; + }; + }; + "webpack-4.41.0" = { + name = "webpack"; + packageName = "webpack"; + version = "4.41.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz"; + sha512 = "yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g=="; + }; + }; + "webpack-bundle-analyzer-3.5.2" = { + name = "webpack-bundle-analyzer"; + packageName = "webpack-bundle-analyzer"; + version = "3.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.5.2.tgz"; + sha512 = "g9spCNe25QYUVqHRDkwG414GTok2m7pTTP0wr6l0J50Z3YLS04+BGodTqqoVBL7QfU/U/9p/oiI5XFOyfZ7S/A=="; + }; + }; + "webpack-cli-3.3.9" = { + name = "webpack-cli"; + packageName = "webpack-cli"; + version = "3.3.9"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz"; + sha512 = "xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A=="; + }; + }; + "webpack-dev-middleware-3.7.2" = { + name = "webpack-dev-middleware"; + packageName = "webpack-dev-middleware"; + version = "3.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz"; + sha512 = "1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw=="; + }; + }; + "webpack-dev-server-3.8.2" = { + name = "webpack-dev-server"; + packageName = "webpack-dev-server"; + version = "3.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.8.2.tgz"; + sha512 = "0xxogS7n5jHDQWy0WST0q6Ykp7UGj4YvWh+HVN71JoE7BwPxMZrwgraBvmdEMbDVMBzF0u+mEzn8TQzBm5NYJQ=="; + }; + }; + "webpack-log-1.2.0" = { + name = "webpack-log"; + packageName = "webpack-log"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz"; + sha512 = "U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA=="; + }; + }; + "webpack-log-2.0.0" = { + name = "webpack-log"; + packageName = "webpack-log"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz"; + sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg=="; + }; + }; + "webpack-sources-1.4.3" = { + name = "webpack-sources"; + packageName = "webpack-sources"; + version = "1.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz"; + sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ=="; + }; + }; + "websocket-1.0.30" = { + name = "websocket"; + packageName = "websocket"; + version = "1.0.30"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket/-/websocket-1.0.30.tgz"; + sha512 = "aO6klgaTdSMkhfl5VVJzD5fm+Srhh5jLYbS15+OiI1sN6h/RU/XW6WN9J1uVIpUKNmsTvT3Hs35XAFjn9NMfOw=="; + }; + }; + "websocket-driver-0.7.3" = { + name = "websocket-driver"; + packageName = "websocket-driver"; + version = "0.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz"; + sha512 = "bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg=="; + }; + }; + "websocket-extensions-0.1.3" = { + name = "websocket-extensions"; + packageName = "websocket-extensions"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz"; + sha512 = "nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="; + }; + }; + "whatwg-encoding-1.0.5" = { + name = "whatwg-encoding"; + packageName = "whatwg-encoding"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz"; + sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw=="; + }; + }; + "whatwg-mimetype-2.3.0" = { + name = "whatwg-mimetype"; + packageName = "whatwg-mimetype"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz"; + sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="; + }; + }; + "whatwg-url-6.5.0" = { + name = "whatwg-url"; + packageName = "whatwg-url"; + version = "6.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz"; + sha512 = "rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ=="; + }; + }; + "whatwg-url-7.0.0" = { + name = "whatwg-url"; + packageName = "whatwg-url"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz"; + sha512 = "37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ=="; + }; + }; + "which-1.3.1" = { + name = "which"; + packageName = "which"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz"; + sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="; + }; + }; + "which-module-2.0.0" = { + name = "which-module"; + packageName = "which-module"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"; + sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; + }; + }; + "window-size-0.1.0" = { + name = "window-size"; + packageName = "window-size"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"; + sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"; + }; + }; + "with-5.1.1" = { + name = "with"; + packageName = "with"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/with/-/with-5.1.1.tgz"; + sha1 = "fa4daa92daf32c4ea94ed453c81f04686b575dfe"; + }; + }; + "wordwrap-0.0.2" = { + name = "wordwrap"; + packageName = "wordwrap"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"; + sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f"; + }; + }; + "wordwrap-1.0.0" = { + name = "wordwrap"; + packageName = "wordwrap"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"; + sha1 = "27584810891456a4171c8d0226441ade90cbcaeb"; + }; + }; + "worker-farm-1.7.0" = { + name = "worker-farm"; + packageName = "worker-farm"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz"; + sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw=="; + }; + }; + "wrap-ansi-2.1.0" = { + name = "wrap-ansi"; + packageName = "wrap-ansi"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz"; + sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85"; + }; + }; + "wrap-ansi-5.1.0" = { + name = "wrap-ansi"; + packageName = "wrap-ansi"; + version = "5.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"; + sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "write-file-atomic-2.4.1" = { + name = "write-file-atomic"; + packageName = "write-file-atomic"; + version = "2.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz"; + sha512 = "TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg=="; + }; + }; + "ws-5.2.2" = { + name = "ws"; + packageName = "ws"; + version = "5.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz"; + sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA=="; + }; + }; + "ws-6.2.1" = { + name = "ws"; + packageName = "ws"; + version = "6.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz"; + sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA=="; + }; + }; + "xml-name-validator-3.0.0" = { + name = "xml-name-validator"; + packageName = "xml-name-validator"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz"; + sha512 = "A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="; + }; + }; + "xtend-4.0.2" = { + name = "xtend"; + packageName = "xtend"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; + sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; + }; + }; + "y18n-4.0.0" = { + name = "y18n"; + packageName = "y18n"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz"; + sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="; + }; + }; + "yaeti-0.0.6" = { + name = "yaeti"; + packageName = "yaeti"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz"; + sha1 = "f26f484d72684cf42bedfb76970aa1608fbf9577"; + }; + }; + "yallist-2.1.2" = { + name = "yallist"; + packageName = "yallist"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"; + sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; + }; + }; + "yallist-3.1.1" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; + sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="; + }; + }; + "yargs-12.0.5" = { + name = "yargs"; + packageName = "yargs"; + version = "12.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz"; + sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw=="; + }; + }; + "yargs-13.2.4" = { + name = "yargs"; + packageName = "yargs"; + version = "13.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz"; + sha512 = "HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg=="; + }; + }; + "yargs-13.3.0" = { + name = "yargs"; + packageName = "yargs"; + version = "13.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz"; + sha512 = "2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA=="; + }; + }; + "yargs-3.10.0" = { + name = "yargs"; + packageName = "yargs"; + version = "3.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"; + sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"; + }; + }; + "yargs-parser-10.1.0" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "10.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz"; + sha512 = "VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ=="; + }; + }; + "yargs-parser-11.1.1" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "11.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz"; + sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ=="; + }; + }; + "yargs-parser-13.1.1" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "13.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz"; + sha512 = "oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ=="; + }; + }; + "ylru-1.2.1" = { + name = "ylru"; + packageName = "ylru"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz"; + sha512 = "faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ=="; + }; + }; + }; +in +{ + "spacegun-git+https://github.com/dvallin/spacegun.git#v0.3.3" = nodeEnv.buildNodePackage { + name = "spacegun"; + packageName = "spacegun"; + version = "0.3.3"; + src = fetchgit { + url = "https://github.com/dvallin/spacegun.git"; + rev = "d32d2df34362f6744e8cff34c2d2bf6ce8b4662a"; + sha256 = "589bfc9e3e26af38989144e8551547cbeb5ffc9a0b668a7a4cb211a2ebf7a931"; + }; + dependencies = [ + sources."@babel/code-frame-7.5.5" + (sources."@babel/core-7.6.2" // { + dependencies = [ + sources."debug-4.1.1" + sources."json5-2.1.1" + sources."minimist-1.2.0" + sources."ms-2.1.2" + sources."source-map-0.5.7" + ]; + }) + (sources."@babel/generator-7.6.2" // { + dependencies = [ + sources."jsesc-2.5.2" + sources."source-map-0.5.7" + ]; + }) + sources."@babel/helper-function-name-7.1.0" + sources."@babel/helper-get-function-arity-7.0.0" + sources."@babel/helper-plugin-utils-7.0.0" + sources."@babel/helper-split-export-declaration-7.4.4" + sources."@babel/helpers-7.6.2" + (sources."@babel/highlight-7.5.0" // { + dependencies = [ + sources."js-tokens-4.0.0" + ]; + }) + sources."@babel/parser-7.6.2" + sources."@babel/plugin-syntax-object-rest-spread-7.2.0" + sources."@babel/template-7.6.0" + (sources."@babel/traverse-7.6.2" // { + dependencies = [ + sources."debug-4.1.1" + sources."globals-11.12.0" + sources."ms-2.1.2" + ]; + }) + (sources."@babel/types-7.6.1" // { + dependencies = [ + sources."to-fast-properties-2.0.0" + ]; + }) + (sources."@cnakazawa/watch-1.0.3" // { + dependencies = [ + sources."minimist-1.2.0" + ]; + }) + (sources."@jest/console-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + (sources."@jest/core-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."@jest/environment-24.9.0" + sources."@jest/fake-timers-24.9.0" + (sources."@jest/reporters-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."@jest/source-map-24.9.0" + sources."@jest/test-result-24.9.0" + sources."@jest/test-sequencer-24.9.0" + (sources."@jest/transform-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."@jest/types-24.9.0" + (sources."@kubernetes/client-node-0.10.3" // { + dependencies = [ + sources."@types/node-10.14.20" + ]; + }) + sources."@sindresorhus/is-0.7.0" + sources."@types/accepts-1.3.5" + sources."@types/axios-0.14.0" + sources."@types/babel-types-7.0.7" + sources."@types/babel__core-7.1.3" + sources."@types/babel__generator-7.6.0" + sources."@types/babel__template-7.0.2" + sources."@types/babel__traverse-7.0.7" + sources."@types/babylon-6.16.5" + sources."@types/body-parser-1.17.1" + sources."@types/caseless-0.12.2" + sources."@types/command-line-args-5.0.0" + sources."@types/connect-3.4.32" + sources."@types/cookies-0.7.4" + sources."@types/cron-1.7.1" + sources."@types/events-3.0.0" + sources."@types/express-4.17.1" + sources."@types/express-serve-static-core-4.16.9" + sources."@types/formidable-1.0.31" + sources."@types/glob-7.1.1" + sources."@types/http-assert-1.5.1" + sources."@types/istanbul-lib-coverage-2.0.1" + sources."@types/istanbul-lib-report-1.1.1" + sources."@types/istanbul-reports-1.1.1" + sources."@types/jest-24.0.18" + sources."@types/jest-diff-20.0.1" + sources."@types/js-yaml-3.12.1" + sources."@types/keygrip-1.0.1" + sources."@types/koa-2.0.50" + sources."@types/koa-compose-3.2.4" + sources."@types/koa-router-7.0.42" + sources."@types/koa-send-4.1.2" + sources."@types/koa-static-4.0.1" + sources."@types/koa-views-2.0.3" + sources."@types/lodash-4.14.141" + sources."@types/lodash.clonedeep-4.5.6" + sources."@types/mime-2.0.1" + sources."@types/minimatch-3.0.3" + sources."@types/mkdirp-0.5.2" + sources."@types/node-12.7.11" + sources."@types/ora-3.2.0" + sources."@types/range-parser-1.2.3" + (sources."@types/request-2.48.3" // { + dependencies = [ + sources."form-data-2.5.1" + ]; + }) + sources."@types/serve-static-1.13.3" + sources."@types/stack-utils-1.0.1" + sources."@types/tough-cookie-2.3.5" + sources."@types/underscore-1.9.3" + sources."@types/websocket-0.0.40" + sources."@types/ws-6.0.3" + sources."@types/yargs-13.0.3" + sources."@types/yargs-parser-13.1.0" + sources."@webassemblyjs/ast-1.8.5" + sources."@webassemblyjs/floating-point-hex-parser-1.8.5" + sources."@webassemblyjs/helper-api-error-1.8.5" + sources."@webassemblyjs/helper-buffer-1.8.5" + sources."@webassemblyjs/helper-code-frame-1.8.5" + sources."@webassemblyjs/helper-fsm-1.8.5" + sources."@webassemblyjs/helper-module-context-1.8.5" + sources."@webassemblyjs/helper-wasm-bytecode-1.8.5" + sources."@webassemblyjs/helper-wasm-section-1.8.5" + sources."@webassemblyjs/ieee754-1.8.5" + sources."@webassemblyjs/leb128-1.8.5" + sources."@webassemblyjs/utf8-1.8.5" + sources."@webassemblyjs/wasm-edit-1.8.5" + sources."@webassemblyjs/wasm-gen-1.8.5" + sources."@webassemblyjs/wasm-opt-1.8.5" + sources."@webassemblyjs/wasm-parser-1.8.5" + sources."@webassemblyjs/wast-parser-1.8.5" + sources."@webassemblyjs/wast-printer-1.8.5" + sources."@xtuc/ieee754-1.2.0" + sources."@xtuc/long-4.2.2" + sources."abab-2.0.2" + sources."abbrev-1.1.1" + sources."accepts-1.3.7" + sources."acorn-3.3.0" + (sources."acorn-globals-3.1.0" // { + dependencies = [ + sources."acorn-4.0.13" + ]; + }) + sources."acorn-walk-6.2.0" + sources."aggregate-error-1.0.0" + sources."ajv-6.10.2" + sources."ajv-errors-1.0.1" + sources."ajv-keywords-3.4.1" + sources."align-text-0.1.4" + sources."ansi-colors-3.2.4" + sources."ansi-escapes-3.2.0" + sources."ansi-html-0.0.7" + sources."ansi-regex-4.1.0" + sources."ansi-styles-3.2.1" + sources."any-promise-1.3.0" + sources."anymatch-2.0.0" + sources."aproba-1.2.0" + sources."argparse-1.0.10" + sources."arr-diff-4.0.0" + sources."arr-flatten-1.1.0" + sources."arr-union-3.1.0" + sources."array-back-3.1.0" + sources."array-equal-1.0.0" + sources."array-flatten-1.1.1" + sources."array-union-1.0.2" + sources."array-uniq-1.0.3" + sources."array-unique-0.3.2" + sources."asap-2.0.6" + sources."asn1-0.2.4" + sources."asn1.js-4.10.1" + (sources."assert-1.5.0" // { + dependencies = [ + sources."inherits-2.0.1" + sources."util-0.10.3" + ]; + }) + sources."assert-plus-1.0.0" + sources."assign-symbols-1.0.0" + sources."astral-regex-1.0.0" + sources."async-1.5.2" + sources."async-each-1.0.3" + sources."async-limiter-1.0.1" + sources."asynckit-0.4.0" + sources."atob-2.1.2" + sources."awesome-typescript-loader-5.2.1" + sources."aws-sign2-0.7.0" + sources."aws4-1.8.0" + sources."axios-0.19.0" + sources."babel-6.23.0" + (sources."babel-code-frame-6.26.0" // { + dependencies = [ + sources."ansi-regex-2.1.1" + sources."ansi-styles-2.2.1" + sources."chalk-1.1.3" + sources."strip-ansi-3.0.1" + sources."supports-color-2.0.0" + ]; + }) + (sources."babel-core-6.26.3" // { + dependencies = [ + sources."debug-2.6.9" + sources."json5-0.5.1" + sources."source-map-0.5.7" + ]; + }) + (sources."babel-generator-6.26.1" // { + dependencies = [ + sources."source-map-0.5.7" + ]; + }) + sources."babel-helper-builder-binary-assignment-operator-visitor-6.24.1" + sources."babel-helper-call-delegate-6.24.1" + sources."babel-helper-define-map-6.26.0" + sources."babel-helper-explode-assignable-expression-6.24.1" + sources."babel-helper-function-name-6.24.1" + sources."babel-helper-get-function-arity-6.24.1" + sources."babel-helper-hoist-variables-6.24.1" + sources."babel-helper-optimise-call-expression-6.24.1" + sources."babel-helper-regex-6.26.0" + sources."babel-helper-remap-async-to-generator-6.24.1" + sources."babel-helper-replace-supers-6.24.1" + sources."babel-helpers-6.24.1" + (sources."babel-jest-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."babel-messages-6.23.0" + sources."babel-plugin-check-es2015-constants-6.22.0" + sources."babel-plugin-istanbul-5.2.0" + sources."babel-plugin-jest-hoist-24.9.0" + sources."babel-plugin-syntax-async-functions-6.13.0" + sources."babel-plugin-syntax-exponentiation-operator-6.13.0" + sources."babel-plugin-syntax-trailing-function-commas-6.22.0" + sources."babel-plugin-transform-async-to-generator-6.24.1" + sources."babel-plugin-transform-es2015-arrow-functions-6.22.0" + sources."babel-plugin-transform-es2015-block-scoped-functions-6.22.0" + sources."babel-plugin-transform-es2015-block-scoping-6.26.0" + sources."babel-plugin-transform-es2015-classes-6.24.1" + sources."babel-plugin-transform-es2015-computed-properties-6.24.1" + sources."babel-plugin-transform-es2015-destructuring-6.23.0" + sources."babel-plugin-transform-es2015-duplicate-keys-6.24.1" + sources."babel-plugin-transform-es2015-for-of-6.23.0" + sources."babel-plugin-transform-es2015-function-name-6.24.1" + sources."babel-plugin-transform-es2015-literals-6.22.0" + sources."babel-plugin-transform-es2015-modules-amd-6.24.1" + sources."babel-plugin-transform-es2015-modules-commonjs-6.26.2" + sources."babel-plugin-transform-es2015-modules-systemjs-6.24.1" + sources."babel-plugin-transform-es2015-modules-umd-6.24.1" + sources."babel-plugin-transform-es2015-object-super-6.24.1" + sources."babel-plugin-transform-es2015-parameters-6.24.1" + sources."babel-plugin-transform-es2015-shorthand-properties-6.24.1" + sources."babel-plugin-transform-es2015-spread-6.22.0" + sources."babel-plugin-transform-es2015-sticky-regex-6.24.1" + sources."babel-plugin-transform-es2015-template-literals-6.22.0" + sources."babel-plugin-transform-es2015-typeof-symbol-6.23.0" + sources."babel-plugin-transform-es2015-unicode-regex-6.24.1" + sources."babel-plugin-transform-exponentiation-operator-6.24.1" + sources."babel-plugin-transform-regenerator-6.26.0" + sources."babel-plugin-transform-strict-mode-6.24.1" + sources."babel-preset-env-1.7.0" + sources."babel-preset-jest-24.9.0" + (sources."babel-register-6.26.0" // { + dependencies = [ + sources."source-map-0.5.7" + sources."source-map-support-0.4.18" + ]; + }) + sources."babel-runtime-6.26.0" + sources."babel-template-6.26.0" + (sources."babel-traverse-6.26.0" // { + dependencies = [ + sources."debug-2.6.9" + ]; + }) + sources."babel-types-6.26.0" + sources."babylon-6.18.0" + sources."balanced-match-1.0.0" + (sources."base-0.11.2" // { + dependencies = [ + sources."define-property-1.0.0" + ]; + }) + sources."base64-js-1.3.1" + sources."base64url-3.0.1" + sources."batch-0.6.1" + sources."bcrypt-pbkdf-1.0.2" + sources."bfj-6.1.2" + sources."big.js-5.2.2" + sources."binary-extensions-1.13.1" + sources."bluebird-3.7.0" + sources."bn.js-4.11.8" + (sources."body-parser-1.19.0" // { + dependencies = [ + sources."debug-2.6.9" + sources."http-errors-1.7.2" + sources."inherits-2.0.3" + sources."qs-6.7.0" + sources."raw-body-2.4.0" + ]; + }) + (sources."bonjour-3.5.0" // { + dependencies = [ + sources."array-flatten-2.1.2" + ]; + }) + sources."brace-expansion-1.1.11" + sources."braces-2.3.2" + sources."brorand-1.1.0" + sources."browser-process-hrtime-0.1.3" + (sources."browser-resolve-1.11.3" // { + dependencies = [ + sources."resolve-1.1.7" + ]; + }) + sources."browserify-aes-1.2.0" + sources."browserify-cipher-1.0.1" + sources."browserify-des-1.0.2" + sources."browserify-rsa-4.0.1" + sources."browserify-sign-4.0.4" + sources."browserify-zlib-0.2.0" + sources."browserslist-3.2.8" + sources."bs-logger-0.2.6" + sources."bser-2.1.0" + sources."buffer-4.9.1" + sources."buffer-from-1.1.1" + sources."buffer-indexof-1.1.1" + sources."buffer-xor-1.0.3" + sources."builtin-status-codes-3.0.0" + sources."byline-5.0.0" + sources."bytes-3.1.0" + (sources."cacache-10.0.4" // { + dependencies = [ + sources."lru-cache-4.1.5" + sources."yallist-2.1.2" + ]; + }) + sources."cache-base-1.0.1" + sources."cache-content-type-1.0.1" + (sources."cacheable-request-2.1.4" // { + dependencies = [ + sources."get-stream-3.0.0" + sources."lowercase-keys-1.0.0" + ]; + }) + sources."callsites-3.1.0" + sources."camelcase-1.2.1" + sources."caniuse-lite-1.0.30000999" + sources."capture-exit-2.0.0" + sources."caseless-0.12.0" + sources."center-align-0.1.3" + sources."chalk-2.4.2" + sources."character-parser-2.2.0" + sources."check-types-8.0.3" + (sources."chokidar-2.1.8" // { + dependencies = [ + sources."normalize-path-3.0.0" + ]; + }) + sources."chownr-1.1.3" + sources."chrome-trace-event-1.0.2" + sources."ci-info-2.0.0" + sources."cipher-base-1.0.4" + (sources."class-utils-0.3.6" // { + dependencies = [ + sources."define-property-0.2.5" + (sources."is-accessor-descriptor-0.1.6" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-buffer-1.1.6" + (sources."is-data-descriptor-0.1.4" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-descriptor-0.1.6" + sources."kind-of-5.1.0" + ]; + }) + sources."clean-css-4.2.1" + sources."clean-stack-1.3.0" + sources."cli-cursor-2.1.0" + sources."cli-spinners-2.2.0" + sources."cliui-2.1.0" + sources."clone-1.0.4" + sources."clone-response-1.0.2" + sources."co-4.6.0" + sources."co-body-5.2.0" + sources."code-point-at-1.1.0" + sources."collection-visit-1.0.0" + sources."color-convert-1.9.3" + sources."color-name-1.1.3" + sources."combined-stream-1.0.8" + sources."command-line-args-5.1.1" + sources."commander-2.20.1" + sources."commondir-1.0.1" + sources."component-emitter-1.3.0" + sources."compressible-2.0.17" + (sources."compression-1.7.4" // { + dependencies = [ + sources."bytes-3.0.0" + sources."debug-2.6.9" + sources."safe-buffer-5.1.2" + ]; + }) + sources."concat-map-0.0.1" + sources."concat-stream-1.6.2" + sources."condense-newlines-0.2.1" + sources."config-chain-1.1.12" + sources."connect-history-api-fallback-1.6.0" + sources."console-browserify-1.1.0" + sources."consolidate-0.15.1" + sources."constantinople-3.1.2" + sources."constants-browserify-1.0.0" + (sources."content-disposition-0.5.3" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."content-type-1.0.4" + (sources."convert-source-map-1.6.0" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."cookie-0.4.0" + sources."cookie-signature-1.0.6" + sources."cookies-0.7.3" + sources."copy-concurrently-1.0.5" + sources."copy-descriptor-0.1.1" + (sources."copy-webpack-plugin-4.6.0" // { + dependencies = [ + sources."p-limit-1.3.0" + sources."p-try-1.0.0" + ]; + }) + sources."core-js-2.6.9" + sources."core-util-is-1.0.2" + sources."create-ecdh-4.0.3" + sources."create-hash-1.2.0" + sources."create-hmac-1.1.7" + sources."cron-1.7.2" + sources."cross-spawn-6.0.5" + sources."crypto-browserify-3.12.0" + sources."cssom-0.3.8" + sources."cssstyle-1.4.0" + sources."cyclist-1.0.1" + sources."d-1.0.1" + sources."dashdash-1.14.1" + (sources."data-urls-1.1.0" // { + dependencies = [ + sources."whatwg-url-7.0.0" + ]; + }) + sources."date-now-0.1.4" + sources."debug-3.1.0" + sources."decamelize-1.2.0" + sources."decode-uri-component-0.2.0" + sources."decompress-response-3.3.0" + sources."deep-equal-1.0.1" + sources."deep-is-0.1.3" + sources."default-gateway-4.2.0" + sources."defaults-1.0.3" + sources."define-properties-1.1.3" + sources."define-property-2.0.2" + (sources."del-4.1.1" // { + dependencies = [ + (sources."globby-6.1.0" // { + dependencies = [ + sources."pify-2.3.0" + ]; + }) + sources."pify-4.0.1" + ]; + }) + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."depd-1.1.2" + sources."des.js-1.0.0" + sources."destroy-1.0.4" + sources."detect-file-1.0.0" + sources."detect-indent-4.0.0" + sources."detect-newline-2.1.0" + sources."detect-node-2.0.4" + sources."diff-sequences-24.9.0" + sources."diffie-hellman-5.0.3" + sources."dir-glob-2.2.2" + sources."dns-equal-1.0.0" + sources."dns-packet-1.3.1" + sources."dns-txt-2.0.2" + sources."doctypes-1.1.0" + sources."domain-browser-1.2.0" + sources."domexception-1.0.1" + sources."duplexer-0.1.1" + sources."duplexer3-0.1.4" + sources."duplexify-3.7.1" + sources."ecc-jsbn-0.1.2" + (sources."editorconfig-0.15.3" // { + dependencies = [ + sources."lru-cache-4.1.5" + sources."yallist-2.1.2" + ]; + }) + sources."ee-first-1.1.1" + sources."ejs-2.7.1" + sources."electron-to-chromium-1.3.275" + sources."elliptic-6.5.1" + sources."emoji-regex-7.0.3" + sources."emojis-list-2.1.0" + sources."encodeurl-1.0.2" + sources."end-of-stream-1.4.4" + sources."enhanced-resolve-4.1.0" + sources."errno-0.1.7" + sources."error-ex-1.3.2" + sources."error-inject-1.0.0" + sources."es-abstract-1.15.0" + sources."es-to-primitive-1.2.0" + sources."es5-ext-0.10.51" + sources."es6-iterator-2.0.3" + sources."es6-promise-4.2.8" + sources."es6-symbol-3.1.2" + sources."escape-html-1.0.3" + sources."escape-string-regexp-1.0.5" + sources."escodegen-1.12.0" + sources."eslint-scope-4.0.3" + sources."esprima-3.1.3" + sources."esrecurse-4.2.1" + sources."estraverse-4.3.0" + sources."esutils-2.0.3" + sources."etag-1.8.1" + sources."eventemitter3-4.0.0" + sources."events-3.0.0" + sources."eventsource-1.0.7" + sources."evp_bytestokey-1.0.3" + sources."exec-sh-0.3.2" + sources."execa-1.0.0" + sources."exit-0.1.2" + (sources."expand-brackets-2.1.4" // { + dependencies = [ + sources."debug-2.6.9" + sources."define-property-0.2.5" + (sources."is-accessor-descriptor-0.1.6" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-buffer-1.1.6" + (sources."is-data-descriptor-0.1.4" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-descriptor-0.1.6" + sources."kind-of-5.1.0" + ]; + }) + sources."expand-tilde-2.0.2" + sources."expect-24.9.0" + (sources."express-4.17.1" // { + dependencies = [ + sources."debug-2.6.9" + sources."path-to-regexp-0.1.7" + sources."qs-6.7.0" + sources."safe-buffer-5.1.2" + ]; + }) + sources."extend-3.0.2" + sources."extend-shallow-2.0.1" + (sources."extglob-2.0.4" // { + dependencies = [ + sources."define-property-1.0.0" + ]; + }) + sources."extsprintf-1.3.0" + sources."fast-deep-equal-2.0.1" + sources."fast-json-stable-stringify-2.0.0" + sources."fast-levenshtein-2.0.6" + sources."faye-websocket-0.10.0" + sources."fb-watchman-2.0.0" + sources."figgy-pudding-3.5.1" + sources."filesize-3.6.1" + sources."fill-range-4.0.0" + (sources."finalhandler-1.1.2" // { + dependencies = [ + sources."debug-2.6.9" + ]; + }) + sources."find-cache-dir-1.0.0" + sources."find-replace-3.0.0" + sources."find-up-3.0.0" + sources."findup-sync-3.0.0" + sources."flush-write-stream-1.1.1" + sources."follow-redirects-1.5.10" + sources."for-in-1.0.2" + sources."forever-agent-0.6.1" + sources."form-data-2.3.3" + sources."formidable-1.2.1" + sources."forwarded-0.1.2" + sources."fragment-cache-0.2.1" + sources."fresh-0.5.2" + sources."from2-2.3.0" + sources."fs-write-stream-atomic-1.0.10" + sources."fs.realpath-1.0.0" + sources."fsevents-1.2.9" + sources."function-bind-1.1.1" + sources."get-caller-file-2.0.5" + (sources."get-paths-0.0.7" // { + dependencies = [ + sources."pify-4.0.1" + ]; + }) + sources."get-stream-4.1.0" + sources."get-value-2.0.6" + sources."getpass-0.1.7" + sources."glob-7.1.4" + (sources."glob-parent-3.1.0" // { + dependencies = [ + sources."is-glob-3.1.0" + ]; + }) + (sources."global-modules-2.0.0" // { + dependencies = [ + sources."global-prefix-3.0.0" + sources."kind-of-6.0.2" + ]; + }) + sources."global-prefix-1.0.2" + sources."globals-9.18.0" + sources."globby-7.1.1" + (sources."got-8.3.2" // { + dependencies = [ + sources."get-stream-3.0.0" + ]; + }) + sources."graceful-fs-4.2.2" + sources."growly-1.3.0" + (sources."gzip-size-5.1.1" // { + dependencies = [ + sources."pify-4.0.1" + ]; + }) + sources."handle-thing-2.0.0" + (sources."handlebars-4.4.2" // { + dependencies = [ + sources."uglify-js-3.6.0" + ]; + }) + sources."har-schema-2.0.0" + sources."har-validator-5.1.3" + sources."has-1.0.3" + (sources."has-ansi-2.0.0" // { + dependencies = [ + sources."ansi-regex-2.1.1" + ]; + }) + sources."has-flag-3.0.0" + sources."has-symbol-support-x-1.4.2" + sources."has-symbols-1.0.0" + sources."has-to-string-tag-x-1.4.1" + sources."has-value-1.0.0" + (sources."has-values-1.0.0" // { + dependencies = [ + sources."is-buffer-1.1.6" + sources."kind-of-4.0.0" + ]; + }) + sources."hash-base-3.0.4" + sources."hash.js-1.1.7" + sources."hmac-drbg-1.0.1" + sources."home-or-tmp-2.0.0" + sources."homedir-polyfill-1.0.3" + sources."hoopy-0.1.4" + sources."hosted-git-info-2.8.4" + sources."hpack.js-2.1.6" + sources."html-encoding-sniffer-1.0.2" + sources."html-entities-1.2.1" + sources."http-assert-1.4.1" + sources."http-cache-semantics-3.8.1" + sources."http-deceiver-1.2.7" + sources."http-errors-1.7.3" + sources."http-parser-js-0.4.10" + sources."http-proxy-1.18.0" + sources."http-proxy-middleware-0.19.1" + sources."http-signature-1.2.0" + sources."https-browserify-1.0.0" + sources."iconv-lite-0.4.24" + sources."ieee754-1.1.13" + sources."iferr-0.1.5" + sources."ignore-3.3.10" + (sources."import-local-2.0.0" // { + dependencies = [ + sources."pkg-dir-3.0.0" + ]; + }) + sources."imurmurhash-0.1.4" + sources."indent-string-3.2.0" + sources."infer-owner-1.0.4" + sources."inflation-2.0.0" + sources."inflight-1.0.6" + sources."inherits-2.0.4" + sources."ini-1.3.5" + sources."internal-ip-4.3.0" + sources."interpret-1.2.0" + sources."into-stream-3.1.0" + sources."invariant-2.2.4" + sources."invert-kv-2.0.0" + sources."ip-1.1.5" + sources."ip-regex-2.1.0" + sources."ipaddr.js-1.9.0" + sources."is-absolute-url-3.0.3" + (sources."is-accessor-descriptor-1.0.0" // { + dependencies = [ + sources."kind-of-6.0.2" + ]; + }) + sources."is-arrayish-0.2.1" + sources."is-binary-path-1.0.1" + sources."is-buffer-2.0.4" + sources."is-callable-1.1.4" + sources."is-ci-2.0.0" + (sources."is-data-descriptor-1.0.0" // { + dependencies = [ + sources."kind-of-6.0.2" + ]; + }) + sources."is-date-object-1.0.1" + (sources."is-descriptor-1.0.2" // { + dependencies = [ + sources."kind-of-6.0.2" + ]; + }) + (sources."is-expression-3.0.0" // { + dependencies = [ + sources."acorn-4.0.13" + ]; + }) + sources."is-extendable-0.1.1" + sources."is-extglob-2.1.1" + sources."is-finite-1.0.2" + sources."is-fullwidth-code-point-2.0.0" + sources."is-generator-fn-2.1.0" + sources."is-generator-function-1.0.7" + sources."is-glob-4.0.1" + sources."is-number-3.0.0" + sources."is-object-1.0.1" + sources."is-path-cwd-2.2.0" + sources."is-path-in-cwd-2.1.0" + sources."is-path-inside-2.1.0" + sources."is-plain-obj-1.1.0" + sources."is-plain-object-2.0.4" + sources."is-promise-2.1.0" + sources."is-regex-1.0.4" + sources."is-retry-allowed-1.2.0" + sources."is-stream-1.1.0" + sources."is-symbol-1.0.2" + sources."is-typedarray-1.0.0" + sources."is-whitespace-0.3.0" + sources."is-windows-1.0.2" + sources."is-wsl-1.1.0" + sources."isarray-1.0.0" + sources."isexe-2.0.0" + sources."isobject-3.0.1" + sources."isomorphic-ws-4.0.1" + sources."isstream-0.1.2" + sources."istanbul-lib-coverage-2.0.5" + (sources."istanbul-lib-instrument-3.3.0" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + (sources."istanbul-lib-report-2.0.8" // { + dependencies = [ + sources."make-dir-2.1.0" + sources."pify-4.0.1" + sources."supports-color-6.1.0" + ]; + }) + (sources."istanbul-lib-source-maps-3.0.6" // { + dependencies = [ + sources."debug-4.1.1" + sources."make-dir-2.1.0" + sources."ms-2.1.2" + sources."pify-4.0.1" + ]; + }) + sources."istanbul-reports-2.2.6" + sources."isurl-1.0.0" + sources."jest-24.9.0" + sources."jest-changed-files-24.9.0" + (sources."jest-cli-24.9.0" // { + dependencies = [ + sources."cliui-5.0.0" + sources."yargs-13.3.0" + ]; + }) + sources."jest-config-24.9.0" + sources."jest-diff-24.9.0" + sources."jest-docblock-24.9.0" + sources."jest-each-24.9.0" + sources."jest-environment-jsdom-24.9.0" + sources."jest-environment-node-24.9.0" + sources."jest-get-type-24.9.0" + sources."jest-haste-map-24.9.0" + sources."jest-jasmine2-24.9.0" + sources."jest-leak-detector-24.9.0" + sources."jest-matcher-utils-24.9.0" + (sources."jest-message-util-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."jest-mock-24.9.0" + sources."jest-pnp-resolver-1.2.1" + sources."jest-regex-util-24.9.0" + sources."jest-resolve-24.9.0" + sources."jest-resolve-dependencies-24.9.0" + sources."jest-runner-24.9.0" + (sources."jest-runtime-24.9.0" // { + dependencies = [ + sources."cliui-5.0.0" + sources."slash-2.0.0" + sources."yargs-13.3.0" + ]; + }) + sources."jest-serializer-24.9.0" + (sources."jest-snapshot-24.9.0" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + (sources."jest-util-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + (sources."jest-validate-24.9.0" // { + dependencies = [ + sources."camelcase-5.3.1" + ]; + }) + sources."jest-watcher-24.9.0" + (sources."jest-worker-24.9.0" // { + dependencies = [ + sources."supports-color-6.1.0" + ]; + }) + sources."js-beautify-1.10.2" + sources."js-stringify-1.0.2" + sources."js-tokens-3.0.2" + (sources."js-yaml-3.13.1" // { + dependencies = [ + sources."esprima-4.0.1" + ]; + }) + sources."jsbn-0.1.1" + (sources."jsdom-11.12.0" // { + dependencies = [ + sources."acorn-5.7.3" + (sources."acorn-globals-4.3.4" // { + dependencies = [ + sources."acorn-6.3.0" + ]; + }) + sources."ws-5.2.2" + ]; + }) + sources."jsesc-1.3.0" + sources."json-buffer-3.0.0" + sources."json-parse-better-errors-1.0.2" + sources."json-schema-0.2.3" + sources."json-schema-traverse-0.4.1" + sources."json-stringify-safe-5.0.1" + sources."json3-3.3.3" + (sources."json5-1.0.1" // { + dependencies = [ + sources."minimist-1.2.0" + ]; + }) + sources."jsonpath-plus-0.19.0" + sources."jsprim-1.4.1" + sources."jstransformer-1.0.0" + sources."keygrip-1.0.3" + sources."keyv-3.0.0" + sources."killable-1.0.1" + (sources."kind-of-3.2.2" // { + dependencies = [ + sources."is-buffer-1.1.6" + ]; + }) + sources."kleur-3.0.3" + sources."koa-2.8.2" + sources."koa-body-4.1.1" + sources."koa-compose-4.1.0" + (sources."koa-convert-1.2.0" // { + dependencies = [ + sources."koa-compose-3.2.1" + ]; + }) + sources."koa-is-json-1.0.0" + (sources."koa-router-7.4.0" // { + dependencies = [ + sources."koa-compose-3.2.1" + ]; + }) + sources."koa-send-5.0.0" + sources."koa-static-5.0.0" + (sources."koa-views-6.2.1" // { + dependencies = [ + sources."debug-4.1.1" + sources."ms-2.1.2" + ]; + }) + sources."lazy-cache-1.0.4" + sources."lcid-2.0.0" + sources."left-pad-1.3.0" + sources."leven-3.1.0" + sources."levn-0.3.0" + sources."load-json-file-4.0.0" + sources."loader-runner-2.4.0" + sources."loader-utils-1.2.3" + sources."locate-path-3.0.0" + sources."lodash-4.17.15" + sources."lodash.camelcase-4.3.0" + sources."lodash.clonedeep-4.5.0" + sources."lodash.memoize-4.1.2" + sources."lodash.sortby-4.7.0" + sources."log-symbols-2.2.0" + sources."loglevel-1.6.4" + sources."loglevelnext-1.0.5" + sources."long-4.0.0" + sources."longest-1.0.1" + sources."loose-envify-1.4.0" + sources."lowercase-keys-1.0.1" + sources."lru-cache-5.1.1" + sources."make-dir-1.3.0" + sources."make-error-1.3.5" + sources."makeerror-1.0.11" + sources."mamacro-0.0.3" + sources."map-age-cleaner-0.1.3" + sources."map-cache-0.2.2" + sources."map-visit-1.0.0" + sources."md5.js-1.3.5" + sources."media-typer-0.3.0" + (sources."mem-4.3.0" // { + dependencies = [ + sources."mimic-fn-2.1.0" + sources."p-is-promise-2.1.0" + ]; + }) + sources."memory-fs-0.4.1" + sources."merge-descriptors-1.0.1" + sources."merge-stream-2.0.0" + sources."methods-1.1.2" + (sources."micromatch-3.1.10" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + sources."kind-of-6.0.2" + ]; + }) + sources."miller-rabin-4.0.1" + sources."mime-1.6.0" + sources."mime-db-1.40.0" + sources."mime-types-2.1.24" + sources."mimic-fn-1.2.0" + sources."mimic-response-1.0.1" + sources."minimalistic-assert-1.0.1" + sources."minimalistic-crypto-utils-1.0.1" + sources."minimatch-3.0.4" + sources."minimist-0.0.8" + (sources."mississippi-2.0.0" // { + dependencies = [ + sources."pump-2.0.1" + ]; + }) + (sources."mixin-deep-1.3.2" // { + dependencies = [ + sources."is-extendable-1.0.1" + ]; + }) + sources."mkdirp-0.5.1" + sources."moment-2.24.0" + sources."moment-timezone-0.5.26" + sources."move-concurrently-1.0.1" + sources."ms-2.0.0" + sources."multicast-dns-6.2.3" + sources."multicast-dns-service-types-1.1.0" + sources."mz-2.7.0" + sources."nan-2.14.0" + (sources."nanomatch-1.2.13" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + sources."kind-of-6.0.2" + ]; + }) + sources."natural-compare-1.4.0" + sources."negotiator-0.6.2" + sources."neo-async-2.6.1" + sources."next-tick-1.0.0" + sources."nice-try-1.0.5" + sources."node-forge-0.8.5" + sources."node-int64-0.4.0" + sources."node-jose-1.1.3" + (sources."node-libs-browser-2.2.1" // { + dependencies = [ + sources."punycode-1.4.1" + ]; + }) + sources."node-modules-regexp-1.0.0" + sources."node-notifier-5.4.3" + sources."nopt-4.0.1" + sources."normalize-package-data-2.5.0" + sources."normalize-path-2.1.1" + sources."normalize-url-2.0.1" + sources."npm-run-path-2.0.2" + sources."number-is-nan-1.0.1" + sources."nwsapi-2.1.4" + sources."oauth-sign-0.9.0" + sources."object-assign-4.1.1" + (sources."object-copy-0.1.0" // { + dependencies = [ + sources."define-property-0.2.5" + sources."is-accessor-descriptor-0.1.6" + sources."is-data-descriptor-0.1.4" + (sources."is-descriptor-0.1.6" // { + dependencies = [ + sources."kind-of-5.1.0" + ]; + }) + ]; + }) + sources."object-hash-1.3.1" + sources."object-inspect-1.6.0" + sources."object-keys-1.1.1" + sources."object-visit-1.0.1" + sources."object.assign-4.1.0" + sources."object.getownpropertydescriptors-2.0.3" + sources."object.pick-1.3.0" + sources."obuf-1.1.2" + sources."oidc-token-hash-3.0.2" + sources."on-finished-2.3.0" + sources."on-headers-1.0.2" + sources."once-1.4.0" + sources."onetime-2.0.1" + sources."only-0.0.2" + sources."opener-1.5.1" + sources."openid-client-2.5.0" + sources."opn-5.5.0" + sources."optimist-0.6.1" + (sources."optionator-0.8.2" // { + dependencies = [ + sources."wordwrap-1.0.0" + ]; + }) + sources."ora-3.4.0" + sources."original-1.0.2" + sources."os-browserify-0.3.0" + sources."os-homedir-1.0.2" + sources."os-locale-3.1.0" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."p-any-1.1.0" + sources."p-cancelable-0.4.1" + sources."p-defer-1.0.0" + sources."p-each-series-1.0.0" + sources."p-finally-1.0.0" + sources."p-is-promise-1.1.0" + sources."p-limit-2.2.1" + sources."p-locate-3.0.0" + sources."p-map-2.1.0" + sources."p-reduce-1.0.0" + sources."p-retry-3.0.1" + sources."p-some-2.0.1" + sources."p-timeout-2.0.1" + sources."p-try-2.2.0" + sources."pako-1.0.10" + sources."parallel-transform-1.2.0" + sources."parse-asn1-5.1.5" + sources."parse-json-4.0.0" + sources."parse-passwd-1.0.0" + sources."parse5-4.0.0" + sources."parseurl-1.3.3" + sources."pascalcase-0.1.1" + sources."path-browserify-0.0.1" + sources."path-dirname-1.0.2" + sources."path-exists-3.0.0" + sources."path-is-absolute-1.0.1" + sources."path-is-inside-1.0.2" + sources."path-key-2.0.1" + sources."path-parse-1.0.6" + (sources."path-to-regexp-1.7.0" // { + dependencies = [ + sources."isarray-0.0.1" + ]; + }) + sources."path-type-3.0.0" + sources."pbkdf2-3.0.17" + sources."performance-now-2.1.0" + sources."pify-3.0.0" + sources."pinkie-2.0.4" + sources."pinkie-promise-2.0.1" + sources."pirates-4.0.1" + (sources."pkg-dir-2.0.0" // { + dependencies = [ + sources."find-up-2.1.0" + sources."locate-path-2.0.0" + sources."p-limit-1.3.0" + sources."p-locate-2.0.0" + sources."p-try-1.0.0" + ]; + }) + sources."pn-1.1.0" + (sources."portfinder-1.0.24" // { + dependencies = [ + sources."debug-2.6.9" + ]; + }) + sources."posix-character-classes-0.1.1" + sources."prelude-ls-1.1.2" + sources."prepend-http-2.0.0" + sources."prettier-1.18.2" + sources."pretty-2.0.0" + sources."pretty-format-24.9.0" + sources."private-0.1.8" + sources."process-0.11.10" + sources."process-nextick-args-2.0.1" + sources."promise-7.3.1" + sources."promise-inflight-1.0.1" + sources."prompts-2.2.1" + sources."proto-list-1.2.4" + sources."proxy-addr-2.0.5" + sources."prr-1.0.1" + sources."pseudomap-1.0.2" + sources."psl-1.4.0" + sources."public-encrypt-4.0.3" + sources."pug-2.0.4" + sources."pug-attrs-2.0.4" + sources."pug-code-gen-2.0.2" + sources."pug-error-1.3.3" + sources."pug-filters-3.1.1" + sources."pug-lexer-4.1.0" + sources."pug-linker-3.0.6" + sources."pug-load-2.0.12" + sources."pug-parser-5.0.1" + sources."pug-runtime-2.0.5" + sources."pug-strip-comments-1.0.4" + sources."pug-walk-1.1.8" + sources."pump-3.0.0" + (sources."pumpify-1.5.1" // { + dependencies = [ + sources."pump-2.0.1" + ]; + }) + sources."punycode-2.1.1" + sources."qs-6.5.2" + sources."query-string-5.1.1" + sources."querystring-0.2.0" + sources."querystring-es3-0.2.1" + sources."querystringify-2.1.1" + sources."randombytes-2.1.0" + sources."randomfill-1.0.4" + sources."range-parser-1.2.1" + sources."raw-body-2.4.1" + sources."react-is-16.10.2" + sources."read-pkg-3.0.0" + sources."read-pkg-up-4.0.0" + (sources."readable-stream-2.3.6" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."readdirp-2.2.1" + sources."realpath-native-1.1.0" + sources."rechoir-0.6.2" + sources."regenerate-1.4.0" + sources."regenerator-runtime-0.11.1" + sources."regenerator-transform-0.10.1" + (sources."regex-not-1.0.2" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + ]; + }) + sources."regexpu-core-2.0.0" + sources."regjsgen-0.2.0" + (sources."regjsparser-0.1.5" // { + dependencies = [ + sources."jsesc-0.5.0" + ]; + }) + sources."remove-trailing-separator-1.1.0" + sources."repeat-element-1.1.3" + sources."repeat-string-1.6.1" + sources."repeating-2.0.1" + sources."request-2.88.0" + sources."request-promise-core-1.1.2" + sources."request-promise-native-1.0.7" + sources."require-directory-2.1.1" + sources."require-main-filename-2.0.0" + sources."requires-port-1.0.0" + sources."resolve-1.12.0" + sources."resolve-cwd-2.0.0" + (sources."resolve-dir-1.0.1" // { + dependencies = [ + sources."global-modules-1.0.0" + ]; + }) + sources."resolve-from-3.0.0" + (sources."resolve-path-1.4.0" // { + dependencies = [ + sources."http-errors-1.6.3" + sources."inherits-2.0.3" + sources."setprototypeof-1.1.0" + ]; + }) + sources."resolve-url-0.2.1" + sources."responselike-1.0.2" + sources."restore-cursor-2.0.0" + sources."ret-0.1.15" + sources."retry-0.12.0" + sources."right-align-0.1.3" + sources."rimraf-2.7.1" + sources."ripemd160-2.0.2" + sources."rsvp-4.8.5" + sources."run-queue-1.0.3" + sources."rxjs-6.5.3" + sources."safe-buffer-5.2.0" + sources."safe-regex-1.1.0" + sources."safer-buffer-2.1.2" + (sources."sane-4.1.0" // { + dependencies = [ + sources."minimist-1.2.0" + ]; + }) + sources."sax-1.2.4" + sources."schema-utils-1.0.0" + sources."select-hose-2.0.0" + (sources."selfsigned-1.10.7" // { + dependencies = [ + sources."node-forge-0.9.0" + ]; + }) + sources."semver-5.7.1" + (sources."send-0.17.1" // { + dependencies = [ + (sources."debug-2.6.9" // { + dependencies = [ + sources."ms-2.0.0" + ]; + }) + sources."ms-2.1.1" + ]; + }) + sources."serialize-javascript-1.9.1" + (sources."serve-index-1.9.1" // { + dependencies = [ + sources."debug-2.6.9" + sources."http-errors-1.6.3" + sources."inherits-2.0.3" + sources."setprototypeof-1.1.0" + ]; + }) + sources."serve-static-1.14.1" + sources."set-blocking-2.0.0" + sources."set-value-2.0.1" + sources."setimmediate-1.0.5" + sources."setprototypeof-1.1.1" + sources."sha.js-2.4.11" + sources."shebang-command-1.2.0" + sources."shebang-regex-1.0.0" + sources."shelljs-0.8.3" + sources."shellwords-0.1.1" + sources."sigmund-1.0.1" + sources."signal-exit-3.0.2" + sources."simple-git-1.96.0" + sources."sisteransi-1.0.3" + sources."slash-1.0.0" + (sources."snapdragon-0.8.2" // { + dependencies = [ + sources."debug-2.6.9" + sources."define-property-0.2.5" + (sources."is-accessor-descriptor-0.1.6" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-buffer-1.1.6" + (sources."is-data-descriptor-0.1.4" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-descriptor-0.1.6" + sources."kind-of-5.1.0" + sources."source-map-0.5.7" + ]; + }) + (sources."snapdragon-node-2.1.1" // { + dependencies = [ + sources."define-property-1.0.0" + ]; + }) + sources."snapdragon-util-3.0.1" + sources."sockjs-0.3.19" + (sources."sockjs-client-1.4.0" // { + dependencies = [ + sources."debug-3.2.6" + sources."faye-websocket-0.11.3" + sources."ms-2.1.2" + ]; + }) + sources."sort-keys-2.0.0" + sources."source-list-map-2.0.1" + sources."source-map-0.6.1" + sources."source-map-resolve-0.5.2" + sources."source-map-support-0.5.13" + sources."source-map-url-0.4.0" + sources."spdx-correct-3.1.0" + sources."spdx-exceptions-2.2.0" + sources."spdx-expression-parse-3.0.0" + sources."spdx-license-ids-3.0.5" + (sources."spdy-4.0.1" // { + dependencies = [ + sources."debug-4.1.1" + sources."ms-2.1.2" + ]; + }) + (sources."spdy-transport-3.0.0" // { + dependencies = [ + sources."debug-4.1.1" + sources."ms-2.1.2" + sources."readable-stream-3.4.0" + ]; + }) + (sources."split-string-3.1.0" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + ]; + }) + sources."sprintf-js-1.0.3" + sources."sshpk-1.16.1" + sources."ssri-5.3.0" + sources."stack-utils-1.0.2" + (sources."static-extend-0.1.2" // { + dependencies = [ + sources."define-property-0.2.5" + (sources."is-accessor-descriptor-0.1.6" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-buffer-1.1.6" + (sources."is-data-descriptor-0.1.4" // { + dependencies = [ + sources."kind-of-3.2.2" + ]; + }) + sources."is-descriptor-0.1.6" + sources."kind-of-5.1.0" + ]; + }) + sources."statuses-1.5.0" + sources."stealthy-require-1.1.1" + sources."stream-browserify-2.0.2" + sources."stream-each-1.2.3" + sources."stream-http-2.8.3" + sources."stream-shift-1.0.0" + sources."strict-uri-encode-1.1.0" + (sources."string-length-2.0.0" // { + dependencies = [ + sources."ansi-regex-3.0.0" + sources."strip-ansi-4.0.0" + ]; + }) + sources."string-width-3.1.0" + sources."string.prototype.trimleft-2.1.0" + sources."string.prototype.trimright-2.1.0" + (sources."string_decoder-1.1.1" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."strip-ansi-5.2.0" + sources."strip-bom-3.0.0" + sources."strip-eof-1.0.0" + sources."supports-color-5.5.0" + sources."symbol-tree-3.2.4" + sources."tapable-1.1.3" + sources."terser-4.3.8" + (sources."terser-webpack-plugin-1.4.1" // { + dependencies = [ + sources."cacache-12.0.3" + sources."find-cache-dir-2.1.0" + sources."make-dir-2.1.0" + sources."mississippi-3.0.0" + sources."pify-4.0.1" + sources."pkg-dir-3.0.0" + sources."ssri-6.0.1" + ]; + }) + sources."test-exclude-5.2.3" + sources."thenify-3.3.0" + sources."thenify-all-1.6.0" + sources."throat-4.1.0" + sources."through2-2.0.5" + sources."thunky-1.0.3" + sources."timed-out-4.0.1" + sources."timers-browserify-2.0.11" + sources."tmpl-1.0.4" + sources."to-arraybuffer-1.0.1" + sources."to-fast-properties-1.0.3" + sources."to-object-path-0.3.0" + (sources."to-regex-3.0.2" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + ]; + }) + sources."to-regex-range-2.1.1" + sources."toidentifier-1.0.0" + sources."token-stream-0.0.1" + (sources."tough-cookie-2.4.3" // { + dependencies = [ + sources."punycode-1.4.1" + ]; + }) + sources."tr46-1.0.1" + sources."trim-right-1.0.1" + sources."tryer-1.0.1" + (sources."ts-jest-24.1.0" // { + dependencies = [ + sources."camelcase-4.1.0" + sources."json5-2.1.1" + sources."minimist-1.2.0" + sources."yargs-parser-10.1.0" + ]; + }) + sources."tslib-1.10.0" + sources."tty-browserify-0.0.0" + sources."tunnel-agent-0.6.0" + sources."tweetnacl-0.14.5" + sources."type-1.2.0" + sources."type-check-0.3.2" + sources."type-is-1.6.18" + sources."typedarray-0.0.6" + sources."typedarray-to-buffer-3.1.5" + sources."typescript-3.6.3" + sources."typical-4.0.0" + (sources."uglify-js-2.8.29" // { + dependencies = [ + sources."source-map-0.5.7" + ]; + }) + sources."uglify-to-browserify-1.0.2" + sources."underscore-1.9.1" + sources."union-value-1.0.1" + sources."unique-filename-1.1.1" + sources."unique-slug-2.0.2" + sources."unpipe-1.0.0" + (sources."unset-value-1.0.0" // { + dependencies = [ + (sources."has-value-0.3.1" // { + dependencies = [ + sources."isobject-2.1.0" + ]; + }) + sources."has-values-0.1.4" + ]; + }) + sources."upath-1.2.0" + sources."uri-js-4.2.2" + sources."urijs-1.19.1" + sources."urix-0.1.0" + (sources."url-0.11.0" // { + dependencies = [ + sources."punycode-1.3.2" + ]; + }) + sources."url-parse-1.4.7" + sources."url-parse-lax-3.0.0" + sources."url-to-options-1.0.1" + sources."use-3.1.1" + (sources."util-0.11.1" // { + dependencies = [ + sources."inherits-2.0.3" + ]; + }) + sources."util-deprecate-1.0.2" + sources."util.promisify-1.0.0" + sources."utils-merge-1.0.1" + sources."uuid-3.3.3" + sources."v8-compile-cache-2.0.3" + sources."validate-npm-package-license-3.0.4" + sources."vary-1.1.2" + sources."verror-1.10.0" + sources."vm-browserify-1.1.0" + sources."void-elements-2.0.1" + sources."w3c-hr-time-1.0.1" + sources."walker-1.0.7" + sources."watchpack-1.6.0" + sources."wbuf-1.7.3" + sources."wcwidth-1.0.1" + sources."webidl-conversions-4.0.2" + (sources."webpack-4.41.0" // { + dependencies = [ + sources."acorn-6.3.0" + ]; + }) + (sources."webpack-bundle-analyzer-3.5.2" // { + dependencies = [ + sources."acorn-6.3.0" + ]; + }) + (sources."webpack-cli-3.3.9" // { + dependencies = [ + sources."cliui-5.0.0" + sources."supports-color-6.1.0" + sources."yargs-13.2.4" + ]; + }) + (sources."webpack-dev-middleware-3.7.2" // { + dependencies = [ + sources."mime-2.4.4" + sources."webpack-log-2.0.0" + ]; + }) + (sources."webpack-dev-server-3.8.2" // { + dependencies = [ + sources."ansi-regex-2.1.1" + sources."camelcase-5.3.1" + (sources."cliui-4.1.0" // { + dependencies = [ + sources."ansi-regex-3.0.0" + sources."strip-ansi-4.0.0" + ]; + }) + sources."debug-4.1.1" + sources."get-caller-file-1.0.3" + sources."is-fullwidth-code-point-1.0.0" + sources."ms-2.1.2" + sources."require-main-filename-1.0.1" + sources."semver-6.3.0" + (sources."string-width-2.1.1" // { + dependencies = [ + sources."ansi-regex-3.0.0" + sources."is-fullwidth-code-point-2.0.0" + sources."strip-ansi-4.0.0" + ]; + }) + sources."strip-ansi-3.0.1" + sources."supports-color-6.1.0" + sources."webpack-log-2.0.0" + (sources."wrap-ansi-2.1.0" // { + dependencies = [ + sources."string-width-1.0.2" + ]; + }) + sources."yargs-12.0.5" + sources."yargs-parser-11.1.1" + ]; + }) + sources."webpack-log-1.2.0" + sources."webpack-sources-1.4.3" + (sources."websocket-1.0.30" // { + dependencies = [ + sources."debug-2.6.9" + ]; + }) + sources."websocket-driver-0.7.3" + sources."websocket-extensions-0.1.3" + sources."whatwg-encoding-1.0.5" + sources."whatwg-mimetype-2.3.0" + sources."whatwg-url-6.5.0" + sources."which-1.3.1" + sources."which-module-2.0.0" + sources."window-size-0.1.0" + sources."with-5.1.1" + sources."wordwrap-0.0.2" + sources."worker-farm-1.7.0" + sources."wrap-ansi-5.1.0" + sources."wrappy-1.0.2" + sources."write-file-atomic-2.4.1" + sources."ws-6.2.1" + sources."xml-name-validator-3.0.0" + sources."xtend-4.0.2" + sources."y18n-4.0.0" + sources."yaeti-0.0.6" + sources."yallist-3.1.1" + sources."yargs-3.10.0" + (sources."yargs-parser-13.1.1" // { + dependencies = [ + sources."camelcase-5.3.1" + ]; + }) + sources."ylru-1.2.1" + ]; + buildInputs = globalBuildInputs; + meta = { + license = "MIT"; + }; + production = false; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/package.json b/nixpkgs/pkgs/applications/networking/cluster/spacegun/package.json new file mode 100644 index 000000000000..7d419edb74a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/package.json @@ -0,0 +1,3 @@ +[ + { "spacegun": "git+https://github.com/dvallin/spacegun.git#v0.3.3" } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix new file mode 100644 index 000000000000..b8d4b947e324 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix @@ -0,0 +1,59 @@ +{ stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop +, RSupport? true, R +, mesosSupport ? true, mesos +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + + pname = "spark"; + version = "2.4.4"; + + src = fetchzip { + url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz"; + sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g"; + }; + + buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ] + ++ optional RSupport R + ++ optional mesosSupport mesos; + + untarDir = "${pname}-${version}-bin-without-hadoop"; + installPhase = '' + mkdir -p $out/{lib/${untarDir}/conf,bin,/share/java} + mv * $out/lib/${untarDir} + + sed -e 's/INFO, console/WARN, console/' < \ + $out/lib/${untarDir}/conf/log4j.properties.template > \ + $out/lib/${untarDir}/conf/log4j.properties + + cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF + export JAVA_HOME="${jre}" + export SPARK_HOME="$out/lib/${untarDir}" + export SPARK_DIST_CLASSPATH=$(${hadoop}/bin/hadoop classpath) + export PYSPARK_PYTHON="${pythonPackages.python}/bin/${pythonPackages.python.executable}" + export PYTHONPATH="\$PYTHONPATH:$PYTHONPATH" + ${optionalString RSupport + ''export SPARKR_R_SHELL="${R}/bin/R" + export PATH=$PATH:"${R}/bin/R"''} + ${optionalString mesosSupport + ''export MESOS_NATIVE_LIBRARY="$MESOS_NATIVE_LIBRARY"''} + EOF + + for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do + makeWrapper "$n" "$out/bin/$(basename $n)" + substituteInPlace "$n" --replace dirname ${coreutils.out}/bin/dirname + done + ln -s $out/lib/${untarDir}/lib/spark-assembly-*.jar $out/share/java + ''; + + meta = { + description = "Apache Spark is a fast and general engine for large-scale data processing"; + homepage = "http://spark.apache.org"; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.all; + maintainers = with maintainers; [ thoughtpolice offline kamilchm ]; + repositories.git = git://git.apache.org/spark.git; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix new file mode 100644 index 000000000000..0835d268cd79 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + pname = "amazon-ssm-agent"; + version = "2.0.633.0"; + + goPackagePath = "github.com/aws/${pname}"; + subPackages = [ "agent" ]; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "aws"; + repo = pname; + sha256 = "10arshfn2k3m3zzgw8b3xc6ywd0ss73746nq5srh2jir7mjzi4xv"; + }; + + preBuild = '' + mv go/src/${goPackagePath}/vendor strange-vendor + mv strange-vendor/src go/src/${goPackagePath}/vendor + ''; + + meta = with stdenv.lib; { + description = "Agent to enable remote management of your Amazon EC2 instance configuration"; + homepage = "https://github.com/aws/amazon-ssm-agent"; + license = licenses.asl20; + platforms = platforms.unix; + maintainers = with maintainers; [ copumpkin ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix new file mode 100644 index 000000000000..144d46043ffe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub }: + +let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; in + +buildGoPackage rec { + pname = "stern"; + version = "1.11.0"; + + goPackagePath = "github.com/wercker/stern"; + + src = fetchFromGitHub { + owner = "wercker"; + repo = "stern"; + rev = version; + sha256 = "0xndlq0ks8flzx6rdd4lnkxpkbvdy9sj1jwys5yj7p989ls8by3n"; + }; + + goDeps = ./deps.nix; + + postInstall = + let stern = if isCrossBuild then buildPackages.stern else "$bin"; in + '' + mkdir -p $bin/share/bash-completion/completions + ${stern}/bin/stern --completion bash > $bin/share/bash-completion/completions/stern + mkdir -p $bin/share/zsh/site-functions + ${stern}/bin/stern --completion zsh > $bin/share/zsh/site-functions/_stern + ''; + + meta = with lib; { + description = "Multi pod and container log tailing for Kubernetes"; + homepage = "https://github.com/wercker/stern"; + license = licenses.asl20; + maintainers = with maintainers; [ mbode ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix new file mode 100644 index 000000000000..fff5cf8c0de4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix @@ -0,0 +1,336 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "cloud.google.com/go"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/gocloud"; + rev = "dfffe386c33fb24c34ee501e5723df5b97b98514"; + sha256 = "1g681yxz4mmzapzpzxfaz1nhcr1w526793yapfsnxlbs2skap3fy"; + }; + } + { + goPackagePath = "github.com/Azure/go-autorest"; + fetch = { + type = "git"; + url = "https://github.com/Azure/go-autorest"; + rev = "1ff28809256a84bb6966640ff3d0371af82ccba4"; + sha256 = "0sxvj2j1833bqwxvhq3wq3jgq73rnb81pnzvl0x3y1m0hzpaf2zv"; + }; + } + { + goPackagePath = "github.com/dgrijalva/jwt-go"; + fetch = { + type = "git"; + url = "https://github.com/dgrijalva/jwt-go"; + rev = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e"; + sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp"; + }; + } + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "2d684516a8861da43017284349b7e303e809ac21"; + sha256 = "1fcfmz4wji3gqmmsdx493r7d101s58hwjalqps6hy25nva5pvmfs"; + }; + } + { + goPackagePath = "github.com/ghodss/yaml"; + fetch = { + type = "git"; + url = "https://github.com/ghodss/yaml"; + rev = "73d445a93680fa1a78ae23a5839bad48f32ba1ee"; + sha256 = "0pg53ky4sy3sp9j4n7vgf1p3gw4nbckwqfldcmmi9rf13kjh0mr7"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "c0656edd0d9eab7c66d1eb0c568f9039345796f7"; + sha256 = "0b943dhx571lhgcs3rqzy0092mi2x5mwy2kl7g8rryhy3r5rzrz9"; + }; + } + { + goPackagePath = "github.com/golang/glog"; + fetch = { + type = "git"; + url = "https://github.com/golang/glog"; + rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998"; + sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "b4deda0973fb4c70b50d226b1af49f3da59f5265"; + sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq"; + }; + } + { + goPackagePath = "github.com/google/btree"; + fetch = { + type = "git"; + url = "https://github.com/google/btree"; + rev = "4030bb1f1f0c35b30ca7009e9ebd06849dd45306"; + sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6"; + }; + } + { + goPackagePath = "github.com/google/gofuzz"; + fetch = { + type = "git"; + url = "https://github.com/google/gofuzz"; + rev = "24818f796faf91cd76ec7bddd72458fbced7a6c1"; + sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm"; + }; + } + { + goPackagePath = "github.com/googleapis/gnostic"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/gnostic"; + rev = "0c5108395e2debce0d731cf0287ddf7242066aba"; + sha256 = "0jf3cp5clli88gpjf24r6wxbkvngnc1kf59d4cgjczsn2wasvsfc"; + }; + } + { + goPackagePath = "github.com/gregjones/httpcache"; + fetch = { + type = "git"; + url = "https://github.com/gregjones/httpcache"; + rev = "787624de3eb7bd915c329cba748687a3b22666a6"; + sha256 = "1zqlg9pkj7r6fqw7wv3ywvbz3bh0hvzifs2scgcraj812q5189w5"; + }; + } + { + goPackagePath = "github.com/imdario/mergo"; + fetch = { + type = "git"; + url = "https://github.com/imdario/mergo"; + rev = "6633656539c1639d9d78127b7d47c622b5d7b6dc"; + sha256 = "1fffbq1l17i0gynmvcxypl7d9h4v81g5vlimiph5bfgf4sp4db7g"; + }; + } + { + goPackagePath = "github.com/inconshreveable/mousetrap"; + fetch = { + type = "git"; + url = "https://github.com/inconshreveable/mousetrap"; + rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"; + sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; + }; + } + { + goPackagePath = "github.com/json-iterator/go"; + fetch = { + type = "git"; + url = "https://github.com/json-iterator/go"; + rev = "f2b4162afba35581b6d4a50d3b8f34e33c144682"; + sha256 = "0siqfghsm2lkdwinvg8x5gls3p76rq3cdm59c1r4x0b2mdfhnvcd"; + }; + } + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "167de6bfdfba052fa6b2d3664c8f5272e23c9072"; + sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c"; + sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "b8bc1bf767474819792c23f32d8286a45736f1c6"; + sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q"; + }; + } + { + goPackagePath = "github.com/modern-go/concurrent"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/concurrent"; + rev = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94"; + sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs"; + }; + } + { + goPackagePath = "github.com/modern-go/reflect2"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/reflect2"; + rev = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd"; + sha256 = "1721y3yr3dpx5dx5ashf063qczk2awy5zjir1jvp1h5hn7qz4i49"; + }; + } + { + goPackagePath = "github.com/petar/GoLLRB"; + fetch = { + type = "git"; + url = "https://github.com/petar/GoLLRB"; + rev = "53be0d36a84c2a886ca057d34b6aa4468df9ccb4"; + sha256 = "01xp3lcamqkvl91jg6ly202gdsgf64j39rkrcqxi6v4pbrcv7hz0"; + }; + } + { + goPackagePath = "github.com/peterbourgon/diskv"; + fetch = { + type = "git"; + url = "https://github.com/peterbourgon/diskv"; + rev = "5f041e8faa004a95c88a202771f4cc3e991971e6"; + sha256 = "1mxpa5aad08x30qcbffzk80g9540wvbca4blc1r2qyzl65b8929b"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "816c9085562cd7ee03e7f8188a1cfd942858cded"; + sha256 = "1ws5crb7c70wdicavl6qr4g03nn6m92zd6wwp9n2ygz5c8rmxh8k"; + }; + } + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "a114f312e075f65bf30d6d9a1430113f857e543b"; + sha256 = "10lmi5ni06yijxg02fcic5b7ycjkia12yma4a4lz8a56j30wykx1"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "3ebe029320b2676d667ae88da602a5f854788a8a"; + sha256 = "11yxs0wqy70wj106fkz8r923yg4ncnc2mbw33v48zmlg4a1rasgp"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "49796115aa4b964c318aad4f3084fdb41e9aa067"; + sha256 = "0pcq2drkzsw585xi6rda8imd7a139prrmvgmv8nz0zgzk6g4dy59"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "1c05540f6879653db88113bc4a2b70aec4bd491f"; + sha256 = "0h8yqb0vcqgllgydrf9d3rzp83w8wlr8f0nm6r1rwf2qg30pq1pd"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "a6bd8cefa1811bd24b86f8902872e4e8225f74c4"; + sha256 = "151in8qcf5y97ziavl6b03vgw4r87zqx5kg4vjhjszjbh60cfswp"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "8e24a49d80f82323e1c4db1b5da3e0f31171a151"; + sha256 = "0zsdnyb8dy98jw6f9yn6g5gdhaqwk39hqridr0mh4dhwvwvlj724"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + { + goPackagePath = "golang.org/x/time"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/time"; + rev = "f51c12702a4d776e4c1fa9b0fabab841babae631"; + sha256 = "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "ae0ab99deb4dc413a2b4bd6c8bdd0eb67f1e4d06"; + sha256 = "1iabxnqgxvvn1239i6fvfl375vlbvhfrc03m1x2rvalmx4d6w9c7"; + }; + } + { + goPackagePath = "gopkg.in/inf.v0"; + fetch = { + type = "git"; + url = "https://github.com/go-inf/inf"; + rev = "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4"; + sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183"; + sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1"; + }; + } + { + goPackagePath = "k8s.io/api"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/api"; + rev = "8be2a0b24ed0dac9cfc1ac2d987ea16cfcdbecb6"; + sha256 = "1dpmd59jlkxgrp5aaf8420344c6nq4kjlc1avgcp7690yrzc50v6"; + }; + } + { + goPackagePath = "k8s.io/apimachinery"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/apimachinery"; + rev = "594fc14b6f143d963ea2c8132e09e73fe244b6c9"; + sha256 = "0xykhpmjgagyb0ac4y0ps4v1s9bd2b1sc0simh48c41a9fk3yvr7"; + }; + } + { + goPackagePath = "k8s.io/client-go"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/client-go"; + rev = "739dd8f9d4801eb23e2bc43423c0b4acaaded29a"; + sha256 = "15psjmb14rz4kwysim9vfbbylx0khkw29b195rziv1vk202lh28k"; + }; + } +] \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix new file mode 100644 index 000000000000..3423163f5902 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, perl }: + +stdenv.mkDerivation rec { + version = "3.7.7"; + pname = "taktuk"; + + buildInputs = [ perl ]; + + src = fetchurl { + url = "https://gforge.inria.fr/frs/download.php/33412/${pname}-${version}.tar.gz"; + sha256 = "0w0h3ynlcxvq2nzm8hkj20g0805ww3vkw53g0qwj7wvp7p3gcvnr"; + }; + + preBuild = '' + substituteInPlace ./taktuk --replace "/usr/bin/perl" "${perl}/bin/perl" + ''; + + meta = { + description = "Efficient, large scale, parallel remote execution of commands"; + longDescription = '' + TakTuk allows one to execute commands in parallel on a potentially large set + of remote nodes (using ssh to connect to each node). It is typically used + inside high performance computing clusters and grids. It uses an adaptive + algorithm to efficiently distribute the work and sets up an interconnection + network to transport commands and perform I/Os multiplexing. It doesn't + require any specific software on the nodes thanks to a self-propagation + algorithm.''; + homepage = http://taktuk.gforge.inria.fr/; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.bzizou ]; + platforms = stdenv.lib.platforms.linux; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix new file mode 100644 index 000000000000..606cd0370aa2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub }: +buildGoPackage rec { + pname = "terraform-docs"; + version = "0.6.0"; + + goPackagePath = "github.com/segmentio/${pname}"; + + src = fetchFromGitHub { + owner = "segmentio"; + repo = pname; + rev = "v${version}"; + sha256 = "1p6prhjf82qnhf1zwl9h92j4ds5g383a6g9pwwnqbc3wdwy5zx7d"; + }; + + preBuild = '' + buildFlagsArray+=("-ldflags" "-X main.version=${version}") + ''; + + meta = with lib; { + description = "A utility to generate documentation from Terraform modules in various output formats"; + homepage = "https://github.com/segmentio/terraform-docs/"; + license = licenses.mit; + maintainers = with maintainers; [ zimbatm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix new file mode 100644 index 000000000000..1bb8df88d010 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix @@ -0,0 +1,28 @@ +{ stdenv, buildGoPackage, fetchFromGitHub}: + +buildGoPackage rec { + pname = "terraform-inventory"; + version = "0.7-pre"; + rev = "v${version}"; + + goPackagePath = "github.com/adammck/terraform-inventory"; + + subPackages = [ "./" ]; + + src = fetchFromGitHub { + inherit rev; + owner = "adammck"; + repo = "terraform-inventory"; + sha256 = "0wwyi2nfyn3wfpmvj8aabn0cjba0lpr5nw3rgd6qdywy7sc3rmb1"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + homepage = https://github.com/adammck/terraform-inventory; + description = "Terraform state to ansible inventory adapter"; + platforms = platforms.all; + license = licenses.mit; + maintainers = with maintainers; [ htr ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix new file mode 100644 index 000000000000..9f7b5e317fe3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix @@ -0,0 +1,20 @@ +[ + { + goPackagePath = "github.com/adammck/venv"; + fetch = { + type = "git"; + url = "https://github.com/adammck/venv"; + rev = "8a9c907a37d36a8f34fa1c5b81aaf80c2554a306"; + sha256 = "1fzk3j4q59kpd2ks2aw8rmic6b123p5mh981cjh0kzs716grc6y8"; + }; + } + { + goPackagePath = "github.com/blang/vfs"; + fetch = { + type = "git"; + url = "https://github.com/blang/vfs"; + rev = "c14afcac17253ce7418da751ec6b1988790cdc8f"; + sha256 = "00q5qzxpn9n59nrmrljz4w9lljxvrr8i5j8i8b4iw86j0alcx53b"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile new file mode 100644 index 000000000000..c4f9a5511de9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'terraform_landscape' diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock new file mode 100644 index 000000000000..b801fad546df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock @@ -0,0 +1,25 @@ +GEM + remote: https://rubygems.org/ + specs: + colorize (0.8.1) + commander (4.4.6) + highline (~> 1.7.2) + diffy (3.2.1) + highline (1.7.10) + polyglot (0.3.5) + terraform_landscape (0.2.1) + colorize (~> 0.7) + commander (~> 4.4) + diffy (~> 3.0) + treetop (~> 1.6) + treetop (1.6.10) + polyglot (~> 0.3) + +PLATFORMS + ruby + +DEPENDENCIES + terraform_landscape + +BUNDLED WITH + 1.16.3 diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix new file mode 100644 index 000000000000..32f6680b2f8b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix @@ -0,0 +1,18 @@ +{ lib, bundlerApp, bundlerUpdateScript }: + +bundlerApp { + pname = "terraform_landscape"; + + gemdir = ./.; + exes = [ "landscape" ]; + + passthru.updateScript = bundlerUpdateScript "terraform-landscape"; + + meta = with lib; { + description = "Improve Terraform's plan output to be easier to read and understand"; + homepage = https://github.com/coinbase/terraform-landscape; + license = with licenses; asl20; + maintainers = with maintainers; [ mbode manveru nicknovitski ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix new file mode 100644 index 000000000000..aa3f5142aa5e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix @@ -0,0 +1,61 @@ +{ + colorize = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b"; + type = "gem"; + }; + version = "0.8.1"; + }; + commander = { + dependencies = ["highline"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11sd2sb0id2dbxkv4pvymdiia1xxhms45kh4nr8mryqybad0fwwf"; + type = "gem"; + }; + version = "4.4.6"; + }; + diffy = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg"; + type = "gem"; + }; + version = "3.2.1"; + }; + highline = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y"; + type = "gem"; + }; + version = "1.7.10"; + }; + polyglot = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr"; + type = "gem"; + }; + version = "0.3.5"; + }; + terraform_landscape = { + dependencies = ["colorize" "commander" "diffy" "treetop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i93pih7r6zcqpjhsmvkpfkgbh0l66c60i6fkiymq7vy2xd6wnns"; + type = "gem"; + }; + version = "0.2.1"; + }; + treetop = { + dependencies = ["polyglot"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7"; + type = "gem"; + }; + version = "1.6.10"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix new file mode 100644 index 000000000000..bb634a78e23c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, buildGoPackage }: +buildGoPackage rec { + pname = "terraform-provider-ansible"; + version = "1.0.3"; + + goPackagePath = "github.com/nbering/terraform-provider-ansible"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "nbering"; + repo = "terraform-provider-ansible"; + rev = "v${version}"; + sha256 = "0dqi9ym0xvnz3h73cmd1vf6k2qwfhxvj1mcakkpmsd4cpxq4l6pr"; + }; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/terraform-provider-ansible{,_v${version}}"; + + meta = with stdenv.lib; { + description = "A Terraform provider serving as an interop layer for an Ansible dynamic inventory script."; + homepage = "https://github.com/nbering/terraform-provider-ansible"; + license = licenses.mpl20; + maintainers = with maintainers; [ uskudnik ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix new file mode 100644 index 000000000000..dc49f24afa59 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix @@ -0,0 +1,11 @@ +[ + { + goPackagePath = "github.com/hashicorp/terraform"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/terraform"; + rev = "v0.12.5"; + sha256 = "0p064rhaanwx4szs8hv6mdqad8d2bgfd94h2la11j58xbsxc7hap"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix new file mode 100644 index 000000000000..cd37083d9359 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix @@ -0,0 +1,835 @@ +# Generated with ./update-all +{ + acme = + { + owner = "terraform-providers"; + repo = "terraform-provider-acme"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "1h53bgflchavnn4laf801d920bsgqqg0ph4slnf7y1fpb0mz5vdv"; + }; + alicloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-alicloud"; + rev = "v1.63.0"; + version = "1.63.0"; + sha256 = "0353zsga4ic7rsgnk243v202l4hpy0xlzp95fnbmrz7p5wy2k8js"; + }; + archive = + { + owner = "terraform-providers"; + repo = "terraform-provider-archive"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "1hwg8ai4bvsmgnl669608lr4v940xnyig1xshps490f47c8hqy6y"; + }; + arukas = + { + owner = "terraform-providers"; + repo = "terraform-provider-arukas"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "1akl9fzgm5qv01vz18xjzyqjnlxw699qq4x8vr96j16l1zf10h99"; + }; + atlas = + { + owner = "terraform-providers"; + repo = "terraform-provider-atlas"; + rev = "v0.1.1"; + version = "0.1.1"; + sha256 = "0k73vv14vnjl5qm33w54s5zzi0mmk1kn2zs3qkfq71aqi9ml7d14"; + }; + aws = + { + owner = "terraform-providers"; + repo = "terraform-provider-aws"; + rev = "v2.41.0"; + version = "2.41.0"; + sha256 = "0i9bh78ihmxj7hjbqzkkj7k6lvr3xdakf8qv0bfckcinwpzwzbxa"; + }; + azuread = + { + owner = "terraform-providers"; + repo = "terraform-provider-azuread"; + rev = "v0.7.0"; + version = "0.7.0"; + sha256 = "1a7w31dvjz5498445ia4m5gd1js3k7ghz6qqfq51f2n86iafs0xq"; + }; + azurerm = + { + owner = "terraform-providers"; + repo = "terraform-provider-azurerm"; + rev = "v1.37.0"; + version = "1.37.0"; + sha256 = "0n0582v8g3np8glyxnpnayps014jxclzrglcxf35wszfz9mspryg"; + }; + azurestack = + { + owner = "terraform-providers"; + repo = "terraform-provider-azurestack"; + rev = "v0.9.0"; + version = "0.9.0"; + sha256 = "1msm7jwzry0vmas3l68h6p0migrsm6d18zpxcncv197m8xbvg324"; + }; + bigip = + { + owner = "terraform-providers"; + repo = "terraform-provider-bigip"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "15fmxr1c39xx6ix38nigf8izrqzlmjjr6hvlkf7yhb5z7485nvsg"; + }; + bitbucket = + { + owner = "terraform-providers"; + repo = "terraform-provider-bitbucket"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "06bjagbgpgfphwym015wl00wx6qf7lsdig0fhpxqaykvlkn3sg49"; + }; + brightbox = + { + owner = "terraform-providers"; + repo = "terraform-provider-brightbox"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "0s1b2k58r2kmjrdqrkw2dlfpby79i81gml9rpa10y372bwq314zd"; + }; + chef = + { + owner = "terraform-providers"; + repo = "terraform-provider-chef"; + rev = "v0.2.0"; + version = "0.2.0"; + sha256 = "0ihn4706fflmf0585w22l7arzxsa9biq4cgh8nlhlp5y0zy934ns"; + }; + circonus = + { + owner = "terraform-providers"; + repo = "terraform-provider-circonus"; + rev = "v0.4.0"; + version = "0.4.0"; + sha256 = "0iz7v7gfjgbca47vjnvcv9159kgladkad7cmjw2hpncrn2jjinwg"; + }; + clc = + { + owner = "terraform-providers"; + repo = "terraform-provider-clc"; + rev = "v0.1.0"; + version = "0.1.0"; + sha256 = "0gvsjnwk6xkgxai1gxsjf0hsjxbv8d8jg5hq8yd3hjhc6785fgnf"; + }; + cloudflare = + { + owner = "terraform-providers"; + repo = "terraform-provider-cloudflare"; + rev = "v2.1.0"; + version = "2.1.0"; + sha256 = "1ll06p4fz88mr4a51rqgvxykivx9xina6507mflyxaic59xlkdz4"; + }; + cloudscale = + { + owner = "terraform-providers"; + repo = "terraform-provider-cloudscale"; + rev = "v2.1.0"; + version = "2.1.0"; + sha256 = "12vxzhpsivvq343mqkmnwklvnv6dc9h2ah0ixla9svdwjp91xfcd"; + }; + cloudstack = + { + owner = "terraform-providers"; + repo = "terraform-provider-cloudstack"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "0zmyww6z3j839ydlmv254hr8gcsixng4lcvmiwkhxb3hj1nw8hcw"; + }; + cobbler = + { + owner = "terraform-providers"; + repo = "terraform-provider-cobbler"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "08ljqibfi6alpvv8f7pzvjl2k4w6br6g6ac755x4xw4ycrr24xw9"; + }; + consul = + { + owner = "terraform-providers"; + repo = "terraform-provider-consul"; + rev = "v2.6.0"; + version = "2.6.0"; + sha256 = "1c7qpgf2vh4crs69alzwwaicsz29b2y72x4xjmfb9dg5cy7gk1i5"; + }; + datadog = + { + owner = "terraform-providers"; + repo = "terraform-provider-datadog"; + rev = "v2.5.0"; + version = "2.5.0"; + sha256 = "0l5jix165ghfj72l3mr76d5b5lx5pgr45zimk8lr0fwn79f4bs74"; + }; + digitalocean = + { + owner = "terraform-providers"; + repo = "terraform-provider-digitalocean"; + rev = "v1.11.0"; + version = "1.11.0"; + sha256 = "0s8z0zsfibclx0431fcqbi9yqkhwj4w0rz780z1dwv50xpgnmzql"; + }; + dme = + { + owner = "terraform-providers"; + repo = "terraform-provider-dme"; + rev = "v0.1.0"; + version = "0.1.0"; + sha256 = "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv"; + }; + dns = + { + owner = "terraform-providers"; + repo = "terraform-provider-dns"; + rev = "v2.2.0"; + version = "2.2.0"; + sha256 = "11xdxj6hfclaq9glbh14nihmrsk220crm9ld8bdv77w0bppmrrch"; + }; + dnsimple = + { + owner = "terraform-providers"; + repo = "terraform-provider-dnsimple"; + rev = "v0.2.0"; + version = "0.2.0"; + sha256 = "0jj82fffqaz7gramj5d4avx7vka6w190yz4r9q7628qh8ih2pfhz"; + }; + docker = + { + owner = "terraform-providers"; + repo = "terraform-provider-docker"; + rev = "v2.6.0"; + version = "2.6.0"; + sha256 = "12qq7m75yxfczik78klqaimrzhp70m2vk5q0h3v8b2dwvvynj0dg"; + }; + dyn = + { + owner = "terraform-providers"; + repo = "terraform-provider-dyn"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1a3kxmbib2y0nl7gnxknbhsflj5kfknxnm3gjxxrb2h5d2kvqy48"; + }; + external = + { + owner = "terraform-providers"; + repo = "terraform-provider-external"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1kx28bffhd1pg3m0cbldclc8l9zic16mqrk7gybcls9vyds5gbvc"; + }; + fastly = + { + owner = "terraform-providers"; + repo = "terraform-provider-fastly"; + rev = "v0.11.0"; + version = "0.11.0"; + sha256 = "0wq8l1lkfpv5nfd04dsjaa9wv09373i6wwnapifx1wncjyhs4jd4"; + }; + flexibleengine = + { + owner = "terraform-providers"; + repo = "terraform-provider-flexibleengine"; + rev = "v1.9.0"; + version = "1.9.0"; + sha256 = "1y66xy5yqdjdrh3zkw1q7ml5b2rsyy4ayc4m026c4mmh0x1vfk9y"; + }; + github = + { + owner = "terraform-providers"; + repo = "terraform-provider-github"; + rev = "v2.2.1"; + version = "2.2.1"; + sha256 = "1dg5jgd3cdz98wfd71l58wsp949mvs2lrcqh1amgql0s90pwjmvg"; + }; + gitlab = + { + owner = "terraform-providers"; + repo = "terraform-provider-gitlab"; + rev = "v2.4.0"; + version = "2.4.0"; + sha256 = "0409n8miva205wkx968ggzmz0y121s99iybsjlkx0gja20x68yxx"; + }; + google = + { + owner = "terraform-providers"; + repo = "terraform-provider-google"; + rev = "v2.20.0"; + version = "2.20.0"; + sha256 = "1b19hql244lv74gxdwgqh9955d3zkwj7riaq6kj5ylbj44spcpjy"; + }; + google-beta = + { + owner = "terraform-providers"; + repo = "terraform-provider-google-beta"; + rev = "v2.20.0"; + version = "2.20.0"; + sha256 = "0zkhyn17kji6yyl5582g5vhqj3rcbin73ym6vn6f0m7sf5yaplky"; + }; + grafana = + { + owner = "terraform-providers"; + repo = "terraform-provider-grafana"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "0zy3bqgpxymp2zygaxzllk1ysdankwxa1sy1djfgr4fs2nlggkwi"; + }; + hcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-hcloud"; + rev = "v1.15.0"; + version = "1.15.0"; + sha256 = "0l554mf6s248j0453b4r5pafshcvhn2smk4pp23y9kq5g1xd0xmd"; + }; + hedvig = + { + owner = "terraform-providers"; + repo = "terraform-provider-hedvig"; + rev = "v1.0.5"; + version = "1.0.5"; + sha256 = "0dic4kqjwi3s8pss1pmgixnr7xi503gl5i7pcx66fam5y5ar92v5"; + }; + helm = + { + owner = "terraform-providers"; + repo = "terraform-provider-helm"; + rev = "v0.10.4"; + version = "0.10.4"; + sha256 = "0xl0wgh1j6yhymadqvlj21qddxfzaxk3d5wpzskfmhfk732795rc"; + }; + heroku = + { + owner = "terraform-providers"; + repo = "terraform-provider-heroku"; + rev = "v2.2.1"; + version = "2.2.1"; + sha256 = "145kfm4asca0ksprb076mjdhs5ahrlrad8cqz8spxra5fa3j46sq"; + }; + http = + { + owner = "terraform-providers"; + repo = "terraform-provider-http"; + rev = "v1.1.1"; + version = "1.1.1"; + sha256 = "0ah4wi9gm5m7z0wyy6vn3baz2iw2sq7ah7q0lb9srwr887aai3x0"; + }; + huaweicloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-huaweicloud"; + rev = "v1.10.0"; + version = "1.10.0"; + sha256 = "0aa83y0bzfldijd4jbmhqppc13jdqaax83p75kffwaxw1rmxrana"; + }; + icinga2 = + { + owner = "terraform-providers"; + repo = "terraform-provider-icinga2"; + rev = "v0.2.0"; + version = "0.2.0"; + sha256 = "02ladn2w75k35vn8llj3zh9hbpnnnvpm47c9f29zshfs04acwbq0"; + }; + ignition = + { + owner = "terraform-providers"; + repo = "terraform-provider-ignition"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "0dg5xak02rv7h9z07kjqxf55al188ligzq3m6711rlh62zam2cjc"; + }; + influxdb = + { + owner = "terraform-providers"; + repo = "terraform-provider-influxdb"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "19af40g8hgz2rdz6523v0fs71ww7qdlf2mh5j9vb7pfzriqwa5k9"; + }; + kubernetes = + { + owner = "terraform-providers"; + repo = "terraform-provider-kubernetes"; + rev = "v1.10.0"; + version = "1.10.0"; + sha256 = "04hd9n9jm72fi81cmdz0yf374fg52r8yinsxy0ag29rd3r2l1k81"; + }; + librato = + { + owner = "terraform-providers"; + repo = "terraform-provider-librato"; + rev = "v0.1.0"; + version = "0.1.0"; + sha256 = "0bxadwj5s7bvc4vlymn3w6qckf14hz82r7q98w2nh55sqr52d923"; + }; + linode = + { + owner = "terraform-providers"; + repo = "terraform-provider-linode"; + rev = "v1.9.1"; + version = "1.9.1"; + sha256 = "10f7nij91fhgf1808r6rv3l13nz7p37mcln5p3nfvhsxskss3vxn"; + }; + local = + { + owner = "terraform-providers"; + repo = "terraform-provider-local"; + rev = "v1.4.0"; + version = "1.4.0"; + sha256 = "1k1kbdn99ypn1pi6vqbs1l9a8vvf4vs32wl8waa16i26514sz1wk"; + }; + logentries = + { + owner = "terraform-providers"; + repo = "terraform-provider-logentries"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "04xprkb9zwdjyzmsdf10bgmn8sa8q7jw0izz8lw0cc9hag97qgbq"; + }; + logicmonitor = + { + owner = "terraform-providers"; + repo = "terraform-provider-logicmonitor"; + rev = "v1.2.1"; + version = "1.2.1"; + sha256 = "1fcv5g92l6xr4x69h9rg48zazjr99wrz9mkmr122fyq9s7kdd98y"; + }; + mailgun = + { + owner = "terraform-providers"; + repo = "terraform-provider-mailgun"; + rev = "v0.4.1"; + version = "0.4.1"; + sha256 = "1l76pg4hmww9zg2n4rkhm5dwjh42fxri6d41ih1bf670krkxwsmz"; + }; + mysql = + { + owner = "terraform-providers"; + repo = "terraform-provider-mysql"; + rev = "v1.9.0"; + version = "1.9.0"; + sha256 = "14gxxki3jhncv3s2x828ns2vgmf2xxzigdyp9b54mbkw5rnv1k2g"; + }; + netlify = + { + owner = "terraform-providers"; + repo = "terraform-provider-netlify"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "0mmbli6d3fbpyvvdfsg32f1w83g8ga3x21b36rgmx3mn156r7yij"; + }; + newrelic = + { + owner = "terraform-providers"; + repo = "terraform-provider-newrelic"; + rev = "v1.8.0"; + version = "1.8.0"; + sha256 = "16fdif6hshdb1aswv22k590rcr3f6b3a9gmg8vc4lbyi6l2dfabd"; + }; + nomad = + { + owner = "terraform-providers"; + repo = "terraform-provider-nomad"; + rev = "v1.4.2"; + version = "1.4.2"; + sha256 = "0h0snkzqdi4g5lp78f5pq98x6556ldwgkg9p9jkmrg04y7928w5v"; + }; + ns1 = + { + owner = "terraform-providers"; + repo = "terraform-provider-ns1"; + rev = "v1.6.1"; + version = "1.6.1"; + sha256 = "0zyn165h42p640k1q85x3n8fw1fs9j72z9lnfa8pas89jy2fmi8b"; + }; + nsxt = + { + owner = "terraform-providers"; + repo = "terraform-provider-nsxt"; + rev = "v1.1.2"; + version = "1.1.2"; + sha256 = "1hnxivad7371j363sp3460mfzl5alb3dhxsbp0qwfl5mzvriwrbl"; + }; + null = + { + owner = "terraform-providers"; + repo = "terraform-provider-null"; + rev = "v2.1.2"; + version = "2.1.2"; + sha256 = "0di1hxmd3s80sz8hl5q2i425by8fbk15f0r4jmnm6vra0cq89jw2"; + }; + nutanix = + { + owner = "terraform-providers"; + repo = "terraform-provider-nutanix"; + rev = "v1.0.2"; + version = "1.0.2"; + sha256 = "17sgsxsh8minirks08c6gz52cf7ndn220sx4xzi6bq64yi6qw2yc"; + }; + oci = + { + owner = "terraform-providers"; + repo = "terraform-provider-oci"; + rev = "v3.54.0-rc1"; + version = "3.54.0-rc1"; + sha256 = "14mfkjjpq4sfw0j4w1mnh37x9kwn76rs1y6cjqq9zb8fnhva6gax"; + }; + oneandone = + { + owner = "terraform-providers"; + repo = "terraform-provider-oneandone"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "0c412nqg3k17124i51nn3ffra6gcll904h37h7hyvz97cdblcncn"; + }; + opc = + { + owner = "terraform-providers"; + repo = "terraform-provider-opc"; + rev = "v1.3.7"; + version = "1.3.7"; + sha256 = "01g09w8mqfp1d8phplsdj0vz63q5bgq9fqwy2kp4vrnwb70dq52w"; + }; + openstack = + { + owner = "terraform-providers"; + repo = "terraform-provider-openstack"; + rev = "v1.24.0"; + version = "1.24.0"; + sha256 = "1w82ix6l6ad7q0zl00hys8c4gm27nnk12wm2n8i3prwpjnrar70m"; + }; + opentelekomcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-opentelekomcloud"; + rev = "v1.14.0"; + version = "1.14.0"; + sha256 = "1mjb6br8iy76q417lmg04xnv4hkgi2fgdn3qnr3nvlwnnccp230k"; + }; + opsgenie = + { + owner = "terraform-providers"; + repo = "terraform-provider-opsgenie"; + rev = "v0.2.5"; + version = "0.2.5"; + sha256 = "0brjqnlnxqss285n2g1z006bibbdh5v47g75l5kyhyhhchavccma"; + }; + oraclepaas = + { + owner = "terraform-providers"; + repo = "terraform-provider-oraclepaas"; + rev = "v1.5.3"; + version = "1.5.3"; + sha256 = "0xb03b5jgm06rgrllib6zj1nkh54zv2mqjnyfflgnazpf4c1ia15"; + }; + ovh = + { + owner = "terraform-providers"; + repo = "terraform-provider-ovh"; + rev = "v0.5.0"; + version = "0.5.0"; + sha256 = "07n8ismxbv0gngh4kibqhr4ndqkrg6gxbpj3zl764rrwp54gwgbw"; + }; + packet = + { + owner = "terraform-providers"; + repo = "terraform-provider-packet"; + rev = "v2.7.1"; + version = "2.7.1"; + sha256 = "1hmja9c8ab66yr814psz1zsa4y0nbmd5rcnp3qxdgizp45yrvz3i"; + }; + pagerduty = + { + owner = "terraform-providers"; + repo = "terraform-provider-pagerduty"; + rev = "v1.4.1"; + version = "1.4.1"; + sha256 = "0dmafnlziyczad907isjqzsn1fyjzc8pdigp3m6114bbnca0ry5k"; + }; + panos = + { + owner = "terraform-providers"; + repo = "terraform-provider-panos"; + rev = "v1.6.1"; + version = "1.6.1"; + sha256 = "06hwi426x7ipmn4dbg5dyv9z84sxaa8q1jlcd2l264n9s2y3xhiq"; + }; + postgresql = + { + owner = "terraform-providers"; + repo = "terraform-provider-postgresql"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "14ma5lm6ng52dfl8bl4rmpy8ylnkbvnbskvkr6r5sn28x51p601y"; + }; + powerdns = + { + owner = "terraform-providers"; + repo = "terraform-provider-powerdns"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1108hq4z4is305hnbkn95gv0f5lx5l27wvxvq0g03fcdqdimkrfn"; + }; + profitbricks = + { + owner = "terraform-providers"; + repo = "terraform-provider-profitbricks"; + rev = "v1.4.4"; + version = "1.4.4"; + sha256 = "0pzcl3pdhaykihvv1v38zrv607mydchvkzrzhwcakgmdkp3vq54i"; + }; + rabbitmq = + { + owner = "terraform-providers"; + repo = "terraform-provider-rabbitmq"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "0xihc44923kx8c3v6wrvczzbhmbjkhy7dhgx3sy5sqhmm22y0gys"; + }; + rancher = + { + owner = "terraform-providers"; + repo = "terraform-provider-rancher"; + rev = "v1.4.0"; + version = "1.4.0"; + sha256 = "106arszmdjmgrz4iv01bbf72jarn7zjqvmc43b6n1s3lzd7jnfpc"; + }; + random = + { + owner = "terraform-providers"; + repo = "terraform-provider-random"; + rev = "v2.2.1"; + version = "2.2.1"; + sha256 = "1qklsxj443vsj61lwl7qf7xwgnllwcvb2yk6s0kn9g3iq63pcv30"; + }; + rightscale = + { + owner = "terraform-providers"; + repo = "terraform-provider-rightscale"; + rev = "v1.3.1"; + version = "1.3.1"; + sha256 = "0abwxaghrxpahpsk6kd02fjh0rhck4xsdrzcpv629yh8ip9rzcaj"; + }; + rundeck = + { + owner = "terraform-providers"; + repo = "terraform-provider-rundeck"; + rev = "v0.4.0"; + version = "0.4.0"; + sha256 = "1x131djsny8w84yf7w2il33wlc3ysy3k399dziii2lmq4h8sgrpr"; + }; + runscope = + { + owner = "terraform-providers"; + repo = "terraform-provider-runscope"; + rev = "v0.6.0"; + version = "0.6.0"; + sha256 = "1fsph2cnyvzdwa5hwdjabfk4azmc3x8a7afpwpawxfdvqhgpr595"; + }; + scaleway = + { + owner = "terraform-providers"; + repo = "terraform-provider-scaleway"; + rev = "v1.12.0"; + version = "1.12.0"; + sha256 = "0044fq5jkdx2ryc2bxqajkrngs6z81kd2narg4zxvfn0r1bfswvc"; + }; + selectel = + { + owner = "terraform-providers"; + repo = "terraform-provider-selectel"; + rev = "v3.0.0"; + version = "3.0.0"; + sha256 = "0fr97j85inaqvdqmlfk3xcq73zvncn001nsd03pp2ws30qqa8p7r"; + }; + skytap = + { + owner = "terraform-providers"; + repo = "terraform-provider-skytap"; + rev = "v0.11.1"; + version = "0.11.1"; + sha256 = "1mlv6jp6lp47chcnsmx8dzy01bxpb9jx1wl122lxd88app9nxq1k"; + }; + softlayer = + { + owner = "terraform-providers"; + repo = "terraform-provider-softlayer"; + rev = "v0.0.1"; + version = "0.0.1"; + sha256 = "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq"; + }; + spotinst = + { + owner = "terraform-providers"; + repo = "terraform-provider-spotinst"; + rev = "v1.13.4"; + version = "1.13.4"; + sha256 = "063lhm065y6qh9b2k11qjnqyfg5zrx6wa3bqrm7d1dqcha1i6d9f"; + }; + statuscake = + { + owner = "terraform-providers"; + repo = "terraform-provider-statuscake"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "1x295va6c72465cxps0kx3rrb7s9aip2cniy6icsg1b2yrsb9b26"; + }; + telefonicaopencloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-telefonicaopencloud"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "1761wkjz3d2458xl7855lxklyxgyk05fddh92rp6975y0ca6xa5m"; + }; + template = + { + owner = "terraform-providers"; + repo = "terraform-provider-template"; + rev = "v2.1.2"; + version = "2.1.2"; + sha256 = "18w1mmma81m9j7yf6q500w8v9ss28w6sw2ynssl99pyw2gwmd04q"; + }; + tencentcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-tencentcloud"; + rev = "v1.25.2"; + version = "1.25.2"; + sha256 = "1pf4l9rvkarl4vhf51np4kdqcgs4jhsr5gw7vs6rn8gv97lb40kw"; + }; + terraform = + { + owner = "terraform-providers"; + repo = "terraform-provider-terraform"; + rev = "v1.0.2"; + version = "1.0.2"; + sha256 = "1aj6g6l68n9kqmxfjlkwwxnac7fhha6wrmvsw4yylf0qyssww75v"; + }; + tfe = + { + owner = "terraform-providers"; + repo = "terraform-provider-tfe"; + rev = "v0.11.1"; + version = "0.11.1"; + sha256 = "0iagddaivpd7cxgf8ha2pk0m66gi4a804s86fsxla0j1knmmyra0"; + }; + tls = + { + owner = "terraform-providers"; + repo = "terraform-provider-tls"; + rev = "v2.1.1"; + version = "2.1.1"; + sha256 = "1qsx540pjcq4ra034q2dwnw5nmzab5h1c3vm20ppg5dkhhyiizq8"; + }; + triton = + { + owner = "terraform-providers"; + repo = "terraform-provider-triton"; + rev = "v0.6.0"; + version = "0.6.0"; + sha256 = "10z032fa64sd8d6r4v2f4m7gp93v8wb2zk2r13fflzg5rfk5740z"; + }; + ucloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-ucloud"; + rev = "v1.14.1"; + version = "1.14.1"; + sha256 = "04vi87q2fhy907l7rwsbq5p6l9vm6avm1hbf9qwddkbxx2kjjf64"; + }; + ultradns = + { + owner = "terraform-providers"; + repo = "terraform-provider-ultradns"; + rev = "v0.1.0"; + version = "0.1.0"; + sha256 = "0bq2y6bxdax7qnmq6vxh8pz9sqy1r3m05dv7q5dbv2xvba1b88hj"; + }; + vault = + { + owner = "terraform-providers"; + repo = "terraform-provider-vault"; + rev = "v2.6.0"; + version = "2.6.0"; + sha256 = "0sw1swy2j9n3ji48sxmj093zzlq7sdmp8ixmz488ps3m4jjyfk6k"; + }; + vcd = + { + owner = "terraform-providers"; + repo = "terraform-provider-vcd"; + rev = "v2.5.0"; + version = "2.5.0"; + sha256 = "0h78ij9rkx43i9kdcfy7waa6xyn2j40zgm6im3zp0yswy6vjlcyq"; + }; + vsphere = + { + owner = "terraform-providers"; + repo = "terraform-provider-vsphere"; + rev = "v1.13.0"; + version = "1.13.0"; + sha256 = "10gl042l5mlmklhjjknwln1qcwl65xz8sbg1acyv8xkb6nsaxcf1"; + }; + yandex = + { + owner = "terraform-providers"; + repo = "terraform-provider-yandex"; + rev = "v0.24.0"; + version = "0.24.0"; + sha256 = "0a9isivn3ni0d1id8ww97xbcwrxc0c4pn1m1q21cipqs6mwksq9m"; + }; + segment = + { + owner = "ajbosco"; + repo = "terraform-provider-segment"; + rev = "v0.2.0"; + version = "0.2.0"; + sha256 = "0ic5b9djhnb1bs2bz3zdprgy3r55dng09xgc4d9l9fyp85g2amaz"; + }; + pass = + { + owner = "camptocamp"; + repo = "terraform-provider-pass"; + rev = "1.2.1"; + version = "1.2.1"; + sha256 = "1hf5mvgz5ycp7shiy8px205d9kwswfjmclg7mlh9a55bkraffahk"; + }; + matchbox = + { + owner = "poseidon"; + repo = "terraform-provider-matchbox"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3"; + }; + wavefront = + { + owner = "spaceapegames"; + repo = "terraform-provider-wavefront"; + rev = "v2.1.1"; + version = "2.1.1"; + sha256 = "0cbs74kd820i8f13a9jfbwh2y5zmmx3c2mp07qy7m0xx3m78jksn"; + }; + nixos = + { + owner = "tweag"; + repo = "terraform-provider-nixos"; + rev = "v0.0.1"; + version = "0.0.1"; + sha256 = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf"; + }; + secret = + { + owner = "tweag"; + repo = "terraform-provider-secret"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "09gv0fpsrxzgna0xrhrdk8d4va9s0gvdbz596r306qxb4mip4w3r"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix new file mode 100644 index 000000000000..6298c25ba254 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildGoPackage +, fetchFromGitHub +, callPackage +, buildGo112Module +}: +let + list = import ./data.nix; + + toDrv = data: + buildGoPackage rec { + inherit (data) owner repo rev version sha256; + name = "${repo}-${version}"; + goPackagePath = "github.com/${owner}/${repo}"; + subPackages = [ "." ]; + src = fetchFromGitHub { + inherit owner repo rev sha256; + }; + + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/${repo}{,_v${version}}"; + }; +in + { + elasticsearch = callPackage ./elasticsearch { + # Version 0.7.0 fails to build with go 1.13 due to dependencies: + # verifying git.apache.org/thrift.git@v0.12.0/go.mod: git.apache.org/thrift.git@v0.12.0/go.mod: Get https://sum.golang.org/lookup/git.apache.org/thrift.git@v0.12.0: dial tcp: lookup sum.golang.org on [::1]:53: read udp [::1]:52968->[::1]:53: read: connection refused + # verifying github.com/hashicorp/terraform@v0.12.0/go.mod: github.com/hashicorp/terraform@v0.12.0/go.mod: Get https://sum.golang.org/lookup/github.com/hashicorp/terraform@v0.12.0: dial tcp: lookup sum.golang.org on [::1]:53: read udp [::1]:52968->[::1]:53: read: connection refused + buildGoModule = buildGo112Module; + }; + gandi = callPackage ./gandi {}; + ibm = callPackage ./ibm {}; + libvirt = callPackage ./libvirt {}; + ansible = callPackage ./ansible {}; + } // lib.mapAttrs (n: v: toDrv v) list diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix new file mode 100644 index 000000000000..1aadbbc5ccd3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, buildGoModule }: +buildGoModule rec { + pname = "terraform-provider-elasticsearch"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "phillbaker"; + repo = "terraform-provider-elasticsearch"; + rev = "v${version}"; + sha256 = "0ci9gcn9ijdbx25wa99iy0b3sl7akqa7b6gi9wnnl1dawpqznj7v"; + }; + + modSha256 = "1xk21xswqwpv34j4ba4fj8lcbvfdd12x7rq1hrdyd21mdhmrhw0p"; + + subPackages = [ "." ]; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postInstall = "mv $out/bin/terraform-provider-elasticsearch{,_v${version}}"; + + meta = with stdenv.lib; { + description = "Terraform provider for elasticsearch"; + homepage = "https://github.com/phillbaker/terraform-provider-elasticsearch"; + license = licenses.mpl20; + maintainers = with maintainers; [ basvandijk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix new file mode 100644 index 000000000000..4571d368991f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, buildGoPackage }: +buildGoPackage rec { + pname = "terraform-provider-gandi"; + version = "1.0.0"; + + goPackagePath = "github.com/tiramiseb/terraform-provider-gandi"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "tiramiseb"; + repo = "terraform-provider-gandi"; + rev = "v${version}"; + sha256 = "0byydpqsimvnk11bh9iz8zlxbsmsk65w55pvkp18vjzqrhf4kyfv"; + }; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/terraform-provider-gandi{,_v${version}}"; + + meta = with stdenv.lib; { + description = "Terraform provider for the Gandi LiveDNS service."; + homepage = "https://github.com/tiramiseb/terraform-provider-gandi"; + license = licenses.mpl20; + maintainers = with maintainers; [ manveru ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix new file mode 100644 index 000000000000..3d4a3547502d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix @@ -0,0 +1,21 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/hashicorp/terraform"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/terraform"; + rev = "27b720113ed5143a870ec151b3b7c9d955a09bc0"; + sha256 = "1f0hwdf2z68p0ll3pgrx949h09q52gcfaxap0zz52m7px98sfab4"; + }; + } + { + goPackagePath = "github.com/tiramiseb/go-gandi-livedns"; + fetch = { + type = "git"; + url = "https://github.com/tiramiseb/go-gandi-livedns"; + rev = "4773a84f8ee7365ed21edc6cd0602aaf93e94e59"; + sha256 = "1i8s7yclrkhf974vs2splh5symzk0ym54px0bc216bq4ifzkwkqc"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix new file mode 100644 index 000000000000..06d7b8a9f073 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix @@ -0,0 +1,38 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +# +# USAGE: +# install the following package globally or in nix-shell: +# +# (terraform.withPlugins ( plugins: [ terraform-provider-ibm ])) +# +# examples: +# https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples +# + +buildGoPackage rec { + pname = "terraform-provider-ibm"; + version = "0.11.1"; + + goPackagePath = "github.com/terraform-providers/terraform-provider-ibm"; + subPackages = [ "./" ]; + + src = fetchFromGitHub { + owner = "IBM-Cloud"; + repo = "terraform-provider-ibm"; + sha256 = "1vp1kzadfkacn6c4illxjra8yki1fx7h77b38fixkcvc79mzasmv"; + rev = "v${version}"; + }; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/terraform-provider-ibm{,_v${version}}"; + + meta = with stdenv.lib; { + homepage = https://github.com/IBM-Cloud/terraform-provider-ibm; + description = "Terraform provider is used to manage IBM Cloud resources."; + platforms = platforms.all; + license = licenses.mpl20; + maintainers = with maintainers; [ jensbin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix new file mode 100644 index 000000000000..23c4f4bfa8b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix @@ -0,0 +1,51 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, libvirt, pkgconfig, makeWrapper, cdrtools }: + +# USAGE: +# install the following package globally or in nix-shell: +# +# (terraform.withPlugins (p: [p.libvirt])) +# +# configuration.nix: +# +# virtualisation.libvirtd.enable = true; +# +# terraform-provider-libvirt does not manage pools at the moment: +# +# $ virsh --connect "qemu:///system" pool-define-as default dir - - - - /var/lib/libvirt/images +# $ virsh --connect "qemu:///system" pool-start default +# +# pick an example from (i.e ubuntu): +# https://github.com/dmacvicar/terraform-provider-libvirt/tree/master/examples + +buildGoPackage rec { + pname = "terraform-provider-libvirt"; + version = "0.5.1"; + + goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt"; + + src = fetchFromGitHub { + owner = "dmacvicar"; + repo = "terraform-provider-libvirt"; + rev = "v${version}"; + sha256 = "0shnj5byqj3qzyqniiy1dcygd8xw1h2bx9z6mgcydw8k64fkm4bw"; + }; + + buildInputs = [ libvirt pkgconfig makeWrapper ]; + + # mkisofs needed to create ISOs holding cloud-init data, + # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630 + propagatedBuildInputs = [ cdrtools ]; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/terraform-provider-libvirt{,_v${version}}"; + + meta = with stdenv.lib; { + homepage = https://github.com/dmacvicar/terraform-provider-libvirt; + description = "Terraform provider for libvirt"; + platforms = platforms.linux; + license = licenses.asl20; + maintainers = with maintainers; [ mic92 ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.txt b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.txt new file mode 100644 index 000000000000..bdde66006787 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.txt @@ -0,0 +1,18 @@ +# lines starting with a # are comments + +# The accepted format (double escape all grep expresssions): +# <organisation> [grep-expression] [grep-v-expression] - include all repositories in the organisation. +# grep-expression: filter repo matching the expression +# grep-v-expression: filter repo not matching the expression +# <organisation>/<repo> - include only the named repository. + +# include all terraform-providers +terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\) + +# include providers from individual repos +ajbosco/terraform-provider-segment +camptocamp/terraform-provider-pass +poseidon/terraform-provider-matchbox +spaceapegames/terraform-provider-wavefront +tweag/terraform-provider-nixos +tweag/terraform-provider-secret diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all new file mode 100755 index 000000000000..893a6b1c7d7d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all @@ -0,0 +1,145 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p bash coreutils curl jq nix +# vim: ft=sh sw=2 et +# +# This scripts scans the github terraform-providers repo for new releases, +# generates the corresponding nix code and finally generates an index of +# all the providers given in ./providers.txt. +set -euo pipefail + +# the maximum number of attempts before giving up inside of GET and prefetch_github +readonly maxAttempts=30 + +GET() { + local url=$1 + local retry=1 + echo "fetching $url" >&2 + while ! curl -#fL -u "$GITHUB_AUTH" "$url"; do + echo "The curl command has failed. Attempt $retry/${maxAttempts}" >&2 + if [[ "${retry}" -eq "${maxAttempts}" ]]; then + exit 1 + fi + retry=$(( retry + 1 )) + sleep 5 + done +} + +get_org_repos() { + local org=$1 + local page=1 + GET "https://api.github.com/orgs/$org/repos?per_page=100" | jq -r '.[].name' +} + +get_repo_tags() { + local owner=$1 + local repo=$2 + GET "https://api.github.com/repos/$owner/$repo/git/refs/tags?per_page=100" | \ + jq -r '.[].ref' | \ + grep -v 'v\.' | \ + cut -d '/' -f 3- | \ + sort --version-sort +} + +prefetch_github() { + local owner=$1 + local repo=$2 + local rev=$3 + local retry=1 + while ! nix-prefetch-url --unpack "https://github.com/$owner/$repo/archive/$rev.tar.gz"; do + echo "The nix-prefetch-url command has failed. Attempt $retry/${maxAttempts}" >&2 + if [[ "${retry}" -eq "${maxAttempts}" ]]; then + exit 1 + fi + retry=$(( retry + 1 )) + sleep 5 + done +} + +echo_entry() { + local owner=$1 + local repo=$2 + local rev=$3 + local version=$(echo $3 | sed 's/^v//') + local sha256=$4 + cat <<EOF +{ + owner = "$owner"; + repo = "$repo"; + rev = "$rev"; + version = "$version"; + sha256 = "$sha256"; +}; +EOF +} + +indent() { sed 's/^/ /'; } + +add_repo() { + org="${1}" + repo="${2}" + + echo "*** $repo ***" + name=$(echo "$repo" | cut -d - -f 3-) + last_tag=$(get_repo_tags "$org" "$repo" | tail -1) + last_tag_sha256=$(prefetch_github "$org" "$repo" "$last_tag") + + { + echo " $name =" + echo_entry "$org" "$repo" "$last_tag" "$last_tag_sha256" | indent + } >> data.nix +} + +## Main ## + +cd "$(dirname "$0")" + +if [[ -z "${GITHUB_AUTH:-}" ]]; then + cat <<'HELP' +Missing the GITHUB_AUTH env. This is required to work around the 60 request +per hour rate-limit. + +Go to https://github.com/settings/tokens and create a new token with the +"public_repo" scope. + +Then `export GITHUB_AUTH=<your user>:<your token>` and run this script again. +HELP + exit 1 +fi + +cat <<HEADER > data.nix +# Generated with ./update-all +{ +HEADER + +while read line; do + IFS=' ' read -r -a fields <<< "$line" + if [[ "${#fields[@]}" -eq 0 ]]; then + continue + fi + + if [[ "${fields[0]}" = *"/"* ]]; then + org="$(echo "${fields[0]}" | cut -d/ -f1)" + repo="$(echo "${fields[0]}" | cut -d/ -f2)" + add_repo "${org}" "${repo}" + else + org="${fields[0]}" + repos=$(get_org_repos "$org") + if [[ "${#fields[@]}" -ge 2 ]] && [[ -n "${fields[1]}" ]]; then + repos="$( echo "${repos[@]}" | grep "${fields[1]}" )" + fi + if [[ "${#fields[@]}" -eq 3 ]] && [[ -n "${fields[2]}" ]]; then + repos="$( echo "${repos[@]}" | grep -v "${fields[2]}" )" + fi + repos="$( echo "${repos[@]}" | sort )" + + for repo in $repos; do + add_repo "$org" "$repo" + done + fi +done < <(grep -v '^#\|^$' providers.txt) + +cat <<FOOTER >> data.nix +} +FOOTER + +echo Done. diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix new file mode 100644 index 000000000000..b290f3b5f043 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix @@ -0,0 +1,141 @@ +{ stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper +, runCommand, writeText, terraform-providers }: + +let + goPackagePath = "github.com/hashicorp/terraform"; + + generic = { version, sha256, ... }@attrs: + let attrs' = builtins.removeAttrs attrs [ "version" "sha256" ]; + in buildGoPackage ({ + name = "terraform-${version}"; + + inherit goPackagePath; + + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "terraform"; + rev = "v${version}"; + inherit sha256; + }; + + postInstall = '' + # remove all plugins, they are part of the main binary now + for i in $bin/bin/*; do + if [[ $(basename $i) != terraform ]]; then + rm "$i" + fi + done + ''; + + preCheck = '' + export HOME=$TMP + ''; + + meta = with stdenv.lib; { + description = + "Tool for building, changing, and versioning infrastructure"; + homepage = "https://www.terraform.io/"; + license = licenses.mpl20; + maintainers = with maintainers; [ + zimbatm + peterhoeg + kalbasit + marsam + babariviere + ]; + }; + } // attrs'); + + pluggable = terraform: + let + withPlugins = plugins: + let + actualPlugins = plugins terraform.plugins; + + # Wrap PATH of plugins propagatedBuildInputs, plugins may have runtime dependencies on external binaries + wrapperInputs = lib.unique (lib.flatten + (lib.catAttrs "propagatedBuildInputs" + (builtins.filter (x: x != null) actualPlugins))); + + passthru = { + withPlugins = newplugins: + withPlugins (x: newplugins x ++ actualPlugins); + full = withPlugins lib.attrValues; + + # Ouch + overrideDerivation = f: + (pluggable (terraform.overrideDerivation f)).withPlugins plugins; + overrideAttrs = f: + (pluggable (terraform.overrideAttrs f)).withPlugins plugins; + override = x: + (pluggable (terraform.override x)).withPlugins plugins; + }; + # Don't bother wrapping unless we actually have plugins, since the wrapper will stop automatic downloading + # of plugins, which might be counterintuitive if someone just wants a vanilla Terraform. + in if actualPlugins == [ ] then + terraform.overrideAttrs + (orig: { passthru = orig.passthru // passthru; }) + else + lib.appendToName "with-plugins" (stdenv.mkDerivation { + inherit (terraform) name; + buildInputs = [ makeWrapper ]; + + buildCommand = '' + mkdir -p $out/bin/ + makeWrapper "${terraform.bin}/bin/terraform" "$out/bin/terraform" \ + --set NIX_TERRAFORM_PLUGIN_DIR "${ + buildEnv { + name = "tf-plugin-env"; + paths = actualPlugins; + } + }/bin" \ + --prefix PATH : "${lib.makeBinPath wrapperInputs}" + ''; + + inherit passthru; + }); + in withPlugins (_: [ ]); + + plugins = removeAttrs terraform-providers [ + "override" + "overrideDerivation" + "recurseForDerivations" + ]; +in rec { + terraform_0_11 = pluggable (generic { + version = "0.11.14"; + sha256 = "1bzz5wy13gh8j47mxxp6ij6yh20xmxd9n5lidaln3mf1bil19dmc"; + patches = [ ./provider-path.patch ]; + passthru = { inherit plugins; }; + }); + + terraform_0_11-full = terraform_0_11.full; + + terraform_0_12 = pluggable (generic { + version = "0.12.19"; + sha256 = "067gzxysz8r2myj3rh0vwrs0pmbgb21jxlmawlf4v0lkjnhj6kwv"; + patches = [ ./provider-path.patch ]; + passthru = { inherit plugins; }; + }); + + # Tests that the plugins are being used. Terraform looks at the specific + # file pattern and if the plugin is not found it will try to download it + # from the Internet. With sandboxing enable this test will fail if that is + # the case. + terraform_plugins_test = let + mainTf = writeText "main.tf" '' + resource "random_id" "test" {} + ''; + terraform = terraform_0_11.withPlugins (p: [ p.random ]); + test = + runCommand "terraform-plugin-test" { buildInputs = [ terraform ]; } '' + set -e + # make it fail outside of sandbox + export HTTP_PROXY=http://127.0.0.1:0 HTTPS_PROXY=https://127.0.0.1:0 + cp ${mainTf} main.tf + terraform init + touch $out + ''; + in test; + +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch new file mode 100644 index 000000000000..39a69e4a389f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch @@ -0,0 +1,16 @@ +diff --git a/command/init.go b/command/init.go +index 403ca245b..05d98329a 100644 +--- a/command/init.go ++++ b/command/init.go +@@ -64,6 +64,11 @@ func (c *InitCommand) Run(args []string) int { + return 1 + } + ++ val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR") ++ if ok { ++ flagPluginPath = append(flagPluginPath, val) ++ } ++ + if len(flagPluginPath) > 0 { + c.pluginPath = flagPluginPath + c.getPlugins = false diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix new file mode 100644 index 000000000000..ddeb5851037b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix @@ -0,0 +1,35 @@ +{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }: + +buildGoPackage rec { + pname = "terragrunt"; + version = "0.17.4"; + + goPackagePath = "github.com/gruntwork-io/terragrunt"; + + src = fetchFromGitHub { + owner = "gruntwork-io"; + repo = "terragrunt"; + rev = "v${version}"; + sha256 = "13hlv0ydmv8gpzgg6bfr7rp89xfw1bkgd0j684armw8zq29cmv3a"; + }; + + goDeps = ./deps.nix; + + buildInputs = [ makeWrapper ]; + + preBuild = '' + buildFlagsArray+=("-ldflags" "-X main.VERSION=v${version}") + ''; + + postInstall = '' + wrapProgram $bin/bin/terragrunt \ + --set TERRAGRUNT_TFPATH ${lib.getBin terraform.full}/bin/terraform + ''; + + meta = with stdenv.lib; { + description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices."; + homepage = https://github.com/gruntwork-io/terragrunt/; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix new file mode 100644 index 000000000000..8432a8366b7a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix @@ -0,0 +1,129 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/aws/aws-sdk-go"; + fetch = { + type = "git"; + url = "https://github.com/aws/aws-sdk-go"; + rev = "25253087ea42da08900c4c1fc34c04bdb4a97d5a"; + sha256 = "0p6mf53f4l9b26yc4qlm1s7yls73hsw8klyfhmnxhk2mq8k6ix4m"; + }; + } + { + goPackagePath = "github.com/bgentry/go-netrc"; + fetch = { + type = "git"; + url = "https://github.com/bgentry/go-netrc"; + rev = "9fd32a8b3d3d3f9d43c341bfe098430e07609480"; + sha256 = "0dn2h8avgavqdzdqnph8bkhj35bx0wssczry1zdczr22xv650g1l"; + }; + } + { + goPackagePath = "github.com/go-errors/errors"; + fetch = { + type = "git"; + url = "https://github.com/go-errors/errors"; + rev = "a6af135bd4e28680facf08a3d206b454abc877a4"; + sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-cleanhttp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-cleanhttp"; + rev = "d5fe4b57a186c716b0e00b8c301cbd9b4182694d"; + sha256 = "1m20y90syky4xr81sm3980jpil81nnpzmi6kv0vjr6p584gl1hn8"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-getter"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-getter"; + rev = "64040d90d4ab861e7e833d689dc76a0f176d8dec"; + sha256 = "0g25nx42z6ykd7jqzlrxf161h8lqrpxpddmbspl4w3a84wphhgms"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-version"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-version"; + rev = "23480c0665776210b5fbbac6eaaee40e3e6a96b7"; + sha256 = "056zs67diq3m7skmmq3pnz6wymfcg55dfs5zf86xkfqqpj10kyf7"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "f40e974e75af4e271d97ce0fc917af5898ae7bda"; + sha256 = "1w5w3m40xv85gngw8g1kjbcgah1vl4ardbpg2cxgj1svf80zazxx"; + }; + } + { + goPackagePath = "github.com/mattn/go-zglob"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-zglob"; + rev = "4959821b481786922ac53e7ef25c61ae19fb7c36"; + sha256 = "0rwkdw143kphpmingsrw1zp030zf3p08f64h347jpdm4lz8z5449"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "b8bc1bf767474819792c23f32d8286a45736f1c6"; + sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-testing-interface"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-testing-interface"; + rev = "a61a99592b77c9ba629d254a693acffaeb4b7e28"; + sha256 = "139hq835jpgk9pjg94br9d08nka8bfm7zyw92zxlwrkska4pgigx"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "00c29f56e2386353d58c599509e8dc3801b0d716"; + sha256 = "1vw8fvhax0d567amgvxr7glcl12lvzg2sbzs007q5k5bbwn1szyb"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "c679ae2cc0cb27ec3293fea7e254e47386f05d69"; + sha256 = "1rrdn7k83j492rzhqwkh6956sj8m2nbk44d7r1xa9nsn3hfwj691"; + }; + } + { + goPackagePath = "github.com/ulikunitz/xz"; + fetch = { + type = "git"; + url = "https://github.com/ulikunitz/xz"; + rev = "0c6b41e72360850ca4f98dc341fd999726ea007f"; + sha256 = "0a6l7sp67ipxim093qh6fvw8knbxj24l7bj5lykcddi5gwfi78n3"; + }; + } + { + goPackagePath = "github.com/urfave/cli"; + fetch = { + type = "git"; + url = "https://github.com/urfave/cli"; + rev = "8e01ec4cd3e2d84ab2fe90d8210528ffbb06d8ff"; + sha256 = "0cpr10n4ps3gcdbcink71ry9hzhdb5rrcysmylybs8h2lzxqgc1i"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix new file mode 100644 index 000000000000..6cc7735efeb0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix @@ -0,0 +1,29 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "tilt"; + /* Do not use "dev" as a version. If you do, Tilt will consider itself + running in development environment and try to serve assets from the + source tree, which is not there once build completes. */ + version = "0.10.13"; + + src = fetchFromGitHub { + owner = "windmilleng"; + repo = pname; + rev = "v${version}"; + sha256 = "02xlqgmmn1a7pz6sliharz8l9fbn2raxqkm75qxdqs1ncbvgc65k"; + }; + + goPackagePath = "github.com/windmilleng/tilt"; + + subPackages = [ "cmd/tilt" ]; + + buildFlagsArray = ("-ldflags=-X main.version=${version} -X main.date=2019-10-04"); + + meta = with stdenv.lib; { + description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production"; + homepage = https://tilt.dev/; + license = licenses.asl20; + maintainers = with maintainers; [ anton-dessiatov ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/compactor/default.nix b/nixpkgs/pkgs/applications/networking/compactor/default.nix new file mode 100644 index 000000000000..5d9a658972c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/compactor/default.nix @@ -0,0 +1,59 @@ +{ autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb +, libpcap, libtins, libtool, lzma, openssl, pkgconfig, stdenv, tcpdump, wireshark-cli +}: + +stdenv.mkDerivation rec { + pname = "compactor"; + version = "0.12.2"; + + src = fetchFromGitHub { + owner = "dns-stats"; + repo = pname; + rev = version; + sha256 = "17p9wsslsh6ifnadvyygr0cgir4q4iirxfz9zpkpbhh76cx2qnay"; + }; + + # cbor-diag, cddl and wireshark-cli are only used for tests. + nativeBuildInputs = [ autoconf automake libtool pkgconfig cbor-diag cddl wireshark-cli ]; + buildInputs = [ + boost + libpcap + openssl + libtins + lzma + libctemplate + libmaxminddb + ]; + + prePatch = '' + patchShebangs test-scripts/ + ''; + + preConfigure = '' + ${stdenv.shell} autogen.sh + substituteInPlace configure \ + --replace "/usr/bin/file" "${file}/bin/file" + ''; + CXXFLAGS = "-std=c++11"; + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--with-boost=${boost.dev}" + ]; + enableParallelBuilding = true; + + doCheck = true; + preCheck = '' + substituteInPlace test-scripts/check-live-pcap.sh \ + --replace "/usr/sbin/tcpdump" "${tcpdump}/bin/tcpdump" + rm test-scripts/same-tshark-output.sh + ''; # TODO: https://github.com/dns-stats/compactor/issues/49 (failing test) + + meta = with stdenv.lib; { + description = "Tools to capture DNS traffic and record it in C-DNS files"; + homepage = "http://dns-stats.org/"; + changelog = "https://github.com/dns-stats/${pname}/raw/${version}/ChangeLog.txt"; + license = [ licenses.boost licenses.mpl20 licenses.openssl ]; + maintainers = with maintainers; [ fdns ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/datovka/default.nix b/nixpkgs/pkgs/applications/networking/datovka/default.nix new file mode 100644 index 000000000000..12bad094fcaa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/datovka/default.nix @@ -0,0 +1,32 @@ +{ stdenv +, mkDerivation +, fetchurl +, libxml2 +, libisds +, qmake +, qtbase +, qtsvg +, pkg-config +}: + +mkDerivation rec { + pname = "datovka"; + version = "4.14.1"; + + src = fetchurl { + url = "https://secure.nic.cz/files/datove_schranky/${version}/${pname}-${version}.tar.xz"; + sha256 = "0jinxsm2zw77294vz9pjiqpgpzdwx5nijsi4nqzxna5rkmwdyxk6"; + }; + + buildInputs = [ libisds qmake qtbase qtsvg libxml2 ]; + + nativeBuildInputs = [ pkg-config ]; + + meta = with stdenv.lib; { + description = "Client application for operating Czech government-provided Databox infomation system"; + homepage = "https://www.datovka.cz/"; + license = licenses.lgpl3; + maintainers = [ maintainers.mmahut ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/davmail/default.nix b/nixpkgs/pkgs/applications/networking/davmail/default.nix new file mode 100644 index 000000000000..a84de6380668 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/davmail/default.nix @@ -0,0 +1,30 @@ +{ fetchurl, stdenv, jre, glib, libXtst, gtk2, makeWrapper, unzip }: + +stdenv.mkDerivation rec { + pname = "davmail"; + version = "5.4.0"; + src = fetchurl { + url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-3135.zip"; + sha256 = "05n2j5canh046744arvni6yfdsandvjkld93w3p7rg116jrh19gq"; + }; + + sourceRoot = "."; + + nativeBuildInputs = [ makeWrapper unzip ]; + + installPhase = '' + mkdir -p $out/share/davmail + cp -vR ./* $out/share/davmail + makeWrapper $out/share/davmail/davmail $out/bin/davmail \ + --prefix PATH : ${jre}/bin \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ glib gtk2 libXtst ]} + ''; + + meta = with stdenv.lib; { + homepage = http://davmail.sourceforge.net/; + description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers"; + maintainers = [ maintainers.hinton ]; + platforms = platforms.all; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/drive/default.nix b/nixpkgs/pkgs/applications/networking/drive/default.nix new file mode 100644 index 000000000000..0967fd95dc0b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/drive/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "drive"; + version = "0.3.8.1"; + + goPackagePath = "github.com/odeke-em/drive"; + subPackages = [ "cmd/drive" ]; + + src = fetchFromGitHub { + owner = "odeke-em"; + repo = "drive"; + rev = "v${version}"; + sha256 = "1b9cgc148rg5irg4jas10zv9i2km75x1zin25hld340dmpjcpi82"; + }; + + goDeps = ./deps.nix; + + meta = with lib; { + homepage = https://github.com/odeke-em/drive; + description = "Google Drive client for the commandline"; + license = licenses.asl20; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/drive/deps.nix b/nixpkgs/pkgs/applications/networking/drive/deps.nix new file mode 100644 index 000000000000..ca132288bd69 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/drive/deps.nix @@ -0,0 +1,192 @@ +# This file was generated by go2nix. +[ + { + goPackagePath = "cloud.google.com/go"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/gocloud"; + rev = "7450882a75c8d2600748666d1ed16e0a5afa532d"; + sha256 = "1hl2lsf9m1imdszf5mww4h6qrcjfdjghwh6l2kqsy85d32vbkjgd"; + }; + } + { + goPackagePath = "github.com/boltdb/bolt"; + fetch = { + type = "git"; + url = "https://github.com/boltdb/bolt"; + rev = "074dffcc83e9f421e261526d297cd93f22a34080"; + sha256 = "1kkmsby74n9czqx4mvng9x1cvnm4qgjl3dp6b4mfmg2b00fwbqnv"; + }; + } + { + goPackagePath = "github.com/cheggaaa/pb"; + fetch = { + type = "git"; + url = "https://github.com/cheggaaa/pb"; + rev = "ad4efe000aa550bb54918c06ebbadc0ff17687b9"; + sha256 = "0w6dl2s0vzb64q85yfy1hd5z2fq2vzwygiwl65is6hwa4vkc7hi3"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8"; + sha256 = "17lf13ndnai9a6dlmykqkdyzf1z04q7kffs0l7kvd78wpv3l6rm5"; + }; + } + { + goPackagePath = "github.com/odeke-em/cache"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/cache"; + rev = "baf8e436bc97557118cb0bf118ab8ac6aeeda381"; + sha256 = "00nvrnp40w4m1ld89k3s3gwi9qcfjxwi8hnp62zggnvqqyc4fyz1"; + }; + } + { + goPackagePath = "github.com/odeke-em/cli-spinner"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/cli-spinner"; + rev = "610063bb4aeef25f7645b3e6080456655ec0fb33"; + sha256 = "13wzs2qrxd72ah32ym0ppswhvyimjw5cqaq3q153y68vlvxd048c"; + }; + } + { + goPackagePath = "github.com/odeke-em/command"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/command"; + rev = "91ca5ec5e9a1bc2668b1ccbe0967e04a349e3561"; + sha256 = "1ghckzr8h99ckagpmb15p61xazdjmf9mjmlym634hsr9vcj84v62"; + }; + } + { + goPackagePath = "github.com/odeke-em/exponential-backoff"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/exponential-backoff"; + rev = "96e25d36ae36ad09ac02cbfe653b44c4043a8e09"; + sha256 = "1as21p2jj8xpahvdxqwsw2i1s3fll14dlc9j192iq7xl1ybwpqs6"; + }; + } + { + goPackagePath = "github.com/odeke-em/extractor"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/extractor"; + rev = "801861aedb854c7ac5e1329e9713023e9dc2b4d4"; + sha256 = "036zmnqxy48h6mxiwywgxix2p4fqvl4svlmcp734ri2rbq3cmxs1"; + }; + } + { + goPackagePath = "github.com/odeke-em/go-utils"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/go-utils"; + rev = "d915395a7a46a9fe73d93f4daeff5953eeac5ef2"; + sha256 = "0c1z4vmz69vxak8ldw4qjcgwia5ph969gj80az7a3824gia7zhbh"; + }; + } + { + goPackagePath = "github.com/odeke-em/go-uuid"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/go-uuid"; + rev = "b211d769a9aaba5b2b8bdbab5de3c227116f3c39"; + sha256 = "086l4xmwkjl5qcylcb5iwy9ksk9k5g43xwfbkcgvmhpz5mq3wmz2"; + }; + } + { + goPackagePath = "github.com/odeke-em/log"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/log"; + rev = "cad53c4565a0b0304577bd13f3862350bdc5f907"; + sha256 = "059c933qjikxlvaywzpzljqnab19svymbv6x32pc7khw156fh48w"; + }; + } + { + goPackagePath = "github.com/odeke-em/meddler"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/meddler"; + rev = "d2b51d2b40e786ab5f810d85e65b96404cf33570"; + sha256 = "0m0fqrn3kxy4swyk4ja1y42dn1i35rq9j85y11wb222qppy2342x"; + }; + } + { + goPackagePath = "github.com/odeke-em/pretty-words"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/pretty-words"; + rev = "9d37a7fcb4ae6f94b288d371938482994458cecb"; + sha256 = "1466wjhrg9lhqmzil1vf8qj16fxk32b5kxlcccyw2x6dybqa6pkl"; + }; + } + { + goPackagePath = "github.com/odeke-em/semalim"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/semalim"; + rev = "9c88bf5f9156ed06ec5110a705d41b8580fd96f7"; + sha256 = "0nq93dcl84cmlvg31rdk281ndlc2452zlh5s7i40hasi0z0kmn1k"; + }; + } + { + goPackagePath = "github.com/odeke-em/statos"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/statos"; + rev = "6f7e4db337bc11fc46d9b0456a93836cbbfe5141"; + sha256 = "1lijz3cxqxd78sl0nzfgvs675dg7q99jqwvhgisnk9n84ic4ffzj"; + }; + } + { + goPackagePath = "github.com/skratchdot/open-golang"; + fetch = { + type = "git"; + url = "https://github.com/skratchdot/open-golang"; + rev = "75fb7ed4208cf72d323d7d02fd1a5964a7a9073c"; + sha256 = "1b67imqbsdvg19vif1q1dfmapxy3v2anagacbql95fwnnw0v8jga"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "5dc8cb4b8a8eb076cbb5a06bc3b8682c15bdbbd3"; + sha256 = "18c1vpqlj10z1id66hglgnv51d9gwphgsdvxgghc6mcm01f1g5xj"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "6acef71eb69611914f7a30939ea9f6e194c78172"; + sha256 = "1fcsv50sbq0lpzrhx3m9jw51wa255fsbqjwsx9iszq4d0gysnnvc"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "1e695b1c8febf17aad3bfa7bf0a819ef94b98ad5"; + sha256 = "1sfgrc63jwslczkld7bsfipw1jm1rn06228dx0vc5gggd52155ys"; + }; + } + { + goPackagePath = "google.golang.org/api"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/google-api-go-client"; + rev = "eb84d1a029af1654777e7ba65c979085305c3e38"; + sha256 = "0ldmzcx5lxa81lcr39djcvyhd0ls11jlswj5877rinq3505ayf5l"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/droopy/default.nix b/nixpkgs/pkgs/applications/networking/droopy/default.nix new file mode 100644 index 000000000000..d71b863f881f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/droopy/default.nix @@ -0,0 +1,31 @@ +{ stdenv, lib, fetchFromGitHub, wrapPython }: + +with lib; + +stdenv.mkDerivation { + pname = "droopy"; + version = "20160830"; + + src = fetchFromGitHub { + owner = "stackp"; + repo = "Droopy"; + rev = "7a9c7bc46c4ff8b743755be86a9b29bd1a8ba1d9"; + sha256 = "03i1arwyj9qpfyyvccl21lbpz3rnnp1hsadvc0b23nh1z2ng9sff"; + }; + + nativeBuildInputs = [ wrapPython ]; + + installPhase = '' + install -vD droopy $out/bin/droopy + install -vD -m 644 man/droopy.1 $out/share/man/man1/droopy.1 + wrapPythonPrograms + ''; + + meta = { + description = "Mini Web server that let others upload files to your computer"; + homepage = http://stackp.online.fr/droopy; + license = licenses.bsd3; + maintainers = [ maintainers.Profpatsch ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/dropbox/cli.nix b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix new file mode 100644 index 000000000000..9b3b99708dfc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix @@ -0,0 +1,71 @@ +{ stdenv +, substituteAll +, pkgconfig +, fetchurl +, python3 +, dropbox +, gtk3 +, gnome3 +, gdk-pixbuf +, gobject-introspection +}: + +let + version = "2019.02.14"; + dropboxd = "${dropbox}/bin/dropbox"; +in +stdenv.mkDerivation { + pname = "dropbox-cli"; + inherit version; + + outputs = [ "out" "nautilusExtension" ]; + + src = fetchurl { + url = "https://linux.dropboxstatic.com/packages/nautilus-dropbox-${version}.tar.bz2"; + sha256 = "09yg7q45sycl88l3wq0byz4a9k6sxx3m0r3szinvisfay9wlj35f"; + }; + + strictDeps = true; + + patches = [ + (substituteAll { + src = ./fix-cli-paths.patch; + inherit dropboxd; + }) + ]; + + nativeBuildInputs = [ + pkgconfig + gobject-introspection + gdk-pixbuf + # only for build, the install command also wants to use GTK through introspection + # but we are using Nix for installation so we will not need that. + (python3.withPackages (ps: with ps; [ + docutils + pygobject3 + ])) + ]; + + buildInputs = [ + python3 + gtk3 + gnome3.nautilus + ]; + + configureFlags = [ + "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extensions-3.0" + ]; + + makeFlags = [ + "EMBLEM_DIR=${placeholder "nautilusExtension"}/share/nautilus-dropbox/emblems" + ]; + + meta = { + homepage = https://www.dropbox.com; + description = "Command line client for the dropbox daemon"; + license = stdenv.lib.licenses.gpl3Plus; + maintainers = with stdenv.lib.maintainers; [ the-kenny ]; + # NOTE: Dropbox itself only works on linux, so this is ok. + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dropbox/default.nix b/nixpkgs/pkgs/applications/networking/dropbox/default.nix new file mode 100644 index 000000000000..693a70182130 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dropbox/default.nix @@ -0,0 +1,85 @@ +{ stdenv, lib, buildFHSUserEnv, writeScript, makeDesktopItem }: + +let platforms = [ "i686-linux" "x86_64-linux" ]; in + +assert lib.elem stdenv.hostPlatform.system platforms; + +# Dropbox client to bootstrap installation. +# The client is self-updating, so the actual version may be newer. +let + version = "83.4.152"; + + arch = { + x86_64-linux = "x86_64"; + i686-linux = "x86"; + }.${stdenv.hostPlatform.system}; + + installer = "https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.${arch}-${version}.tar.gz"; +in + +let + desktopItem = makeDesktopItem { + name = "dropbox"; + exec = "dropbox"; + comment = "Sync your files across computers and to the web"; + desktopName = "Dropbox"; + genericName = "File Synchronizer"; + categories = "Network;FileTransfer;"; + startupNotify = "false"; + }; +in + +buildFHSUserEnv { + name = "dropbox"; + + targetPkgs = pkgs: with pkgs; with xorg; [ + libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender + libXxf86vm libxcb xkeyboardconfig + curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt + procps zlib mesa libxshmfence libpthreadstubs libappindicator + ]; + + extraInstallCommands = '' + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* $out/share/applications + ''; + + runScript = writeScript "install-and-start-dropbox" '' + export BROWSER=firefox + + set -e + + do_install= + if ! [ -d "$HOME/.dropbox-dist" ]; then + do_install=1 + else + installed_version=$(cat "$HOME/.dropbox-dist/VERSION") + latest_version=$(printf "${version}\n$installed_version\n" | sort -rV | head -n 1) + if [ "x$installed_version" != "x$latest_version" ]; then + do_install=1 + fi + fi + + if [ -n "$do_install" ]; then + installer=$(mktemp) + # Dropbox is not installed. + # Download and unpack the client. If a newer version is available, + # the client will update itself when run. + curl '${installer}' >"$installer" + pkill dropbox || true + rm -fr "$HOME/.dropbox-dist" + tar -C "$HOME" -x -z -f "$installer" + rm "$installer" + fi + + exec "$HOME/.dropbox-dist/dropboxd" "$@" + ''; + + meta = with lib; { + description = "Online stored folders (daemon version)"; + homepage = http://www.dropbox.com/; + license = licenses.unfree; + maintainers = with maintainers; [ ttuegel ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch b/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch new file mode 100644 index 000000000000..84cd8014e1e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch @@ -0,0 +1,11 @@ +--- a/dropbox.in ++++ b/dropbox.in +@@ -71,7 +71,7 @@ + + PARENT_DIR = os.path.expanduser("~") + DROPBOX_DIST_PATH = "%s/.dropbox-dist" % PARENT_DIR +-DROPBOXD_PATH = os.path.join(DROPBOX_DIST_PATH, "dropboxd") ++DROPBOXD_PATH = "@dropboxd@" + DESKTOP_FILE = "@DESKTOP_FILE_DIR@/dropbox.desktop" + + enc = locale.getpreferredencoding() diff --git a/nixpkgs/pkgs/applications/networking/dsvpn/default.nix b/nixpkgs/pkgs/applications/networking/dsvpn/default.nix new file mode 100644 index 000000000000..04d3887bf4ed --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dsvpn/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "dsvpn"; + version = "0.1.4"; + + src = fetchFromGitHub { + owner = "jedisct1"; + repo = pname; + rev = version; + sha256 = "1gbj3slwmq990qxsbsaxasi98alnnzv3adp6f8w8sxd4gi6qxhdh"; + }; + + installPhase = '' + runHook preInstall + + install -Dm755 -t $out/bin dsvpn + + runHook postInstall + ''; + + meta = with stdenv.lib; { + description = "A Dead Simple VPN"; + homepage = "https://github.com/jedisct1/dsvpn"; + license = licenses.mit; + maintainers = [ maintainers.marsam ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix new file mode 100644 index 000000000000..640421bef8f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, rustPlatform, makeWrapper, openssl }: + +with rustPlatform; + +buildRustPackage rec { + pname = "cfdyndns"; + version = "0.0.1"; + src = fetchFromGitHub { + owner = "colemickens"; + repo = "cfdyndns"; + rev = "v${version}"; + sha256 = "1mcdjykrgh0jq6k6y664lai8sbgzk6j7k0r944f43vg63d1jql5b"; + }; + + cargoSha256 = "1d7jpffkw2m2v37bfdqsl9sqwsl19cgglpa00lwy4ih09kzbc2n9"; + + buildInputs = [ makeWrapper openssl ]; + + installPhase = '' + mkdir -p $out/bin + cp -p target/release/cfdyndns $out/bin/ + ''; + + meta = with stdenv.lib; { + description = "CloudFlare Dynamic DNS Client"; + homepage = https://github.com/colemickens/cfdyndns; + license = stdenv.lib.licenses.mit; + maintainers = with maintainers; [ colemickens ]; + platforms = with platforms; linux; + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix new file mode 100644 index 000000000000..59b48df1cd03 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, fetchpatch }: + +stdenv.mkDerivation { + version = "3.3.2"; + pname = "enhanced-ctorrent-dhn"; + + src = fetchurl { + url = "http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh3.3.2.tar.gz"; + sha256 = "0qs8waqwllk56i3yy3zhncy7nsnhmf09a494p5siz4vm2k4ncwy8"; + }; + + # These patches come from Debian and fix CVE-2009-1759. + patches = [ + (fetchpatch { + url = "https://sources.debian.org/data/main/c/ctorrent/1.3.4.dnh3.3.2-5/debian/patches/cve-security-fix.diff"; + sha256 = "1qkzzm8sfspbcs10azmmif4qcr7pr8r38dsa2py84lsjm1yi3kls"; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/c/ctorrent/1.3.4.dnh3.3.2-5/debian/patches/FTBFS-fix.diff"; + sha256 = "1m3zh96xwqjjzsbg62f7kx0miams58nys1f484qhdn870b5x9p06"; + }) + ]; + + meta = { + description = "BitTorrent client written in C++"; + longDescription = '' + CTorrent, a BitTorrent client implemented in C++, with bugfixes and + performance enhancements. + ''; + homepage = http://www.rahul.net/dholmes/ctorrent/; + license = stdenv.lib.licenses.gpl2Plus; + platforms = stdenv.lib.platforms.unix; + maintainers = [ stdenv.lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/errbot/default.nix b/nixpkgs/pkgs/applications/networking/errbot/default.nix new file mode 100644 index 000000000000..402017e129d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/errbot/default.nix @@ -0,0 +1,53 @@ +{ lib, fetchFromGitHub, python, glibcLocales }: + +let + # errbot requires markdown<3, and is not compatible with it either. + py = python.override { + packageOverrides = self: super: { + markdown = super.markdown.overridePythonAttrs (oldAttrs: rec { + version = "2.6.11"; + src = super.fetchPypi { + pname = "Markdown"; + inherit version; + sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8"; + }; + }); + }; + }; + +in +py.pkgs.buildPythonApplication rec { + pname = "errbot"; + version = "6.1.1"; + + src = fetchFromGitHub { + owner = "errbotio"; + repo = "errbot"; + rev = version; + sha256 = "1s4dl1za5imwsv6j3y7m47dy91hmqd5n221kkqm9ni4mpzgpffz0"; + }; + + LC_ALL = "en_US.utf8"; + + buildInputs = [ glibcLocales ]; + propagatedBuildInputs = with py.pkgs; [ + webtest requests jinja2 flask dulwich + pyopenssl colorlog markdown ansi pygments + daemonize pygments-markdown-lexer telegram irc slackclient + sleekxmpp pyasn1 pyasn1-modules hypchat + ]; + + checkInputs = with py.pkgs; [ mock pytest ]; + # avoid tests that do network calls + checkPhase = '' + pytest tests -k 'not backup and not broken_plugin and not plugin_cycle' + ''; + + meta = with lib; { + description = "Chatbot designed to be simple to extend with plugins written in Python"; + homepage = http://errbot.io/; + maintainers = with maintainers; [ fpletz globin ]; + license = licenses.gpl3; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/esniper/default.nix b/nixpkgs/pkgs/applications/networking/esniper/default.nix new file mode 100644 index 000000000000..9de87ee178d1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/esniper/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchgit, openssl, curl, coreutils, gawk, bash, which }: + +stdenv.mkDerivation { + name = "esniper-2.35.0-18-g4a59da0"; + + src = fetchgit { + url = "https://git.code.sf.net/p/esniper/git"; + rev = "4a59da032aa4536b9e5ea95633247650412511db"; + sha256 = "0d3vazh5q7wymqahggbb2apl9hgrm037y4s3j91d24hjgk2pzzyd"; + }; + + buildInputs = [ openssl curl ]; + + # Add support for CURL_CA_BUNDLE variable. + # Fix <https://sourceforge.net/p/esniper/bugs/648/>. + patches = [ ./find-ca-bundle.patch ]; + + postInstall = '' + sed <"frontends/snipe" >"$out/bin/snipe" \ + -e "2i export PATH=\"$out/bin:${stdenv.lib.makeBinPath [ coreutils gawk bash which ]}:\$PATH\"" + chmod 555 "$out/bin/snipe" + ''; + + meta = with stdenv.lib; { + description = "Simple, lightweight tool for sniping eBay auctions"; + homepage = http://esniper.sourceforge.net; + license = licenses.gpl2; + maintainers = with maintainers; [ lovek323 peti ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch b/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch new file mode 100644 index 000000000000..e4df272a0c9a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch @@ -0,0 +1,26 @@ +diff -ubr '--exclude=*.o' esniper-2-27-0-orig/http.c esniper-2-27-0-patched/http.c +--- esniper-2-27-0-orig/http.c 2012-02-06 22:04:06.000000000 +0100 ++++ esniper-2-27-0-patched/http.c 2012-07-27 10:54:20.893054646 +0200 +@@ -200,6 +200,9 @@ + int + initCurlStuff(void) + { ++ /* Path to OpenSSL bundle file. */ ++ const char *ssl_capath=NULL; ++ + /* list for custom headers */ + struct curl_slist *slist=NULL; + +@@ -241,6 +244,12 @@ + if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_COOKIEFILE, ""))) + return initCurlStuffFailed(); + ++ /* If the environment variable CURL_CA_BUNDLE is set, pass through its ++ * contents to curl. */ ++ if ((ssl_capath = getenv("CURL_CA_BUNDLE"))) ++ if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_CAINFO, ssl_capath))) ++ return initCurlStuffFailed(); ++ + slist = curl_slist_append(slist, "Accept: text/*"); + slist = curl_slist_append(slist, "Accept-Language: en"); + slist = curl_slist_append(slist, "Accept-Charset: iso-8859-1,*,utf-8"); diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix new file mode 100644 index 000000000000..36b4732ca2e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, python3Packages, readline, ncurses, canto-daemon }: + +python3Packages.buildPythonApplication rec { + version = "0.9.9"; + pname = "canto-curses"; + + src = fetchFromGitHub { + owner = "themoken"; + repo = "canto-curses"; + rev = "v${version}"; + sha256 = "1vzb9n1j4gxigzll6654ln79lzbrrm6yy0lyazd9kldyl349b8sr"; + }; + + buildInputs = [ readline ncurses canto-daemon ]; + propagatedBuildInputs = [ canto-daemon ]; + + meta = { + description = "An ncurses-based console Atom/RSS feed reader"; + longDescription = '' + Canto is an Atom/RSS feed reader for the console that is meant to be + quick, concise, and colorful. It's meant to allow you to crank through + feeds like you've never cranked before by providing a minimal, yet + information packed interface. No navigating menus. No dense blocks of + unreadable white text. An interface with almost infinite customization + and extensibility using the excellent Python programming language. + ''; + homepage = https://codezen.org/canto-ng/; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix new file mode 100644 index 000000000000..e700c5634ad6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, python3Packages, }: + +python3Packages.buildPythonApplication rec { + version = "0.9.7"; + pname = "canto-daemon"; + + src = fetchFromGitHub { + owner = "themoken"; + repo = "canto-next"; + rev = "v${version}"; + sha256 = "1si53r8cd4avfc56r315zyrghkppnjd6n125z1agfv59i7hdmk3n"; + }; + + propagatedBuildInputs = with python3Packages; [ feedparser ]; + + meta = { + description = "Daemon for the canto Atom/RSS feed reader"; + longDescription = '' + Canto is an Atom/RSS feed reader for the console that is meant to be + quick, concise, and colorful. It's meant to allow you to crank through + feeds like you've never cranked before by providing a minimal, yet + information packed interface. No navigating menus. No dense blocks of + unreadable white text. An interface with almost infinite customization + and extensibility using the excellent Python programming language. + ''; + homepage = https://codezen.org/canto-ng/; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix new file mode 100644 index 000000000000..33f8d8ca2383 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, fetchFromGitHub +, autoreconfHook +, pkgconfig +, glib +, ronn +, curl +, id3lib +, libxml2 +, glibcLocales +}: + +stdenv.mkDerivation rec { + pname = "castget"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "mlj"; + repo = pname; + # Upstream uses `_` instead of `.` for the version + rev = "rel_${lib.replaceStrings ["."] ["_"] version}"; + sha256 = "1129x64rw587q3sdpa3lrgs0gni5f0siwbvmfz8ya4zkbhgi2ik7"; + }; + + # without this, the build fails because of an encoding issue with the manual page. + # https://stackoverflow.com/a/17031697/4935114 + # This requires glibcLocales to be present in the build so it will have an impact. + # See https://github.com/NixOS/nixpkgs/issues/8398 + preBuild = '' + export LC_ALL="en_US.UTF-8"; + ''; + + buildInputs = [ glib curl id3lib libxml2 ]; + nativeBuildInputs = [ + ronn + # See comment on locale above + glibcLocales + autoreconfHook + pkgconfig + ]; + + meta = with stdenv.lib; { + description = "A simple, command-line based RSS enclosure downloader"; + longDescription = '' + castget is a simple, command-line based RSS enclosure downloader. It is + primarily intended for automatic, unattended downloading of podcasts. + ''; + homepage = "https://castget.johndal.com/"; + maintainers = with maintainers; [ doronbehar ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix new file mode 100644 index 000000000000..c336d2d0bba6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, vala, gettext, python3 +, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts, fetchpatch +, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas, pantheon +, curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2 +}: + +stdenv.mkDerivation rec { + pname = "feedreader"; + version = "2.10.0"; + + src = fetchFromGitHub { + owner = "jangernert"; + repo = pname; + rev = "v${version}"; + sha256 = "154lzvd8acs4dyc91nlabpr284yrij8jkhgm0h18hp3cy0a11rv8"; + }; + + nativeBuildInputs = [ + meson ninja pkgconfig vala gettext appstream-glib desktop-file-utils + libxml2 python3 wrapGAppsHook + ]; + + buildInputs = [ + curl glib json-glib libnotify libsecret sqlite gumbo gtk3 + libgee libpeas gnome3.libsoup librest webkitgtk gsettings-desktop-schemas + gnome-online-accounts + ] ++ (with gst_all_1; [ + gstreamer gst-plugins-base gst-plugins-good + ]); + + postPatch = '' + patchShebangs build-aux/meson_post_install.py + ''; + + patches = [ + # Fixes build with libsecret + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/jangernert/FeedReader/pull/943.patch"; + sha256 = "0anrwvcg6607dzvfrhy5qcnpxzflskb3iy3khdg191aw1h2mqhb5"; + }) + ]; + + passthru = { + updateScript = pantheon.updateScript { + attrPath = pname; + }; + }; + + meta = with stdenv.lib; { + description = "A modern desktop application designed to complement existing web-based RSS accounts"; + homepage = https://jangernert.github.io/FeedReader/; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ edwtjo worldofpeace ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix new file mode 100644 index 000000000000..e01e4c4fc44f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix @@ -0,0 +1,59 @@ +{ stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkgconfig, libxml2, json_c, ncurses +, asciidoc, docbook_xml_dtd_45, libxslt, docbook_xsl, libiconv, Security, makeWrapper }: + +rustPlatform.buildRustPackage rec { + pname = "newsboat"; + version = "2.18"; + + src = fetchFromGitHub { + owner = "newsboat"; + repo = "newsboat"; + rev = "r${version}"; + sha256 = "1bg2qjkzdawn4fnn0w7jhw1dk6191w8axnqra43z21pinfyim6da"; + }; + + cargoSha256 = "0q0iqd8y9rph8pwild5i2kv00h217a166c88hxpmbrigq9w960lp"; + + postPatch = '' + substituteInPlace Makefile --replace "|| true" "" + # Allow other ncurses versions on Darwin + substituteInPlace config.sh \ + --replace "ncurses5.4" "ncurses" + ''; + + nativeBuildInputs = [ pkgconfig asciidoc docbook_xml_dtd_45 libxslt docbook_xsl ] + ++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper libiconv ]; + + buildInputs = [ stfl sqlite curl gettext libxml2 json_c ncurses ] + ++ stdenv.lib.optional stdenv.isDarwin Security; + + postBuild = '' + make + ''; + + NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare" + + stdenv.lib.optionalString stdenv.isDarwin " -Wno-error=format-security"; + + doCheck = true; + + checkPhase = '' + make test + ''; + + postInstall = '' + make prefix="$out" install + cp -r contrib $out + '' + stdenv.lib.optionalString stdenv.isDarwin '' + for prog in $out/bin/*; do + wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib" + done + ''; + + meta = with stdenv.lib; { + homepage = https://newsboat.org/; + description = "A fork of Newsbeuter, an RSS/Atom feed reader for the text console"; + maintainers = with maintainers; [ dotlambda nicknovitski ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix new file mode 100644 index 000000000000..7304fd2f654b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, python2Packages }: + +python2Packages.buildPythonApplication rec { + pname = "rawdog"; + version = "2.23"; + + src = fetchurl { + url = "https://offog.org/files/${pname}-${version}.tar.gz"; + sha256 = "18nyg19mwxyqdnykplkqmzb4n27vvrhvp639zai8f81gg9vdbsjp"; + }; + + propagatedBuildInputs = with python2Packages; [ feedparser ]; + + namePrefix = ""; + + meta = with stdenv.lib; { + homepage = https://offog.org/code/rawdog/; + description = "RSS Aggregator Without Delusions Of Grandeur"; + license = licenses.gpl2; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix new file mode 100644 index 000000000000..07f3f3fde0aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix @@ -0,0 +1,47 @@ +{ pythonPackages, fetchurl, lib, nixosTests }: + +with pythonPackages; + +buildPythonApplication rec { + pname = "rss2email"; + version = "3.11"; + + propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ]; + + src = fetchurl { + url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz"; + sha256 = "1vk5slp2mhmc1qj30igqkyq3z5h2bl1ayhafqrjapa6cg6rbvhrn"; + }; + + outputs = [ "out" "man" "doc" ]; + + postPatch = '' + # sendmail executable is called from PATH instead of sbin by default + sed -e 's|/usr/sbin/sendmail|sendmail|' \ + -i rss2email/config.py + ''; + + postInstall = '' + install -Dm 644 r2e.1 $man/share/man/man1/r2e.1 + # an alias for better finding the manpage + ln -s -T r2e.1 $man/share/man/man1/rss2email.1 + + # copy documentation + mkdir -p $doc/share/doc/rss2email + cp AUTHORS COPYING CHANGELOG README.rst $doc/share/doc/rss2email/ + ''; + + postCheck = '' + env PATH=$out/bin:$PATH python ./test/test.py + ''; + + meta = with lib; { + description = "A tool that converts RSS/Atom newsfeeds to email."; + homepage = https://pypi.python.org/pypi/rss2email; + license = licenses.gpl2; + maintainers = with maintainers; [ jb55 Profpatsch ]; + }; + passthru.tests = { + smoke-test = nixosTests.rss2email; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix new file mode 100644 index 000000000000..2bb592bfb42c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, qmake, qtwebengine, qttools, wrapGAppsHook, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "rssguard"; + version = "3.5.9"; + + src = fetchFromGitHub { + owner = "martinrotter"; + repo = pname; + rev = version; + sha256 = "0dvjcazvrgxfxg1gvznxj8kx569v4ivns0brq00cn2yxyd4wx43s"; + }; + + buildInputs = [ qtwebengine qttools ]; + nativeBuildInputs = [ qmake wrapGAppsHook wrapQtAppsHook ]; + qmakeFlags = [ "CONFIG+=release" ]; + + meta = with stdenv.lib; { + description = "Simple RSS/Atom feed reader with online synchronization"; + longDescription = '' + RSS Guard is a simple, light and easy-to-use RSS/ATOM feed aggregator + developed using Qt framework and with online feed synchronization support + for ownCloud/Nextcloud. + ''; + homepage = https://github.com/martinrotter/rssguard; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ jluttine ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix new file mode 100644 index 000000000000..3e7909c91c05 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, cppcheck, libmrss }: + +stdenv.mkDerivation { + pname = "rsstail"; + version = "2.1"; + + src = fetchFromGitHub { + sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6"; + rev = "6f2436185372b3f945a4989406c4b6a934fe8a95"; + repo = "rsstail"; + owner = "flok99"; + }; + + buildInputs = [ libmrss ]; + checkInputs = [ cppcheck ]; + + postPatch = '' + substituteInPlace Makefile --replace -liconv_hook "" + ''; + + makeFlags = [ "prefix=$(out)" ]; + enableParallelBuilding = true; + + doCheck = true; + + meta = with stdenv.lib; { + description = "Monitor RSS feeds for new entries"; + longDescription = '' + RSSTail is more or less an RSS reader: it monitors an RSS feed and if it + detects a new entry it'll emit only that new entry. + ''; + homepage = http://www.vanheusden.com/rsstail/; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/firehol/default.nix b/nixpkgs/pkgs/applications/networking/firehol/default.nix new file mode 100644 index 000000000000..ab2ca1601520 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/firehol/default.nix @@ -0,0 +1,108 @@ +{ stdenv, lib, fetchFromGitHub, pkgs +, autoconf, automake, curl, iprange, iproute, ipset, iptables, iputils +, kmod, nettools, procps, tcpdump, traceroute, utillinux, whois + +# If true, just install FireQOS without FireHOL +, onlyQOS ? false +}: + +stdenv.mkDerivation rec { + pname = "firehol"; + version = "3.1.6"; + + src = fetchFromGitHub { + owner = "firehol"; + repo = "firehol"; + rev = "v${version}"; + sha256 = "0l7sjpsb300kqv21hawd26a7jszlmafplacpn5lfj64m4yip93fd"; + }; + + patches = [ + # configure tries to determine if `ping6` or the newer, combined + # `ping` is installed by using `ping -6` which would fail. + (pkgs.writeText "firehol-ping6.patch" + '' + --- a/m4/ax_check_ping_ipv6.m4 + +++ b/m4/ax_check_ping_ipv6.m4 + @@ -42,16 +42,16 @@ AC_DEFUN([AX_CHECK_PING_IPV6], + + AC_CACHE_CHECK([whether ]PING[ has working -6 option], [ac_cv_ping_6_opt], + [ + - ac_cv_ping_6_opt=no + - if test -n "$PING"; then + - echo "Trying '$PING -6 -c 1 ::1'" >&AS_MESSAGE_LOG_FD + - $PING -6 -c 1 ::1 > conftest.out 2>&1 + - if test "$?" = 0; then + - ac_cv_ping_6_opt=yes + - fi + - cat conftest.out >&AS_MESSAGE_LOG_FD + - rm -f conftest.out + - fi + + ac_cv_ping_6_opt=yes + + #if test -n "$PING"; then + + # echo "Trying '$PING -6 -c 1 ::1'" >&AS_MESSAGE_LOG_FD + + # $PING -6 -c 1 ::1 > conftest.out 2>&1 + + # if test "$?" = 0; then + + # ac_cv_ping_6_opt=yes + + # fi + + # cat conftest.out >&AS_MESSAGE_LOG_FD + + # rm -f conftest.out + + #fi + ]) + + AS_IF([test "x$ac_cv_ping_6_opt" = "xyes"],[ + '') + + # put firehol config files in /etc/firehol (not $out/etc/firehol) + # to avoid error on startup, see #35114 + (pkgs.writeText "firehol-sysconfdir.patch" + '' + --- a/sbin/install.config.in.in + +++ b/sbin/install.config.in.in + @@ -4 +4 @@ + -SYSCONFDIR="@sysconfdir_POST@" + +SYSCONFDIR="/etc" + '') + + # we must quote "$UNAME_CMD", or the dash in /nix/store/...-coreutils-.../bin/uname + # will be interpreted as IFS -> error. this might be considered an upstream bug + # but only appears when there are dashes in the command path + (pkgs.writeText "firehol-uname-command.patch" + '' + --- a/sbin/firehol + +++ b/sbin/firehol + @@ -10295,7 +10295,7 @@ + kmaj=$1 + kmin=$2 + + - set -- $($UNAME_CMD -r) + + set -- $("$UNAME_CMD" -r) + eval $kmaj=\$1 $kmin=\$2 + } + kernel_maj_min KERNELMAJ KERNELMIN + '') + ]; + + nativeBuildInputs = [ autoconf automake ]; + buildInputs = [ + curl iprange iproute ipset iptables iputils kmod + nettools procps tcpdump traceroute utillinux whois + ]; + + preConfigure = "./autogen.sh"; + configureFlags = [ "--localstatedir=/var" + "--disable-doc" "--disable-man" ] ++ + lib.optional onlyQOS [ "--disable-firehol" ]; + + meta = with stdenv.lib; { + description = "A firewall for humans"; + longDescription = '' + FireHOL, an iptables stateful packet filtering firewall for humans! + FireQOS, a TC based bandwidth shaper for humans! + ''; + homepage = https://firehol.org/; + license = licenses.gpl2; + maintainers = with maintainers; [ geistesk ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/firehol/iprange.nix b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix new file mode 100644 index 000000000000..194dfc25ebaa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "iprange"; + version = "1.0.4"; + + src = fetchurl { + url = "https://github.com/firehol/iprange/releases/download/v${version}/iprange-${version}.tar.xz"; + sha256 = "0rymw4ydn09dng34q4g5111706fyppzs2gd5br76frgvfj4x2f71"; + }; + + meta = with stdenv.lib; { + description = "manage IP ranges"; + homepage = https://github.com/firehol/iprange; + license = licenses.gpl2; + maintainers = with maintainers; [ geistesk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/flent/default.nix b/nixpkgs/pkgs/applications/networking/flent/default.nix new file mode 100644 index 000000000000..19f813e5c758 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/flent/default.nix @@ -0,0 +1,41 @@ +{ stdenv, buildPythonApplication, fetchPypi, matplotlib, procps, pyqt5, python +, pythonPackages, qt5, sphinx, xvfb_run }: + +buildPythonApplication rec { + pname = "flent"; + version = "1.3.2"; + src = fetchPypi { + inherit pname version; + sha256 = "1k265xxxjld6q38m9lsgy7p0j70qp9a49vh9zg0njbi4i21lxq23"; + }; + + buildInputs = [ sphinx ]; + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + propagatedBuildInputs = [ matplotlib procps pyqt5 ]; + checkInputs = [ procps pythonPackages.mock pyqt5 xvfb_run ]; + + checkPhase = '' + cat >test-runner <<EOF + #!/bin/sh + + ${python.pythonForBuild.interpreter} nix_run_setup test + EOF + chmod +x test-runner + wrapQtApp test-runner --prefix PYTHONPATH : $PYTHONPATH + xvfb-run -s '-screen 0 800x600x24' ./test-runner + ''; + + postInstall = '' + for program in $out/bin/*; do + wrapQtApp $program --prefix PYTHONPATH : $PYTHONPATH + done + ''; + + meta = with stdenv.lib; { + description = "The FLExible Network Tester"; + homepage = "https://flent.org"; + license = licenses.gpl3; + + maintainers = [ maintainers.mmlb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/flent/http-getter.nix b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix new file mode 100644 index 000000000000..2bebf4b09601 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub, cmake +, curl, pkgconfig }: + +stdenv.mkDerivation { + pname = "http-getter"; + version = "unstable-2018-06-06"; + + src = fetchFromGitHub { + owner = "tohojo"; + repo = "http-getter"; + rev = "79bcccce721825a745f089d0c347bbaf2e6e12f4"; + sha256 = "1zxk52s1h5qx62idil237zdpj8agrry0w1xwkfx05wvv9sw4ld35"; + }; + + buildInputs = [ cmake pkgconfig curl ]; + + meta = with stdenv.lib; { + homepage = https://github.com/tohojo/http-getter; + description = "Simple getter for HTTP URLs using cURL"; + platforms = platforms.unix; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix new file mode 100644 index 000000000000..98d37fae9114 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix @@ -0,0 +1,62 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "FlexGet"; + version = "3.0.31"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "b9edd905556c77b40046b5d7a27151b76a1c9a8c43a4e4153279ad42a784844e"; + }; + + postPatch = '' + # remove dependency constraints + sed 's/==\([0-9]\.\?\)\+//' -i requirements.txt + + # "zxcvbn-python" was renamed to "zxcvbn", and we don't have the former in + # nixpkgs. See: https://github.com/NixOS/nixpkgs/issues/62110 + substituteInPlace requirements.txt --replace "zxcvbn-python" "zxcvbn" + ''; + + # ~400 failures + doCheck = false; + + propagatedBuildInputs = with python3Packages; [ + # See https://github.com/Flexget/Flexget/blob/master/requirements.in + APScheduler + beautifulsoup4 + cherrypy + colorclass + feedparser + flask-compress + flask-cors + flask_login + flask-restful + flask-restplus + flask + guessit + html5lib + jinja2 + jsonschema + loguru + progressbar + pynzb + pyparsing + PyRSS2Gen + dateutil + pyyaml + rebulk + requests + rpyc + sqlalchemy + terminaltables + zxcvbn + ]; + + meta = with lib; { + homepage = "https://flexget.com/"; + description = "Multipurpose automation tool for all of your media"; + license = licenses.mit; + maintainers = with maintainers; [ marsam ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix new file mode 100644 index 000000000000..f1b809009ad5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix @@ -0,0 +1,64 @@ +{ stdenv +, fetchurl + +, dbus +, gettext +, gnutls +, gtk2 +, libfilezilla +, libidn +, nettle +, pkgconfig +, pugixml +, sqlite +, tinyxml +, wxGTK30 +, xdg_utils +}: + +stdenv.mkDerivation rec { + pname = "filezilla"; + version = "3.46.0"; + + src = fetchurl { + url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2"; + sha256 = "0v7656p7b6w88a96wj8058b13yxbwi186l092i9whrisngnv2pnf"; + }; + + configureFlags = [ + "--disable-manualupdatecheck" + "--disable-autoupdatecheck" + ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + dbus + gettext + gnutls + gtk2 + libfilezilla + libidn + nettle + pugixml + sqlite + tinyxml + wxGTK30 + xdg_utils + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = "https://filezilla-project.org/"; + description = "Graphical FTP, FTPS and SFTP client"; + longDescription = '' + FileZilla Client is a free, open source FTP client. It supports + FTP, SFTP, and FTPS (FTP over SSL/TLS). The client is available + under many platforms, binaries for Windows, Linux and macOS are + provided. + ''; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix new file mode 100644 index 000000000000..cb40c347e1cf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, vala +, gtk3, libgee, libsoup, libsecret, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "taxi"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "Alecaddd"; + repo = pname; + rev = "v${version}"; + sha256 = "01c552w68576pnsyqbwy3hjhbww6vys3r3s0wxjdiscjqj1aawqg"; + }; + + nativeBuildInputs = [ + vala + gobject-introspection + meson + ninja + pkgconfig + python3 + wrapGAppsHook + ]; + + buildInputs = [ + pantheon.granite + libgee + gtk3 + libsecret + libsoup + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = pantheon.updateScript { + attrPath = pname; + }; + }; + + meta = with stdenv.lib; { + description = "The FTP Client that drives you anywhere"; + homepage = https://github.com/Alecaddd/taxi; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ worldofpeace ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gdrive/default.nix b/nixpkgs/pkgs/applications/networking/gdrive/default.nix new file mode 100644 index 000000000000..4a4c93128dfe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gdrive/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "gdrive"; + version = "2.1.0"; + rev = version; + + goPackagePath = "github.com/prasmussen/gdrive"; + + src = fetchFromGitHub { + owner = "prasmussen"; + repo = "gdrive"; + sha256 = "0ywm4gdmrqzb1a99vg66a641r74p7lglavcpgkm6cc2gdwzjjfg7"; + inherit rev; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/prasmussen/gdrive; + description = "A command line utility for interacting with Google Drive"; + platforms = platforms.unix; + license = licenses.mit; + maintainers = [ maintainers.rzetterberg ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gmailieer/default.nix b/nixpkgs/pkgs/applications/networking/gmailieer/default.nix new file mode 100644 index 000000000000..a20728e2199f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gmailieer/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + name = "gmailieer-${version}"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "gauteh"; + repo = "gmailieer"; + rev = "v${version}"; + sha256 = "1zzylv8xbcrh34bz0s29dawzcyx39lai8y8wk0bl4x75v1jfynvf"; + }; + + propagatedBuildInputs = with python3Packages; [ + notmuch + oauth2client + google_api_python_client + tqdm + ]; + + meta = with stdenv.lib; { + description = "Fast email-fetching and two-way tag synchronization between notmuch and GMail"; + longDescription = '' + This program can pull email and labels (and changes to labels) + from your GMail account and store them locally in a maildir with + the labels synchronized with a notmuch database. The changes to + tags in the notmuch database may be pushed back remotely to your + GMail account. + ''; + homepage = https://github.com/gauteh/gmailieer; + repositories.git = https://github.com/gauteh/gmailieer.git; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ kaiha ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix new file mode 100644 index 000000000000..1e6a0fd5b7f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix @@ -0,0 +1,32 @@ +{ callPackage }: + +let + stableVersion = "2.2.3"; + previewVersion = stableVersion; + addVersion = args: + let version = if args.stable then stableVersion else previewVersion; + branch = if args.stable then "stable" else "preview"; + in args // { inherit version branch; }; + mkGui = args: callPackage (import ./gui.nix (addVersion args)) { }; + mkServer = args: callPackage (import ./server.nix (addVersion args)) { }; + guiSrcHash = "1l40q3d3hsmhgwb4d8hj73vhgckm0dvsc6l6qzacypd202iq1v8a"; + serverSrcHash = "1qcypb1rmfdl8fl3ykqf5phcapmjid6jrxd6xpncd5dhyl2hr94n"; +in { + guiStable = mkGui { + stable = true; + sha256Hash = guiSrcHash; + }; + guiPreview = mkGui { + stable = false; + sha256Hash = guiSrcHash; + }; + + serverStable = mkServer { + stable = true; + sha256Hash = serverSrcHash; + }; + serverPreview = mkServer { + stable = false; + sha256Hash = serverSrcHash; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix new file mode 100644 index 000000000000..7c155181c502 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix @@ -0,0 +1,48 @@ +{ stable, branch, version, sha256Hash }: + +{ stdenv, python3, fetchFromGitHub }: + +let + python = python3.override { + packageOverrides = self: super: { + jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec { + version = "2.6.0"; + src = oldAttrs.src.override { + inherit version; + sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg"; + }; + }); + }; + }; +in python.pkgs.buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "gns3-gui"; + + src = fetchFromGitHub { + owner = "GNS3"; + repo = pname; + rev = "v${version}"; + sha256 = sha256Hash; + }; + + propagatedBuildInputs = with python.pkgs; [ + raven psutil jsonschema # tox for check + # Runtime dependencies + sip (pyqt5.override { withWebSockets = true; }) distro setuptools + ]; + + doCheck = false; # Failing + + meta = with stdenv.lib; { + description = "Graphical Network Simulator 3 GUI (${branch} release)"; + longDescription = '' + Graphical user interface for controlling the GNS3 network simulator. This + requires access to a local or remote GNS3 server (it's recommended to + download the official GNS3 VM). + ''; + homepage = https://www.gns3.com/; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix new file mode 100644 index 000000000000..db2e085c180d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix @@ -0,0 +1,58 @@ +{ stable, branch, version, sha256Hash }: + +{ stdenv, python3, fetchFromGitHub }: + +let + python = python3.override { + packageOverrides = self: super: { + jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec { + version = "2.6.0"; + src = oldAttrs.src.override { + inherit version; + sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg"; + }; + }); + }; + }; +in python.pkgs.buildPythonPackage { + pname = "gns3-server"; + inherit version; + + src = fetchFromGitHub { + owner = "GNS3"; + repo = "gns3-server"; + rev = "v${version}"; + sha256 = sha256Hash; + }; + + postPatch = '' + # Only 2.x is problematic: + sed -iE "s/prompt-toolkit==1.0.15/prompt-toolkit<2.0.0/" requirements.txt + ''; + + propagatedBuildInputs = with python.pkgs; [ + aiohttp-cors yarl aiohttp multidict setuptools + jinja2 psutil zipstream raven jsonschema distro async_generator aiofiles + (python.pkgs.callPackage ../../../development/python-modules/prompt_toolkit/1.nix {}) + ]; + + # Requires network access + doCheck = false; + + postInstall = '' + rm $out/bin/gns3loopback # For Windows only + ''; + + meta = with stdenv.lib; { + description = "Graphical Network Simulator 3 server (${branch} release)"; + longDescription = '' + The GNS3 server manages emulators such as Dynamips, VirtualBox or + Qemu/KVM. Clients like the GNS3 GUI control the server using a HTTP REST + API. + ''; + homepage = https://www.gns3.com/; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix new file mode 100644 index 000000000000..830eae1fc281 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, zlib +, ocaml, dune, ocamlfuse, findlib, gapi_ocaml, ocaml_sqlite3, camlidl }: + +stdenv.mkDerivation rec { + pname = "google-drive-ocamlfuse"; + version = "0.7.2"; + + src = fetchFromGitHub { + owner = "astrada"; + repo = "google-drive-ocamlfuse"; + rev = "v${version}"; + sha256 = "1l6b4bs5x373pw210nl8xal03ns2ib1ls49y64s3lqjfh5wjmnjy"; + }; + + nativeBuildInputs = [ dune ]; + + buildInputs = [ zlib ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl ]; + + buildPhase = "jbuilder build @install"; + installPhase = "mkdir $out && dune install --prefix $out"; + + meta = { + homepage = http://gdfuse.forge.ocamlcore.org/; + description = "A FUSE-based file system backed by Google Drive, written in OCaml"; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ obadz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix b/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix new file mode 100644 index 000000000000..f90e35ca7e2e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, ncurses }: + +stdenv.mkDerivation rec { + pname = "gopher"; + version = "3.0.17"; + + src = fetchFromGitHub { + owner = "jgoerzen"; + repo = pname; + rev = "release/${version}"; + sha256 = "1j6xh5l8v231d4mwl9gj1c34dc0jmazz6zg1qqfxmqr9y609jq3h"; + }; + + buildInputs = [ ncurses ]; + + preConfigure = "export LIBS=-lncurses"; + + meta = with stdenv.lib; { + homepage = http://gopher.quux.org:70/devel/gopher; + description = "A ncurses gopher client"; + platforms = platforms.linux; # clang doesn't like local regex.h + license = licenses.gpl2; + maintainers = with maintainers; [ sternenseemann ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gopher/gopherclient/default.nix b/nixpkgs/pkgs/applications/networking/gopher/gopherclient/default.nix new file mode 100644 index 000000000000..45d9235afc98 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gopher/gopherclient/default.nix @@ -0,0 +1,45 @@ +{ stdenv, buildGoPackage, fetchgit, makeWrapper, pkgconfig, qtbase, qtdeclarative, qtwebengine }: + +buildGoPackage rec { + pname = "gopherclient"; + version = "2016-10-02"; + rev = "91c41b5542d08001636708e2a5054521a6004702"; + + goPackagePath = "github.com/prologic/gopherclient"; + + src = fetchgit { + inherit rev; + url = "https://github.com/prologic/gopherclient"; + sha256 = "0b1gvxhv4zg930hvric9mmbfp0lnww0sqlkkfbzfkif3wz9ni5y9"; + }; + + nativeBuildInputs = [ makeWrapper pkgconfig ]; + + buildInputs = [ qtbase qtdeclarative qtwebengine ]; + + preBuild = '' + # Generate gopherclient resources with genqrc. + ln -s ${goPackagePath}/vendor/gopkg.in go/src/ + GOBIN="$(pwd)" go install -v gopkg.in/qml.v1/cmd/genqrc + PATH="$(pwd):$PATH" go generate ${goPackagePath} + ''; + + NIX_CFLAGS_COMPILE = [ + # go-qml needs private Qt headers. + "-I${qtbase.dev}/include/QtCore/${qtbase.version}" + ]; + + postInstall = '' + # https://github.com/prologic/gopherclient/#usage + wrapProgram $bin/bin/gopherclient --prefix GODEBUG , cgocheck=0 + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/prologic/gopherclient; + description = "Gopher Qt GUI client"; + license = licenses.mit; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix new file mode 100644 index 000000000000..b0f21f6f7e0b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix @@ -0,0 +1,58 @@ +{ mkDerivation, stdenv, lib, fetchurl, rpmextract, autoPatchelfHook , libuuid +, libXtst, libXfixes, glib, gst_all_1, alsaLib, freetype, fontconfig , libXext +, libGL, libpng, libXScrnSaver, libxcb, xorg, libpulseaudio, libdrm +}: +mkDerivation rec { + pname = "hpmyroom"; + version = "11.1.0.0508"; + + src = fetchurl { + url = "https://www.myroom.hpe.com/downloadfiles/${pname}-${version}.x86_64.rpm"; + sha256 = "1j7mzvf349yxb42m8syh73gpvil01hy1a2wrr0rdzb2ijfnkxyaa"; + }; + + nativeBuildInputs = [ + rpmextract autoPatchelfHook + ]; + + buildInputs = [ + libuuid libXtst libXScrnSaver libXfixes alsaLib freetype fontconfig libXext + libGL libpng libxcb libpulseaudio libdrm + glib # For libgobject + stdenv.cc.cc # For libstdc++ + xorg.libX11 + ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]); + + unpackPhase = '' + rpmextract $src + ''; + + installPhase = '' + runHook preInstall + + mv usr $out + + runHook postInstall + ''; + + qtWrapperArgs = [ + "--prefix QT_XKB_CONFIG_ROOT : '${xorg.xkeyboardconfig}/share/X11/xkb'" + ]; + + postFixup = '' + substituteInPlace $out/share/applications/HP-myroom.desktop \ + --replace /usr/bin/hpmyroom hpmyroom \ + --replace Icon=/usr/share/hpmyroom/Resources/MyRoom.png Icon=$out/share/hpmyroom/Resources/MyRoom.png + + ln -s ${libpng}/lib/libpng.so $out/lib/hpmyroom/libpng15.so.15 + ''; + + meta = { + description = "Client for HPE's MyRoom web conferencing solution"; + maintainers = with lib.maintainers; [ johnazoidberg ]; + license = lib.licenses.unfree; + homepage = "https://myroom.hpe.com"; + # TODO: A Darwin binary is available upstream + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix new file mode 100644 index 000000000000..75c1cdaece96 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix @@ -0,0 +1,33 @@ +{ lib, buildGoModule, fetchFromGitHub, fetchpatch }: + +buildGoModule rec { + pname = "hydroxide"; + version = "0.2.11"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = pname; + rev = "v${version}"; + sha256 = "0rn35iyli80kgj3yn93lrx0ybgc8fhvmkvx1d18ill7r4cmavand"; + }; + + modSha256 = "0b19rcif8yiyvhrsjd3q5nsvr580lklamlphx4dk47n456ckcqfp"; + + # FIXME: remove with next release + patches = [ + (fetchpatch { + url = "https://github.com/emersion/hydroxide/commit/80e0fa6f3e0154338fb0af8a82ca32ae6281dd15.patch"; + sha256 = "1xi0clzgz14a7sxnwr0li7sz9p05sfh3zh5iqg2qz5f415k9jknj"; + }) + ]; + + subPackages = [ "cmd/hydroxide" ]; + + meta = with lib; { + description = "A third-party, open-source ProtonMail bridge"; + homepage = "https://github.com/emersion/hydroxide"; + license = licenses.mit; + maintainers = with maintainers; [ filalex77 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/daq/default.nix b/nixpkgs/pkgs/applications/networking/ids/daq/default.nix new file mode 100644 index 000000000000..9af105ad52eb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/daq/default.nix @@ -0,0 +1,27 @@ +{stdenv, fetchurl, flex, bison, libpcap, libdnet, libnfnetlink, libnetfilter_queue}: + +stdenv.mkDerivation rec { + name = "daq-2.2.2"; + + src = fetchurl { + name = "${name}.tar.gz"; + url = "https://snort.org/downloads/archive/snort/${name}.tar.gz"; + sha256 = "0yvzscy7vqj7s5rccza0f7p6awghfm3yaxihx1h57lqspg51in3w"; + }; + + buildInputs = [ flex bison libpcap libdnet libnfnetlink libnetfilter_queue]; + + configureFlags = [ + "--enable-nfq-module=yes" + "--with-dnet-includes=${libdnet}/includes" + "--with-dnet-libraries=${libdnet}/lib" + ]; + + meta = { + description = "Data AcQuisition library (DAQ), for packet I/O"; + homepage = https://www.snort.org; + maintainers = with stdenv.lib.maintainers; [ aycanirican ]; + license = stdenv.lib.licenses.gpl2; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/snort/default.nix b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix new file mode 100644 index 000000000000..88df3857ec14 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix @@ -0,0 +1,35 @@ +{stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison, makeWrapper}: + +stdenv.mkDerivation rec { + version = "2.9.11.1"; + pname = "snort"; + + src = fetchurl { + name = "${pname}-${version}.tar.gz"; + url = "https://snort.org/downloads/archive/snort/${pname}-${version}.tar.gz"; + sha256 = "1ka67zrrhs32c729v4h76mvv2723mij0adxx0iaza2d1qpm3lswz"; + }; + + buildInputs = [ makeWrapper libpcap pcre libdnet daq zlib flex bison ]; + + enableParallelBuilding = true; + + configureFlags = [ + "--disable-static-daq" + "--enable-control-socket" + "--with-daq-includes=${daq}/includes" + "--with-daq-libraries=${daq}/lib" + ]; + + postInstall = '' + wrapProgram $out/bin/snort --add-flags "--daq-dir ${daq}/lib/daq --dynamic-preprocessor-lib-dir $out/lib/snort_dynamicpreprocessor/ --dynamic-engine-lib-dir $out/lib/snort_dynamicengine" + ''; + + meta = { + description = "Network intrusion prevention and detection system (IDS/IPS)"; + homepage = https://www.snort.org; + maintainers = with stdenv.lib.maintainers; [ aycanirican ]; + license = stdenv.lib.licenses.gpl2; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch b/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch new file mode 100644 index 000000000000..d4e8c95fea22 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch @@ -0,0 +1,19 @@ +*** suricata-5.0.0/ebpf/Makefile.in 2019-10-16 22:39:13.174649416 +0200 +--- suricata-5.0.0/ebpf/Makefile.in.fixed 2019-10-16 22:38:41.822201802 +0200 +*************** +*** 527,533 **** + @BUILD_EBPF_TRUE@$(BPF_TARGETS): %.bpf: %.c + # From C-code to LLVM-IR format suffix .ll (clang -S -emit-llvm) + @BUILD_EBPF_TRUE@ ${CLANG} -Wall $(BPF_CFLAGS) -O2 \ +! @BUILD_EBPF_TRUE@ -I/usr/include/$(build_cpu)-$(build_os)/ \ + @BUILD_EBPF_TRUE@ -D__KERNEL__ -D__ASM_SYSREG_H \ + @BUILD_EBPF_TRUE@ -target bpf -S -emit-llvm $< -o ${@:.bpf=.ll} + # From LLVM-IR to BPF-bytecode in ELF-obj file +--- 527,533 ---- + @BUILD_EBPF_TRUE@$(BPF_TARGETS): %.bpf: %.c + # From C-code to LLVM-IR format suffix .ll (clang -S -emit-llvm) + @BUILD_EBPF_TRUE@ ${CLANG} -Wall $(BPF_CFLAGS) -O2 \ +! @BUILD_EBPF_TRUE@ -idirafter ../bpf_stubs_workaround \ + @BUILD_EBPF_TRUE@ -D__KERNEL__ -D__ASM_SYSREG_H \ + @BUILD_EBPF_TRUE@ -target bpf -S -emit-llvm $< -o ${@:.bpf=.ll} + # From LLVM-IR to BPF-bytecode in ELF-obj file diff --git a/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix b/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix new file mode 100644 index 000000000000..d0829fd73a99 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix @@ -0,0 +1,158 @@ +{ stdenv +, lib +, fetchurl +, clang +, llvm +, pkgconfig +, makeWrapper +, file +, hyperscan +, jansson +, libbpf +, libcap_ng +, libelf +, libevent +, libmaxminddb +, libnet +, libnetfilter_log +, libnetfilter_queue +, libnfnetlink +, libpcap +, libyaml +, luajit +, lz4 +, nspr +, nss +, pcre +, python +, zlib +, redisSupport ? true, redis, hiredis +, rustSupport ? true, rustc, cargo +}: let + libmagic = file; + hyperscanSupport = stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"; +in +stdenv.mkDerivation rec { + pname = "suricata"; + version = "5.0.1"; + + src = fetchurl { + url = "https://www.openinfosecfoundation.org/download/${pname}-${version}.tar.gz"; + sha256 = "034b0nl0hkh0v26gwbawi2wdv7mb9p54cfg8gc9b8hsw49k3c1wh"; + }; + + nativeBuildInputs = [ + clang + llvm + makeWrapper + pkgconfig + ] + ++ lib.optionals rustSupport [ rustc cargo ] + ; + + buildInputs = [ + jansson + libbpf + libcap_ng + libelf + libevent + libmagic + libmaxminddb + libnet + libnetfilter_log + libnetfilter_queue + libnfnetlink + libpcap + libyaml + luajit + lz4 + nspr + nss + pcre + python + zlib + ] + ++ lib.optional hyperscanSupport hyperscan + ++ lib.optionals redisSupport [ redis hiredis ] + ; + + enableParallelBuilding = true; + + patches = lib.optional stdenv.is64bit ./bpf_stubs_workaround.patch; + + postPatch = '' + substituteInPlace ./configure \ + --replace "/usr/bin/file" "${file}/bin/file" + substituteInPlace ./libhtp/configure \ + --replace "/usr/bin/file" "${file}/bin/file" + + mkdir -p bpf_stubs_workaround/gnu + touch bpf_stubs_workaround/gnu/stubs-32.h + ''; + + configureFlags = [ + "--disable-gccmarch-native" + "--enable-af-packet" + "--enable-ebpf" + "--enable-ebpf-build" + "--enable-gccprotect" + "--enable-geoip" + "--enable-luajit" + "--enable-nflog" + "--enable-nfqueue" + "--enable-pie" + "--disable-prelude" + "--enable-python" + "--enable-unix-socket" + "--localstatedir=/var" + "--sysconfdir=/etc" + "--with-libnet-includes=${libnet}/include" + "--with-libnet-libraries=${libnet}/lib" + ] + ++ lib.optionals hyperscanSupport [ + "--with-libhs-includes=${hyperscan.dev}/include/hs" + "--with-libhs-libraries=${hyperscan}/lib" + ] + ++ lib.optional redisSupport "--enable-hiredis" + ++ lib.optionals rustSupport [ + "--enable-rust" + "--enable-rust-experimental" + ]; + + postConfigure = '' + # Avoid unintended clousure growth. + sed -i 's|/nix/store/\(.\{8\}\)[^-]*-|/nix/store/\1...-|g' ./src/build-info.h + ''; + + hardeningDisable = [ "stackprotector" ]; + + installFlags = [ + "e_localstatedir=\${TMPDIR}" + "e_logdir=\${TMPDIR}" + "e_logcertsdir=\${TMPDIR}" + "e_logfilesdir=\${TMPDIR}" + "e_rundir=\${TMPDIR}" + "e_sysconfdir=\${out}/etc/suricata" + "e_sysconfrulesdir=\${out}/etc/suricata/rules" + "localstatedir=\${TMPDIR}" + "runstatedir=\${TMPDIR}" + "sysconfdir=\${out}/etc" + ]; + + installTargets = [ "install" "install-conf" ]; + + postInstall = '' + wrapProgram "$out/bin/suricatasc" \ + --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") + substituteInPlace "$out/etc/suricata/suricata.yaml" \ + --replace "/etc/suricata" "$out/etc/suricata" + ''; + + meta = with stdenv.lib; { + description = "A free and open source, mature, fast and robust network threat detection engine"; + homepage = "https://suricata-ids.org"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ magenbluten ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix new file mode 100644 index 000000000000..947abc39c21a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix @@ -0,0 +1,31 @@ +{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, zlib, file, curl +, libmaxminddb, gperftools, python, swig, rocksdb }: + +stdenv.mkDerivation rec { + pname = "zeek"; + version = "3.0.1"; + + src = fetchurl { + url = "https://www.zeek.org/downloads/zeek-${version}.tar.gz"; + sha256 = "1lhik212wrbi092qizc08f3i0b9pj318sxwm0abc5jc3v3pz7x3r"; + }; + + nativeBuildInputs = [ cmake flex bison file ]; + buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig rocksdb ]; + + enableParallelBuilding = true; + + cmakeFlags = [ + "-DPY_MOD_INSTALL_DIR=${placeholder "out"}/${python.sitePackages}" + "-DENABLE_PERFTOOLS=true" + "-DINSTALL_AUX_TOOLS=true" + ]; + + meta = with stdenv.lib; { + description = "Powerful network analysis framework much different from a typical IDS"; + homepage = "https://www.zeek.org"; + license = licenses.bsd3; + maintainers = with maintainers; [ pSub marsam tobim ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ike/default.nix b/nixpkgs/pkgs/applications/networking/ike/default.nix new file mode 100644 index 000000000000..3baa1352a809 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ike/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper +, gcc, nettools, iproute, linuxHeaders }: + +# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp"; +# launch with "iked -f /etc/iked.conf" + +# NOTE: my testings reveal that kernels 3.11.10 and 3.12.6 won't let the traffic through the tunnel, +# so I'm sticking with 3.4 + +stdenv.mkDerivation rec { + pname = "ike"; + version = "2.2.1"; + + src = fetchurl { + url = "https://www.shrew.net/download/ike/${pname}-${version}-release.tgz"; + sha256 = "0fhyr2psd93b0zf7yfb72q3nqnh65mymgq5jpjcsj9jv5kfr6l8y"; + }; + + patches = [ + # required for openssl 1.1.x compatibility + (fetchpatch { + name = "openssl-1.1.0.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/openssl-1.1.0.patch?h=ike&id=3a56735ddc26f750df4720f4baba0728bb4cb458"; + sha256 = "1hw8q4xy858rivpjkq5288q3mc75d52bg4w3n30y99h05wik0h51"; + }) + ]; + + nativeBuildInputs = [ cmake flex bison makeWrapper ]; + buildInputs = [ openssl libedit qt4 nettools iproute ]; + + configurePhase = '' + mkdir -p $out/{bin,sbin,lib} + cmake -DQTGUI=YES -DETCDIR=$out/etc -DLIBDIR=$out/lib -DSBINDIR=$out/sbin -DBINDIR=$out/bin \ + -DKRNINC="${linuxHeaders}/include/" -DTESTS=YES \ + -DMANDIR=$out/man -DNATT=YES -DCMAKE_INSTALL_PREFIX:BOOL=$out + ''; + + buildPhase = '' + make + ''; + + installPhase = '' + make install + for file in "$out"/bin/* "$out"/sbin/*; do + wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${stdenv.lib.makeLibraryPath [ openssl gcc.cc stdenv.cc.libc libedit qt4 ]}" + done + ''; + + meta = with stdenv.lib; { + homepage = https://www.shrew.net/software; + description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems"; + platforms = platforms.unix; + maintainers = [ maintainers.domenkozar ]; + license = licenses.sleepycat; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix new file mode 100644 index 000000000000..716989c7b565 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, cmake, boost166 }: + +stdenv.mkDerivation rec { + pname = "SkypeExport"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "Temptin"; + repo = "SkypeExport"; + rev = "v${version}"; + sha256 = "1ilkh0s3dz5cp83wwgmscnfmnyck5qcwqg1yxp9zv6s356dxnbak"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ boost166 ]; + + preConfigure = "cd src/SkypeExport/_gccbuild/linux"; + installPhase = "install -Dt $out/bin SkypeExport"; + + meta = with stdenv.lib; { + description = "Export Skype history to HTML"; + homepage = https://github.com/Temptin/SkypeExport; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ yegortimoshenko ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix new file mode 100644 index 000000000000..6ff51445718b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix @@ -0,0 +1,28 @@ +{stdenv, fetchurl, which, tcl, tk, xlibsWrapper, libpng, libjpeg, makeWrapper}: + +stdenv.mkDerivation { + name = "amsn-0.98.9"; + src = fetchurl { + url = mirror://sourceforge/amsn/amsn-0.98.9-src.tar.gz; + sha256 = "0b8ir7spxnsz8f7kvr9f1k91nsy8cb65q6jv2l55b04fl20x4z7r"; + }; + + configureFlags = [ + "--with-tcl=${tcl}/lib" + "--with-tk=${tk}/lib" + "--enable-static" + ]; + + buildInputs = [which tcl tk xlibsWrapper libpng libjpeg makeWrapper]; + + postInstall = '' + wrapProgram $out/bin/amsn --prefix PATH : ${tk}/bin + ''; + + meta = { + description = "Instant messaging (MSN Messenger clone)"; + homepage = http://amsn-project.net; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix new file mode 100644 index 000000000000..a3497df1716c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix @@ -0,0 +1,53 @@ +{stdenv, fetchurl, zlib, openssl, libre, librem, pkgconfig, gst_all_1 +, cairo, mpg123, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg +, gsm, speex, portaudio, spandsp, libuuid, ccache, libvpx +}: +stdenv.mkDerivation rec { + version = "0.6.5"; + pname = "baresip"; + src=fetchurl { + url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz"; + sha256 = "13di0ycdcr2q2a20mjvyaqfmvk5xldwqaxklqsz7470jnbc5n0rb"; + }; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [zlib openssl libre librem cairo mpg123 + alsaLib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid + ccache libvpx + ] ++ (with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-bad gst-plugins-good ]); + makeFlags = [ + "LIBRE_MK=${libre}/share/re/re.mk" + "LIBRE_INC=${libre}/include/re" + "LIBRE_SO=${libre}/lib" + "LIBREM_PATH=${librem}" + ''PREFIX=$(out)'' + "USE_VIDEO=1" + "CCACHE_DISABLE=1" + + "USE_ALSA=1" "USE_AMR=1" "USE_CAIRO=1" "USE_CELT=1" + "USE_CONS=1" "USE_EVDEV=1" "USE_FFMPEG=1" "USE_GSM=1" "USE_GST1=1" + "USE_L16=1" "USE_MPG123=1" "USE_OSS=1" "USE_PLC=1" "USE_VPX=1" + "USE_PORTAUDIO=1" "USE_SDL=1" "USE_SNDFILE=1" "USE_SPEEX=1" + "USE_SPEEX_AEC=1" "USE_SPEEX_PP=1" "USE_SPEEX_RESAMP=1" "USE_SRTP=1" + "USE_STDIO=1" "USE_SYSLOG=1" "USE_UUID=1" "USE_V4L2=1" "USE_X11=1" + + "USE_BV32=" "USE_COREAUDIO=" "USE_G711=1" "USE_G722=1" "USE_G722_1=" + "USE_ILBC=" "USE_OPUS=" "USE_SILK=" + ] + ++ stdenv.lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}" + ++ stdenv.lib.optional (stdenv.cc.libc != null) "SYSROOT=${stdenv.cc.libc}" + ; + + NIX_CFLAGS_COMPILE='' -I${librem}/include/rem -I${gsm}/include/gsm + -DHAVE_INTTYPES_H -D__GLIBC__ + -D__need_timeval -D__need_timespec -D__need_time_t ''; + meta = { + homepage = http://www.creytiv.com/baresip.html; + platforms = with stdenv.lib.platforms; linux; + maintainers = with stdenv.lib.maintainers; [raskin]; + license = stdenv.lib.licenses.bsd3; + inherit version; + downloadPage = "http://www.creytiv.com/pub/"; + updateWalker = true; + downloadURLRegexp = "/baresip-.*[.]tar[.].*"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix new file mode 100644 index 000000000000..5094a13119f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix @@ -0,0 +1,32 @@ +{ fetchFromGitHub, stdenv, bitlbee, autoreconfHook, pkgconfig, glib }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "bitlbee-discord"; + version = "0.4.2"; + + src = fetchFromGitHub { + rev = version; + owner = "sm00th"; + repo = "bitlbee-discord"; + sha256 = "02pigk2vbz0jdz11f96sygdvp1j762yjn62h124fkcsc070g7a2f"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ bitlbee glib ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + export BITLBEE_DATADIR=$out/share/bitlbee + ./autogen.sh + ''; + + meta = { + description = "Bitlbee plugin for Discord"; + + homepage = https://github.com/sm00th/bitlbee-discord; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ lassulus jb55 ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix new file mode 100644 index 000000000000..84067dc5f19d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix @@ -0,0 +1,31 @@ +{ fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkgconfig, glib, json-glib }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "bitlbee-facebook"; + version = "1.2.0"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "bitlbee"; + repo = "bitlbee-facebook"; + sha256 = "11068zhb1v55b1x0nhjc4f3p0glccxpcyk5c1630hfdzkj7vyqhn"; + }; + + nativeBuildInputs = [ autoconf automake libtool pkgconfig ]; + + buildInputs = [ bitlbee glib json-glib ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + ./autogen.sh + ''; + + meta = { + description = "The Facebook protocol plugin for bitlbee"; + + homepage = https://github.com/bitlbee/bitlbee-facebook; + license = licenses.gpl2Plus; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix new file mode 100644 index 000000000000..ecd76977eb2b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix @@ -0,0 +1,30 @@ +{ fetchgit, stdenv, bitlbee, autoreconfHook, pkgconfig, glib }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "bitlbee-mastodon"; + version = "1.4.2"; + + src = fetchgit { + url = "https://alexschroeder.ch/cgit/bitlbee-mastodon"; + rev = "v${version}"; + sha256 = "04rakgr1pfsg1vhfwlfbggbzw249j7dmk88xrsnf3n84c5ccdyas"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ bitlbee glib ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + export BITLBEE_DATADIR=$out/share/bitlbee + ./autogen.sh + ''; + + meta = { + description = "Bitlbee plugin for Mastodon"; + homepage = "https://alexschroeder.ch/cgit/bitlbee-mastodon/about"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ jpotier ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix new file mode 100644 index 000000000000..798dab2b646d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix @@ -0,0 +1,30 @@ +{ fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkgconfig, glib, libgcrypt }: + +with stdenv.lib; +stdenv.mkDerivation rec { + version = "1.4.2"; + pname = "bitlbee-steam"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "bitlbee"; + repo = "bitlbee-steam"; + sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ bitlbee autoconf automake libtool glib libgcrypt ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + ./autogen.sh + ''; + + meta = { + description = "Steam protocol plugin for BitlBee"; + + homepage = https://github.com/jgeboski/bitlbee-steam; + license = licenses.gpl2Plus; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix new file mode 100644 index 000000000000..917610216aeb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix @@ -0,0 +1,66 @@ +{ fetchurl, fetchpatch, stdenv, gnutls, glib, pkgconfig, check, libotr, python +, enableLibPurple ? false, pidgin ? null +, enablePam ? false, pam ? null +}: + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "bitlbee-3.6"; + + src = fetchurl { + url = "mirror://bitlbee/src/${name}.tar.gz"; + sha256 = "0zhhcbcr59sx9h4maf8zamzv2waya7sbsl7w74gbyilvy93dw5cz"; + }; + + nativeBuildInputs = [ pkgconfig ] ++ optional doCheck check; + + buildInputs = [ gnutls glib libotr python ] + ++ optional enableLibPurple pidgin + ++ optional enablePam pam; + + configureFlags = [ + "--otr=1" + "--ssl=gnutls" + "--pidfile=/var/lib/bitlbee/bitlbee.pid" + ] ++ optional enableLibPurple "--purple=1" + ++ optional enablePam "--pam=1"; + + patches = [ + # This should be dropped once the issue is fixed upstream. + (fetchpatch { + url = "https://github.com/bitlbee/bitlbee/commit/6ff651b3ec93e5fd74f80766d5e9714d963137bc.diff"; + sha256 = "144dpm4kq7c268fpww1q3n88ayg068n73fbabr5arh1zryw48qfv"; + }) + ]; + + installTargets = [ "install" "install-dev" ]; + + doCheck = !enableLibPurple; # Checks fail with libpurple for some reason + checkPhase = '' + # check flags set VERBOSE=y which breaks the build due overriding a command + make check + ''; + + enableParallelBuilding = true; + + meta = { + description = "IRC instant messaging gateway"; + + longDescription = '' + BitlBee brings IM (instant messaging) to IRC clients. It's a + great solution for people who have an IRC client running all the + time and don't want to run an additional MSN/AIM/whatever + client. + + BitlBee currently supports the following IM networks/protocols: + XMPP/Jabber (including Google Talk), MSN Messenger, Yahoo! + Messenger, AIM and ICQ. + ''; + + homepage = https://www.bitlbee.org/; + license = licenses.gpl2Plus; + + maintainers = with maintainers; [ pSub ]; + platforms = platforms.gnu ++ platforms.linux; # arbitrary choice + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix new file mode 100644 index 000000000000..4e05e7cae970 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix @@ -0,0 +1,20 @@ +{ stdenv, bitlbee }: + +with stdenv.lib; + +plugins: + +stdenv.mkDerivation { + inherit bitlbee plugins; + name = "bitlbee-plugins"; + buildInputs = [ bitlbee plugins ]; + phases = [ "installPhase" ]; + installPhase = '' + mkdir -p $out/lib/bitlbee + for plugin in $plugins; do + for thing in $(ls $plugin/lib/bitlbee); do + ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/ + done + done + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix new file mode 100644 index 000000000000..b6e13fe403db --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix @@ -0,0 +1,68 @@ +{ stdenv, fetchdarcs, pythonPackages, libvncserver, zlib +, gnutls, libvpx, makeDesktopItem, mkDerivationWith }: + +mkDerivationWith pythonPackages.buildPythonApplication rec { + + pname = "blink"; + version = "3.2.0"; + + src = fetchdarcs { + url = http://devel.ag-projects.com/repositories/blink-qt; + rev = "release-${version}"; + sha256 = "19rcwr5scw48qnj79q1pysw95fz9h98nyc3161qy2kph5g7dwkc3"; + }; + + patches = [ ./pythonpath.patch ]; + postPatch = '' + sed -i 's|@out@|'"''${out}"'|g' blink/resources.py + ''; + + propagatedBuildInputs = with pythonPackages; [ + pyqt5_with_qtwebkit + cjson + sipsimple + twisted + google_api_python_client + ]; + + buildInputs = [ + pythonPackages.cython + zlib + libvncserver + libvpx + ]; + + desktopItem = makeDesktopItem { + name = "Blink"; + exec = "blink"; + comment = meta.description; + desktopName = "Blink"; + icon = "blink"; + genericName = "Instant Messaging"; + categories = "Application;Internet;"; + }; + + dontWrapQtApps = true; + + postInstall = '' + mkdir -p "$out/share/applications" + mkdir -p "$out/share/pixmaps" + cp "$desktopItem"/share/applications/* "$out/share/applications" + cp "$out"/share/blink/icons/blink.* "$out/share/pixmaps" + ''; + + preFixup = '' + makeWrapperArgs+=( + --prefix "LD_LIBRARY_PATH" ":" "${gnutls.out}/lib" + "''${qtWrapperArgs[@]}" + ) + ''; + + meta = with stdenv.lib; { + homepage = http://icanblink.com/; + description = "A state of the art, easy to use SIP client for Voice, Video and IM"; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch new file mode 100644 index 000000000000..0df8bc84ff30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch @@ -0,0 +1,49 @@ +--- blink-2.0.0/blink/resources.py 2016-03-09 14:39:07.000000000 +0100 ++++ blink-2.0.0/blink/resources-patched.py 2016-03-12 21:34:14.965476623 +0100 +@@ -1,7 +1,10 @@ ++# Copyright (C) 2010-2013 AG Projects. See LICENSE for details. ++# + + """Provide access to Blink's resources""" + +-import __main__ ++__all__ = ['ApplicationData', 'Resources', 'IconManager'] ++ + import imghdr + import os + import platform +@@ -19,14 +22,10 @@ + from blink.util import run_in_gui_thread + + +-__all__ = ['ApplicationData', 'Resources', 'IconManager'] +- +- + class DirectoryContextManager(unicode): + def __enter__(self): + self.directory = os.getcwdu() + os.chdir(self) +- + def __exit__(self, type, value, traceback): + os.chdir(self.directory) + +@@ -61,18 +60,7 @@ + @classproperty + def directory(cls): + if cls._cached_directory is None: +- try: +- binary_directory = os.path.dirname(os.path.realpath(__main__.__file__)) +- except AttributeError: +- if hasattr(sys, 'frozen'): +- application_directory = os.path.dirname(os.path.realpath(sys.executable)) +- else: +- application_directory = os.path.realpath('') # executed in interactive interpreter +- else: +- if os.path.basename(binary_directory) == 'bin': +- application_directory = os.path.dirname(binary_directory) +- else: +- application_directory = binary_directory ++ application_directory = '@out@' + if os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')): + cls._cached_directory = os.path.join(application_directory, 'resources').decode(sys.getfilesystemencoding()) + else: diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix new file mode 100644 index 000000000000..21b21e253499 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, rpmextract, patchelf, libnotify, libcap, cairo, pango, fontconfig, udev, dbus +, gtk2, atk, expat, gdk-pixbuf, freetype, nspr, glib, nss, gconf, libX11, libXrender, libXtst, libXdamage +, libXi, libXext, libXfixes, libXcomposite, alsaLib, bash +}: + +stdenv.mkDerivation rec { + pname = "bluejeans"; + version = "1.36.9"; + + src = + fetchurl { + url = "https://swdl.bluejeans.com/desktop/linux/1.36/${version}/bluejeans-${version}.x86_64.rpm"; + sha256 = "0sbv742pzqd2cxn3kq10lfi16jah486i9kyrmi8l1rpb9fhyw2m1"; + }; + + nativeBuildInputs = [ patchelf rpmextract ]; + + libPath = + stdenv.lib.makeLibraryPath + [ libnotify libcap cairo pango fontconfig gtk2 atk expat gdk-pixbuf dbus udev.lib + freetype nspr glib stdenv.cc stdenv.cc.cc.lib nss gconf libX11 libXrender libXtst libXdamage + libXi libXext libXfixes libXcomposite alsaLib + ]; + + buildCommand = '' + mkdir -p $out/bin/ + cd $out + rpmextract $src + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + opt/bluejeans/bluejeans-bin + patchelf \ + --set-rpath ${libPath} \ + opt/bluejeans/bluejeans-bin + patchelf \ + --replace-needed libudev.so.0 libudev.so.1 \ + opt/bluejeans/bluejeans-bin + ln -s $out/opt/bluejeans/bluejeans $out/bin/bluejeans + chmod +x $out/bin/bluejeans + patchShebangs $out + ''; + + meta = with stdenv.lib; { + description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day."; + homepage = "https://www.bluejeans.com"; + license = licenses.unfree; + maintainers = with maintainers; [ veprbl ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix new file mode 100644 index 000000000000..daffb539676f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix @@ -0,0 +1,32 @@ +{stdenv, fetchurl, gnused, openssl, curl, ncurses, libjpeg +, withGpg ? true, gpgme ? null}: + +stdenv.mkDerivation rec { + version = "5.0.1"; + pname = "centerim5"; + + src = fetchurl { + url = "http://centerim.org/download/cim5/${pname}-${version}.tar.gz"; + sha256 = "0viz86jflp684vfginhl6aaw4gh2qvalc25anlwljjl3kkmibklk"; + }; + + CXXFLAGS = "-std=gnu++98"; + + buildInputs = [ openssl curl ncurses libjpeg ] + ++ stdenv.lib.optional withGpg gpgme; + + preConfigure = '' + ${gnused}/bin/sed -i '1,1i#include <stdio.h>' libicq2000/libicq2000/sigslot.h + ''; + + configureFlags = [ + "--with-openssl=${openssl.dev}" + ]; + + meta = { + homepage = http://www.centerim.org/; + description = "Fork of CenterICQ, a curses instant messaging program"; + license = stdenv.lib.licenses.gpl2Plus; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix new file mode 100644 index 000000000000..becf828a8567 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix @@ -0,0 +1,28 @@ +{ stdenv, pkgconfig, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qmake, boost, openssl }: + +stdenv.mkDerivation rec { + pname = "chatterino2"; + version = "unstable-2019-05-11"; + src = fetchFromGitHub { + owner = "fourtf"; + repo = pname; + rev = "8c46cbf571dc8fd77287bf3186445ff52b1d1aaf"; + sha256 = "0i2385hamhd9i7jdy906cfrd81cybw524j92l87c8pzrkxphignk"; + fetchSubmodules = true; + }; + nativeBuildInputs = [ qmake pkgconfig ]; + buildInputs = [ qtbase qtsvg qtmultimedia boost openssl ]; + meta = with stdenv.lib; { + description = "A chat client for Twitch chat"; + longDescription = '' + Chatterino is a chat client for Twitch chat. It aims to be an + improved/extended version of the Twitch web chat. Chatterino 2 is + the second installment of the Twitch chat client series + "Chatterino". + ''; + homepage = "https://github.com/fourtf/chatterino2"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ rexim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix new file mode 100644 index 000000000000..3186009db582 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, + cairo, gdk-pixbuf, glib, gnome3, wrapGAppsHook, gtk3 }: + +buildGoPackage rec { + pname = "coyim"; + version = "0.3.11"; + + goPackagePath = "github.com/coyim/coyim"; + + src = fetchFromGitHub { + owner = "coyim"; + repo = "coyim"; + rev = "v${version}"; + sha256 = "1g8nf56j17rdhhj7pv3ha1rb2mfc0mdvyzl35pgcki08w7iw08j3"; + }; + + nativeBuildInputs = [ pkgconfig wrapGAppsHook glib cairo gdk-pixbuf gtk3 gnome3.adwaita-icon-theme ]; + + meta = with stdenv.lib; { + description = "a safe and secure chat client"; + homepage = https://coy.im/; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix new file mode 100644 index 000000000000..36378230aa98 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix @@ -0,0 +1,71 @@ +{ stdenv, fetchFromGitHub +, vala, cmake, ninja, wrapGAppsHook, pkgconfig, gettext +, gobject-introspection, gnome3, glib, gdk-pixbuf, gtk3, glib-networking +, xorg, libXdmcp, libxkbcommon +, libnotify, libsoup, libgee +, libgcrypt +, epoxy +, at-spi2-core +, sqlite +, dbus +, gpgme +, pcre +, qrencode +, icu + }: + +stdenv.mkDerivation { + name = "dino-unstable-2020-01-09"; + + src = fetchFromGitHub { + owner = "dino"; + repo = "dino"; + rev = "3fc9bdab053e23ab8e97afadfee0a05afad8d890"; + sha256 = "07x1qdljbqlg2zrxgj1my1jlds32h49flrlaxr14vbabj1wp19a0"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + vala + cmake + ninja + pkgconfig + wrapGAppsHook + gettext + ]; + + buildInputs = [ + qrencode + gobject-introspection + glib-networking + glib + libgee + gnome3.adwaita-icon-theme + sqlite + gdk-pixbuf + gtk3 + libnotify + gpgme + libgcrypt + libsoup + pcre + xorg.libxcb + xorg.libpthreadstubs + libXdmcp + libxkbcommon + epoxy + at-spi2-core + dbus + icu + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Modern Jabber/XMPP Client using GTK/Vala"; + homepage = https://github.com/dino/dino; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.mic92 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix new file mode 100644 index 000000000000..6e4a914ecb0e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix @@ -0,0 +1,62 @@ +{ pname, version, src, binaryName, desktopName +, stdenv, fetchurl, makeDesktopItem, wrapGAppsHook +, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype +, gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid +, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb +, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }: + +let + inherit binaryName; +in stdenv.mkDerivation rec { + inherit pname version src; + + nativeBuildInputs = [ wrapGAppsHook ]; + + dontWrapGApps = true; + + libPath = stdenv.lib.makeLibraryPath [ + libcxx systemd libpulseaudio + stdenv.cc.cc alsaLib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype + gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid + libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender + libXtst nspr nss libxcb pango systemd libXScrnSaver + ]; + + installPhase = '' + mkdir -p $out/{bin,opt/${binaryName},share/pixmaps} + mv * $out/opt/${binaryName} + + chmod +x $out/opt/${binaryName}/${binaryName} + patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ + $out/opt/${binaryName}/${binaryName} + + wrapProgram $out/opt/${binaryName}/${binaryName} \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --prefix LD_LIBRARY_PATH : ${libPath} + + ln -s $out/opt/${binaryName}/${binaryName} $out/bin/ + ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png + + ln -s "${desktopItem}/share/applications" $out/share/ + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = binaryName; + icon = pname; + inherit desktopName; + genericName = meta.description; + categories = "Network;InstantMessaging;"; + mimeType = "x-scheme-handler/discord"; + }; + + meta = with stdenv.lib; { + description = "All-in-one cross-platform voice and text chat for gamers"; + homepage = "https://discordapp.com/"; + downloadPage = "https://discordapp.com/download"; + license = licenses.unfree; + maintainers = with maintainers; [ ldesgoui MP2E tadeokondrak ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix new file mode 100644 index 000000000000..70b36c663873 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -0,0 +1,36 @@ +{ branch ? "stable", pkgs }: +# Generated by /maintainers/scripts/update-discord +let + inherit (pkgs) callPackage fetchurl; +in { + stable = callPackage ./base.nix rec { + pname = "discord"; + binaryName = "Discord"; + desktopName = "Discord"; + version = "0.0.9"; + src = fetchurl { + url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; + sha256 = "1i0f8id10rh2fx381hx151qckvvh8hbznfsfav8w0dfbd1bransf"; + }; + }; + ptb = callPackage ./base.nix rec { + pname = "discord-ptb"; + binaryName = "DiscordPTB"; + desktopName = "Discord PTB"; + version = "0.0.16"; + src = fetchurl { + url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; + sha256 = "1ia94xvzygim9rx1sjnnss518ggw0i20mhp9pby33q70ha35n0aq"; + }; + }; + canary = callPackage ./base.nix rec { + pname = "discord-canary"; + binaryName = "DiscordCanary"; + desktopName = "Discord Canary"; + version = "0.0.98"; + src = fetchurl { + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; + sha256 = "0raqsfakjbcsh7g280yi7sg2jsrmy2q4jldg73wb868z35radld4"; + }; + }; +}.${branch} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix new file mode 100644 index 000000000000..052a626531b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix @@ -0,0 +1,87 @@ +{ stdenv +, fetchFromGitLab +, fetchpatch +, meson +, ninja +, gettext +, cargo +, rustc +, python3 +, rustPlatform +, pkgconfig +, gtksourceview4 +, glib +, libhandy +, gtk3 +, dbus +, openssl +, sqlite +, gst_all_1 +, cairo +, gdk-pixbuf +, gspell +, wrapGAppsHook +}: + +rustPlatform.buildRustPackage rec { + pname = "fractal"; + version = "4.2.2"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "fractal"; + rev = version; + sha256 = "0r98km3c8naj3mdr1wppzj823ir7jnsia7r3cbg3vsq8q52i480r"; + }; + + cargoSha256 = "1n9n4d057cz44sh1iy2hb2adplhnrhvr8drnp0v2h8yw73a5shvv"; + + nativeBuildInputs = [ + cargo + gettext + meson + ninja + pkgconfig + python3 + rustc + wrapGAppsHook + ]; + + buildInputs = [ + cairo + dbus + gdk-pixbuf + glib + gspell + gst_all_1.gst-editing-services + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + gst_all_1.gst-validate + gtk3 + gtksourceview4 + libhandy + openssl + sqlite + ]; + + postPatch = '' + chmod +x scripts/test.sh + patchShebangs scripts/meson_post_install.py scripts/test.sh + ''; + + # Don't use buildRustPackage phases, only use it for rust deps setup + configurePhase = null; + buildPhase = null; + checkPhase = null; + installPhase = null; + + meta = with stdenv.lib; { + description = "Matrix group messaging app"; + homepage = https://gitlab.gnome.org/GNOME/fractal; + license = licenses.gpl3; + maintainers = with maintainers; [ dtzWill worldofpeace ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix new file mode 100644 index 000000000000..605550beb50e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl, makeWrapper, wrapGAppsHook, autoPatchelfHook, dpkg +, xorg, atk, glib, pango, gdk-pixbuf, cairo, freetype, fontconfig, gtk3 +, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }: + +let + version = "5.4.1"; +in stdenv.mkDerivation { + pname = "franz"; + inherit version; + src = fetchurl { + url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb"; + sha256 = "1g1z5zjm9l081hpqslfc4h7pqh4k76ccmlz71r21204wy630mw6h"; + }; + + # don't remove runtime deps + dontPatchELF = true; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ]; + buildInputs = (with xorg; [ + libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes + libXrender libX11 libXtst libXScrnSaver + ]) ++ [ + gtk3 atk glib pango gdk-pixbuf cairo freetype fontconfig dbus + gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc + ]; + runtimeDependencies = [ udev.lib libnotify ]; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p $out/bin + cp -r opt $out + ln -s $out/opt/Franz/franz $out/bin + + # provide desktop item and icon + cp -r usr/share $out + substituteInPlace $out/share/applications/franz.desktop \ + --replace /opt/Franz/franz franz + ''; + + dontWrapGApps = true; + + postFixup = '' + wrapProgram $out/opt/Franz/franz \ + --prefix PATH : ${xdg_utils}/bin \ + "''${gappsWrapperArgs[@]}" + ''; + + meta = with stdenv.lib; { + description = "A free messaging app that combines chat & messaging services into one application"; + homepage = https://meetfranz.com; + license = licenses.free; + maintainers = [ maintainers.davidtwco ]; + platforms = ["x86_64-linux"]; + hydraPlatforms = []; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix new file mode 100644 index 000000000000..e24ac2e18317 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub +, guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool +, libunwind, ncurses, curl, jansson, texinfo +, automake, autoconf }: +stdenv.mkDerivation rec { + pname = "freetalk"; + version = "4.1"; + + src = fetchFromGitHub { + owner = "GNUFreetalk"; + repo = "freetalk"; + rev = "v${version}"; + sha256 = "09jwk2i8qd8c7wrn9xbqcwm32720dwxis22kf3jpbg8mn6w6i757"; + }; + + preConfigure = '' + ./autogen.sh + ''; + + nativeBuildInputs = [ pkgconfig texinfo autoconf automake ]; + buildInputs = [ + guile glib loudmouth gmp libidn readline libtool + libunwind ncurses curl jansson + ]; + + meta = with stdenv.lib; { + description = "Console XMPP client"; + license = licenses.gpl3Plus ; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.linux; + downloadPage = "https://www.gnu.org/software/freetalk/"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix new file mode 100644 index 000000000000..1fd8c47a99c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix @@ -0,0 +1,70 @@ +{ lib, fetchurl, gettext, wrapGAppsHook + +# Native dependencies +, python3, gtk3, gobject-introspection, gnome3 + +# Test dependencies +, xvfb_run, dbus + +# Optional dependencies +, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-ugly, libnice +, enableE2E ? true +, enableSecrets ? true, libsecret +, enableRST ? true, docutils +, enableSpelling ? true, gspell +, enableUPnP ? true, gupnp-igd +, enableOmemoPluginDependencies ? true +, extraPythonPackages ? ps: [] +}: + +python3.pkgs.buildPythonApplication rec { + pname = "gajim"; + majorVersion = "1.1"; + version = "${majorVersion}.3"; + + src = fetchurl { + url = "https://gajim.org/downloads/${majorVersion}/gajim-${version}.tar.bz2"; + sha256 = "0bzxwcpdd4ydh6d6mzpr0gxwhcb0x9ympk55fpvm1hcw9d28a716"; + }; + + postPatch = '' + # This test requires network access + echo "" > test/integration/test_resolver.py + ''; + + buildInputs = [ + gobject-introspection gtk3 gnome3.adwaita-icon-theme wrapGAppsHook + ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-ugly libnice ] + ++ lib.optional enableSecrets libsecret + ++ lib.optional enableSpelling gspell + ++ lib.optional enableUPnP gupnp-igd; + + nativeBuildInputs = [ + gettext + ]; + + propagatedBuildInputs = with python3.pkgs; [ + nbxmpp pyasn1 pygobject3 dbus-python pillow cssutils precis-i18n keyring setuptools + ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ] + ++ lib.optional enableRST docutils + ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ] + ++ extraPythonPackages python3.pkgs; + + checkInputs = [ xvfb_run dbus.daemon ]; + + checkPhase = '' + xvfb-run dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + ${python3.interpreter} setup.py test + ''; + + meta = { + homepage = http://gajim.org/; + description = "Jabber client written in PyGTK"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ raskin aszlig abbradar ]; + downloadPage = "http://gajim.org/downloads.php"; + updateWalker = true; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix new file mode 100644 index 000000000000..57b745057dce --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix @@ -0,0 +1,70 @@ +{ stdenv, alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl +, fontconfig, freetype, gdk-pixbuf, glib, gnome2, gtk3, libX11 +, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes +, libXi, libXrandr, libXrender, libXtst, libappindicator-gtk3, libcxx +, libnotify, libpulseaudio, libxcb, makeDesktopItem, makeWrapper, nspr, nss +, pango, systemd }: + +let gitterDirectorySuffix = "opt/gitter"; + doELFPatch = target: '' + patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ + --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \ + $out/${gitterDirectorySuffix}/${target} + ''; + libPath = stdenv.lib.makeLibraryPath [ + alsaLib atk cairo cups dbus expat fontconfig freetype gdk-pixbuf glib + gnome2.GConf gtk3 libX11 libXScrnSaver libXcomposite libXcursor libXdamage + libXext libXfixes libXi libXrandr libXrender libXtst libappindicator-gtk3 + libcxx libnotify libpulseaudio libxcb nspr nss pango stdenv.cc.cc systemd + ]; +in stdenv.mkDerivation rec { + pname = "gitter"; + version = "4.1.0"; + + src = fetchurl { + url = "https://update.gitter.im/linux64/${pname}_${version}_amd64.deb"; + sha256 = "1gny9i2pywvczzrs93k8krqn6hwm6c2zg8yr3xmjqs3p88817wbi"; + }; + + nativeBuildInputs = [ makeWrapper dpkg ]; + + unpackPhase = "dpkg -x $src ."; + + installPhase = '' + mkdir -p $out/{bin,opt/gitter,share/pixmaps} + mv ./opt/Gitter/linux64/* $out/opt/gitter + + ${doELFPatch "Gitter"} + ${doELFPatch "nacl_helper"} + ${doELFPatch "minidump_stackwalk"} + ${doELFPatch "nwjc"} + ${doELFPatch "chromedriver"} + ${doELFPatch "payload"} + + patchelf --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \ + $out/${gitterDirectorySuffix}/lib/libnw.so + + wrapProgram $out/${gitterDirectorySuffix}/Gitter --prefix LD_LIBRARY_PATH : ${libPath} + + ln -s $out/${gitterDirectorySuffix}/Gitter $out/bin/ + ln -s $out/${gitterDirectorySuffix}/logo.png $out/share/pixmaps/gitter.png + ln -s "${desktopItem}/share/applications" $out/share/ + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = "Gitter"; + icon = pname; + desktopName = "Gitter"; + genericName = meta.description; + categories = "Network;InstantMessaging;"; + }; + + meta = with stdenv.lib; { + description = "Where developers come to talk"; + downloadPage = "https://gitter.im/apps"; + license = licenses.mit; + maintainers = [ maintainers.imalison ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix new file mode 100644 index 000000000000..5e6e2f9b8d8d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "gomuks"; + version = "2019-06-28"; + + goPackagePath = "maunium.net/go/gomuks"; + + src = fetchFromGitHub { + owner = "tulir"; + repo = pname; + rev = "37df8eb454088e61db7a14f382851205bc1806ad"; + sha256 = "1hr15d9sbq6mddaxv3pwz86qp1hhzssgrvakfpc49xl4h04dq33g"; + }; + + modSha256 = "1qrqgzzsxqvmy4m9shypa94bzw34mc941jhmyccip9grk9fzsxws"; + + meta = with stdenv.lib; { + homepage = "https://maunium.net/go/gomuks/"; + description = "A terminal based Matrix client written in Go"; + license = licenses.gpl3; + maintainers = with maintainers; [ tilpner ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix new file mode 100644 index 000000000000..3e16a58f54bb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix @@ -0,0 +1,19 @@ +{stdenv, fetchurl, ncurses, openssl, tcl, tk}: + +stdenv.mkDerivation { + name = "gtmess-0.97"; + + src = fetchurl { + url = mirror://sourceforge/gtmess/gtmess-0.97.tar.gz; + sha256 = "1ipmqsrj0r1ssbgs2fpr4x5vnzlxlqhx9jrnadp1jw7s0sxpjqv0"; + }; + + buildInputs = [ ncurses openssl tcl tk]; + + meta = { + description = "Console MSN Messenger client for Linux and other unix systems"; + homepage = http://gtmess.sourceforge.net/; + license = stdenv.lib.licenses.gpl2Plus; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix new file mode 100644 index 000000000000..47854683e0ed --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix @@ -0,0 +1,88 @@ +{ stdenv, fetchurl, xorg, freetype, fontconfig, openssl, glib, nss, nspr, expat +, alsaLib, dbus, zlib, libxml2, libxslt, makeWrapper, xkeyboard_config, systemd +, libGL, xcbutilkeysyms, xdg_utils, libtool }: + +let + version = "4.30.5.1682"; + + rpath = stdenv.lib.makeLibraryPath [ + xdg_utils + xorg.libXext + xorg.libSM + xorg.libICE + xorg.libX11 + xorg.libXrandr + xorg.libXdamage + xorg.libXrender + xorg.libXfixes + xorg.libXcomposite + xorg.libXcursor + xorg.libxcb + xorg.libXi + xorg.libXScrnSaver + xorg.libXtst + freetype + fontconfig + openssl + glib + nss + nspr + dbus + alsaLib + zlib + libtool + libxml2 + libxslt + expat + xcbutilkeysyms + systemd + libGL + ] + ":${stdenv.cc.cc.lib}/lib64"; +in stdenv.mkDerivation { + pname = "hipchat"; + inherit version; + + src = fetchurl { + url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb"; + sha256 = "03pz8wskafn848yvciq29kwdvqcgjrk6sjnm8nk9acl89xf0sn96"; + }; + + buildInputs = [ makeWrapper ]; + + buildCommand = '' + ar x $src + tar xfvz data.tar.gz + + mkdir -p $out/libexec/hipchat + d=$out/libexec/hipchat/lib + mv opt/HipChat4/* $out/libexec/hipchat/ + mv usr/share $out + + for file in $(find $d -type f); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $file || true + patchelf --set-rpath ${rpath}:$out/libexec/hipchat/lib:\$ORIGIN $file || true + done + + patchShebangs $d/linuxbrowserlaunch.sh + + substituteInPlace $out/share/applications/hipchat4.desktop \ + --replace /opt/HipChat4/bin/HipChat4 $out/bin/hipchat + + makeWrapper $d/HipChat.bin $out/bin/hipchat \ + --run 'export HIPCHAT_LD_LIBRARY_PATH=$LD_LIBRARY_PATH' \ + --run 'export HIPCHAT_QT_PLUGIN_PATH=$QT_PLUGIN_PATH' \ + --set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb \ + --set QTWEBENGINEPROCESS_PATH $d/QtWebEngineProcess + + makeWrapper $d/QtWebEngineProcess.bin $d/QtWebEngineProcess \ + --set QT_PLUGIN_PATH "$d/plugins" + ''; + + meta = with stdenv.lib; { + description = "Desktop client for HipChat services"; + homepage = http://www.hipchat.com; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ puffnfresh ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix new file mode 100644 index 000000000000..169ddf65b29c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, ocamlPackages }: + +assert stdenv.lib.versionAtLeast ocamlPackages.ocaml.version "4.02.2"; + +stdenv.mkDerivation { + pname = "jackline"; + version = "2019-08-08"; + + src = fetchFromGitHub { + owner = "hannesm"; + repo = "jackline"; + rev = "b934594010a563ded9c0f436e3fab8f1cae29856"; + sha256 = "076h03jd970xlii90ax6kvgyq67g81gs30yvdzps366n7zzy3yfc"; + }; + + buildInputs = with ocamlPackages; [ + ocaml ocamlbuild findlib topkg ppx_sexp_conv + erm_xmpp tls nocrypto x509 ocaml_lwt otr astring + ptime notty sexplib hex uutf + ]; + + buildPhase = "${ocamlPackages.topkg.run} build --pinned true"; + + inherit (ocamlPackages.topkg) installPhase; + + meta = with stdenv.lib; { + homepage = https://github.com/hannesm/jackline; + description = "Terminal-based XMPP client in OCaml"; + license = licenses.bsd2; + maintainers = with maintainers; [ sternenseemann ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix new file mode 100644 index 000000000000..7e01f97fe0df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix @@ -0,0 +1,71 @@ +{ stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk +# Optional, Jitsi still runs without, but you may pass null: +, alsaLib, dbus, gtk2, libpulseaudio, openssl, xorg +}: + +stdenv.mkDerivation rec { + pname = "jitsi"; + version = "2.10.5550"; + + src = fetchurl { + url = "https://download.jitsi.org/jitsi/src/jitsi-src-${version}.zip"; + sha256 = "11vjchc3dnzj55x7c62wsm6masvwmij1ifkds917r1qvil1nzz6d"; + }; + + patches = [ ./jitsi.patch ]; + + jitsiItem = makeDesktopItem { + name = "Jitsi"; + exec = "jitsi"; + comment = "VoIP and Instant Messaging client"; + desktopName = "Jitsi"; + genericName = "Instant Messaging"; + categories = "Application;Internet;"; + }; + + libPath = lib.makeLibraryPath ([ + stdenv.cc.cc # For libstdc++. + alsaLib + dbus + gtk2 + libpulseaudio + openssl + xorg.libX11 + xorg.libXext + xorg.libXScrnSaver + xorg.libXv + ]); + + nativeBuildInputs = [ unzip ]; + buildInputs = [ ant jdk ]; + + buildPhase = ''ant make''; + + installPhase = '' + mkdir -p $out + cp -a lib $out/ + rm -rf $out/lib/native/solaris + cp -a sc-bundles $out/ + mkdir $out/bin + cp resources/install/generic/run.sh $out/bin/jitsi + chmod +x $out/bin/jitsi + substituteInPlace $out/bin/jitsi \ + --subst-var-by JAVA ${jdk}/bin/java \ + --subst-var-by EXTRALIBS ${gtk2.out}/lib + sed -e 's,^java\ ,${jdk}/bin/java ,' -i $out/bin/jitsi + patchShebangs $out + libPath="$libPath:${jdk.home}/lib/${jdk.architecture}" + find $out/ -type f -name '*.so' | while read file; do + patchelf --set-rpath "$libPath" "$file" && \ + patchelf --shrink-rpath "$file" + done + ''; + + meta = with stdenv.lib; { + homepage = https://jitsi.org/; + description = "Open Source Video Calls and Chat"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = with maintainers; []; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch new file mode 100644 index 000000000000..e477bdfe2fd4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch @@ -0,0 +1,27 @@ +--- /home/dario/Downloads/jitsi/resources/install/generic/run.sh 2013-11-01 15:37:21.000000000 +0000 ++++ jitsi/resources/install/generic/run.sh 2014-03-04 11:52:30.796397567 +0000 +@@ -1,4 +1,9 @@ +-mkdir -p $HOME/.sip-communicator/log ++#! /bin/bash ++# A modified version of the generic run.sh ++ ++#mkdir -p $HOME/.sip-communicator/log ++ ++cd "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" + + # Get architecture + ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/` +@@ -6,7 +11,9 @@ + # Additionnal JVM arguments + CLIENTARGS="" + ++NATIVELIBS="lib/native/linux-64" + if [ $ARCH = 32 ] + then + CLIENTARGS="-client -Xmx256m" ++ NATIVELIBS="lib/native/linux" + fi + + export PATH=$PATH:native +-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator ++LD_LIBRARY_PATH=@EXTRALIBS@ exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix new file mode 100644 index 000000000000..b155f3129642 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -0,0 +1,61 @@ +{ stdenv, intltool, pkgconfig, readline, openldap, cyrus_sasl, libupnp +, zlib, libxml2, gtk2, libnotify, speex, ffmpeg, libX11, libsoup, udev +, ortp, mediastreamer, sqlite, belle-sip, libosip, libexosip, bzrtp +, mediastreamer-openh264, bctoolbox, makeWrapper, fetchFromGitHub, cmake +, libmatroska, bcunit, doxygen, gdk-pixbuf, glib, cairo, pango, mbedtls +, python, graphviz, belcard, bcg729 +, withGui ? true +}: + +stdenv.mkDerivation rec { + pname = "linphone"; + version = "3.12.0"; + + src = fetchFromGitHub { + owner = "BelledonneCommunications"; + repo = pname; + rev = version; + sha256 = "0az2ywrpx11sqfb4s4r2v726avcjf4k15bvrqj7xvhz7hdndmh0j"; + }; + + cmakeFlags = stdenv.lib.optional withGui [ "-DENABLE_GTK_UI=ON" ]; + + postPatch = '' + touch coreapi/liblinphone_gitversion.h + ''; + + buildInputs = [ + readline openldap cyrus_sasl libupnp zlib libxml2 gtk2 libnotify speex ffmpeg libX11 + mbedtls libsoup udev ortp mediastreamer sqlite belle-sip libosip libexosip + bctoolbox libmatroska gdk-pixbuf glib cairo pango bzrtp belcard bcg729 + ]; + + nativeBuildInputs = [ + intltool pkgconfig makeWrapper cmake bcunit doxygen graphviz + (python.withPackages (ps: [ ps.pystache ps.six ])) + ]; + + NIX_CFLAGS_COMPILE = [ + "-Wno-error" + "-I${glib.dev}/include/glib-2.0" + "-I${glib.out}/lib/glib-2.0/include" + "-I${gtk2.dev}/include/gtk-2.0/" + "-I${cairo.dev}/include/cairo" + "-I${pango.dev}/include/pango-1.0" + "-I${gtk2}/lib/gtk-2.0/include" + "-DLIBLINPHONE_GIT_VERSION=\"v${version}\"" + ]; + + postInstall = '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i --set MEDIASTREAMER_PLUGINS_DIR ${mediastreamer-openh264}/lib/mediastreamer/plugins + done + ''; + + meta = with stdenv.lib; { + homepage = https://www.linphone.org/; + description = "Open source SIP phone for voice/video calls and instant messaging"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix new file mode 100644 index 000000000000..e03bdd9909e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix @@ -0,0 +1,21 @@ +# This file has been generated by node2nix 1.7.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 python2 utillinux runCommand writeTextFile; + inherit nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +locpkgs = +import ./node-packages.nix { + inherit (pkgs) fetchurl fetchgit; + inherit nodeEnv; + globalBuildInputs = [ + locpkgs.node-pre-gyp + ]; +}; +in locpkgs diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix new file mode 100644 index 000000000000..633219626b68 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix @@ -0,0 +1,27 @@ +{ stdenv, pkgs }: +(import ./composition.nix { + inherit pkgs; + inherit (stdenv.hostPlatform) system; +})."package".override { + postInstall = '' + mkdir "$out/bin" + echo '#!/bin/sh' >> "$out/bin/matrix-recorder" + echo "'${pkgs.nodejs-12_x}/bin/node'" \ + "'$out/lib/node_modules/matrix-recorder/matrix-recorder.js'" \ + '"$@"' >> "$out/bin/matrix-recorder" + echo '#!/bin/sh' >> "$out/bin/matrix-recorder-to-html" + echo 'cd "$1"' >> "$out/bin/matrix-recorder-to-html" + echo "test -d templates/ || ln -sfT '$out/lib/node_modules/matrix-recorder/templates' templates" >> "$out/bin/matrix-recorder-to-html" + echo "'${pkgs.nodejs-12_x}/bin/node'" \ + "'$out/lib/node_modules/matrix-recorder/recorder-to-html.js'" \ + '.' >> "$out/bin/matrix-recorder-to-html" + chmod a+x "$out/bin/matrix-recorder" + chmod a+x "$out/bin/matrix-recorder-to-html" + ''; + meta = { + description = "Matrix message recorder"; + homepage = "https://gitlab.com/argit/matrix-recorder/"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.raskin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix new file mode 100644 index 000000000000..670556bf271a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix @@ -0,0 +1,540 @@ +# This file originates from node2nix + +{stdenv, nodejs, python2, utillinux, libtool, runCommand, writeTextFile}: + +let + 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}: + stdenv.lib.optionalString (dependencies != []) + (stdenv.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: + '' + 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 .. + ${stdenv.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"} + + ${stdenv.lib.optionalString (dependencies != []) + '' + if [ -d node_modules ] + then + cd node_modules + ${stdenv.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 .. + ${stdenv.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(packageLock.lockfileVersion !== 1) { + process.stderr.write("Sorry, I only understand lock file version 1!\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 + + ${stdenv.lib.optionalString bypassCache '' + ${stdenv.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} ${stdenv.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} ${stdenv.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 ] + ++ stdenv.lib.optional (stdenv.isLinux) utillinux + ++ stdenv.lib.optional (stdenv.isDarwin) libtool + ++ buildInputs; + + 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 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 + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; + + nodeDependencies = stdenv.mkDerivation ({ + name = "node-dependencies-${name}-${version}"; + + buildInputs = [ tarWrapper python nodejs ] + ++ stdenv.lib.optional (stdenv.isLinux) utillinux + ++ stdenv.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 + ${stdenv.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 .. + ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} + + # Expose the executables that were installed + cd .. + ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + mv ${packageName} lib + ln -s $out/lib/node_modules/.bin $out/bin + ''; + } // extraArgs); + in + stdenv.mkDerivation { + name = "node-shell-${name}-${version}"; + + buildInputs = [ python nodejs ] ++ stdenv.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 = stdenv.lib.optionalString (dependencies != []) '' + export NODE_PATH=$nodeDependencies/lib/node_modules + export PATH="$nodeDependencies/bin:$PATH" + ''; + }; +in +{ + buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist; + buildNodePackage = stdenv.lib.makeOverridable buildNodePackage; + buildNodeShell = stdenv.lib.makeOverridable buildNodeShell; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix new file mode 100644 index 000000000000..012ad195a71b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix @@ -0,0 +1,1426 @@ +# This file has been generated by node2nix 1.7.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "ajv-6.10.2" = { + name = "ajv"; + packageName = "ajv"; + version = "6.10.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz"; + sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw=="; + }; + }; + "another-json-0.2.0" = { + name = "another-json"; + packageName = "another-json"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz"; + sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc"; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; + }; + }; + "are-we-there-yet-1.1.5" = { + name = "are-we-there-yet"; + packageName = "are-we-there-yet"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; + sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w=="; + }; + }; + "asn1-0.2.4" = { + name = "asn1"; + packageName = "asn1"; + version = "0.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; + sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; + }; + }; + "assert-plus-1.0.0" = { + name = "assert-plus"; + packageName = "assert-plus"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "aws-sign2-0.7.0" = { + name = "aws-sign2"; + packageName = "aws-sign2"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + }; + "aws4-1.9.0" = { + name = "aws4"; + packageName = "aws4"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz"; + sha512 = "Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A=="; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "bcrypt-pbkdf-1.0.2" = { + name = "bcrypt-pbkdf"; + packageName = "bcrypt-pbkdf"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "browser-request-0.3.3" = { + name = "browser-request"; + packageName = "browser-request"; + version = "0.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz"; + sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17"; + }; + }; + "caseless-0.12.0" = { + name = "caseless"; + packageName = "caseless"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + }; + "chownr-1.1.3" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz"; + sha512 = "i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw=="; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "console-control-strings-1.1.0" = { + name = "console-control-strings"; + packageName = "console-control-strings"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; + sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "dashdash-1.14.1" = { + name = "dashdash"; + packageName = "dashdash"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + }; + "debug-3.2.6" = { + name = "debug"; + packageName = "debug"; + version = "3.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"; + sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ=="; + }; + }; + "deep-extend-0.6.0" = { + name = "deep-extend"; + packageName = "deep-extend"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"; + sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "detect-libc-1.0.3" = { + name = "detect-libc"; + packageName = "detect-libc"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + }; + "ecc-jsbn-0.1.2" = { + name = "ecc-jsbn"; + packageName = "ecc-jsbn"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; + }; + }; + "encoding-0.1.12" = { + name = "encoding"; + packageName = "encoding"; + version = "0.1.12"; + src = fetchurl { + url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"; + sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb"; + }; + }; + "extend-3.0.2" = { + name = "extend"; + packageName = "extend"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; + sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; + }; + }; + "extsprintf-1.3.0" = { + name = "extsprintf"; + packageName = "extsprintf"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + }; + "fast-deep-equal-2.0.1" = { + name = "fast-deep-equal"; + packageName = "fast-deep-equal"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; + sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; + }; + }; + "fast-json-stable-stringify-2.0.0" = { + name = "fast-json-stable-stringify"; + packageName = "fast-json-stable-stringify"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; + sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + }; + }; + "forever-agent-0.6.1" = { + name = "forever-agent"; + packageName = "forever-agent"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + }; + "form-data-2.3.3" = { + name = "form-data"; + packageName = "form-data"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; + sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; + }; + }; + "fs-minipass-1.2.7" = { + name = "fs-minipass"; + packageName = "fs-minipass"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz"; + sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA=="; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "gauge-2.7.4" = { + name = "gauge"; + packageName = "gauge"; + version = "2.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + }; + "getpass-0.1.7" = { + name = "getpass"; + packageName = "getpass"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + }; + "glob-7.1.6" = { + name = "glob"; + packageName = "glob"; + version = "7.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"; + sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA=="; + }; + }; + "graceful-fs-4.2.3" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz"; + sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="; + }; + }; + "har-schema-2.0.0" = { + name = "har-schema"; + packageName = "har-schema"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + }; + "har-validator-5.1.3" = { + name = "har-validator"; + packageName = "har-validator"; + version = "5.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"; + sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g=="; + }; + }; + "has-unicode-2.0.1" = { + name = "has-unicode"; + packageName = "has-unicode"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + }; + "http-signature-1.2.0" = { + name = "http-signature"; + packageName = "http-signature"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "ignore-walk-3.0.3" = { + name = "ignore-walk"; + packageName = "ignore-walk"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz"; + sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw=="; + }; + }; + "imurmurhash-0.1.4" = { + name = "imurmurhash"; + packageName = "imurmurhash"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "ini-1.3.5" = { + name = "ini"; + packageName = "ini"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz"; + sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-stream-1.1.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"; + sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; + }; + }; + "is-typedarray-1.0.0" = { + name = "is-typedarray"; + packageName = "is-typedarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "isstream-0.1.2" = { + name = "isstream"; + packageName = "isstream"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + }; + "jsbn-0.1.1" = { + name = "jsbn"; + packageName = "jsbn"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + }; + "json-schema-0.2.3" = { + name = "json-schema"; + packageName = "json-schema"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + }; + "json-schema-traverse-0.4.1" = { + name = "json-schema-traverse"; + packageName = "json-schema-traverse"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; + }; + }; + "json-stringify-safe-5.0.1" = { + name = "json-stringify-safe"; + packageName = "json-stringify-safe"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + }; + "jsprim-1.4.1" = { + name = "jsprim"; + packageName = "jsprim"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + }; + "marked-0.6.3" = { + name = "marked"; + packageName = "marked"; + version = "0.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz"; + sha512 = "Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ=="; + }; + }; + "matrix-js-sdk-0.7.13" = { + name = "matrix-js-sdk"; + packageName = "matrix-js-sdk"; + version = "0.7.13"; + src = fetchurl { + url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-0.7.13.tgz"; + sha1 = "283accc710009f5a0b02367682f2e86155fd00c4"; + }; + }; + "mime-db-1.42.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.42.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz"; + sha512 = "UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="; + }; + }; + "mime-types-2.1.25" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.25"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz"; + sha512 = "5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg=="; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-0.0.8" = { + name = "minimist"; + packageName = "minimist"; + version = "0.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + }; + "minimist-1.2.0" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"; + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + }; + }; + "minipass-2.9.0" = { + name = "minipass"; + packageName = "minipass"; + version = "2.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz"; + sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg=="; + }; + }; + "minizlib-1.3.3" = { + name = "minizlib"; + packageName = "minizlib"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz"; + sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q=="; + }; + }; + "mkdirp-0.5.1" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + }; + "ms-2.1.2" = { + name = "ms"; + packageName = "ms"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; + sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; + }; + }; + "mustache-2.3.2" = { + name = "mustache"; + packageName = "mustache"; + version = "2.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz"; + sha512 = "KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ=="; + }; + }; + "nan-2.14.0" = { + name = "nan"; + packageName = "nan"; + version = "2.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"; + sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="; + }; + }; + "needle-2.4.0" = { + name = "needle"; + packageName = "needle"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz"; + sha512 = "4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg=="; + }; + }; + "node-fetch-1.7.3" = { + name = "node-fetch"; + packageName = "node-fetch"; + version = "1.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz"; + sha512 = "NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ=="; + }; + }; + "node-localstorage-1.3.1" = { + name = "node-localstorage"; + packageName = "node-localstorage"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz"; + sha512 = "NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ=="; + }; + }; + "node-pre-gyp-0.11.0" = { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz"; + sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q=="; + }; + }; + "nopt-4.0.1" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"; + sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; + }; + }; + "npm-bundled-1.0.6" = { + name = "npm-bundled"; + packageName = "npm-bundled"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz"; + sha512 = "8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g=="; + }; + }; + "npm-packlist-1.4.6" = { + name = "npm-packlist"; + packageName = "npm-packlist"; + version = "1.4.6"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz"; + sha512 = "u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg=="; + }; + }; + "npmlog-4.1.2" = { + name = "npmlog"; + packageName = "npmlog"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; + sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "oauth-sign-0.9.0" = { + name = "oauth-sign"; + packageName = "oauth-sign"; + version = "0.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; + sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "olm-https://packages.matrix.org/npm/olm/olm-2.3.0.tgz" = { + name = "olm"; + packageName = "olm"; + version = "2.3.0"; + src = fetchurl { + name = "olm-2.3.0.tar.gz"; + url = https://packages.matrix.org/npm/olm/olm-2.3.0.tgz; + sha256 = "1f0f037a025a44509646cb849ded7c1a1f55e7bfed240fad19676c002fcd953a"; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "performance-now-2.1.0" = { + name = "performance-now"; + packageName = "performance-now"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; + }; + }; + "psl-1.4.0" = { + name = "psl"; + packageName = "psl"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz"; + sha512 = "HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw=="; + }; + }; + "punycode-1.4.1" = { + name = "punycode"; + packageName = "punycode"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + }; + "punycode-2.1.1" = { + name = "punycode"; + packageName = "punycode"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; + sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; + }; + }; + "q-1.5.1" = { + name = "q"; + packageName = "q"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz"; + sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7"; + }; + }; + "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=="; + }; + }; + "rc-1.2.8" = { + name = "rc"; + packageName = "rc"; + version = "1.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"; + sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="; + }; + }; + "readable-stream-2.3.6" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"; + sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw=="; + }; + }; + "request-2.88.0" = { + name = "request"; + packageName = "request"; + version = "2.88.0"; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz"; + sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg=="; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="; + }; + }; + "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=="; + }; + }; + "safe-buffer-5.2.0" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz"; + sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="; + }; + }; + "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=="; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; + }; + }; + "semver-5.7.1" = { + name = "semver"; + packageName = "semver"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"; + sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "signal-exit-3.0.2" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"; + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; + }; + }; + "slide-1.1.6" = { + name = "slide"; + packageName = "slide"; + version = "1.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz"; + sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"; + }; + }; + "sqlite3-4.1.0" = { + name = "sqlite3"; + packageName = "sqlite3"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.0.tgz"; + sha512 = "RvqoKxq+8pDHsJo7aXxsFR18i+dU2Wp5o12qAJOV5LNcDt+fgJsc2QKKg3sIRfXrN9ZjzY1T7SNe/DFVqAXjaw=="; + }; + }; + "sshpk-1.16.1" = { + name = "sshpk"; + packageName = "sshpk"; + version = "1.16.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; + sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-json-comments-2.0.1" = { + name = "strip-json-comments"; + packageName = "strip-json-comments"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + }; + "tar-4.4.13" = { + name = "tar"; + packageName = "tar"; + version = "4.4.13"; + src = fetchurl { + url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz"; + sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA=="; + }; + }; + "tough-cookie-2.4.3" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"; + sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ=="; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-0.14.5" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + }; + "uri-js-4.2.2" = { + name = "uri-js"; + packageName = "uri-js"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"; + sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "uuid-3.3.3" = { + name = "uuid"; + packageName = "uuid"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz"; + sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="; + }; + }; + "verror-1.10.0" = { + name = "verror"; + packageName = "verror"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + }; + "wide-align-1.1.3" = { + name = "wide-align"; + packageName = "wide-align"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; + sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "write-file-atomic-1.3.4" = { + name = "write-file-atomic"; + packageName = "write-file-atomic"; + version = "1.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz"; + sha1 = "f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"; + }; + }; + "yallist-3.1.1" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; + sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="; + }; + }; + }; + node-pre-gyp = nodeEnv.buildNodePackage { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz"; + sha512 = "+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA=="; + }; + dependencies = [ + sources."abbrev-1.1.1" + sources."ansi-regex-2.1.1" + sources."aproba-1.2.0" + sources."are-we-there-yet-1.1.5" + sources."balanced-match-1.0.0" + sources."brace-expansion-1.1.11" + sources."chownr-1.1.3" + sources."code-point-at-1.1.0" + sources."concat-map-0.0.1" + sources."console-control-strings-1.1.0" + sources."core-util-is-1.0.2" + sources."debug-3.2.6" + sources."deep-extend-0.6.0" + sources."delegates-1.0.0" + sources."detect-libc-1.0.3" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + sources."gauge-2.7.4" + sources."glob-7.1.6" + sources."has-unicode-2.0.1" + sources."iconv-lite-0.4.24" + sources."ignore-walk-3.0.3" + sources."inflight-1.0.6" + sources."inherits-2.0.4" + sources."ini-1.3.5" + sources."is-fullwidth-code-point-1.0.0" + sources."isarray-1.0.0" + sources."minimatch-3.0.4" + sources."minimist-0.0.8" + sources."minipass-2.9.0" + sources."minizlib-1.3.3" + sources."mkdirp-0.5.1" + sources."ms-2.1.2" + sources."needle-2.4.0" + sources."nopt-4.0.1" + sources."npm-bundled-1.0.6" + sources."npm-packlist-1.4.6" + sources."npmlog-4.1.2" + sources."number-is-nan-1.0.1" + sources."object-assign-4.1.1" + sources."once-1.4.0" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."path-is-absolute-1.0.1" + sources."process-nextick-args-2.0.1" + (sources."rc-1.2.8" // { + dependencies = [ + sources."minimist-1.2.0" + ]; + }) + sources."readable-stream-2.3.6" + sources."rimraf-2.7.1" + sources."safe-buffer-5.1.2" + sources."safer-buffer-2.1.2" + sources."sax-1.2.4" + sources."semver-5.7.1" + sources."set-blocking-2.0.0" + sources."signal-exit-3.0.2" + sources."string-width-1.0.2" + sources."string_decoder-1.1.1" + sources."strip-ansi-3.0.1" + sources."strip-json-comments-2.0.1" + sources."tar-4.4.13" + sources."util-deprecate-1.0.2" + sources."wide-align-1.1.3" + sources."wrappy-1.0.2" + sources."yallist-3.1.1" + ]; + buildInputs = []; + meta = { + description = "Node.js native addon binary install tool"; + homepage = "https://github.com/mapbox/node-pre-gyp#readme"; + license = "BSD-3-Clause"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; + args = { + name = "matrix-recorder"; + packageName = "matrix-recorder"; + version = "0.0.6"; + src = fetchgit { + url = "https://gitlab.com/argit/matrix-recorder/"; + rev = "006b78c8a4ddc636be8f6f1e3875b13a4a6d2c7c"; + sha256 = "0m3kzwbrxymwl6hr981q6fsf752fqxwzbpxryx25j4lkwc23nmj3"; + }; + dependencies = [ + sources."abbrev-1.1.1" + sources."ajv-6.10.2" + sources."another-json-0.2.0" + sources."ansi-regex-2.1.1" + sources."aproba-1.2.0" + sources."are-we-there-yet-1.1.5" + sources."asn1-0.2.4" + sources."assert-plus-1.0.0" + sources."asynckit-0.4.0" + sources."aws-sign2-0.7.0" + sources."aws4-1.9.0" + sources."balanced-match-1.0.0" + sources."bcrypt-pbkdf-1.0.2" + sources."brace-expansion-1.1.11" + sources."browser-request-0.3.3" + sources."caseless-0.12.0" + sources."chownr-1.1.3" + sources."code-point-at-1.1.0" + sources."combined-stream-1.0.8" + sources."concat-map-0.0.1" + sources."console-control-strings-1.1.0" + sources."core-util-is-1.0.2" + sources."dashdash-1.14.1" + sources."debug-3.2.6" + sources."deep-extend-0.6.0" + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."detect-libc-1.0.3" + sources."ecc-jsbn-0.1.2" + sources."encoding-0.1.12" + sources."extend-3.0.2" + sources."extsprintf-1.3.0" + sources."fast-deep-equal-2.0.1" + sources."fast-json-stable-stringify-2.0.0" + sources."forever-agent-0.6.1" + sources."form-data-2.3.3" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + sources."gauge-2.7.4" + sources."getpass-0.1.7" + sources."glob-7.1.6" + sources."graceful-fs-4.2.3" + sources."har-schema-2.0.0" + sources."har-validator-5.1.3" + sources."has-unicode-2.0.1" + sources."http-signature-1.2.0" + sources."iconv-lite-0.4.24" + sources."ignore-walk-3.0.3" + sources."imurmurhash-0.1.4" + sources."inflight-1.0.6" + sources."inherits-2.0.4" + sources."ini-1.3.5" + sources."is-fullwidth-code-point-1.0.0" + sources."is-stream-1.1.0" + sources."is-typedarray-1.0.0" + sources."isarray-1.0.0" + sources."isstream-0.1.2" + sources."jsbn-0.1.1" + sources."json-schema-0.2.3" + sources."json-schema-traverse-0.4.1" + sources."json-stringify-safe-5.0.1" + sources."jsprim-1.4.1" + sources."marked-0.6.3" + sources."matrix-js-sdk-0.7.13" + sources."mime-db-1.42.0" + sources."mime-types-2.1.25" + sources."minimatch-3.0.4" + sources."minimist-0.0.8" + sources."minipass-2.9.0" + sources."minizlib-1.3.3" + sources."mkdirp-0.5.1" + sources."ms-2.1.2" + sources."mustache-2.3.2" + sources."nan-2.14.0" + sources."needle-2.4.0" + sources."node-fetch-1.7.3" + sources."node-localstorage-1.3.1" + sources."node-pre-gyp-0.11.0" + sources."nopt-4.0.1" + sources."npm-bundled-1.0.6" + sources."npm-packlist-1.4.6" + sources."npmlog-4.1.2" + sources."number-is-nan-1.0.1" + sources."oauth-sign-0.9.0" + sources."object-assign-4.1.1" + sources."olm-https://packages.matrix.org/npm/olm/olm-2.3.0.tgz" + sources."once-1.4.0" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."path-is-absolute-1.0.1" + sources."performance-now-2.1.0" + sources."process-nextick-args-2.0.1" + sources."psl-1.4.0" + sources."punycode-2.1.1" + sources."q-1.5.1" + sources."qs-6.5.2" + (sources."rc-1.2.8" // { + dependencies = [ + sources."minimist-1.2.0" + ]; + }) + (sources."readable-stream-2.3.6" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."request-2.88.0" + sources."rimraf-2.7.1" + sources."safe-buffer-5.2.0" + sources."safer-buffer-2.1.2" + sources."sax-1.2.4" + sources."semver-5.7.1" + sources."set-blocking-2.0.0" + sources."signal-exit-3.0.2" + sources."slide-1.1.6" + sources."sqlite3-4.1.0" + sources."sshpk-1.16.1" + sources."string-width-1.0.2" + (sources."string_decoder-1.1.1" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."strip-ansi-3.0.1" + sources."strip-json-comments-2.0.1" + sources."tar-4.4.13" + (sources."tough-cookie-2.4.3" // { + dependencies = [ + sources."punycode-1.4.1" + ]; + }) + sources."tunnel-agent-0.6.0" + sources."tweetnacl-0.14.5" + sources."uri-js-4.2.2" + sources."util-deprecate-1.0.2" + sources."uuid-3.3.3" + sources."verror-1.10.0" + sources."wide-align-1.1.3" + sources."wrappy-1.0.2" + sources."write-file-atomic-1.3.4" + sources."yallist-3.1.1" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "A recorder that can record Matrix rooms you are a member of (including E2E-encrypted rooms)."; + license = "MIT"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +in +{ + tarball = nodeEnv.buildNodeSourceDist args; + package = nodeEnv.buildNodePackage args; + shell = nodeEnv.buildNodeShell args; + inherit node-pre-gyp; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json new file mode 100644 index 000000000000..fc03d636ad21 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json @@ -0,0 +1,27 @@ +{ + "name": "matrix-recorder", + "version": "0.0.6", + "description": "A recorder that can record Matrix rooms you are a member of (including E2E-encrypted rooms).", + "author": "Hello Matrix <hello@hello-matrix.net>", + "main": "matrix-recorder.js", + "scripts": { + "start": "node matrix-recorder.js" + }, + "repository": { + "type": "git", + "url": "https://gitlab.com/argit/matrix-recorder.git" + }, + "dependencies": { + "marked": "^0.6.2", + "matrix-js-sdk": "^0.7.13", + "mime-types": "^2.1.14", + "mustache": "^2.3.0", + "node-fetch": "^1.6.3", + "node-localstorage": "^1.3.0", + "sqlite3": "^4.0.7", + "olm": "https://packages.matrix.org/npm/olm/olm-2.3.0.tgz" + }, + "license": "MIT", + "optionalDependencies": { + } +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix new file mode 100644 index 000000000000..54b7ef2bd991 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchgit + , buildPythonApplication, buildPythonPackage + , pygobject3, pytestrunner, requests, responses, pytest, python-olm + , canonicaljson, olm +}: +let + mainsrc = fetchgit { + url = "https://github.com/saadnpq/matrixcli"; + rev = "61ebde173ca2f77185c261c2b7f6db297ca89863"; + sha256 = "0xcjjy2xwlcixr9fwgzcfjjkivqpk104h7dslfa7lz9jq9pzqzvq"; + fetchSubmodules = true; + }; + + sdk = buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "matrix-python-sdk-matrixcli"; + version = "0.0.2019-08-15"; + + src = "${mainsrc}/matrix-python-sdk/"; + + propagatedBuildInputs = [ + requests responses olm python-olm canonicaljson + pytestrunner pytest + ]; + + doCheck = false; + doInstallCheck = false; + + meta = { + license = stdenv.lib.licenses.asl20; + description = "Fork of Matrix Python SDK"; + platforms = stdenv.lib.platforms.linux; + }; + }; + +in +buildPythonApplication rec { + name = "${pname}-${version}"; + pname = "matrixcli"; + version = "0.0.2019-08-15"; + + src = mainsrc; + + propagatedBuildInputs = [pygobject3 sdk]; + + meta = { + description = "CLI client for Matrix"; + license = stdenv.lib.licenses.gpl3; + maintainers = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.linux; + homepage = "https://github.com/saadnpq/matrixcli"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix new file mode 100644 index 000000000000..dbfc87b8e8d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix @@ -0,0 +1,98 @@ +{ stdenv, fetchurl, gnome2, gtk3, pango, atk, cairo, gdk-pixbuf, glib, +freetype, fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage, +libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst, +libXScrnSaver, nss, nspr, alsaLib, cups, expat, udev, wrapGAppsHook, +hicolor-icon-theme, libuuid, at-spi2-core, at-spi2-atk }: + +let + rpath = stdenv.lib.makeLibraryPath [ + alsaLib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + pango + libuuid + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + nspr + nss + stdenv.cc.cc + udev + xorg.libxcb + ]; + +in + stdenv.mkDerivation rec { + pname = "mattermost-desktop"; + version = "4.3.1"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz"; + sha256 = "076nv5h6xscbw1987az00x493qhqgrli87gnn57zbvz0acgvlhfv"; + } + else if stdenv.hostPlatform.system == "i686-linux" then + fetchurl { + url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz"; + sha256 = "19ps9g8j6kp4haj6r3yfy4ma2wm6isq5fa8zlcz6g042ajkqq0ij"; + } + else + throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}"; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + + buildInputs = [ wrapGAppsHook gtk3 hicolor-icon-theme ]; + + installPhase = '' + mkdir -p $out/share/mattermost-desktop + cp -R . $out/share/mattermost-desktop + + mkdir -p "$out/bin" + ln -s $out/share/mattermost-desktop/mattermost-desktop \ + $out/bin/mattermost-desktop + + patchShebangs $out/share/mattermost-desktop/create_desktop_file.sh + $out/share/mattermost-desktop/create_desktop_file.sh + rm $out/share/mattermost-desktop/create_desktop_file.sh + mkdir -p $out/share/applications + mv Mattermost.desktop $out/share/applications/Mattermost.desktop + substituteInPlace \ + $out/share/applications/Mattermost.desktop \ + --replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${rpath}:$out/share/mattermost-desktop" \ + $out/share/mattermost-desktop/mattermost-desktop + ''; + + meta = with stdenv.lib; { + description = "Mattermost Desktop client"; + homepage = https://about.mattermost.com/; + license = licenses.asl20; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = [ maintainers.joko ]; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix new file mode 100644 index 000000000000..f41111237114 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, openssl, ncurses, pkgconfig, glib, loudmouth, libotr +, gpgme +}: + +stdenv.mkDerivation rec { + pname = "mcabber"; + version = "1.1.0"; + + src = fetchurl { + url = "https://mcabber.com/files/mcabber-${version}.tar.bz2"; + sha256 = "1ggh865p1rf10ffsnf4g6qv9i8bls36dxdb1nzs5r9vdqci2rz04"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openssl ncurses glib loudmouth libotr gpgme ]; + + configureFlags = [ + "--with-openssl=${openssl.dev}" + "--enable-modules" + "--enable-otr" + ]; + + doCheck = true; + + meta = with stdenv.lib; { + homepage = http://mcabber.com/; + description = "Small Jabber console client"; + license = licenses.gpl2; + maintainers = with maintainers; [ pSub ]; + platforms = with platforms; linux; + updateWalker = true; + downloadPage = "http://mcabber.com/files/"; + downloadURLRegexp = "mcabber-[0-9.]+[.]tar[.][a-z0-9]+$"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile new file mode 100644 index 000000000000..216af305b4ad --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile @@ -0,0 +1,39 @@ +alias __source_distinct__ source +def source(url) + @loaded ||= {} + unless @loaded[url] + @loaded[url] = true + __source_distinct__(url) end end + +source 'https://rubygems.org' + +ruby '>= 2.5.0' + +group :default do + gem 'addressable','>= 2.7.0', '< 2.8' + gem 'delayer','>= 1.0.1', '< 1.1' + gem 'delayer-deferred','>= 2.1.1', '< 2.2' + gem 'diva','>= 1.0.1', '< 1.1' + gem 'memoist','>= 0.16.2', '< 0.17' + gem 'oauth','>= 0.5.4' + gem 'pluggaloid','>= 1.2.0', '< 1.3' + gem 'typed-array','>= 0.1.2', '< 0.2' +end + +group :test do + gem 'test-unit','>= 3.3.4', '< 4.0' + gem 'rake','>= 13.0.1' + gem 'mocha','>= 1.11.1' + gem 'webmock','>= 3.7.6' + gem 'ruby-prof','>= 1.1.0' +end + + +group :plugin do + Dir.glob(File.expand_path(File.join(__dir__, 'plugin/*/Gemfile'))){ |path| + eval File.open(path).read + } + Dir.glob(File.join(File.expand_path(ENV['MIKUTTER_CONFROOT'] || '~/.mikutter'), 'plugin/*/Gemfile')){ |path| + eval File.open(path).read + } +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock new file mode 100644 index 000000000000..63f9a63849b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock @@ -0,0 +1,103 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + atk (3.4.1) + glib2 (= 3.4.1) + cairo (1.16.4) + native-package-installer (>= 1.0.3) + pkg-config (>= 1.2.2) + cairo-gobject (3.4.1) + cairo (>= 1.16.2) + glib2 (= 3.4.1) + crack (0.4.3) + safe_yaml (~> 1.0.0) + delayer (1.0.1) + delayer-deferred (2.1.1) + delayer (>= 1.0, < 2.0) + diva (1.0.1) + addressable (>= 2.5.2, < 2.8) + gdk_pixbuf2 (3.4.1) + gio2 (= 3.4.1) + gettext (3.2.9) + locale (>= 2.0.5) + text (>= 1.3.0) + gio2 (3.4.1) + gobject-introspection (= 3.4.1) + glib2 (3.4.1) + native-package-installer (>= 1.0.3) + pkg-config (>= 1.3.5) + gobject-introspection (3.4.1) + glib2 (= 3.4.1) + gtk2 (3.4.1) + atk (= 3.4.1) + gdk_pixbuf2 (= 3.4.1) + pango (= 3.4.1) + hashdiff (1.0.0) + httpclient (2.8.3) + instance_storage (1.0.0) + io-console (0.5.3) + irb (1.2.1) + reline (>= 0.0.1) + locale (2.1.2) + memoist (0.16.2) + mini_portile2 (2.4.0) + mocha (1.11.1) + moneta (1.2.1) + native-package-installer (1.0.9) + nokogiri (1.10.7) + mini_portile2 (~> 2.4.0) + oauth (0.5.4) + pango (3.4.1) + cairo-gobject (= 3.4.1) + gobject-introspection (= 3.4.1) + pkg-config (1.4.0) + pluggaloid (1.2.0) + delayer (>= 1.0.0, < 2.0) + instance_storage (>= 1.0.0, < 2.0.0) + power_assert (1.1.5) + public_suffix (4.0.1) + rake (13.0.1) + reline (0.1.2) + io-console (~> 0.5) + ruby-prof (1.1.0) + safe_yaml (1.0.5) + test-unit (3.3.4) + power_assert + text (1.3.1) + typed-array (0.1.2) + webmock (3.7.6) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + ruby + +DEPENDENCIES + addressable (>= 2.7.0, < 2.8) + delayer (>= 1.0.1, < 1.1) + delayer-deferred (>= 2.1.1, < 2.2) + diva (>= 1.0.1, < 1.1) + gettext (>= 3.2.9, < 3.3) + gtk2 (= 3.4.1) + httpclient + irb (>= 1.2.0, < 1.3) + memoist (>= 0.16.2, < 0.17) + mocha (>= 1.11.1) + moneta + nokogiri + oauth (>= 0.5.4) + pluggaloid (>= 1.2.0, < 1.3) + rake (>= 13.0.1) + ruby-prof (>= 1.1.0) + test-unit (>= 3.3.4, < 4.0) + typed-array (>= 0.1.2, < 0.2) + webmock (>= 3.7.6) + +RUBY VERSION + ruby 2.7.0p0 + +BUNDLED WITH + 2.1.2 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix new file mode 100644 index 000000000000..7d2037d16a77 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix @@ -0,0 +1,82 @@ +{ stdenv, fetchurl +, bundlerEnv, ruby +, alsaUtils, libnotify, which, wrapGAppsHook, gtk2, atk, gobject-introspection +}: + +# how to update: +# find latest version at: http://mikutter.hachune.net/download#download +# run these commands: +# +# wget http://mikutter.hachune.net/bin/mikutter.4.0.0.tar.gz +# mkdir mikutter +# cd mikutter +# tar xvf ../mikutter.4.0.0.tar.gz +# find . -not -name Gemfile -exec rm {} \; +# find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \; +# cd .. +# mv mikutter/* . +# rm mikutter.4.0.0.tar.gz +# rm gemset.nix Gemfile.lock; nix-shell -p bundler bundix --run 'bundle lock && bundix' + +stdenv.mkDerivation rec { + pname = "mikutter"; + version = "4.0.0"; + + src = fetchurl { + url = "https://mikutter.hachune.net/bin/mikutter.${version}.tar.gz"; + sha256 = "0nx14vlp7p69m2vw0s6kbiyymsfq0r2jd4nm0v5c4xb9avkpgc8g"; + }; + + buildInputs = [ alsaUtils libnotify which gtk2 ruby atk gobject-introspection ]; + nativeBuildInputs = [ wrapGAppsHook ]; + + unpackPhase = '' + mkdir source + cd source + unpackFile $src + rm -rf vendor + ''; + + installPhase = let + env = bundlerEnv { + name = "mikutter-${version}-gems"; + gemdir = ./.; + + inherit ruby; + }; + in '' + install -v -D -m644 README $out/share/doc/mikutter/README + install -v -D -m644 LICENSE $out/share/doc/mikutter/LICENSE + rm -v README LICENSE + + cp -rv . $out + mkdir $out/bin/ + # hack wrapGAppsHook wants a file not a symlink + mv $out/mikutter.rb $out/bin/mikutter + + gappsWrapperArgs+=( + --prefix PATH : "${ruby}/bin:${alsaUtils}/bin:${libnotify}/bin" + --prefix GEM_HOME : "${env}/${env.ruby.gemPath}" + --set DISABLE_BUNDLER_SETUP 1 + ) + # --prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules" + + mkdir -p $out/share/mikutter $out/share/applications + ln -sv $out/core/skin $out/share/mikutter/skin + substituteAll ${./mikutter.desktop} $out/share/applications/mikutter.desktop + ''; + + postFixup = '' + mv $out/bin/.mikutter-wrapped $out/mikutter.rb + substituteInPlace $out/bin/mikutter \ + --replace "$out/bin/.mikutter-wrapped" "$out/mikutter.rb" + ''; + + meta = with stdenv.lib; { + description = "An extensible Twitter client"; + homepage = https://mikutter.hachune.net; + platforms = ruby.meta.platforms; + license = licenses.mit; + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix new file mode 100644 index 000000000000..88ea97be1caf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix @@ -0,0 +1,422 @@ +{ + addressable = { + dependencies = ["public_suffix"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; + type = "gem"; + }; + version = "2.7.0"; + }; + atk = { + dependencies = ["glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8q9a1f6x4gy55p8cf52a22bnpjgn18ad9n959x0f4gybbhs948"; + type = "gem"; + }; + version = "3.4.1"; + }; + cairo = { + dependencies = ["native-package-installer" "pkg-config"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yvv2lcbsybzbw1nrmfivmln23da4rndrs3av6ymjh0x3ww5h7p8"; + type = "gem"; + }; + version = "1.16.4"; + }; + cairo-gobject = { + dependencies = ["cairo" "glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gkxdfslcvrwrs48giilji3bgxd5bwijwq33p9h00r10jzfg2028"; + type = "gem"; + }; + version = "3.4.1"; + }; + crack = { + dependencies = ["safe_yaml"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"; + type = "gem"; + }; + version = "0.4.3"; + }; + delayer = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09p4rkh3dpdm1mhq721m4d6zvxqqp44kg7069s8l7kmaf7nv2nb3"; + type = "gem"; + }; + version = "1.0.1"; + }; + delayer-deferred = { + dependencies = ["delayer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mbdxn1hskjqf3zlj4waxl71ccvbj6lk81c99769paxw4fajwrgx"; + type = "gem"; + }; + version = "2.1.1"; + }; + diva = { + dependencies = ["addressable"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182gws1zihhpl7r3m8jsf29maqg9xdhj46s9lidbldar8clpl23h"; + type = "gem"; + }; + version = "1.0.1"; + }; + gdk_pixbuf2 = { + dependencies = ["gio2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0194gzn0kialfh0j7crllvp808r64sg6dh297x69b0av21ar5pam"; + type = "gem"; + }; + version = "3.4.1"; + }; + gettext = { + dependencies = ["locale" "text"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr"; + type = "gem"; + }; + version = "3.2.9"; + }; + gio2 = { + dependencies = ["gobject-introspection"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l3jpgbdvb55xhcmpkcqgwx5068dfyi8kijfvzhbqh96ng0p1m7g"; + type = "gem"; + }; + version = "3.4.1"; + }; + glib2 = { + dependencies = ["native-package-installer" "pkg-config"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18clyn0fp0h5alnkf9i2bqd6wvl78h468pdbzs1csqnba8vw4q1c"; + type = "gem"; + }; + version = "3.4.1"; + }; + gobject-introspection = { + dependencies = ["glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3x8qiisbax3x0izj8l5w66r53ba5ma53ax2jhdbhbvaxx3d02n"; + type = "gem"; + }; + version = "3.4.1"; + }; + gtk2 = { + dependencies = ["atk" "gdk_pixbuf2" "pango"]; + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17az8g0n1yzz90kdbjg2hpabi04qccda7v6lin76bs637ivfg2md"; + type = "gem"; + }; + version = "3.4.1"; + }; + hashdiff = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jqpbvidrlnq3xf0hkdbs00607jgz35lry6gjw4bcxgh52am2mk"; + type = "gem"; + }; + version = "1.0.0"; + }; + httpclient = { + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + instance_storage = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08nf5fhq9dckq9lmaklxydq0hrlfi7phk66gr3bggxg45zd687pl"; + type = "gem"; + }; + version = "1.0.0"; + }; + io-console = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0srn91ly4cc5qvyj3r87sc7v8dnm52qj1hczzxmysib6ffparngd"; + type = "gem"; + }; + version = "0.5.3"; + }; + irb = { + dependencies = ["reline"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r1y8i46qd5izdszzzn5jxvwvq00m89rk0hm8cs8f21p7nlwmh5w"; + type = "gem"; + }; + version = "1.2.1"; + }; + locale = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x"; + type = "gem"; + }; + version = "2.1.2"; + }; + memoist = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55"; + type = "gem"; + }; + version = "0.16.2"; + }; + mini_portile2 = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; + type = "gem"; + }; + version = "2.4.0"; + }; + mocha = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06i2q5qjr9mvjgjc8w41pdf3qalw340y33wjvzc0rp4a1cbbb7pp"; + type = "gem"; + }; + version = "1.11.1"; + }; + moneta = { + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0q7fskfdc0h5dhl8aamg3ypybd6cyl4x0prh4803gj7hxr17jfm1"; + type = "gem"; + }; + version = "1.2.1"; + }; + native-package-installer = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0piclgf6pw7hr10x57x0hn675djyna4sb3xc97yb9vh66wkx1fl0"; + type = "gem"; + }; + version = "1.0.9"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln"; + type = "gem"; + }; + version = "1.10.7"; + }; + oauth = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y"; + type = "gem"; + }; + version = "0.5.4"; + }; + pango = { + dependencies = ["cairo-gobject" "gobject-introspection"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d0cn50qgpifrcv8qx72wi6l9xalw3ryngbfmm9xpg9vx5rl1qbp"; + type = "gem"; + }; + version = "3.4.1"; + }; + pkg-config = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cxdpr2wlz9b587avlq04a1da5fz1vdw8jvr6lx23mcq7mqh2xcx"; + type = "gem"; + }; + version = "1.4.0"; + }; + pluggaloid = { + dependencies = ["delayer" "instance_storage"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gv0rjjdic8c41gfr3kyyphvf0fmv5rzcf6qd57zjdfcn6fvi3hh"; + type = "gem"; + }; + version = "1.2.0"; + }; + power_assert = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s"; + type = "gem"; + }; + version = "1.1.5"; + }; + public_suffix = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0"; + type = "gem"; + }; + version = "4.0.1"; + }; + rake = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9"; + type = "gem"; + }; + version = "13.0.1"; + }; + reline = { + dependencies = ["io-console"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0908ijrngc3wkn5iny7d0kxkp74w6ixk2nwzzngplplfla1vkp8x"; + type = "gem"; + }; + version = "0.1.2"; + }; + ruby-prof = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18ga5f4h1fnwn0xh910kpnw4cg3lq3jqljd3h16bdw9pgc5ff7dn"; + type = "gem"; + }; + version = "1.1.0"; + }; + safe_yaml = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56"; + type = "gem"; + }; + version = "1.0.5"; + }; + test-unit = { + dependencies = ["power_assert"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mrkpb6wz0cs1740kaca240k4ymmkbvb2v5xaxsy6vynqw8n0g6z"; + type = "gem"; + }; + version = "3.3.4"; + }; + text = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"; + type = "gem"; + }; + version = "1.3.1"; + }; + typed-array = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qlv2rnkin9rwkgjx3k5qvc17m0m7jf5cdirw3wxbjnw5kga27w9"; + type = "gem"; + }; + version = "0.1.2"; + }; + webmock = { + dependencies = ["addressable" "crack" "hashdiff"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19xvs7gdf8r75bmyb17w9g367qxzqnlrmbdda1y36cn1vrlnf2l8"; + type = "gem"; + }; + version = "3.7.6"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop new file mode 100644 index 000000000000..092f5f35cbf8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=mikutter +Comment=Twitter Client +Type=Application +Exec=@out@/bin/mikutter +Icon=@out@/core/skin/data/icon.png +Terminal=false +Categories=Network; +Keywords=Twitter; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile new file mode 100644 index 000000000000..3306c29e3cbf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'gtk2', '3.4.1' + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile new file mode 100644 index 000000000000..f86005fef078 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile @@ -0,0 +1 @@ +gem 'moneta' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile new file mode 100644 index 000000000000..66016eee9c46 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'nokogiri' +gem 'httpclient' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile new file mode 100644 index 000000000000..14ebffd4e0ad --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile @@ -0,0 +1,6 @@ +source 'https://rubygems.org' + +group :default do + gem 'gettext', '>= 3.2.9', '< 3.3' + gem 'irb', '>= 1.2.0', '< 1.3' +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix new file mode 100644 index 000000000000..7122a509215d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix @@ -0,0 +1,21 @@ +{ stdenv, buildGoPackage, fetchFromGitLab }: + +buildGoPackage { + pname = "mm"; + version = "2016.11.04"; + + goPackagePath = "gitlab.com/meutraa/mm"; + + src = fetchFromGitLab { + owner = "meutraa"; + repo = "mm"; + rev = "473fdd97285168054b672dbad2ffc4047324c518"; + sha256 = "1s8v5gxpw1sms1g3i8nq2x2mmmyz97qkmxs1fzlspfcd6i8vknkp"; + }; + + meta = { + description = "A file system based matrix client"; + homepage = https://gitlab.com/meutraa/mm; + license = stdenv.lib.licenses.isc; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix new file mode 100644 index 000000000000..f214f7221438 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -0,0 +1,79 @@ +{ lib, stdenv, fetchFromGitHub +, cmake, cmark, lmdb, mkDerivation, qtbase, qtmacextras +, qtmultimedia, qttools, mtxclient, boost, spdlog, olm, pkgconfig +, nlohmann_json +}: + +# These hashes and revisions are based on those from here: +# https://github.com/Nheko-Reborn/nheko/blob/v0.6.4/deps/CMakeLists.txt#L52 +let + tweeny = fetchFromGitHub { + owner = "mobius3"; + repo = "tweeny"; + rev = "b94ce07cfb02a0eb8ac8aaf66137dabdaea857cf"; + sha256 = "1wyyq0j7dhjd6qgvnh3knr70li47hmf5394yznkv9b1indqjx4mi"; + }; + + lmdbxx = fetchFromGitHub { + owner = "bendiken"; + repo = "lmdbxx"; + rev = "0b43ca87d8cfabba392dfe884eb1edb83874de02"; + sha256 = "1whsc5cybf9rmgyaj6qjji03fv5jbgcgygp956s3835b9f9cjg1n"; + }; +in +mkDerivation rec { + pname = "nheko"; + version = "0.6.4"; + + src = fetchFromGitHub { + owner = "Nheko-Reborn"; + repo = "nheko"; + rev = "v${version}"; + sha256 = "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm"; + }; + + # If, on Darwin, you encounter the error + # error: must specify at least one argument for '...' parameter of variadic + # macro [-Werror,-Wgnu-zero-variadic-macro-arguments] + # Then adding this parameter is likely the fix you want. + # + # However, it looks like either cmake doesn't honor this CFLAGS variable, or + # darwin's compiler doesn't have the same syntax as gcc for turning off + # -Werror selectively. + # + # Anyway, this is something that will have to be debugged with access to a + # darwin-based OS. Sorry about that! + # + #preConfigure = lib.optionalString stdenv.isDarwin '' + # export CFLAGS=-Wno-error=gnu-zero-variadic-macro-arguments + #''; + + postPatch = '' + mkdir -p .deps/include/ + ln -s ${tweeny}/include .deps/include/tweeny + ln -s ${spdlog} .deps/spdlog + ''; + + cmakeFlags = [ + "-DTWEENY_INCLUDE_DIR=.deps/include" + "-DLMDBXX_INCLUDE_DIR=${lmdbxx}" + "-Dnlohmann_json_DIR=${nlohmann_json}/lib/cmake/nlohmann_json" + ]; + + nativeBuildInputs = [ cmake pkgconfig ]; + + buildInputs = [ + mtxclient olm boost lmdb spdlog cmark + qtbase qtmultimedia qttools + ] ++ lib.optional stdenv.isDarwin qtmacextras; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Desktop client for the Matrix protocol"; + homepage = https://github.com/Nheko-Reborn/nheko; + maintainers = with maintainers; [ ekleog fpletz ]; + platforms = platforms.unix; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix new file mode 100644 index 000000000000..3b3b0c2fd661 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix @@ -0,0 +1,42 @@ +{ stdenv, lib, perl, perlPackages, coreutils, +fetchFromGitHub, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "oysttyer"; + version = "2.10.0"; + + src = fetchFromGitHub { + owner = "oysttyer"; + repo = "oysttyer"; + rev = version; + sha256 = "0cm1hvi68iqgjsg15xdii271pklgzjn9j9afb1c460z71kgy3wz2"; + }; + + buildInputs = [ + perl + makeWrapper + ]; + + propagatedBuildInputs = with perlPackages; [ + DateTimeFormatDateParse + TermReadLineTTYtter + TermReadKey + ]; + + installPhase = '' + ${coreutils}/bin/install -Dm755 \ + oysttyer.pl \ + $out/bin/oysttyer + + wrapProgram $out/bin/oysttyer \ + --prefix PERL5LIB : $PERL5LIB + ''; + + meta = with lib; { + inherit version; + description = "Perl Console Twitter Client"; + homepage = http://oysttyer.github.io/; + maintainers = with maintainers; [ woffs ]; + license = with licenses; [ ffsl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix new file mode 100644 index 000000000000..079fc7d57fb1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix @@ -0,0 +1,26 @@ +{ stdenv, libxml2, pidgin, pkgconfig, fetchFromGitHub } : + +stdenv.mkDerivation rec { + pname = "pidgin-carbons"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "gkdr"; + repo = "carbons"; + rev = "v${version}"; + sha256 = "05hcqvsirb7gnpfcszsrgal5q7dajl2wdi2dy7c41zgl377syavw"; + }; + + makeFlags = [ "PURPLE_PLUGIN_DIR=$(out)/lib/pidgin" ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libxml2 pidgin ]; + + meta = with stdenv.lib; { + homepage = https://github.com/gkdr/carbons; + description = "XEP-0280: Message Carbons plugin for libpurple"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ jb55 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix new file mode 100644 index 000000000000..452149443096 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pidgin} : + +stdenv.mkDerivation { + name = "pidgin-msn-pecan-0.1.4"; + src = fetchurl { + url = http://msn-pecan.googlecode.com/files/msn-pecan-0.1.4.tar.bz2; + sha256 = "0d43z2ay9is1r2kkc9my8pz0fwdyzv7k19vdmbird18lg7rlbjd2"; + }; + + meta = { + description = "Alternative MSN protocol plug-in for Pidgin IM"; + homepage = https://github.com/felipec/msn-pecan; + platforms = stdenv.lib.platforms.linux; + }; + + makeFlags = [ + "PURPLE_LIBDIR=${placeholder "out"}/lib" + "PURPLE_DATADIR=${placeholder "out"}/share/data" + ]; + + buildInputs = [pidgin]; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix new file mode 100644 index 000000000000..9f5c246ede63 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, libotr, pidgin, intltool } : + +stdenv.mkDerivation rec { + name = "pidgin-otr-4.0.2"; + src = fetchurl { + url = "http://www.cypherpunks.ca/otr/${name}.tar.gz"; + sha256 = "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"; + }; + + postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-otr"; + + buildInputs = [ libotr pidgin intltool ]; + + meta = with stdenv.lib; { + homepage = https://otr.cypherpunks.ca/; + description = "Plugin for Pidgin 2.x which implements OTR Messaging"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix new file mode 100644 index 000000000000..bfd4b1abd5e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, pidgin, texLive, imagemagick, glib, gtk2 }: + +let version = "1.5.0"; +in +stdenv.mkDerivation { + pname = "pidgin-latex"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/pidgin-latex/pidgin-latex_${version}.tar.bz2"; + sha256 = "9c850aee90d7e59de834f83e09fa6e3e51b123f06e265ead70957608ada95441"; + }; + + nativeBuildInputs = [pkgconfig]; + buildInputs = [gtk2 glib pidgin]; + makeFlags = [ "PREFIX=$(out)" ]; + + postPatch = '' + sed -e 's/-Wl,-soname//' -i Makefile + ''; + + passthru = { + wrapArgs = "--prefix PATH ':' ${stdenv.lib.makeBinPath [ texLive imagemagick ]}"; + }; + + meta = with stdenv.lib; { + homepage = https://sourceforge.net/projects/pidgin-latex/; + description = "LaTeX rendering plugin for Pidgin IM"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix new file mode 100644 index 000000000000..3555e5a7197b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchgit, pkgconfig, pidgin } : + +let + version = "54b2992"; +in +stdenv.mkDerivation { + pname = "pidgin-mra"; + inherit version; + + src = fetchgit { + url = "https://github.com/dreadatour/pidgin-mra"; + rev = version; + sha256 = "1adq57g11kw7bfpivyvfk3nlpjkc8raiw4bzn3gn4nx3m0wl99vw"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ pidgin ]; + + postPatch = '' + sed -i 's|-I/usr/include/libpurple|$(shell pkg-config --cflags purple)|' Makefile + ''; + + makeFlags = [ + "DESTDIR=/" + "LIBDIR=${placeholder "out"}/lib" + "DATADIR=${placeholder "out"}/share" + ]; + + meta = { + homepage = https://github.com/dreadatour/pidgin-mra; + description = "Mail.ru Agent plugin for Pidgin / libpurple"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix new file mode 100644 index 000000000000..6d527f3a7e46 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchFromGitHub, pkgconfig, pidgin, glib, json-glib, nss, nspr +, libsecret +} : + +stdenv.mkDerivation rec { + pname = "pidgin-opensteamworks"; + version = "1.7"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "pidgin-opensteamworks"; + rev = version; + sha256 = "0zxd45g9ycw5kmm4i0800jnqg1ms2gbqcld6gkyv6n3ac1wxizpj"; + }; + + sourceRoot = "source/steam-mobile"; + + installFlags = [ + "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2" + "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share" + ]; + + nativeBuildInputs = [ + pkgconfig + ]; + buildInputs = [ + pidgin glib json-glib nss nspr libsecret + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/EionRobb/pidgin-opensteamworks; + description = "Plugin for Pidgin 2.x which implements Steam Friends/Steam IM compatibility"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arobyn ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix new file mode 100644 index 000000000000..ff065e7e2ce3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, pidgin, xosd +, autoreconfHook } : + +stdenv.mkDerivation rec { + name = "pidgin-osd-0.2.0"; + src = fetchFromGitHub { + owner = "edanaher"; + repo = "pidgin-osd"; + rev = name; + sha256 = "07wa9anz99hnv6kffpcph3fbq8mjbyq17ij977ggwgw37zb9fzb5"; + }; + + # autoreconf is run such that it *really* wants all the files, and there's no + # default ChangeLog. So make it happy. + preAutoreconf = "touch ChangeLog"; + + postInstall = '' + mkdir -p $out/lib/pidgin + mv $out/lib/pidgin-osd.{la,so} $out/lib/pidgin + ''; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ xosd pidgin ]; + + meta = with stdenv.lib; { + homepage = https://github.com/mbroemme/pidgin-osd; + description = "Plugin for Pidgin which implements on-screen display via libxosd"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix new file mode 100644 index 000000000000..c418b2e992a8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json-glib }: + +stdenv.mkDerivation rec { + pname = "pidgin-skypeweb"; + version = "1.5"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "skype4pidgin"; + rev = version; + sha256 = "1bd9gd36yhrbrww0dvai9rnzxxj1c9sb4003c72wg27w12y47xfv"; + }; + + setSourceRoot = '' + sourceRoot=$(echo */skypeweb) + ''; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ pidgin json-glib ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with stdenv.lib; { + homepage = https://github.com/EionRobb/skype4pidgin; + description = "SkypeWeb plugin for Pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix new file mode 100644 index 000000000000..7302ba89a715 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, pidgin } : + +let + version = "0.8"; +in +stdenv.mkDerivation { + pname = "pidgin-xmpp-receipts"; + inherit version; + + src = fetchFromGitHub { + owner = "noonien-d"; + repo = "pidgin-xmpp-receipts"; + rev = "release_${version}"; + sha256 = "13kwaymzkymjsdv8q95byd173i4vanj211vgx9cm0y8ag2r3cjsb"; + }; + + buildInputs = [ pidgin ]; + + installPhase = '' + mkdir -p $out/lib/pidgin/ + cp xmpp-receipts.so $out/lib/pidgin/ + ''; + + meta = with stdenv.lib; { + homepage = http://devel.kondorgulasch.de/pidgin-xmpp-receipts/; + description = "Message delivery receipts (XEP-0184) Pidgin plugin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ orivej ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix new file mode 100644 index 000000000000..6695f8cb69b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json-glib }: + +stdenv.mkDerivation { + pname = "purple-discord"; + version = "unstable-2018-04-10"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "purple-discord"; + rev = "9a97886d15a1f028de54b5e6fc54e784531063b0"; + sha256 = "0dc344zh1v4yh9c8javcw5ylzwc1wpx0ih8bww8p8cjmhr8kcl32"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ pidgin json-glib ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with stdenv.lib; { + homepage = https://github.com/EionRobb/purple-discord; + description = "Discord plugin for Pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ sna ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix new file mode 100644 index 000000000000..cff1bcc56b92 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix @@ -0,0 +1,65 @@ +{ stdenv, fetchFromGitHub, fetchhg, pidgin, glib, json-glib, autoreconfHook }: + + +let + pidginHg = fetchhg { + url = "https://bitbucket.org/pidgin/main"; + # take from VERSION file + rev = "9ff9acf9fa14"; + sha256 = "06imlhsps4wrjgjb92zpaxprxfxl2pjb2x9pl859c8cryssrz2jv"; + }; + +in stdenv.mkDerivation rec { + name = "purple-facebook-0.9.5"; + + src = fetchFromGitHub { + owner = "dequis"; + repo = "purple-facebook"; + rev = "v0.9.5-9ff9acf9fa14"; + sha256 = "0a1860bkzrmyxahm9rlxi80z335w491wzdaqaw6j9ccavbymhwhs"; + }; + + postPatch = '' + # we do all patching from update.sh in preAutoreconf + echo "#!${stdenv.shell}" > update.sh + ''; + + preAutoreconf = '' + for FILE in $(cat MANIFEST_PIDGIN); do + install -Dm644 "${pidginHg}/$FILE" "pidgin/$FILE" || true + done + + touch $(cat MANIFEST_VOIDS) + + patchdir="$(pwd)/patches" + pushd pidgin + + for patch in $(ls -1 "$patchdir"); do + patch -p1 -i "$patchdir/$patch" + done + popd + + ./autogen.sh + ''; + + makeFlags = [ + "PLUGIN_DIR_PURPLE=/lib/pidgin/" + "DATA_ROOT_DIR_PURPLE=/share" + ]; + + installPhase = '' + mkdir -p $out/lib/purple-2 + cp pidgin/libpurple/protocols/facebook/.libs/*.so $out/lib/purple-2/ + ''; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ pidgin glib json-glib ]; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "Facebook protocol plugin for libpurple"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ davorb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix new file mode 100644 index 000000000000..5d2292b50ad0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchhg, pidgin, glib, json-glib, protobuf, protobufc }: + +stdenv.mkDerivation { + pname = "purple-hangouts-hg"; + version = "2018-12-02"; + + src = fetchhg { + url = "https://bitbucket.org/EionRobb/purple-hangouts/"; + rev = "cccf2f6"; + sha256 = "1zd1rlzqvw1zkb0ydyz039n3xa1kv1f20a4l6rkm9a8sp6rpf3pi"; + }; + + buildInputs = [ pidgin glib json-glib protobuf protobufc ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with stdenv.lib; { + homepage = https://bitbucket.org/EionRobb/purple-hangouts; + description = "Native Hangouts support for pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ralith ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix new file mode 100644 index 000000000000..e488ae73be00 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, cmake, pidgin, minixml, libxml2, sqlite, libgcrypt }: + +stdenv.mkDerivation rec { + pname = "purple-lurch"; + version = "0.6.7"; + + src = fetchFromGitHub { + owner = "gkdr"; + repo = "lurch"; + rev = "v${version}"; + sha256 = "029jjqinsfhpv0zgji3sv1cyk54fn9qp176fwy97d1clf0vflxrz"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ pidgin minixml libxml2 sqlite libgcrypt ]; + + dontUseCmakeConfigure = true; + + installPhase = '' + install -Dm755 -t $out/lib/purple-2 build/lurch.so + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/gkdr/lurch; + description = "XEP-0384: OMEMO Encryption for libpurple"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ emmanuelrosa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix new file mode 100644 index 000000000000..e9a0812e925b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json-glib, glib, http-parser, sqlite, olm, libgcrypt } : + +stdenv.mkDerivation rec { + pname = "purple-matrix-unstable"; + version = "2019-06-06"; + + src = fetchFromGitHub { + owner = "matrix-org"; + repo = "purple-matrix"; + rev = "4494ba22b479917f0b1f96a3019792d3d75bcff1"; + sha256 = "1gjm0z4wa5vi9x1xk43rany5pffrwg958n180ahdj9a7sa8a4hpm"; + }; + + NIX_CFLAGS_COMPILE = builtins.toString [ + # glib-2.62 deprecations + "-DGLIB_DISABLE_DEPRECATION_WARNINGS" + # override "-O0 -Werror" set by build system + "-O3" "-Wno-error" + ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ pidgin json-glib glib http-parser sqlite olm libgcrypt ]; + + makeFlags = [ + "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2" + "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share" + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/matrix-org/purple-matrix; + description = "Matrix support for Pidgin / libpurple"; + license = licenses.gpl2; + maintainers = with maintainers; [ symphorien ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix new file mode 100644 index 000000000000..8022d32a081a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pidgin, intltool, python } : + +stdenv.mkDerivation rec { + name = "purple-plugin-pack-2.7.0"; + src = fetchurl { + url = "https://bitbucket.org/rekkanoryo/purple-plugin-pack/downloads/${name}.tar.bz2"; + sha256 = "0g5hmy7fwgjq59j52h9yps28jsjjrfkd4r18gyx6hfd3g3kzbg1b"; + }; + + buildInputs = [ pidgin intltool python ]; + + meta = with stdenv.lib; { + homepage = https://bitbucket.org/rekkanoryo/purple-plugin-pack; + description = "Plugin pack for Pidgin 2.x"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ bdimcheff ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix new file mode 100644 index 000000000000..10973345dec9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, pidgin, pkgconfig }: + +stdenv.mkDerivation { + pname = "purple-slack-unstable"; + version = "2019-08-18"; + + src = fetchFromGitHub { + owner = "dylex"; + repo = "slack-libpurple"; + rev = "be97802c7fd0b611722d2f551756e2a2672f6084"; + sha256 = "0l6hwnnv6zzszxkk0a3nli88w5gijvlc9qgkkai0sb4v4c504y5v"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ pidgin ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATAROOTDIR = "${placeholder "out"}/share"; + + meta = with stdenv.lib; { + homepage = https://github.com/dylex/slack-libpurple; + description = "Slack plugin for Pidgin"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ eyjhb ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix new file mode 100644 index 000000000000..edb4ca3c3495 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchhg, pidgin, cmake, libxml2 } : + +let + version = "40ddb6d"; +in +stdenv.mkDerivation { + pname = "purple-vk-plugin"; + inherit version; + + src = fetchhg { + url = "https://bitbucket.org/olegoandreev/purple-vk-plugin"; + rev = version; + sha256 = "02p57fgx8ml00cbrb4f280ak2802svz80836dzk9f1zwm1bcr2qc"; + }; + + buildInputs = [ pidgin cmake libxml2 ]; + + preConfigure = '' + sed -i -e 's|DESTINATION.*PURPLE_PLUGIN_DIR}|DESTINATION lib/purple-2|' CMakeLists.txt + ''; + + cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT=1" ]; + + meta = { + homepage = https://bitbucket.org/olegoandreev/purple-vk-plugin; + description = "Vk (russian social network) plugin for Pidgin / libpurple"; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix new file mode 100644 index 000000000000..83904531753b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchgit, pidgin, glib, libxml2 }: + +stdenv.mkDerivation { + name = "purple-xmpp-upload-2017-12-31"; + + src = fetchgit { + url = "https://github.com/Junker/purple-xmpp-http-upload"; + rev = "178096cbfc9df165c2dc1677666439969d212b37"; + sha256 = "12l9rqlgb4i50xxrfnvwz9sqfk0d3c0m6l09mnvfixqi8illyvlp"; + }; + + buildInputs = [ pidgin glib libxml2 ]; + + installPhase = '' + install -Dm644 -t $out/lib/purple-2 jabber_http_file_upload.so + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/Junker/purple-xmpp-http-upload; + description = "HTTP File Upload plugin for libpurple (XMPP Protocol XEP-0363)"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ emmanuelrosa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix new file mode 100644 index 000000000000..3d1a6ac534c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }: + +stdenv.mkDerivation rec { + pname = "pidgin-sipe"; + version = "1.25.0"; + + src = fetchurl { + url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz"; + sha256 = "0262sz00iqxylx0xfyr48xikhiqzr8pg7b4b7vwj5iv4qxpxv939"; + }; + + nativeBuildInputs = [ intltool ]; + buildInputs = [ pidgin gmime libxml2 nss ]; + enableParallelBuilding = true; + + postInstall = "ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; + + meta = with stdenv.lib; { + description = "SIPE plugin for Pidgin IM"; + homepage = "http://sipe.sourceforge.net/"; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix new file mode 100644 index 000000000000..6657ff96b11f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, pidgin, libnotify, gdk-pixbuf, glib, dbus +, dbus-glib }: + +stdenv.mkDerivation rec { + name = "skype4pidgin-novas0x2a-20120411-6c53f7c48f"; + src = fetchurl { + url = "https://github.com/novas0x2a/skype4pidgin/tarball/6c53f7c48f"; + name = "${name}.tar.gz"; + sha256 = "116jfh5ravaixivqx4a4bz0lbb9c49d5r83nwmripja56zdbpgr0"; + }; + + NIX_CFLAGS_COMPILE = "-I${libnotify}/include/libnotify"; + + patchPhase = '' + sed -i -e 's/ [^ ]*-gcc/ gcc/' -e 's/-march[^ ]*//' \ + -e 's/GLIB_CFLAGS =.*/GLIB_CFLAGS=`pkg-config --cflags glib-2.0 gdk-pixbuf-2.0 libnotify purple dbus-glib-1`/' Makefile + pkg-config --cflags glib-2.0 gdk-pixbuf-2.0 libnotify + ''; + + buildPhase = "make libskype.so libskype_dbus.so"; + + installPhase = '' + mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48} $out/bin $out/lib/pidgin + cp icons/16/skypeout.png $out/pixmaps/pidgin/protocols/16 + cp icons/22/skypeout.png $out/pixmaps/pidgin/protocols/22 + cp icons/48/skypeout.png $out/pixmaps/pidgin/protocols/48 + cp libskype.so libskype_dbus.so $out/lib/pidgin + ''; + + postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-otr"; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ pidgin libnotify gdk-pixbuf glib dbus dbus-glib ]; + + meta = { + homepage = https://github.com/novas0x2a/skype4pidgin; + license = stdenv.lib.licenses.gpl3Plus; + description = "Plugin to use a running skype account through pidgin"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix new file mode 100644 index 000000000000..c38ff8f454e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchgit, pkgconfig, pidgin, libwebp, libgcrypt, gettext } : + +let + version = "1.3.1"; +in +stdenv.mkDerivation rec { + pname = "telegram-purple"; + inherit version; + + src = fetchgit { + url = "https://github.com/majn/telegram-purple"; + rev = "v${version}"; + sha256 = "0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp"; + }; + + NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type"; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ pidgin libwebp libgcrypt gettext ]; + + preConfigure = '' + sed -i "s|/etc/telegram-purple/server.tglpub|$out/lib/purple-2/server.tglpub|g" telegram-purple.c + echo "#define GIT_COMMIT \"${builtins.substring 0 10 src.rev}\"" > commit.h + ''; + + installPhase = '' + mkdir -p $out/lib/purple-2/ + cp bin/*.so $out/lib/purple-2/ #*/ + cp tg-server.tglpub $out/lib/purple-2/server.tglpub + mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48} + cp imgs/telegram16.png $out/pixmaps/pidgin/protocols/16 + cp imgs/telegram22.png $out/pixmaps/pidgin/protocols/22 + cp imgs/telegram48.png $out/pixmaps/pidgin/protocols/48 + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/majn/telegram-purple; + description = "Telegram for Pidgin / libpurple"; + license = licenses.gpl2; + maintainers = [ maintainers.jagajaga ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix new file mode 100644 index 000000000000..41f205514e76 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, libtoxcore, pidgin, autoreconfHook, libsodium }: + +stdenv.mkDerivation rec { + pname = "tox-prpl"; + version = "0.5.1"; + + src = fetchFromGitHub { + owner = "jin-eld"; + repo = "tox-prpl"; + rev = "v${version}"; + sha256 = "0ms367l2f7x83k407c93bmhpyc820f1css61fh2gx4jq13cxqq3p"; + }; + + NIX_LDFLAGS = "-lssp -lsodium"; + + postInstall = "mv $out/lib/purple-2 $out/lib/pidgin"; + + buildInputs = [ libtoxcore pidgin libsodium ]; + nativeBuildInputs = [ autoreconfHook ]; + + meta = with stdenv.lib; { + homepage = https://github.com/jin-eld/tox-prpl; + description = "Tox plugin for Pidgin / libpurple"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix new file mode 100644 index 000000000000..8f86256069ce --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pidgin } : + +stdenv.mkDerivation rec { + pname = "pidgin-window-merge"; + version = "0.3"; + + src = fetchurl { + url = "https://github.com/downloads/dm0-/window_merge/window_merge-${version}.tar.gz"; + sha256 = "0cb5rvi7jqvm345g9mlm4wpq0240kcybv81jpw5wlx7hz0lwi478"; + }; + + buildInputs = [ pidgin ]; + + meta = with stdenv.lib; { + homepage = https://github.com/dm0-/window_merge; + description = "Pidgin plugin that merges the Buddy List window with a conversation window"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch new file mode 100644 index 000000000000..b0758777186a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch @@ -0,0 +1,20 @@ +diff --git a/libpurple/plugin.c b/libpurple/plugin.c +index 4f2b402..fda9add 100644 +--- a/libpurple/plugin.c ++++ b/libpurple/plugin.c +@@ -1181,8 +1181,15 @@ purple_plugins_get_handle(void) { + void + purple_plugins_init(void) { + void *handle = purple_plugins_get_handle(); ++ gchar **paths, **p; + + purple_plugins_add_search_path(LIBDIR); ++ paths = g_strsplit(g_getenv("PURPLE_PLUGIN_PATH"), ":", -1); ++ if (paths) { ++ for (p = paths; *p; ++p) ++ if (**p) purple_plugins_add_search_path(*p); ++ } ++ g_strfreev(paths); + + purple_signal_register(handle, "plugin-load", + purple_marshal_VOID__POINTER, diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix new file mode 100644 index 000000000000..71168e1a692c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix @@ -0,0 +1,81 @@ +{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk2, gtkspell2, aspell +, gst_all_1, startupnotification, gettext +, perlPackages, libxml2, nss, nspr, farstream +, libXScrnSaver, ncurses, avahi, dbus, dbus-glib, intltool, libidn +, lib, python, libICE, libXext, libSM +, cyrus_sasl ? null +, openssl ? null +, gnutls ? null +, libgcrypt ? null +, plugins, symlinkJoin +}: + +# FIXME: clean the mess around choosing the SSL library (nss by default) + +let unwrapped = stdenv.mkDerivation rec { + pname = "pidgin"; + majorVersion = "2"; + version = "${majorVersion}.13.0"; + + src = fetchurl { + url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2"; + sha256 = "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7"; + }; + + inherit nss ncurses; + + nativeBuildInputs = [ makeWrapper ]; + + NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"; + + buildInputs = [ + gtkspell2 aspell startupnotification + gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + libxml2 nss nspr farstream + libXScrnSaver ncurses python + avahi dbus dbus-glib intltool libidn + libICE libXext libSM cyrus_sasl + ] + ++ (lib.optional (openssl != null) openssl) + ++ (lib.optional (gnutls != null) gnutls) + ++ (lib.optional (libgcrypt != null) libgcrypt); + + propagatedBuildInputs = [ pkgconfig gtk2 gettext ] + ++ (with perlPackages; [ perl XMLParser ]); + + patches = [ ./pidgin-makefile.patch ./add-search-path.patch ]; + + configureFlags = [ + "--with-nspr-includes=${nspr.dev}/include/nspr" + "--with-nspr-libs=${nspr.out}/lib" + "--with-nss-includes=${nss.dev}/include/nss" + "--with-nss-libs=${nss.out}/lib" + "--with-ncurses-headers=${ncurses.dev}/include" + "--disable-meanwhile" + "--disable-nm" + "--disable-tcl" + ] + ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ]) + ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]); + + enableParallelBuilding = true; + + postInstall = '' + wrapProgram $out/bin/pidgin \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" + ''; + + meta = with stdenv.lib; { + description = "Multi-protocol instant messaging client"; + homepage = http://pidgin.im; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.vcunat ]; + }; +}; + +in if plugins == [] then unwrapped + else import ./wrapper.nix { + inherit makeWrapper symlinkJoin plugins; + pidgin = unwrapped; + } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch new file mode 100644 index 000000000000..049d404a8d5f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch @@ -0,0 +1,64 @@ +diff --git a/pidgin/Makefile.am b/pidgin/Makefile.am +index 84d927b..1467c19 100644 +--- a/pidgin/Makefile.am ++++ b/pidgin/Makefile.am +@@ -151,6 +151,7 @@ pidgin_LDADD = \ + $(GLIB_LIBS) \ + $(DBUS_LIBS) \ + $(GSTREAMER_LIBS) \ ++ $(GSTINTERFACES_LIBS) \ + $(GSTVIDEO_LIBS) \ + $(XSS_LIBS) \ + $(SM_LIBS) \ +@@ -171,6 +172,7 @@ AM_CPPFLAGS = \ + -I$(top_srcdir) \ + $(GLIB_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(DEBUG_CFLAGS) \ + $(GTK_CFLAGS) \ + $(DBUS_CFLAGS) \ +diff --git a/pidgin/Makefile.in b/pidgin/Makefile.in +index 0d51e25..dd5d879 100644 +--- a/pidgin/Makefile.in ++++ b/pidgin/Makefile.in +@@ -703,6 +703,7 @@ EXTRA_DIST = \ + @ENABLE_GTK_TRUE@ $(GLIB_LIBS) \ + @ENABLE_GTK_TRUE@ $(DBUS_LIBS) \ + @ENABLE_GTK_TRUE@ $(GSTREAMER_LIBS) \ ++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_LIBS) \ + @ENABLE_GTK_TRUE@ $(GSTVIDEO_LIBS) \ + @ENABLE_GTK_TRUE@ $(XSS_LIBS) \ + @ENABLE_GTK_TRUE@ $(SM_LIBS) \ +@@ -723,6 +724,7 @@ EXTRA_DIST = \ + @ENABLE_GTK_TRUE@ -I$(top_srcdir) \ + @ENABLE_GTK_TRUE@ $(GLIB_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(GSTREAMER_CFLAGS) \ ++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(DEBUG_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(GTK_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(DBUS_CFLAGS) \ +diff --git a/pidgin/plugins/Makefile.am b/pidgin/plugins/Makefile.am +index 3bb8c22..6d1e869 100644 +--- a/pidgin/plugins/Makefile.am ++++ b/pidgin/plugins/Makefile.am +@@ -145,6 +145,7 @@ AM_CPPFLAGS = \ + $(GTK_CFLAGS) \ + $(UNITY_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(PLUGIN_CFLAGS) + + # +diff --git a/pidgin/plugins/Makefile.in b/pidgin/plugins/Makefile.in +index 82a34aa..1f7db00 100644 +--- a/pidgin/plugins/Makefile.in ++++ b/pidgin/plugins/Makefile.in +@@ -781,6 +781,7 @@ AM_CPPFLAGS = \ + $(GTK_CFLAGS) \ + $(UNITY_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(PLUGIN_CFLAGS) + + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix new file mode 100644 index 000000000000..095f838fe981 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix @@ -0,0 +1,20 @@ +{ symlinkJoin, pidgin, makeWrapper, plugins }: + +let +extraArgs = map (x: x.wrapArgs or "") plugins; +in symlinkJoin { + name = "pidgin-with-plugins-${pidgin.version}"; + + paths = [ pidgin ] ++ plugins; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/pidgin \ + --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" \ + ${toString extraArgs} + wrapProgram $out/bin/finch \ + --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion}" \ + ${toString extraArgs} + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix new file mode 100644 index 000000000000..31c9fb4e7c3f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix @@ -0,0 +1,30 @@ +{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder +, pytest, aiodns, slixmpp, pyinotify, potr, mpd2, cffi, pkgconfig }: +buildPythonApplication rec { + pname = "poezio"; + version = "0.12.1"; + + disabled = pythonOlder "3.4"; + + checkInputs = [ pytest ]; + propagatedBuildInputs = [ aiodns slixmpp pyinotify potr mpd2 cffi ]; + nativeBuildInputs = [ pkgconfig ]; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "04qnsr0l12i55k6xl4q4akx317gai9wv5f1wpkfkq01wp181i5ll"; + }; + + checkPhase = '' + pytest + ''; + + meta = with lib; { + description = "Free console XMPP client"; + homepage = https://poez.io; + license = licenses.mit; + maintainers = [ maintainers.lsix ]; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix new file mode 100644 index 000000000000..1d70c9641f8e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix @@ -0,0 +1,33 @@ +{ stdenv, buildGoPackage, trousers, dclxvi, wrapGAppsHook, pkgconfig, gtk3, gtkspell3, + fetchgit }: + +let + gui = true; # Might be implemented with nixpkgs config. +in +buildGoPackage rec { + pname = "pond"; + version = "20150830-${stdenv.lib.strings.substring 0 7 rev}"; + rev = "bce6e0dc61803c23699c749e29a83f81da3c41b2"; + + goPackagePath = "github.com/agl/pond"; + + src = fetchgit { + inherit rev; + url = "https://github.com/agl/pond"; + sha256 = "1dmgbg4ak3jkbgmxh0lr4hga1nl623mh7pvsgby1rxl4ivbzwkh4"; + }; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ trousers gtk3 gtkspell3 ] + ++ stdenv.lib.optional stdenv.hostPlatform.isx86_64 dclxvi + ++ stdenv.lib.optionals gui [ wrapGAppsHook ]; + buildFlags = stdenv.lib.optionals (!gui) [ "-tags" "nogui" ]; + excludedPackages = "\\(appengine\\|bn256cgo\\)"; + postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isx86_64 '' + grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \ + -e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \ + -e "s,bn256\.,bn256cgo.,g" + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix new file mode 100644 index 000000000000..55850f0a89c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix @@ -0,0 +1,47 @@ +[ + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6"; + sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa"; + }; + } + { + goPackagePath = "github.com/agl/ed25519"; + fetch = { + type = "git"; + url = "https://github.com/agl/ed25519"; + rev = "278e1ec8e8a6e017cd07577924d6766039146ced"; + sha256 = "165d89cc6dl28j4hkn86pny0jz3sa6hamzdvpvwdj4iha3x6lzc9"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "59b73b37c1e45995477aae817e4a653c89a858db"; + sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4"; + sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p"; + }; + } + { + goPackagePath = "github.com/agl/go-gtk"; + fetch = { + type = "git"; + url = "https://github.com/agl/go-gtk"; + rev = "91c1edb38c241d73129e6b098ca1c9fa83abfc15"; + sha256 = "156ixlhakpqgyp35rsvmndrqz8aggv5bcmzg9ynpri3b9j6kim4d"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix new file mode 100644 index 000000000000..8281e3b606a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, glib, openssl +, glibcLocales, expect, ncurses, libotr, curl, readline, libuuid +, cmocka, libmicrohttpd, stabber, expat, libmesode +, autoconf-archive + +, autoAwaySupport ? true, libXScrnSaver ? null, libX11 ? null +, notifySupport ? true, libnotify ? null, gdk-pixbuf ? null +, traySupport ? true, gnome2 ? null +, pgpSupport ? true, gpgme ? null +, pythonPluginSupport ? true, python ? null +, omemoSupport ? true, libsignal-protocol-c ? null, libgcrypt ? null +}: + +assert autoAwaySupport -> libXScrnSaver != null && libX11 != null; +assert notifySupport -> libnotify != null && gdk-pixbuf != null; +assert traySupport -> gnome2 != null; +assert pgpSupport -> gpgme != null; +assert pythonPluginSupport -> python != null; +assert omemoSupport -> libsignal-protocol-c != null && libgcrypt != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "profanity"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "profanity-im"; + repo = "profanity"; + rev = version; + sha256 = "1mcgr86wqyzqx7mqxfkk2jwx6cgnvrky3zi4v1ww0lh6j05wj9gf"; + }; + + patches = [ ./patches/packages-osx.patch ./patches/undefined-macros.patch ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ + autoreconfHook autoconf-archive glibcLocales pkgconfig + ]; + + buildInputs = [ + expect readline libuuid glib openssl expat ncurses libotr + curl libmesode cmocka libmicrohttpd stabber + ] ++ optionals autoAwaySupport [ libXScrnSaver libX11 ] + ++ optionals notifySupport [ libnotify gdk-pixbuf ] + ++ optionals traySupport [ gnome2.gtk ] + ++ optionals pgpSupport [ gpgme ] + ++ optionals pythonPluginSupport [ python ] + ++ optionals omemoSupport [ libsignal-protocol-c libgcrypt ]; + + # Enable feature flags, so that build fail if libs are missing + configureFlags = [ "--enable-c-plugins" "--enable-otr" ] + ++ optionals notifySupport [ "--enable-notifications" ] + ++ optionals traySupport [ "--enable-icons" ] + ++ optionals pgpSupport [ "--enable-pgp" ] + ++ optionals pythonPluginSupport [ "--enable-python-plugins" ] + ++ optionals omemoSupport [ "--enable-omemo" ]; + + preAutoreconf = '' + mkdir m4 + ''; + + doCheck = true; + + LC_ALL = "en_US.utf8"; + + meta = { + description = "A console based XMPP client"; + longDescription = '' + Profanity is a console based XMPP client written in C using ncurses and + libstrophe, inspired by Irssi. + ''; + homepage = http://www.profanity.im/; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = [ maintainers.devhell ]; + updateWalker = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch new file mode 100644 index 000000000000..796ec6b0a615 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index 5c00aca..eb78060 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -23,7 +23,6 @@ PLATFORM="unknown" + AS_CASE([$host_os], + [freebsd*], [PLATFORM="freebsd"], + [openbsd*], [PLATFORM="openbsd"], +- [darwin*], [PLATFORM="osx"], + [cygwin], [PLATFORM="cygwin"], + [PLATFORM="nix"]) + + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch new file mode 100644 index 000000000000..9ef4e7bebe54 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch @@ -0,0 +1,40 @@ +diff --git a/configure.ac b/configure.ac +index 1e55b1cc..0832a387 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -83,12 +81,12 @@ elif test "x$enable_python_plugins" != xno; then + AM_CONDITIONAL([BUILD_PYTHON_API], [true]) + AC_DEFINE([HAVE_PYTHON], [1], [Python support]) + else +- if test "x$enable_python_plugins" = xyes; then +- AC_MSG_ERROR([Python not found, cannot enable Python plugins.]) +- else +- AM_CONDITIONAL([BUILD_PYTHON_API], [false]) +- AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.]) +- fi ++ AS_IF( ++ [test "x$enable_python_plugins" = xyes], ++ [], ++ [AM_CONDITIONAL([BUILD_PYTHON_API], [false]) ++ AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])] ++ ) + fi + AS_IF([test "x$PLATFORM" = xosx], [rm -f Python.framework]) + else +@@ -107,7 +105,7 @@ else + [AM_CONDITIONAL([BUILD_C_API], [true]) LIBS="$LIBS -ldl" AC_DEFINE([HAVE_C], [1], [C support])], + [AS_IF( + [test "x$enable_c_plugins" = xyes], +- [AC_MSG_ERROR([dl library needed to run C plugins])], ++ [], + [AM_CONDITIONAL([BUILD_C_API], [false])]) + ]) + else +@@ -116,7 +114,6 @@ else + fi + + # threading +-ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])]) + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ]) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix new file mode 100644 index 000000000000..d7741bda646e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, cmake +, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine +, libidn, qca2-qt5, qtkeychain, libXScrnSaver, hunspell +, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c +}: + +stdenv.mkDerivation rec { + pname = "psi-plus"; + version = "1.4.904"; + + src = fetchFromGitHub { + owner = "psi-plus"; + repo = "psi-plus-snapshots"; + rev = version; + sha256 = "1bs7yk3qp91sm8nb9gna8vm59381afn1wfs7aii9yi29bhx6fw9h"; + }; + + resources = fetchFromGitHub { + owner = "psi-plus"; + repo = "resources"; + rev = "182c92ca0bcc055579d8c91bccba9efe157e77a9"; + sha256 = "06k7q63cxpifpzjnlw1snclkr2mwf9fh71cgfd40n7jgzswzwhpb"; + }; + + postUnpack = '' + cp -a "${resources}/iconsets" "$sourceRoot" + ''; + + cmakeFlags = [ + "-DENABLE_PLUGINS=ON" + ]; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ + qtbase qtmultimedia qtx11extras qttools qtwebengine + libidn qca2-qt5 qtkeychain libXScrnSaver hunspell + libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "XMPP (Jabber) client"; + maintainers = with maintainers; [ orivej ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix new file mode 100644 index 000000000000..19438c4d037b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, cmake, wrapQtAppsHook +, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine +, libidn, qca2-qt5, libXScrnSaver, hunspell +}: +stdenv.mkDerivation rec { + pname = "psi"; + version = "1.4"; + src = fetchFromGitHub { + owner = "psi-im"; + repo = pname; + rev = version; + sha256 = "09c7cg96vgxzgbpypgcw7yv73gvzppbi1lm4svbpfn2cfxy059d4"; + fetchSubmodules = true; + }; + patches = [ + ./fix-cmake-hunspell-1.7.patch + ]; + nativeBuildInputs = [ cmake wrapQtAppsHook ]; + buildInputs = [ + qtbase qtmultimedia qtx11extras qttools qtwebengine + libidn qca2-qt5 libXScrnSaver hunspell + ]; + enableParallelBuilding = true; + meta = with stdenv.lib; { + description = "Psi, an XMPP (Jabber) client"; + maintainers = [ maintainers.raskin ]; + license = licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch new file mode 100644 index 000000000000..7d5711a6f2bc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch @@ -0,0 +1,12 @@ +diff --git a/cmake/modules/FindHunspell.cmake b/cmake/modules/FindHunspell.cmake +index a2d180b3..3a5aef3a 100644 +--- a/cmake/modules/FindHunspell.cmake ++++ b/cmake/modules/FindHunspell.cmake +@@ -64,6 +64,7 @@ set(HUNSPELL_NAMES + hunspell-1.4 + hunspell-1.5 + hunspell-1.6 ++ hunspell-1.7 + libhunspell${d} + ) + find_library( diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix new file mode 100644 index 000000000000..111f4e728e78 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchFromGitHub, python2Packages, openssl }: + +python2Packages.buildPythonApplication rec { + pname = "pybitmessage"; + + version = "0.6.3.2"; + + src = fetchFromGitHub { + owner = "bitmessage"; + repo = "PyBitmessage"; + rev = version; + sha256 = "1lmhbpwsqh1v93krlqqhafw2pc3y0qp8zby186yllbph6s8kdp35"; + }; + + propagatedBuildInputs = with python2Packages; [ msgpack pyqt4 numpy pyopencl setuptools ] ++ [ openssl ]; + + preConfigure = '' + # Remove interaction and misleading output + substituteInPlace setup.py \ + --replace "nothing = raw_input()" pass \ + --replace 'print "It looks like building the package failed.\n" \' pass \ + --replace ' "You may be missing a C++ compiler and the OpenSSL headers."' pass \ + --replace 'msgpack-python' 'msgpack' + + substituteInPlace src/pyelliptic/openssl.py \ + --replace "libdir.append(find_library('ssl'))" "libdir.append('${openssl.out}/lib/libssl.so')" + + substituteInPlace src/depends.py \ + --replace "ctypes.util.find_library('ssl')" "'${openssl.out}/lib/libssl.so'" + + ''; + + meta = with stdenv.lib; { + homepage = https://bitmessage.org/; + description = "The official Bitmessage client"; + license = licenses.mit; + maintainers = with maintainers; [ jgillich ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix new file mode 100644 index 000000000000..a78e5d1c2d12 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix @@ -0,0 +1,51 @@ +{ stdenv, mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig +, libtoxcore +, libpthreadstubs, libXdmcp, libXScrnSaver +, qtbase, qtsvg, qttools, qttranslations +, ffmpeg, filter-audio, libexif, libsodium, libopus +, libvpx, openal, pcre, qrencode, sqlcipher +, AVFoundation ? null }: + +let + version = "1.16.3"; + rev = "v${version}"; + +in mkDerivation { + pname = "qtox"; + inherit version; + + src = fetchFromGitHub { + owner = "qTox"; + repo = "qTox"; + sha256 = "0qd4nvbrjnnfnk8ghsxq3cd1n1qf1ck5zg6ib11ij2pg03s146pa"; + inherit rev; + }; + + buildInputs = [ + libtoxcore + libpthreadstubs libXdmcp libXScrnSaver + qtbase qtsvg qttranslations + ffmpeg filter-audio libexif libopus libsodium + libvpx openal pcre qrencode sqlcipher + ] ++ lib.optionals stdenv.isDarwin [ AVFoundation] ; + + nativeBuildInputs = [ cmake pkgconfig qttools ]; + + enableParallelBuilding = true; + + cmakeFlags = [ + "-DGIT_DESCRIBE=${rev}" + "-DENABLE_STATUSNOTIFIER=False" + "-DENABLE_GTK_SYSTRAY=False" + "-DENABLE_APPINDICATOR=False" + "-DTIMESTAMP=1" + ]; + + meta = with lib; { + description = "Qt Tox client"; + homepage = https://tox.chat; + license = licenses.gpl3; + maintainers = with maintainers; [ akaWolf peterhoeg ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix new file mode 100644 index 000000000000..757551c70740 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix @@ -0,0 +1,46 @@ +{ mkDerivation, stdenv, lib, fetchFromGitHub, cmake +, qtbase, qtquickcontrols, qtkeychain, qtmultimedia, qttools +, libqmatrixclient_0_5 +, gnome3 +}: + +let + generic = version: sha256: prefix: library: mkDerivation { + pname = "quaternion"; + inherit version; + + src = fetchFromGitHub { + owner = "QMatrixClient"; + repo = "Quaternion"; + rev = "${prefix}${version}"; + inherit sha256; + }; + + buildInputs = [ qtbase qtmultimedia qtquickcontrols qtkeychain library gnome3.libsecret ]; + + nativeBuildInputs = [ cmake qttools ]; + + postInstall = if stdenv.isDarwin then '' + mkdir -p $out/Applications + mv $out/bin/quaternion.app $out/Applications + rmdir $out/bin || : + '' else '' + substituteInPlace $out/share/applications/quaternion.desktop \ + --replace 'Exec=quaternion' "Exec=$out/bin/quaternion" + ''; + + meta = with lib; { + description = "Cross-platform desktop IM client for the Matrix protocol"; + homepage = "https://matrix.org/docs/projects/client/quaternion.html"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + inherit (qtbase.meta) platforms; + inherit version; + }; + }; + +in rec { + quaternion = generic "0.0.9.4c" "12mkwiqqbi4774kwl7gha72jyf0jf547acy6rw8ry249zl4lja54" "" libqmatrixclient_0_5; + + quaternion-git = quaternion; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/bare.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/bare.nix new file mode 100644 index 000000000000..1a11e8c04439 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/bare.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchFromGitHub, fetchNodeModules, nodejs-10_x, ruby, sencha +, auth0ClientID, auth0Domain }: + +stdenv.mkDerivation rec { + pname = "rambox-bare"; + version = "0.7.3"; + + src = fetchFromGitHub { + owner = "ramboxapp"; + repo = "community-edition"; + rev = version; + sha256 = "03pwzyij2i5m23qzhyqdcipixmqj46qbjmq626swwqy03a0p91qv"; + }; + + nativeBuildInputs = [ nodejs-10_x ruby sencha ]; + + node_modules = fetchNodeModules { + inherit src; + + nodejs = nodejs-10_x; + sha256 = "05vb0r0q3ckg2g87fsm22j0cbfvk81q5z43zwmrzh3pb3zh54xj1"; + }; + + patches = [ ./isDev.patch ]; + + configurePhase = '' + echo 'var auth0Cfg = { clientID: "${auth0ClientID}", domain: "${auth0Domain}" };' > env.js + ln -s ${node_modules} node_modules + ''; + + buildPhase = '' + mkdir ../rambox-build + npm run sencha:compile:build + ''; + + installPhase = '' + mv ../rambox-build/ $out + + # https://github.com/saenzramiro/rambox/issues/1281 + echo '{"name": "rambox", "version": "${version}", "main": "electron/main.js"}' > $out/package.json + + # https://github.com/saenzramiro/rambox/issues/1282 + cp --parents ext/packages/ext-locale/build/ext-locale-*.js $out + + # Symbolic link causes `Uncaught Error: Cannot find module 'immutable'` + cp -r ${node_modules} $out/node_modules + ''; + + meta = with stdenv.lib; { + description = "Messaging and emailing app that combines common web applications into one"; + homepage = http://rambox.pro; + license = licenses.gpl3; + maintainers = with maintainers; [ gnidorah ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix new file mode 100644 index 000000000000..eeab5e32c0f2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix @@ -0,0 +1,52 @@ +{ stdenv, newScope, makeWrapper +, electron, xdg_utils, makeDesktopItem +, auth0ClientID ? "0spuNKfIGeLAQ_Iki9t3fGxbfJl3k8SU" +, auth0Domain ? "nixpkgs.auth0.com" }: + +let + callPackage = newScope self; + self = { + fetchNodeModules = callPackage ./fetchNodeModules.nix {}; + rambox-bare = callPackage ./bare.nix { + inherit auth0ClientID auth0Domain; + }; + sencha = callPackage ./sencha {}; + }; + desktopItem = makeDesktopItem rec { + name = "Rambox"; + exec = "rambox"; + icon = "${self.rambox-bare}/resources/Icon.png"; + desktopName = name; + genericName = "Rambox messenger"; + categories = "Network;"; + }; +in + +with self; + +stdenv.mkDerivation { + name = "rambox-${rambox-bare.version}"; + + nativeBuildInputs = [ makeWrapper ]; + + dontUnpack = true; + + dontWrapGApps = true; # we only want $gappsWrapperArgs here + + installPhase = '' + runHook preInstall + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/rambox \ + --add-flags "${rambox-bare} --without-update" \ + --prefix PATH : ${xdg_utils}/bin + ''; + + inherit (rambox-bare.meta // { + platforms = [ "i686-linux" "x86_64-linux" ]; + }); +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/fetchNodeModules.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/fetchNodeModules.nix new file mode 100644 index 000000000000..047890a932ca --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/fetchNodeModules.nix @@ -0,0 +1,26 @@ +{ stdenv, jq }: { src, nodejs, sha256 }: + +# Only npm >= 5.4.2 is deterministic, see: +# https://github.com/npm/npm/issues/17979#issuecomment-332701215 +assert stdenv.lib.versionAtLeast nodejs.version "8.9.0"; + +stdenv.mkDerivation { + name = "node_modules"; + + outputHashAlgo = "sha256"; + outputHash = sha256; + outputHashMode = "recursive"; + + nativeBuildInputs = [ jq nodejs ]; + + buildCommand = '' + cp -r ${src}/* . + HOME=. npm install --force --ignore-scripts --only=production + for f in $(find node_modules -name package.json); do + # https://github.com/npm/npm/issues/10393 + jq -S 'delpaths(keys | map(select(startswith("_")) | [.]))' $f > $f.tmp + mv $f.tmp $f + done + mv node_modules $out + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/isDev.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/isDev.patch new file mode 100644 index 000000000000..b918144c7662 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/isDev.patch @@ -0,0 +1,14 @@ +https://github.com/saenzramiro/rambox/issues/1280 + +diff -urNZ a/electron/main.js b/electron/main.js +--- a/electron/main.js 2017-11-02 14:58:06.085127616 +0000 ++++ b/electron/main.js 2017-11-02 14:58:18.316887679 +0000 +@@ -8,7 +8,7 @@ + // Configuration + const Config = require('electron-config'); + // Development +-const isDev = require('electron-is-dev'); ++const isDev = false; + // Updater + const updater = require('./updater'); + // File System diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix new file mode 100644 index 000000000000..8b1f4d4c0e94 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix @@ -0,0 +1,44 @@ +{ autoPatchelfHook, electron, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }: + +stdenv.mkDerivation rec { + pname = "rambox-pro"; + version = "1.2.0"; + + dontBuild = true; + dontStrip = true; + + buildInputs = [ nss xorg.libXext xorg.libxkbfile xorg.libXScrnSaver ]; + nativeBuildInputs = [ autoPatchelfHook makeWrapper nodePackages.asar ]; + + src = fetchurl { + url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz"; + sha256 = "189rpsrs25c4100xf1zhcwvdyigbzsw8ffhayj8mmrx4akg39653"; + }; + + installPhase = '' + mkdir -p $out/bin $out/opt/RamboxPro $out/share/applications + asar e resources/app.asar $out/opt/RamboxPro/resources/app.asar.unpacked + ln -s ${desktopItem}/share/applications/* $out/share/applications + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/ramboxpro \ + --add-flags "$out/opt/RamboxPro/resources/app.asar.unpacked --without-update" \ + --prefix PATH : ${xdg_utils}/bin + ''; + + desktopItem = makeDesktopItem { + name = "rambox-pro"; + exec = "ramboxpro"; + type = "Application"; + desktopName = "Rambox Pro"; + }; + + meta = with stdenv.lib; { + description = "Messaging and emailing app that combines common web applications into one"; + homepage = https://rambox.pro; + license = licenses.unfree; + maintainers = with maintainers; [ chrisaw ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix new file mode 100644 index 000000000000..30b12963b337 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, gzip, which, unzip, jdk }: + +let + version = "6.6.0.13"; + srcs = { + i686-linux = fetchurl { + url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-i386.sh.zip"; + sha256 = "15b197108b49mf0afpihkh3p68lxm7580zz2w0xsbahglnvhwyfz"; + }; + x86_64-linux = fetchurl { + url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-amd64.sh.zip"; + sha256 = "1cxhckmx1802p9qiw09cgb1v5f30wcvnrwkshmia8p8n0q47lpp4"; + }; + }; +in + +stdenv.mkDerivation { + inherit version; + + pname = "sencha-bare"; + src = srcs.${stdenv.hostPlatform.system}; + + nativeBuildInputs = [ gzip which unzip ]; + buildInputs = [ jdk ]; + + sourceRoot = "."; + + configurePhase = '' + substituteAll ${./response.varfile} response.varfile + ''; + + installPhase = '' + ./SenchaCmd*.sh -q -dir $out -varfile response.varfile + # disallow sencha writing into /nix/store/repo + echo "repo.local.dir=$TMP/repo" >> $out/sencha.cfg + rm $out/shell-wrapper.sh $out/Uninstaller + ''; + + meta = with stdenv.lib; { + license = licenses.unfree; + platforms = attrNames srcs; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/default.nix new file mode 100644 index 000000000000..4be8edaf9b85 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/default.nix @@ -0,0 +1,17 @@ +{ stdenv, callPackage, makeWrapper }: + +let + sencha-bare = callPackage ./bare.nix {}; +in + +stdenv.mkDerivation { + name = "sencha-${sencha-bare.version}"; + + nativeBuildInputs = [ makeWrapper ]; + + dontUnpack = true; + + installPhase = '' + makeWrapper ${sencha-bare}/sencha $out/bin/sencha + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/response.varfile b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/response.varfile new file mode 100644 index 000000000000..0ff6f0a30d50 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/response.varfile @@ -0,0 +1,13 @@ +addToPath$Integer=1 +parentDir=. +sys.adminRights$Boolean=false +sys.component.148$Boolean=true +sys.component.157$Boolean=true +sys.component.26$Boolean=true +sys.component.30$Boolean=true +sys.component.90$Boolean=true +sys.component.91$Boolean=true +sys.component.92$Boolean=true +sys.component.94$Boolean=true +sys.installationDir=@out@ +sys.languageId=en \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix new file mode 100644 index 000000000000..3768ecd137fb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchgit, libtoxcore +, conf ? null }: + +with stdenv.lib; + +let + configFile = optionalString (conf!=null) (builtins.toFile "config.h" conf); + +in stdenv.mkDerivation { + name = "ratox-0.4.20180303"; + + src = fetchgit { + url = "git://git.2f30.org/ratox.git"; + rev = "269f7f97fb374a8f9c0b82195c21de15b81ddbbb"; + sha256 = "0bpn37h8jvsqd66fkba8ky42nydc8acawa5x31yxqlxc8mc66k74"; + }; + + buildInputs = [ libtoxcore ]; + + preConfigure = '' + substituteInPlace config.mk \ + --replace '-lsodium -lopus -lvpx ' "" + + ${optionalString (conf!=null) "cp ${configFile} config.def.h"} + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = { + description = "FIFO based tox client"; + homepage = http://ratox.2f30.org/; + license = licenses.isc; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix new file mode 100644 index 000000000000..96ce9c32a7d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix @@ -0,0 +1,59 @@ +{ stdenv, fetchurl, pkgconfig, makeDesktopItem +, qtbase, qttools, qtmultimedia, qtquick1, qtquickcontrols +, openssl, protobuf, qmake +}: + +stdenv.mkDerivation rec { + pname = "ricochet"; + version = "1.1.4"; + + src = fetchurl { + url = "https://github.com/ricochet-im/ricochet/archive/v${version}.tar.gz"; + sha256 = "1kfj42ksvj7axc809lb8siqzj5hck2pib427b63a3ipnqc5h1faf"; + }; + + desktopItem = makeDesktopItem { + name = "ricochet"; + exec = "ricochet"; + icon = "ricochet"; + desktopName = "Ricochet"; + genericName = "Ricochet"; + comment = meta.description; + categories = "Office;Email;"; + }; + + buildInputs = [ + qtbase qttools qtmultimedia qtquick1 qtquickcontrols + openssl protobuf + ]; + + nativeBuildInputs = [ pkgconfig qmake ]; + + preConfigure = '' + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags openssl)" + ''; + + qmakeFlags = [ "DEFINES+=RICOCHET_NO_PORTABLE" ]; + + installPhase = '' + mkdir -p $out/bin + cp ricochet $out/bin + + mkdir -p $out/share/applications + cp $desktopItem/share/applications"/"* $out/share/applications + + mkdir -p $out/share/pixmaps + cp icons/ricochet.png $out/share/pixmaps/ricochet.png + ''; + + # RCC: Error in 'translation/embedded.qrc': Cannot find file 'ricochet_en.qm' + enableParallelBuilding = false; + + meta = with stdenv.lib; { + description = "Anonymous peer-to-peer instant messaging"; + homepage = https://ricochet.im; + license = licenses.bsd3; + maintainers = [ maintainers.codsl maintainers.jgillich maintainers.np ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix new file mode 100644 index 000000000000..97c00924d6cf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix @@ -0,0 +1,150 @@ +{ stdenv +, fetchgit +, which +, autoreconfHook +, pkgconfig +, automake +, libtool +, pjsip +, libyamlcpp +, alsaLib +, libpulseaudio +, libsamplerate +, libsndfile +, dbus +, dbus_cplusplus +, ffmpeg +, udev +, pcre +, gsm +, speex +, boost +, opendht +, msgpack +, gnutls +, zlib +, jsoncpp +, xorg +, libargon2 +, cryptopp +, openssl +, perl +, python3 +, libupnp +, speexdsp +, fetchFromGitHub +, cmake +, asio +}: + +let + myPython = python3.withPackages (ps: with ps; [ + pygobject3 + dbus-python + ]); + + src = fetchgit { + url = https://gitlab.savoirfairelinux.com/ring/ring-daemon.git; + rev = "006b8dc7be08fe9beb68709af71004e7bc1ceb5c"; + sha256 = "0ih9g0rismrhx6nqcy3jqfbcs166grg0shnfmrnmykl9h0xy8z47"; + }; + + patchdir = "${src}/contrib/src"; + + restbed = import ./restbed.nix { + inherit stdenv fetchFromGitHub cmake asio openssl; + patches = [ + "${patchdir}/restbed/CMakeLists.patch" + "${patchdir}/restbed/strand.patch" + "${patchdir}/restbed/uri_cpp.patch" + "${patchdir}/restbed/dns-resolution-error.patch" + "${patchdir}/restbed/string.patch" + ]; + }; + + pjsip' = stdenv.lib.overrideDerivation pjsip (old: { + patches = [ + "${patchdir}/pjproject/gnutls.patch" + ./notestsapps.patch # this one had to be modified + "${patchdir}/pjproject/fix_base64.patch" + "${patchdir}/pjproject/ipv6.patch" + "${patchdir}/pjproject/ice_config.patch" + "${patchdir}/pjproject/multiple_listeners.patch" + "${patchdir}/pjproject/pj_ice_sess.patch" + "${patchdir}/pjproject/fix_turn_fallback.patch" + "${patchdir}/pjproject/fix_ioqueue_ipv6_sendto.patch" + "${patchdir}/pjproject/add_dtls_transport.patch" + ]; + CFLAGS = "-g -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000"; + }); +in +stdenv.mkDerivation { + pname = "ring-daemon"; + version = "2017-07-11"; + + inherit src; + + nativeBuildInputs = [ + which + autoreconfHook + automake + libtool + pkgconfig + ]; + + buildInputs = [ + pjsip' + libyamlcpp + alsaLib + libpulseaudio + libsamplerate + libsndfile + dbus + dbus_cplusplus + ffmpeg + udev + pcre + gsm + speex + boost + opendht + msgpack + gnutls + zlib + jsoncpp + restbed + xorg.libX11 + libargon2 + cryptopp + openssl + perl + libupnp + speexdsp + ]; + + postInstall = '' + mkdir $out/bin + ln -s $out/lib/ring/dring $out/bin/dring + cp -R ./tools/dringctrl/ $out/ + substitute ./tools/dringctrl/dringctrl.py $out/dringctrl/dringctrl.py \ + --replace '#!/usr/bin/env python3' "#!${myPython}/bin/python3" + chmod +x $out/dringctrl/dringctrl.py + ln -s $out/dringctrl/dringctrl.py $out/bin/dringctrl.py + ''; + + meta = with stdenv.lib; { + description = "A Voice-over-IP software phone"; + longDescription = '' + As the SIP/audio daemon and the user interface are separate processes, it + is easy to provide different user interfaces. GNU Ring comes with various + graphical user interfaces and even scripts to control the daemon from the + shell. + ''; + homepage = https://ring.cx; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ taeer olynch ]; + platforms = platforms.linux; + # pjsip' fails to compile with the supplied patch set, see: https://hydra.nixos.org/build/68667921/nixlog/4 + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch new file mode 100644 index 000000000000..842060935b04 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch @@ -0,0 +1,106 @@ +/* diff --git a/Makefile b/Makefile */ +/* index 33a4e6b..a486eb7 100644 */ +/* --- a/Makefile */ +/* +++ b/Makefile */ +/* @@ -4,7 +4,7 @@ include build/host-$(HOST_NAME).mak */ +/* include version.mak */ + +/* LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build */ +/* -DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS) */ +/* +DIRS = $(LIB_DIRS) $(EXTRA_DIRS) */ + +/* ifdef MINSIZE */ +/* MAKE_FLAGS := MINSIZE=1 */ +diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile +index cb601cb..862a78a 100644 +--- a/pjlib-util/build/Makefile ++++ b/pjlib-util/build/Makefile +@@ -54,7 +54,6 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \ + export UTIL_TEST_CFLAGS += $(_CFLAGS) + export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS) + export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT +diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile +index 1e64950..a75fa65 100644 +--- a/pjlib/build/Makefile ++++ b/pjlib/build/Makefile +@@ -56,7 +56,6 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \ + export TEST_CFLAGS += $(_CFLAGS) + export TEST_CXXFLAGS += $(_CXXFLAGS) + export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS) +-export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT +diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile +index 8012cb7..2ca283a 100644 +--- a/pjmedia/build/Makefile ++++ b/pjmedia/build/Makefile +@@ -165,7 +165,6 @@ export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \ + $(PJLIB_UTIL_LDLIB) \ + $(PJNATH_LDLIB) \ + $(_LDFLAGS) +-export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT +diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile +index 1bc08b5..109f79b 100644 +--- a/pjnath/build/Makefile ++++ b/pjnath/build/Makefile +@@ -54,7 +54,6 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o + export PJNATH_TEST_CFLAGS += $(_CFLAGS) + export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS) + export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE) + + + ############################################################################### +@@ -65,7 +64,6 @@ export PJTURN_CLIENT_OBJS += client_main.o + export PJTURN_CLIENT_CFLAGS += $(_CFLAGS) + export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS) + export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE) + + ############################################################################### + # Defines for building TURN server application +@@ -76,7 +74,6 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \ + export PJTURN_SRV_CFLAGS += $(_CFLAGS) + export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS) + export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE) + + + +diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile +index d2a5c2a..7e2ec60 100644 +--- a/pjsip/build/Makefile ++++ b/pjsip/build/Makefile +@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ + account.o endpoint.o json.o persistent.o types.o \ + siptypes.o call.o presence.o media.o + export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS) +-export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS) ++export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS) + export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \ + $(PJSIP_UA_LDLIB) \ + $(PJSIP_SIMPLE_LDLIB) \ +@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ + export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS) + export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS) + export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS) +-export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE) + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT + +@@ -195,7 +194,6 @@ export TEST_LDFLAGS += $(PJSIP_LDLIB) \ + $(PJLIB_UTIL_LDLIB) \ + $(PJNATH_LDLIB) \ + $(_LDFLAGS) +-export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix new file mode 100644 index 000000000000..d4298a3d32f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix @@ -0,0 +1,41 @@ +{ stdenv +, fetchFromGitHub +, cmake +, asio +, openssl +, patches +}: + +stdenv.mkDerivation { + pname = "restbed"; + version = "2016-09-15"; + + src = fetchFromGitHub { + owner = "Corvusoft"; + repo = "restbed"; + rev = "34187502642144ab9f749ab40f5cdbd8cb17a54a"; + sha256 = "1jb38331fcicyiisqdprhq6zwfc6g518fm3l4qw9aiv5k9nqim22"; + }; + + inherit patches; + + buildInputs = [ + cmake + asio + openssl + ]; + + meta = with stdenv.lib; { + description = "HTTP framework for building networked applications"; + longDescription = '' + HTTP framework for building networked applications that require seamless + and secure communication, with the flexability to model a range of + business processes. Targeting mobile, tablet, desktop, and embedded + production environments. + ''; + homepage = https://corvusoft.co.uk/; + license = licenses.agpl3; + maintainers = with maintainers; [ taeer ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json new file mode 100644 index 000000000000..c49934b96f77 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json @@ -0,0 +1,15 @@ +{ + "name": "riot-web", + "productName": "Riot", + "main": "src/electron-main.js", + "version": "1.5.6", + "description": "A feature-rich client for Matrix.org", + "author": "New Vector Ltd.", + "dependencies": { + "auto-launch": "^5.0.1", + "electron-store": "^2.0.0", + "electron-window-state": "^4.1.0", + "minimist": "^1.2.0", + "png-to-ico": "^1.0.2" + } +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix new file mode 100644 index 000000000000..b76848c2b810 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix @@ -0,0 +1,1021 @@ +{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec { + offline_cache = linkFarm "offline" packages; + packages = [ + { + name = "_types_node___node_9.6.45.tgz"; + path = fetchurl { + name = "_types_node___node_9.6.45.tgz"; + url = "https://registry.yarnpkg.com/@types/node/-/node-9.6.45.tgz"; + sha1 = "a9e5cfd026a3abaaf17e3c0318a470da9f2f178e"; + }; + } + { + name = "ajv___ajv_6.10.0.tgz"; + path = fetchurl { + name = "ajv___ajv_6.10.0.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz"; + sha1 = "90d0d54439da587cd7e843bfb7045f50bd22bdf1"; + }; + } + { + name = "applescript___applescript_1.0.0.tgz"; + path = fetchurl { + name = "applescript___applescript_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz"; + sha1 = "bb87af568cad034a4e48c4bdaf6067a3a2701317"; + }; + } + { + name = "asn1___asn1_0.2.4.tgz"; + path = fetchurl { + name = "asn1___asn1_0.2.4.tgz"; + url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz"; + sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136"; + }; + } + { + name = "assert_plus___assert_plus_1.0.0.tgz"; + path = fetchurl { + name = "assert_plus___assert_plus_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + } + { + name = "asynckit___asynckit_0.4.0.tgz"; + path = fetchurl { + name = "asynckit___asynckit_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + } + { + name = "auto_launch___auto_launch_5.0.5.tgz"; + path = fetchurl { + name = "auto_launch___auto_launch_5.0.5.tgz"; + url = "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz"; + sha1 = "d14bd002b1ef642f85e991a6195ff5300c8ad3c0"; + }; + } + { + name = "aws_sign2___aws_sign2_0.7.0.tgz"; + path = fetchurl { + name = "aws_sign2___aws_sign2_0.7.0.tgz"; + url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + } + { + name = "aws4___aws4_1.8.0.tgz"; + path = fetchurl { + name = "aws4___aws4_1.8.0.tgz"; + url = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz"; + sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"; + }; + } + { + name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; + path = fetchurl { + name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; + }; + } + { + name = "bignumber.js___bignumber.js_2.4.0.tgz"; + path = fetchurl { + name = "bignumber.js___bignumber.js_2.4.0.tgz"; + url = "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz"; + sha1 = "838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"; + }; + } + { + name = "bmp_js___bmp_js_0.0.3.tgz"; + path = fetchurl { + name = "bmp_js___bmp_js_0.0.3.tgz"; + url = "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz"; + sha1 = "64113e9c7cf1202b376ed607bf30626ebe57b18a"; + }; + } + { + name = "buffer_equal___buffer_equal_0.0.1.tgz"; + path = fetchurl { + name = "buffer_equal___buffer_equal_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz"; + sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b"; + }; + } + { + name = "caseless___caseless_0.12.0.tgz"; + path = fetchurl { + name = "caseless___caseless_0.12.0.tgz"; + url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + } + { + name = "combined_stream___combined_stream_1.0.7.tgz"; + path = fetchurl { + name = "combined_stream___combined_stream_1.0.7.tgz"; + url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz"; + sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828"; + }; + } + { + name = "conf___conf_2.2.0.tgz"; + path = fetchurl { + name = "conf___conf_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/conf/-/conf-2.2.0.tgz"; + sha1 = "ee282efafc1450b61e205372041ad7d866802d9a"; + }; + } + { + name = "core_util_is___core_util_is_1.0.2.tgz"; + path = fetchurl { + name = "core_util_is___core_util_is_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + } + { + name = "dashdash___dashdash_1.14.1.tgz"; + path = fetchurl { + name = "dashdash___dashdash_1.14.1.tgz"; + url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + } + { + name = "deep_equal___deep_equal_1.0.1.tgz"; + path = fetchurl { + name = "deep_equal___deep_equal_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz"; + sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5"; + }; + } + { + name = "define_properties___define_properties_1.1.3.tgz"; + path = fetchurl { + name = "define_properties___define_properties_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz"; + sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1"; + }; + } + { + name = "delayed_stream___delayed_stream_1.0.0.tgz"; + path = fetchurl { + name = "delayed_stream___delayed_stream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + } + { + name = "dom_walk___dom_walk_0.1.1.tgz"; + path = fetchurl { + name = "dom_walk___dom_walk_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz"; + sha1 = "672226dc74c8f799ad35307df936aba11acd6018"; + }; + } + { + name = "dot_prop___dot_prop_4.2.0.tgz"; + path = fetchurl { + name = "dot_prop___dot_prop_4.2.0.tgz"; + url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz"; + sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57"; + }; + } + { + name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz"; + path = fetchurl { + name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; + }; + } + { + name = "electron_store___electron_store_2.0.0.tgz"; + path = fetchurl { + name = "electron_store___electron_store_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/electron-store/-/electron-store-2.0.0.tgz"; + sha1 = "1035cca2a95409d1f54c7466606345852450d64a"; + }; + } + { + name = "electron_window_state___electron_window_state_4.1.1.tgz"; + path = fetchurl { + name = "electron_window_state___electron_window_state_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz"; + sha1 = "6b34fdc31b38514dfec8b7c8f7b5d4addb67632d"; + }; + } + { + name = "env_paths___env_paths_1.0.0.tgz"; + path = fetchurl { + name = "env_paths___env_paths_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz"; + sha1 = "4168133b42bb05c38a35b1ae4397c8298ab369e0"; + }; + } + { + name = "es_abstract___es_abstract_1.13.0.tgz"; + path = fetchurl { + name = "es_abstract___es_abstract_1.13.0.tgz"; + url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz"; + sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"; + }; + } + { + name = "es_to_primitive___es_to_primitive_1.2.0.tgz"; + path = fetchurl { + name = "es_to_primitive___es_to_primitive_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz"; + sha1 = "edf72478033456e8dda8ef09e00ad9650707f377"; + }; + } + { + name = "es6_promise___es6_promise_3.3.1.tgz"; + path = fetchurl { + name = "es6_promise___es6_promise_3.3.1.tgz"; + url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz"; + sha1 = "a08cdde84ccdbf34d027a1451bc91d4bcd28a613"; + }; + } + { + name = "exif_parser___exif_parser_0.1.12.tgz"; + path = fetchurl { + name = "exif_parser___exif_parser_0.1.12.tgz"; + url = "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz"; + sha1 = "58a9d2d72c02c1f6f02a0ef4a9166272b7760922"; + }; + } + { + name = "extend___extend_3.0.2.tgz"; + path = fetchurl { + name = "extend___extend_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz"; + sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa"; + }; + } + { + name = "extsprintf___extsprintf_1.3.0.tgz"; + path = fetchurl { + name = "extsprintf___extsprintf_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + } + { + name = "extsprintf___extsprintf_1.4.0.tgz"; + path = fetchurl { + name = "extsprintf___extsprintf_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz"; + sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f"; + }; + } + { + name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz"; + path = fetchurl { + name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; + sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; + }; + } + { + name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz"; + path = fetchurl { + name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; + sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + }; + } + { + name = "file_type___file_type_3.9.0.tgz"; + path = fetchurl { + name = "file_type___file_type_3.9.0.tgz"; + url = "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz"; + sha1 = "257a078384d1db8087bc449d107d52a52672b9e9"; + }; + } + { + name = "find_up___find_up_2.1.0.tgz"; + path = fetchurl { + name = "find_up___find_up_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz"; + sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; + }; + } + { + name = "for_each___for_each_0.3.3.tgz"; + path = fetchurl { + name = "for_each___for_each_0.3.3.tgz"; + url = "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz"; + sha1 = "69b447e88a0a5d32c3e7084f3f1710034b21376e"; + }; + } + { + name = "forever_agent___forever_agent_0.6.1.tgz"; + path = fetchurl { + name = "forever_agent___forever_agent_0.6.1.tgz"; + url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + } + { + name = "form_data___form_data_2.3.3.tgz"; + path = fetchurl { + name = "form_data___form_data_2.3.3.tgz"; + url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz"; + sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6"; + }; + } + { + name = "function_bind___function_bind_1.1.1.tgz"; + path = fetchurl { + name = "function_bind___function_bind_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; + sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; + }; + } + { + name = "getpass___getpass_0.1.7.tgz"; + path = fetchurl { + name = "getpass___getpass_0.1.7.tgz"; + url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + } + { + name = "global___global_4.3.2.tgz"; + path = fetchurl { + name = "global___global_4.3.2.tgz"; + url = "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz"; + sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f"; + }; + } + { + name = "graceful_fs___graceful_fs_4.1.15.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_4.1.15.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz"; + sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"; + }; + } + { + name = "har_schema___har_schema_2.0.0.tgz"; + path = fetchurl { + name = "har_schema___har_schema_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + } + { + name = "har_validator___har_validator_5.1.3.tgz"; + path = fetchurl { + name = "har_validator___har_validator_5.1.3.tgz"; + url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz"; + sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080"; + }; + } + { + name = "has_symbols___has_symbols_1.0.0.tgz"; + path = fetchurl { + name = "has_symbols___has_symbols_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz"; + sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44"; + }; + } + { + name = "has___has_1.0.3.tgz"; + path = fetchurl { + name = "has___has_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz"; + sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796"; + }; + } + { + name = "http_signature___http_signature_1.2.0.tgz"; + path = fetchurl { + name = "http_signature___http_signature_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + } + { + name = "imurmurhash___imurmurhash_0.1.4.tgz"; + path = fetchurl { + name = "imurmurhash___imurmurhash_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + } + { + name = "ip_regex___ip_regex_1.0.3.tgz"; + path = fetchurl { + name = "ip_regex___ip_regex_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz"; + sha1 = "dc589076f659f419c222039a33316f1c7387effd"; + }; + } + { + name = "is_callable___is_callable_1.1.4.tgz"; + path = fetchurl { + name = "is_callable___is_callable_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz"; + sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"; + }; + } + { + name = "is_date_object___is_date_object_1.0.1.tgz"; + path = fetchurl { + name = "is_date_object___is_date_object_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz"; + sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"; + }; + } + { + name = "is_function___is_function_1.0.1.tgz"; + path = fetchurl { + name = "is_function___is_function_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz"; + sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5"; + }; + } + { + name = "is_obj___is_obj_1.0.1.tgz"; + path = fetchurl { + name = "is_obj___is_obj_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz"; + sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"; + }; + } + { + name = "is_regex___is_regex_1.0.4.tgz"; + path = fetchurl { + name = "is_regex___is_regex_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz"; + sha1 = "5517489b547091b0930e095654ced25ee97e9491"; + }; + } + { + name = "is_symbol___is_symbol_1.0.2.tgz"; + path = fetchurl { + name = "is_symbol___is_symbol_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz"; + sha1 = "a055f6ae57192caee329e7a860118b497a950f38"; + }; + } + { + name = "is_typedarray___is_typedarray_1.0.0.tgz"; + path = fetchurl { + name = "is_typedarray___is_typedarray_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + } + { + name = "isstream___isstream_0.1.2.tgz"; + path = fetchurl { + name = "isstream___isstream_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + } + { + name = "jimp___jimp_0.2.28.tgz"; + path = fetchurl { + name = "jimp___jimp_0.2.28.tgz"; + url = "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz"; + sha1 = "dd529a937190f42957a7937d1acc3a7762996ea2"; + }; + } + { + name = "jpeg_js___jpeg_js_0.2.0.tgz"; + path = fetchurl { + name = "jpeg_js___jpeg_js_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz"; + sha1 = "53e448ec9d263e683266467e9442d2c5a2ef5482"; + }; + } + { + name = "jsbn___jsbn_0.1.1.tgz"; + path = fetchurl { + name = "jsbn___jsbn_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + } + { + name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; + path = fetchurl { + name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; + url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660"; + }; + } + { + name = "json_schema___json_schema_0.2.3.tgz"; + path = fetchurl { + name = "json_schema___json_schema_0.2.3.tgz"; + url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + } + { + name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; + path = fetchurl { + name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + } + { + name = "jsonfile___jsonfile_2.4.0.tgz"; + path = fetchurl { + name = "jsonfile___jsonfile_2.4.0.tgz"; + url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz"; + sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"; + }; + } + { + name = "jsprim___jsprim_1.4.1.tgz"; + path = fetchurl { + name = "jsprim___jsprim_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + } + { + name = "load_bmfont___load_bmfont_1.4.0.tgz"; + path = fetchurl { + name = "load_bmfont___load_bmfont_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz"; + sha1 = "75f17070b14a8c785fe7f5bee2e6fd4f98093b6b"; + }; + } + { + name = "locate_path___locate_path_2.0.0.tgz"; + path = fetchurl { + name = "locate_path___locate_path_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz"; + sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; + }; + } + { + name = "make_dir___make_dir_1.3.0.tgz"; + path = fetchurl { + name = "make_dir___make_dir_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz"; + sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c"; + }; + } + { + name = "mime_db___mime_db_1.38.0.tgz"; + path = fetchurl { + name = "mime_db___mime_db_1.38.0.tgz"; + url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz"; + sha1 = "1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad"; + }; + } + { + name = "mime_types___mime_types_2.1.22.tgz"; + path = fetchurl { + name = "mime_types___mime_types_2.1.22.tgz"; + url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz"; + sha1 = "fe6b355a190926ab7698c9a0556a11199b2199bd"; + }; + } + { + name = "mime___mime_1.6.0.tgz"; + path = fetchurl { + name = "mime___mime_1.6.0.tgz"; + url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz"; + sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1"; + }; + } + { + name = "min_document___min_document_2.19.0.tgz"; + path = fetchurl { + name = "min_document___min_document_2.19.0.tgz"; + url = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz"; + sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685"; + }; + } + { + name = "minimist___minimist_0.0.8.tgz"; + path = fetchurl { + name = "minimist___minimist_0.0.8.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + } + { + name = "minimist___minimist_1.2.0.tgz"; + path = fetchurl { + name = "minimist___minimist_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz"; + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + }; + } + { + name = "mkdirp___mkdirp_0.5.1.tgz"; + path = fetchurl { + name = "mkdirp___mkdirp_0.5.1.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + } + { + name = "oauth_sign___oauth_sign_0.9.0.tgz"; + path = fetchurl { + name = "oauth_sign___oauth_sign_0.9.0.tgz"; + url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz"; + sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455"; + }; + } + { + name = "object_keys___object_keys_1.1.0.tgz"; + path = fetchurl { + name = "object_keys___object_keys_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz"; + sha1 = "11bd22348dd2e096a045ab06f6c85bcc340fa032"; + }; + } + { + name = "p_limit___p_limit_1.3.0.tgz"; + path = fetchurl { + name = "p_limit___p_limit_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz"; + sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"; + }; + } + { + name = "p_locate___p_locate_2.0.0.tgz"; + path = fetchurl { + name = "p_locate___p_locate_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz"; + sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; + }; + } + { + name = "p_try___p_try_1.0.0.tgz"; + path = fetchurl { + name = "p_try___p_try_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz"; + sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; + }; + } + { + name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz"; + path = fetchurl { + name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz"; + sha1 = "11ac3c3ff58f7c2020ab22769079108d4dfa0285"; + }; + } + { + name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz"; + path = fetchurl { + name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz"; + sha1 = "d038b476d3e9dd9db1e11a0b0e53a22792b69006"; + }; + } + { + name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz"; + path = fetchurl { + name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz"; + sha1 = "015319797e3e12f9e739c4d513872cd2fa35f389"; + }; + } + { + name = "parse_headers___parse_headers_2.0.2.tgz"; + path = fetchurl { + name = "parse_headers___parse_headers_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz"; + sha1 = "9545e8a4c1ae5eaea7d24992bca890281ed26e34"; + }; + } + { + name = "path_exists___path_exists_3.0.0.tgz"; + path = fetchurl { + name = "path_exists___path_exists_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz"; + sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; + }; + } + { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + path = fetchurl { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + } + { + name = "performance_now___performance_now_2.1.0.tgz"; + path = fetchurl { + name = "performance_now___performance_now_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + } + { + name = "phin___phin_2.9.3.tgz"; + path = fetchurl { + name = "phin___phin_2.9.3.tgz"; + url = "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz"; + sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c"; + }; + } + { + name = "pify___pify_3.0.0.tgz"; + path = fetchurl { + name = "pify___pify_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + } + { + name = "pixelmatch___pixelmatch_4.0.2.tgz"; + path = fetchurl { + name = "pixelmatch___pixelmatch_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz"; + sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854"; + }; + } + { + name = "pkg_up___pkg_up_2.0.0.tgz"; + path = fetchurl { + name = "pkg_up___pkg_up_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz"; + sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f"; + }; + } + { + name = "png_to_ico___png_to_ico_1.0.7.tgz"; + path = fetchurl { + name = "png_to_ico___png_to_ico_1.0.7.tgz"; + url = "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-1.0.7.tgz"; + sha1 = "9346b5f4d6fd7e94cb08fd49eeb585f501c3e5f2"; + }; + } + { + name = "pngjs___pngjs_3.4.0.tgz"; + path = fetchurl { + name = "pngjs___pngjs_3.4.0.tgz"; + url = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz"; + sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f"; + }; + } + { + name = "process___process_0.5.2.tgz"; + path = fetchurl { + name = "process___process_0.5.2.tgz"; + url = "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz"; + sha1 = "1638d8a8e34c2f440a91db95ab9aeb677fc185cf"; + }; + } + { + name = "psl___psl_1.1.31.tgz"; + path = fetchurl { + name = "psl___psl_1.1.31.tgz"; + url = "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz"; + sha1 = "e9aa86d0101b5b105cbe93ac6b784cd547276184"; + }; + } + { + name = "punycode___punycode_1.4.1.tgz"; + path = fetchurl { + name = "punycode___punycode_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + } + { + name = "punycode___punycode_2.1.1.tgz"; + path = fetchurl { + name = "punycode___punycode_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz"; + sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec"; + }; + } + { + name = "qs___qs_6.5.2.tgz"; + path = fetchurl { + name = "qs___qs_6.5.2.tgz"; + url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz"; + sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36"; + }; + } + { + name = "read_chunk___read_chunk_1.0.1.tgz"; + path = fetchurl { + name = "read_chunk___read_chunk_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz"; + sha1 = "5f68cab307e663f19993527d9b589cace4661194"; + }; + } + { + name = "request___request_2.88.0.tgz"; + path = fetchurl { + name = "request___request_2.88.0.tgz"; + url = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz"; + sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef"; + }; + } + { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d"; + }; + } + { + name = "safer_buffer___safer_buffer_2.1.2.tgz"; + path = fetchurl { + name = "safer_buffer___safer_buffer_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a"; + }; + } + { + name = "sax___sax_1.2.4.tgz"; + path = fetchurl { + name = "sax___sax_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz"; + sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9"; + }; + } + { + name = "signal_exit___signal_exit_3.0.2.tgz"; + path = fetchurl { + name = "signal_exit___signal_exit_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz"; + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; + }; + } + { + name = "sshpk___sshpk_1.16.1.tgz"; + path = fetchurl { + name = "sshpk___sshpk_1.16.1.tgz"; + url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz"; + sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877"; + }; + } + { + name = "stream_to_buffer___stream_to_buffer_0.1.0.tgz"; + path = fetchurl { + name = "stream_to_buffer___stream_to_buffer_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz"; + sha1 = "26799d903ab2025c9bd550ac47171b00f8dd80a9"; + }; + } + { + name = "stream_to___stream_to_0.2.2.tgz"; + path = fetchurl { + name = "stream_to___stream_to_0.2.2.tgz"; + url = "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz"; + sha1 = "84306098d85fdb990b9fa300b1b3ccf55e8ef01d"; + }; + } + { + name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz"; + path = fetchurl { + name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz"; + sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea"; + }; + } + { + name = "tinycolor2___tinycolor2_1.4.1.tgz"; + path = fetchurl { + name = "tinycolor2___tinycolor2_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz"; + sha1 = "f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"; + }; + } + { + name = "tough_cookie___tough_cookie_2.4.3.tgz"; + path = fetchurl { + name = "tough_cookie___tough_cookie_2.4.3.tgz"; + url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz"; + sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781"; + }; + } + { + name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; + path = fetchurl { + name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; + url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + } + { + name = "tweetnacl___tweetnacl_0.14.5.tgz"; + path = fetchurl { + name = "tweetnacl___tweetnacl_0.14.5.tgz"; + url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + } + { + name = "untildify___untildify_3.0.3.tgz"; + path = fetchurl { + name = "untildify___untildify_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz"; + sha1 = "1e7b42b140bcfd922b22e70ca1265bfe3634c7c9"; + }; + } + { + name = "uri_js___uri_js_4.2.2.tgz"; + path = fetchurl { + name = "uri_js___uri_js_4.2.2.tgz"; + url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz"; + sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0"; + }; + } + { + name = "url_regex___url_regex_3.2.0.tgz"; + path = fetchurl { + name = "url_regex___url_regex_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz"; + sha1 = "dbad1e0c9e29e105dd0b1f09f6862f7fdb482724"; + }; + } + { + name = "uuid___uuid_3.3.2.tgz"; + path = fetchurl { + name = "uuid___uuid_3.3.2.tgz"; + url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz"; + sha1 = "1b4af4955eb3077c501c23872fc6513811587131"; + }; + } + { + name = "verror___verror_1.10.0.tgz"; + path = fetchurl { + name = "verror___verror_1.10.0.tgz"; + url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + } + { + name = "winreg___winreg_1.2.4.tgz"; + path = fetchurl { + name = "winreg___winreg_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz"; + sha1 = "ba065629b7a925130e15779108cf540990e98d1b"; + }; + } + { + name = "write_file_atomic___write_file_atomic_2.4.2.tgz"; + path = fetchurl { + name = "write_file_atomic___write_file_atomic_2.4.2.tgz"; + url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz"; + sha1 = "a7181706dfba17855d221140a9c06e15fcdd87b9"; + }; + } + { + name = "xhr___xhr_2.5.0.tgz"; + path = fetchurl { + name = "xhr___xhr_2.5.0.tgz"; + url = "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz"; + sha1 = "bed8d1676d5ca36108667692b74b316c496e49dd"; + }; + } + { + name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz"; + path = fetchurl { + name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz"; + sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28"; + }; + } + { + name = "xml2js___xml2js_0.4.19.tgz"; + path = fetchurl { + name = "xml2js___xml2js_0.4.19.tgz"; + url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz"; + sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7"; + }; + } + { + name = "xmlbuilder___xmlbuilder_9.0.7.tgz"; + path = fetchurl { + name = "xmlbuilder___xmlbuilder_9.0.7.tgz"; + url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz"; + sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d"; + }; + } + { + name = "xtend___xtend_4.0.1.tgz"; + path = fetchurl { + name = "xtend___xtend_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz"; + sha1 = "a5c6d532be656e23db820efb943a1f04998d63af"; + }; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix new file mode 100644 index 000000000000..9b6f591bd42d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix @@ -0,0 +1,84 @@ +{ pkgs, stdenv, fetchFromGitHub, makeWrapper, makeDesktopItem, electron_5, riot-web, mkYarnPackage }: + +# Notes for maintainers: +# * versions of `riot-web` and `riot-desktop` should be kept in sync. +# * the Yarn dependency expression must be updated with `./update-riot-desktop.sh <git release tag>` + +let + executableName = "riot-desktop"; + version = "1.5.6"; + riot-web-src = fetchFromGitHub { + owner = "vector-im"; + repo = "riot-web"; + rev = "v${version}"; + sha256 = "148rg6wc84xy53bj16v5riw78s999ridid59x6v9jas827l0bdpk"; + }; + +in mkYarnPackage rec { + name = "riot-desktop-${version}"; + inherit version; + + src = "${riot-web-src}/electron_app"; + + packageJSON = ./riot-desktop-package.json; + yarnNix = ./riot-desktop-yarndeps.nix; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + # resources + mkdir -p "$out/share/riot" + ln -s '${riot-web}' "$out/share/riot/webapp" + cp -r '${riot-web-src}/origin_migrator' "$out/share/riot/origin_migrator" + cp -r './deps/riot-web' "$out/share/riot/electron" + cp -r './deps/riot-web/img' "$out/share/riot" + rm "$out/share/riot/electron/node_modules" + cp -r './node_modules' "$out/share/riot/electron" + + # icons + for icon in $out/share/riot/electron/build/icons/*.png; do + mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps" + ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/riot.png" + done + + # desktop item + mkdir -p "$out/share" + ln -s "${desktopItem}/share/applications" "$out/share/applications" + + # executable wrapper + makeWrapper '${electron_5}/bin/electron' "$out/bin/${executableName}" \ + --add-flags "$out/share/riot/electron" + ''; + + # Do not attempt generating a tarball for riot-web again. + # note: `doDist = false;` does not work. + distPhase = '' + true + ''; + + # The desktop item properties should be kept in sync with data from upstream: + # * productName and description from + # https://github.com/vector-im/riot-web/blob/develop/electron_app/package.json + # * category and StartupWMClass from the build.linux section of + # https://github.com/vector-im/riot-web/blob/develop/package.json + desktopItem = makeDesktopItem { + name = "riot"; + exec = executableName; + icon = "riot"; + desktopName = "Riot"; + genericName = "Matrix Client"; + comment = meta.description; + categories = "Network;InstantMessaging;Chat;"; + extraEntries = '' + StartupWMClass="riot" + ''; + }; + + meta = with stdenv.lib; { + description = "A feature-rich client for Matrix.org"; + homepage = https://about.riot.im/; + license = licenses.asl20; + maintainers = with maintainers; [ pacien worldofpeace ]; + inherit (electron_5.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix new file mode 100644 index 000000000000..ada903701e26 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchurl, writeText, conf ? null }: + +# Note for maintainers: +# Versions of `riot-web` and `riot-desktop` should be kept in sync. + +stdenv.mkDerivation rec { + pname = "riot-web"; + version = "1.5.6"; + + src = fetchurl { + url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz"; + sha256 = "063ynbil038y201skyldj2ysr0hwgwq981w1iw104xd17x31zmn0"; + }; + + installPhase = let + configFile = if (conf != null) + then writeText "riot-config.json" conf + else "$out/config.sample.json"; + in '' + runHook preInstall + + mkdir -p $out/ + cp -R . $out/ + ln -s ${configFile} $out/config.json + + runHook postInstall + ''; + + meta = { + description = "A glossy Matrix collaboration client for the web"; + homepage = http://riot.im/; + maintainers = with stdenv.lib.maintainers; [ bachp pacien ]; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.all; + hydraPlatforms = []; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh new file mode 100755 index 000000000000..f516e4a76f0a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix + +set -euo pipefail + +if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then + echo "Regenerates the Yarn dependency lock files for the riot-desktop package." + echo "Usage: $0 <git release tag>" + exit 1 +fi + +RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-web/$1" + +wget "$RIOT_WEB_SRC/electron_app/package.json" -O riot-desktop-package.json +wget "$RIOT_WEB_SRC/electron_app/yarn.lock" -O riot-desktop-yarndeps.lock +yarn2nix --lockfile=riot-desktop-yarndeps.lock > riot-desktop-yarndeps.nix +rm riot-desktop-yarndeps.lock diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix new file mode 100644 index 000000000000..13c7281aea7c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchurl, python27Packages, file }: + +let + inherit (python27Packages) python; + requirements = (import ./requirements.nix { + inherit stdenv fetchurl; + pythonPackages = python27Packages; + }); + +in + stdenv.mkDerivation rec { + pname = "salut-a-toi"; + version = "0.6.1"; + + src = fetchurl { + url = "ftp://ftp.goffi.org/sat/sat-${version}.tar.bz2"; + sha256 = "0kn9403n8fpzl0hsb9kkzicsmzq2fjl627l31yykbqzc4nsr780d"; + }; + + buildInputs = with python27Packages; + [ + python twisted urwid wxPython pygobject2 + dbus-python wrapPython setuptools file + pycrypto pyxdg + ] ++ (with requirements; [ + pyfeed + wokkel + ]); + + configurePhase = '' + sed -i "/use_setuptools/d" setup.py + sed -e "s@sys.prefix@'$out'@g" -i setup.py + sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${python27Packages.twisted}/bin\"" -i src/sat.sh + sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/${python.sitePackages}"" -i src/sat.sh + + echo 'import wokkel.muc' | python + ''; + + buildPhase = '' + ${python.interpreter} setup.py build + ''; + + installPhase = '' + ${python.interpreter} setup.py install --prefix="$out" + + for i in "$out/bin"/*; do + head -n 1 "$i" | grep -E '[/ ]python( |$)' && { + wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH:$out/${python.sitePackages}" + } || true + done + ''; + + meta = with stdenv.lib; { + homepage = http://sat.goffi.org/; + description = "A multi-frontend XMPP client"; + platforms = platforms.linux; + maintainers = [ maintainers.raskin ]; + license = licenses.gpl3Plus; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix new file mode 100644 index 000000000000..1a6811182453 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix @@ -0,0 +1,67 @@ +{ fetchurl +, stdenv +, pythonPackages +}: + +let + buildPythonPackage = pythonPackages.buildPythonPackage; + + xe = buildPythonPackage rec { + url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz"; + name = stdenv.lib.nameFromURL url ".tar"; + src = fetchurl { + inherit url; + sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42"; + }; + + # error: invalid command 'test' + doCheck = false; + + meta = { + homepage = "http://home.blarg.net/~steveha/xe.html"; + description = "XML elements"; + }; + }; + +in { + + pyfeed = (buildPythonPackage rec { + url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz"; + + name = stdenv.lib.nameFromURL url ".tar"; + + src = fetchurl { + inherit url; + sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1"; + }; + + propagatedBuildInputs = [ xe ]; + + # error: invalid command 'test' + doCheck = false; + + meta = with stdenv.lib; { + homepage = "http://home.blarg.net/~steveha/pyfeed.html"; + description = "Tools for syndication feeds"; + }; + + }); + + wokkel = buildPythonPackage (rec { + url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz"; + name = stdenv.lib.nameFromURL url ".tar"; + src = fetchurl { + inherit url; + sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml"; + }; + + propagatedBuildInputs = with pythonPackages; [twisted dateutil]; + + meta = with stdenv.lib; { + description = "Some (mainly XMPP-related) additions to twisted"; + homepage = "http://wokkel.ik.nu/"; + license = licenses.mit; + }; + }); + +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix new file mode 100644 index 000000000000..54959383f08e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, python3Packages }: + +let version = "1.63"; +in python3Packages.buildPythonPackage { + name = "scudcloud-${version}"; + + src = fetchurl { + url = "https://github.com/raelgc/scudcloud/archive/v${version}.tar.gz"; + sha256 = "e0d1cb72115d0fda17db92d28be51558ad8fe250972683fac3086dbe8d350d22"; + }; + + propagatedBuildInputs = with python3Packages; [ pyqt5_with_qtwebkit dbus-python jsmin ]; + + meta = with stdenv.lib; { + description = "Non-official desktop client for Slack"; + homepage = https://github.com/raelgc/scudcloud; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ volhovm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix new file mode 100644 index 000000000000..8471f43c6dd0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix @@ -0,0 +1,54 @@ +{ stdenv, lib, fetchurl, makeWrapper, jre_headless, libmatthew_java, dbus, dbus_java }: + +stdenv.mkDerivation rec { + pname = "signal-cli"; + version = "0.6.5"; + + # Building from source would be preferred, but is much more involved. + src = fetchurl { + url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz"; + sha256 = "082kq8kadxbwzf31fmlq4in714id2irk0hhqsl53vsl3wmv45zvv"; + }; + + buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ]; + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + cp -r lib $out/lib + cp bin/signal-cli $out/bin/signal-cli + '' + (if stdenv.isLinux then '' + makeWrapper ${jre_headless}/bin/java $out/bin/signal-cli \ + --set JAVA_HOME "${jre_headless}" \ + --add-flags "-classpath '$out/lib/*:${libmatthew_java}/lib/jni'" \ + --add-flags "-Djava.library.path=${libmatthew_java}/lib/jni:${dbus_java}/share/java/dbus:$out/lib" \ + --add-flags "org.asamk.signal.Main" + '' else '' + wrapProgram $out/bin/signal-cli \ + --prefix PATH : ${lib.makeBinPath [ jre_headless ]} \ + --set JAVA_HOME ${jre_headless} + ''); + + # Execution in the macOS (10.13) sandbox fails with + # dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa + # Referenced from: /nix/store/5ghc2l65p8jcjh0bsmhahd5m9k5p8kx0-zulu1.8.0_121-8.20.0.5/bin/java + # Reason: no suitable image found. Did find: + # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() + # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() + # /nix/store/in41dz8byyyz4c0w132l7mqi43liv4yr-stdenv-darwin/setup: line 1310: 2231 Abort trap: 6 signal-cli --version + doInstallCheck = stdenv.isLinux; + + installCheckPhase = '' + export PATH=$PATH:$out/bin + # --help returns non-0 exit code even when working + signal-cli --version + ''; + + meta = with lib; { + homepage = https://github.com/AsamK/signal-cli; + description = "Command-line and dbus interface for communicating with the Signal messaging service"; + license = licenses.gpl3; + maintainers = with maintainers; [ ivan erictapen ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix new file mode 100644 index 000000000000..2e8581f4eae5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -0,0 +1,120 @@ +{ stdenv, lib, fetchurl, dpkg, wrapGAppsHook +, gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig +, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite +, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib +, cups, expat, udev, libnotify, libuuid, at-spi2-core, libappindicator-gtk3 +# Unfortunately this also overwrites the UI language (not just the spell +# checking language!): +, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE" +# For a full list of available languages: +# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }' +}: + +let + customLanguageWrapperArgs = (with lib; + let + # E.g. "de_DE" -> "de-de" (spellcheckerLanguage -> hunspellDict) + spellLangComponents = splitString "_" spellcheckerLanguage; + hunspellDict = elemAt spellLangComponents 0 + "-" + toLower (elemAt spellLangComponents 1); + in if spellcheckerLanguage != null + then '' + --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \ + --set LC_MESSAGES "${spellcheckerLanguage}"'' + else ""); + rpath = lib.makeLibraryPath [ + alsaLib + atk + at-spi2-atk + at-spi2-core + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + pango + libappindicator-gtk3 + libnotify + libuuid + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + nspr + nss + udev + xorg.libxcb + ]; + +in stdenv.mkDerivation rec { + pname = "signal-desktop"; + version = "1.29.3"; # Please backport all updates to the stable channel. + # All releases have a limited lifetime and "expire" 90 days after the release. + # When releases "expire" the application becomes unusable until an update is + # applied. The expiration date for the current release can be extracted with: + # $ grep -a "^{\"buildExpiration" "${signal-desktop}/libexec/resources/app.asar" + # (Alternatively we could try to patch the asar archive, but that requires a + # few additional steps and might not be the best idea.) + + src = fetchurl { + url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; + sha256 = "1rkj6rwmwwvyd5041r96j1dxlfbmc6xsdrza43c0ykdrhfj73h11"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + nativeBuildInputs = [ dpkg wrapGAppsHook ]; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p $out + cp -R opt $out + + mv ./usr/share $out/share + mv $out/opt/Signal $out/libexec + rmdir $out/opt + + chmod -R g-w $out + + # Patch signal + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${rpath}:$out/libexec $out/libexec/signal-desktop + wrapProgram $out/libexec/signal-desktop \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --prefix LD_LIBRARY_PATH : "${stdenv.cc.cc.lib}/lib" \ + ${customLanguageWrapperArgs} \ + "''${gappsWrapperArgs[@]}" + + # Symlink to bin + mkdir -p $out/bin + ln -s $out/libexec/signal-desktop $out/bin/signal-desktop + + # Fix the desktop link + substituteInPlace $out/share/applications/signal-desktop.desktop \ + --replace /opt/Signal/signal-desktop $out/bin/signal-desktop + ''; + + meta = { + description = "Private, simple, and secure messenger"; + longDescription = '' + Signal Desktop is an Electron application that links with your + "Signal Android" or "Signal iOS" app. + ''; + homepage = https://signal.org/; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ ixmatus primeos equirosa ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix new file mode 100644 index 000000000000..1219440bf833 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, perl, pkgconfig, glib, ncurses +, enablePlugin ? false }: + +# Enabling the plugin and using it with a recent irssi, segafults on join: +# http://marc.info/?l=silc-devel&m=125610477802211 + +let + basename = "silc-client-1.1.11"; +in +stdenv.mkDerivation { + name = basename + stdenv.lib.optionalString enablePlugin "-irssi-plugin"; + + src = fetchurl { + url = "mirror://sourceforge/silc/silc/client/sources/${basename}.tar.bz2"; + sha256 = "13cp3fmdnj8scjak0d2xal3bfvs2k7ssrwdhp0zl6jar5rwc7prn"; + }; + + enableParallelBuilding = true; + + dontDisableStatic = true; + + hardeningDisable = [ "format" ]; + + configureFlags = [ "--with-ncurses=${ncurses.dev}" ]; + + preConfigure = stdenv.lib.optionalString enablePlugin '' + configureFlags="$configureFlags --with-silc-plugin=$out/lib/irssi" + ''; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ perl glib ncurses ]; + + meta = { + homepage = http://silcnet.org/; + description = "Secure Internet Live Conferencing server"; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix new file mode 100644 index 000000000000..cdc176be65b0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix @@ -0,0 +1,86 @@ +{ stdenv, fetchurl, file, libX11, libXScrnSaver +, libGL, qt5, SDL, libpulseaudio +, libXrandr, libXext, libXcursor, libXinerama, libXi +, curl, sqlite, openssl +, libuuid, openh264, libv4l, libxkbfile, libXv, zlib, libXmu +, libXtst, libXdamage, pam, libXfixes, libXrender, libjpeg_original +, ffmpeg +}: + let + # Sky is linked to the libjpeg 8 version and checks for the version number in the code. + libjpeg_original_fix = libjpeg_original.overrideAttrs (oldAttrs: { + src = fetchurl{ + url = https://www.ijg.org/files/jpegsrc.v8d.tar.gz; + sha256 = "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0"; + }; + }); +in +stdenv.mkDerivation rec { + version_major = "2.1.7369"; + version_minor = "1"; + version = version_major + "." + version_minor; + pname = "sky"; + unpackCmd = "ar x $curSrc; tar -xf data.tar.xz"; + src = fetchurl { + url = "https://tel.red/repos/ubuntu/pool/non-free/sky_${version_major + "-" + version_minor}ubuntu+xenial_amd64.deb"; + sha256 = "0b3j90km3rp5bgaklxw881g0gcy09mqzbhjdfrq4s2np026ql3d9"; + }; + buildInputs = [ + file + qt5.qtbase + SDL + ffmpeg + sqlite + openssl + openh264 + pam + curl + libX11 libXScrnSaver libGL libpulseaudio libXrandr + libXext libXcursor libXinerama libXi libuuid libv4l + libxkbfile libXv zlib libXmu libXtst libXdamage + libXfixes libXrender + libjpeg_original_fix + ]; + dontBuild = true; + + installPhase = '' + ls -al ./ + mkdir -p "$out/bin" "$out/lib" "$out/share" + cp -a lib/sky/* $out/bin/ + cp -aR lib/sky/lib64/* "$out/lib/" + cp -a lib/sky/man.sh "$out/bin" + chmod +x $out/bin/sky + cp -a share/* "$out/share" + '' + ; + + + postFixup = '' + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp-client.so.2.0.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp-server.so.2.0.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp-shadow.so.2.0.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp.so.2.0.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libopenh264.so.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/librdtk.so.1.1.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libSDL-1.3.so.0.0.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libsipw.so.1.0.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libwinpr.so.1.1.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libxfreerdp-client.so.2.0.0 + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/sky + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/sky_sender + sed -i "s#/usr/bin/sky#$out/bin/sky#g" $out/share/applications/sky.desktop + sed -i "s#/usr/lib/sky#$out/bin/#g" $out/share/applications/sky.desktop + ''; + + meta = with stdenv.lib; { + description = "Skype for business"; + longDescription = '' + Lync & Skype for business on linux + ''; + homepage = https://tel.red/; + license = licenses.unfree; + maintainers = [ maintainers.Scriptkiddi ]; + platforms = platforms.unix; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/conference.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/conference.patch new file mode 100644 index 000000000000..8b8ce8fd7bbf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/conference.patch @@ -0,0 +1,148 @@ +From abd67f1d44eef81baf2e9729f95e002c4ecc7350 Mon Sep 17 00:00:00 2001 +From: jlh <jlh@gmx.ch> +Date: Fri, 16 Oct 2009 17:40:54 +0200 +Subject: [PATCH] Rudimentary support for recording hosted conference calls + +--- + call.cpp | 37 +++++++++++++++++++++++++++++++++++-- + call.h | 11 ++++++++++- + 2 files changed, 45 insertions(+), 3 deletions(-) + +diff --git a/call.cpp b/call.cpp +index c2b02f2..663c1c1 100644 +--- a/call.cpp ++++ b/call.cpp +@@ -90,9 +90,10 @@ void AutoSync::reset() { + + // Call class + +-Call::Call(QObject *p, Skype *sk, CallID i) : +- QObject(p), ++Call::Call(CallHandler *h, Skype *sk, CallID i) : ++ QObject(h), + skype(sk), ++ handler(h), + id(i), + status("UNKNOWN"), + writer(NULL), +@@ -119,6 +120,13 @@ Call::Call(QObject *p, Skype *sk, CallID i) : + debug(QString("Call %1: cannot get partner display name").arg(id)); + displayName = "Unnamed Caller"; + } ++ ++ // Skype does not properly send updates when the CONF_ID property ++ // changes. since we need this information, check it now on all calls ++ handler->updateConfIDs(); ++ // this call isn't yet in the list of calls, thus we need to ++ // explicitely check its CONF_ID ++ updateConfID(); + } + + Call::~Call() { +@@ -134,6 +142,10 @@ Call::~Call() { + // QT takes care of deleting servers and sockets + } + ++void Call::updateConfID() { ++ confID = skype->getObject(QString("CALL %1 CONF_ID").arg(id)).toLong(); ++} ++ + bool Call::okToDelete() const { + // this is used for checking whether past calls may now be deleted. + // when a past call hasn't been decided yet whether it should have been +@@ -270,6 +282,11 @@ void Call::startRecording(bool force) { + if (isRecording) + return; + ++ if (handler->isConferenceRecording(confID)) { ++ debug(QString("Call %1: call is part of a conference that is already being recorded").arg(id)); ++ return; ++ } ++ + if (force) { + emit showLegalInformation(); + } else { +@@ -589,6 +606,22 @@ CallHandler::~CallHandler() { + delete legalInformationDialog; + } + ++void CallHandler::updateConfIDs() { ++ QList<Call *> list = calls.values(); ++ for (int i = 0; i < list.size(); i++) ++ list.at(i)->updateConfID(); ++} ++ ++bool CallHandler::isConferenceRecording(CallID id) const { ++ QList<Call *> list = calls.values(); ++ for (int i = 0; i < list.size(); i++) { ++ Call *c = list.at(i); ++ if (c->getConfID() == id && c->getIsRecording()) ++ return true; ++ } ++ return false; ++} ++ + void CallHandler::callCmd(const QStringList &args) { + CallID id = args.at(0).toInt(); + +diff --git a/call.h b/call.h +index cb8396d..b746f46 100644 +--- a/call.h ++++ b/call.h +@@ -43,6 +43,8 @@ class QTcpServer; + class QTcpSocket; + class LegalInformationDialog; + ++class CallHandler; ++ + typedef int CallID; + + class AutoSync { +@@ -68,18 +70,21 @@ private: + class Call : public QObject { + Q_OBJECT + public: +- Call(QObject *, Skype *, CallID); ++ Call(CallHandler *, Skype *, CallID); + ~Call(); + void startRecording(bool = false); + void stopRecording(bool = true); ++ void updateConfID(); + bool okToDelete() const; + void setStatus(const QString &); + QString getStatus() const { return status; } + bool statusDone() const; + bool statusActive() const; + CallID getID() const { return id; } ++ CallID getConfID() const { return confID; } + void removeFile(); + void hideConfirmation(int); ++ bool getIsRecording() const { return isRecording; } + + signals: + void startedCall(int, const QString &); +@@ -99,10 +104,12 @@ private: + + private: + Skype *skype; ++ CallHandler *handler; + CallID id; + QString status; + QString skypeName; + QString displayName; ++ CallID confID; + AudioFileWriter *writer; + bool isRecording; + int stereo; +@@ -140,6 +147,8 @@ class CallHandler : public QObject { + public: + CallHandler(QObject *, Skype *); + ~CallHandler(); ++ void updateConfIDs(); ++ bool isConferenceRecording(CallID) const; + void callCmd(const QStringList &); + + signals: +-- +1.6.5.GIT + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/default.nix new file mode 100644 index 000000000000..8093f91feb3e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, cmake, lame, id3lib, libvorbis, qt4, libogg }: + +stdenv.mkDerivation { + name = "skype-call-recorder-0.8"; + src = fetchurl { + url = "https://atdot.ch/scr/files/0.8/skype-call-recorder-0.8.tar.gz"; + sha256 = "1iijkhq3aj9gr3bx6zl8ryvzkqcdhsm9yisimakwq0lnw0lgf5di"; + }; + + # Keep an rpath reference to the used libogg + prePatch = '' + sed -i -e '/ADD_EXECUTABLE/aSET(LIBRARIES ''${LIBRARIES} ogg)' CMakeLists.txt + ''; + + # Better support for hosted conferences + patches = [ ./conference.patch ]; + + buildInputs = [ cmake lame id3lib libvorbis qt4 libogg ]; + NIX_LDFLAGS = "-lvorbis"; + + meta = { + homepage = http://atdot.ch/scr/; + description = "Open source tool to record your Skype calls on Linux"; + license = stdenv.lib.licenses.gpl2Plus; + platforms = with stdenv.lib.platforms; linux; + maintainers = with stdenv.lib.maintainers; [viric]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix new file mode 100644 index 000000000000..d43d8e1f988a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix @@ -0,0 +1,118 @@ +{ stdenv, fetchurl, dpkg +, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome3 +, gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg +, at-spi2-atk, libuuid, at-spi2-core }: + +let + + # Please keep the version x.y.0.z and do not update to x.y.76.z because the + # source of the latter disappears much faster. + version = "8.55.0.123"; + + rpath = stdenv.lib.makeLibraryPath [ + alsaLib + atk + at-spi2-atk + at-spi2-core + cairo + cups + curl + dbus + expat + fontconfig + freetype + glib + glibc + libsecret + libuuid + + gnome2.GConf + gdk-pixbuf + gtk3 + + gnome3.gnome-keyring + + libnotify + libpulseaudio + nspr + nss + pango + stdenv.cc.cc + systemd + libv4l + + xorg.libxkbfile + xorg.libX11 + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libXScrnSaver + xorg.libxcb + ] + ":${stdenv.cc.cc.lib}/lib64"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + urls = [ + "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" + "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" + ]; + sha256 = "08dvgqwj7f8k3xv5kv96k6v6ga1v2chif9m7amncg6ppp81hy7nx"; + } + else + throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}"; + +in stdenv.mkDerivation { + pname = "skypeforlinux"; + inherit version; + + system = "x86_64-linux"; + + inherit src; + + nativeBuildInputs = [ + wrapGAppsHook + glib # For setup hook populating GSETTINGS_SCHEMA_PATH + ]; + + buildInputs = [ dpkg ]; + + dontUnpack = true; + installPhase = '' + mkdir -p $out + dpkg -x $src $out + cp -av $out/usr/* $out + rm -rf $out/opt $out/usr + rm $out/bin/skypeforlinux + + ln -s "$out/share/skypeforlinux/skypeforlinux" "$out/bin/skypeforlinux" + + # Otherwise it looks "suspicious" + chmod -R g-w $out + ''; + + postFixup = '' + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* -or -name \*.node\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath ${rpath}:$out/share/skypeforlinux $file || true + done + + # Fix the desktop link + substituteInPlace $out/share/applications/skypeforlinux.desktop \ + --replace /usr/bin/ $out/bin/ + ''; + + meta = with stdenv.lib; { + description = "Linux client for skype"; + homepage = https://www.skype.com; + license = licenses.unfree; + maintainers = with stdenv.lib.maintainers; [ panaeon jraygauthier ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix new file mode 100644 index 000000000000..6271e338a964 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix @@ -0,0 +1,23 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + # https://github.com/erroneousboat/slack-term + pname = "slack-term"; + version = "0.4.1"; + + goPackagePath = "github.com/erroneousboat/slack-term"; + + src = fetchFromGitHub { + owner = "erroneousboat"; + repo = "slack-term"; + rev = "v${version}"; + sha256 = "1340bq7h31fxykxbxpn6hv7n2hmjf20f8vg5gan9pjf5jaa6kfza"; + }; + + meta = with stdenv.lib; { + description = "Slack client for your terminal"; + homepage = https://github.com/erroneousboat/slack-term; + license = licenses.mit; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix new file mode 100644 index 000000000000..903d8e60d6d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchgit }: + +stdenv.mkDerivation rec { + rev = "f760176c6e133667ce73aeecba8b0c0eb8822941"; + version = "2019-09-11"; + pname = "slack-theme-black"; + + src = fetchgit { inherit rev; + url = "https://github.com/laCour/slack-night-mode"; + sha256 = "1kx8nx7mhrabs5wxqgvy86s5smy5hw49gv6yc95yxwx6ymwpgbzj"; + }; + + dontUnpack = true; + + buildCommand = '' + mkdir $out + cp $src/css/raw/black.css $out/theme.css + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix new file mode 100644 index 000000000000..e501d3bcdbfc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -0,0 +1,127 @@ +{ theme ? null, stdenv, fetchurl, dpkg, makeWrapper , alsaLib, atk, cairo, +cups, curl, dbus, expat, fontconfig, freetype, glib , gnome2, gtk3, gdk-pixbuf, +libappindicator-gtk3, libnotify, libxcb, nspr, nss, pango , systemd, xorg, +at-spi2-atk, at-spi2-core, libuuid, nodePackages, libpulseaudio, xdg_utils +}: + +let + + version = "4.2.0"; + + rpath = stdenv.lib.makeLibraryPath [ + alsaLib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + fontconfig + freetype + glib + gnome2.GConf + gdk-pixbuf + gtk3 + pango + libnotify + libxcb + libappindicator-gtk3 + nspr + nss + stdenv.cc.cc + systemd + libuuid + libpulseaudio + + xorg.libxkbfile + xorg.libX11 + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libXScrnSaver + ] + ":${stdenv.cc.cc.lib}/lib64"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb"; + sha256 = "01b2klhky04fijdqcpfafgdqx2c5nh2fpnzvzgvz10hv7h16cinv"; + } + else + throw "Slack is not supported on ${stdenv.hostPlatform.system}"; + +in stdenv.mkDerivation { + pname = "slack"; + inherit version; + + inherit src; + + buildInputs = [ + gtk3 # needed for GSETTINGS_SCHEMAS_PATH + ]; + + nativeBuildInputs = [ dpkg makeWrapper nodePackages.asar ]; + + dontUnpack = true; + dontBuild = true; + dontPatchELF = true; + + installPhase = '' + # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here + dpkg --fsys-tarfile $src | tar --extract + rm -rf usr/share/lintian + + mkdir -p $out + mv usr/* $out + + # Otherwise it looks "suspicious" + chmod -R g-w $out + + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath ${rpath}:$out/lib/slack $file || true + done + + # Replace the broken bin/slack symlink with a startup wrapper + rm $out/bin/slack + makeWrapper $out/lib/slack/slack $out/bin/slack \ + --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \ + --prefix PATH : ${xdg_utils}/bin + + # Fix the desktop link + substituteInPlace $out/share/applications/slack.desktop \ + --replace /usr/bin/ $out/bin/ \ + --replace /usr/share/ $out/share/ + '' + stdenv.lib.optionalString (theme != null) '' + asar extract $out/lib/slack/resources/app.asar $out/lib/slack/resources/app.asar.unpacked + cat <<EOF >> $out/lib/slack/resources/app.asar.unpacked/dist/ssb-interop.bundle.js + + var fs = require('fs'); + document.addEventListener('DOMContentLoaded', function() { + fs.readFile('${theme}/theme.css', 'utf8', function(err, css) { + let s = document.createElement('style'); + s.type = 'text/css'; + s.innerHTML = css; + document.head.appendChild(s); + }); + }); + EOF + asar pack $out/lib/slack/resources/app.asar.unpacked $out/lib/slack/resources/app.asar + ''; + + meta = with stdenv.lib; { + description = "Desktop client for Slack"; + homepage = https://slack.com; + license = licenses.unfree; + maintainers = [ maintainers.mmahut ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh new file mode 100755 index 000000000000..6a15298c4e7d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl common-updater-scripts jq + +set -eu -o pipefail + +oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion slack-theme-black" | tr -d '"')" +latestSha="$(curl -L -s https://api.github.com/repos/laCour/slack-night-mode/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')" + +if [ ! "null" = "${latestSha}" ]; then + latestDate="$(curl -L -s https://api.github.com/repos/laCour/slack-night-mode/commits/${latestSha} | jq '.commit.author.date' | sed 's|"\(.*\)T.*|\1|g')" + update-source-version slack-theme-black "${latestSha}" --version-key=rev + update-source-version slack-theme-black "${latestDate}" --ignore-same-hash + nixpkgs="$(git rev-parse --show-toplevel)" + default_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix" + git add "${default_nix}" + git commit -m "slack-theme-black: ${oldVersion} -> ${latestDate}" +else + echo "slack-theme-black is already up-to-date" +fi diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix new file mode 100644 index 000000000000..314a3bb64571 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchgit +, pkgconfig, wrapQtAppsHook +, cmake +, qtbase, qttools, qtquickcontrols2, qtmultimedia, qtkeychain +, libpulseaudio +# Not mentioned but seems needed +, qtgraphicaleffects +, qtdeclarative +, qtmacextras +, olm, cmark +}: + +let qtkeychain-qt5 = qtkeychain.override { + inherit qtbase qttools; + withQt5 = true; +}; +in stdenv.mkDerivation { + pname = "spectral"; + version = "unstable-2019-08-30"; + + src = fetchgit { + url = "https://gitlab.com/b0/spectral.git"; + rev = "ee86c948aec5fe72979fc6df97f4a6ef711bdf94"; + sha256 = "1mqabdkvzq48wki92wm2r79kj8g8m7ganpl47sh60qfsk4bxa8b2"; + fetchSubmodules = true; + }; + + #qmakeFlags = [ "CONFIG+=qtquickcompiler" "BUNDLE_FONT=true" ]; + + nativeBuildInputs = [ pkgconfig cmake wrapQtAppsHook ]; + buildInputs = [ qtbase qtkeychain-qt5 qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative olm cmark ] + ++ stdenv.lib.optional stdenv.hostPlatform.isLinux libpulseaudio + ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin qtmacextras; + + meta = with stdenv.lib; { + description = "A glossy cross-platform Matrix client."; + homepage = "https://gitlab.com/b0/spectral"; + license = licenses.gpl3; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix new file mode 100644 index 000000000000..7a9ab4d127c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix @@ -0,0 +1,68 @@ +{ stdenv, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat, fontconfig +, freetype, gdk-pixbuf, glib, gnome2, nspr, nss, pango, udev, xorg }: +let + fullPath = stdenv.lib.makeLibraryPath [ + alsaLib + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gnome2.gtk + nspr + nss + pango + udev + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + ] + ":${stdenv.cc.cc.lib}/lib64"; +in +stdenv.mkDerivation rec { + version = "1.17.82"; + pname = "stride"; + + src = fetchurl { + url = "https://packages.atlassian.com/stride-apt-client/pool/stride_${version}_amd64.deb"; + sha256 = "0lx61gdhw0kv4f9fwbfg69yq52dsp4db7c4li25d6wn11qanzqhy"; + }; + + dontBuild = true; + dontFixup = true; + + buildInputs = [ dpkg ]; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + installPhase ='' + mkdir "$out" + mv usr/* "$out/" + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${fullPath}:\$ORIGIN" \ + "$out/bin/stride" + ''; + + meta = with stdenv.lib; { + description = "Desktop client for Atlassian Stride"; + homepage = https://www.stride.com/; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ puffnfresh ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix new file mode 100644 index 000000000000..d47b7d00af92 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, pkgconfig, qttools, scons +, GConf, avahi, boost, hunspell, libXScrnSaver, libedit, libidn, libnatpmp, libxml2 +, lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib +}: + +stdenv.mkDerivation rec { + pname = "swift-im"; + version = "4.0.2"; + + src = fetchurl { + url = "https://swift.im/downloads/releases/swift-${version}/swift-${version}.tar.gz"; + sha256 = "0w0aiszjd58ynxpacwcgf052zpmbpcym4dhci64vbfgch6wryz0w"; + }; + + patches = [ ./qt-5.11.patch ./scons.patch ]; + + nativeBuildInputs = [ pkgconfig qttools scons ]; + + buildInputs = [ + GConf avahi boost hunspell libXScrnSaver libedit libidn libnatpmp libxml2 + lua miniupnpc openssl qtbase qtmultimedia qtsvg qtwebkit qtx11extras zlib + ]; + + propagatedUserEnvPkgs = [ GConf ]; + + NIX_CFLAGS_COMPILE = toString [ + "-I${libxml2.dev}/include/libxml2" + "-I${miniupnpc}/include/miniupnpc" + "-I${qtwebkit.dev}/include/QtWebKit" + "-I${qtwebkit.dev}/include/QtWebKitWidgets" + "-fpermissive" + ]; + + installTargets = [ (placeholder "out") ]; + installFlags = [ "SWIFT_INSTALLDIR=${placeholder "out"}" ]; + + meta = with stdenv.lib; { + homepage = https://swift.im/; + description = "Qt XMPP client"; + license = licenses.gpl3; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch new file mode 100644 index 000000000000..911e7570427f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch @@ -0,0 +1,10 @@ +--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.h ++++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.h +@@ -8,6 +8,7 @@ + + #include <set> + ++#include <QAbstractItemModel> + #include <QWizard> + + #include <Swiften/Base/Override.h> diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch new file mode 100644 index 000000000000..c63b05d7acb1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch @@ -0,0 +1,53 @@ +diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot +index 40f242513..53e1ff26a 100644 +--- a/BuildTools/SCons/SConscript.boot ++++ b/BuildTools/SCons/SConscript.boot +@@ -508,6 +508,7 @@ if env.get("distcc", False) : + if var.startswith("DISTCC_") : + env["ENV"][var] = os.environ[var] + ++env["ENV"] = os.environ + conf_env = env.Clone() + + Export("env") +diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct +index 70bffbcfe..fef281899 100644 +--- a/BuildTools/SCons/SConstruct ++++ b/BuildTools/SCons/SConstruct +@@ -272,7 +272,7 @@ if env.get("try_gconf", True) and env["PLATFORM"] != "win32" and env["PLATFORM"] + gconf_env = conf_env.Clone() + conf = Configure(gconf_env, custom_tests = {"CheckPKG": CheckPKG}) + if conf.CheckPKG("gconf-2.0") : +- gconf_bare_env = Environment() ++ gconf_bare_env = Environment(ENV = os.environ) + gconf_bare_env.ParseConfig('pkg-config --cflags gconf-2.0 gobject-2.0 --libs gconf-2.0 gobject-2.0') + if os.path.basename(env["CXX"]).startswith(("g++", "clang++")) : + gconf_bare_env["CCFLAGS"] = [("-isystem" + ccflag) for ccflag in gconf_bare_env["CPPPATH"]] +@@ -634,9 +634,9 @@ hunspell_env.MergeFlags(hunspell_flags) + env["HAVE_HUNSPELL"] = 0; + if env.get("hunspell_enable", False) : + hunspell_conf = Configure(hunspell_env) +- if hunspell_conf.CheckCXXHeader("hunspell/hunspell.hxx") and hunspell_conf.CheckLib("hunspell") : ++ if hunspell_conf.CheckCXXHeader("hunspell/hunspell.hxx") and hunspell_conf.CheckLib("hunspell-1.6") : + env["HAVE_HUNSPELL"] = 1 +- hunspell_flags["LIBS"] = ["hunspell"] ++ hunspell_flags["LIBS"] = ["hunspell-1.6"] + env["HUNSPELL_FLAGS"] = hunspell_flags + hunspell_conf.Finish() + +diff --git a/BuildTools/SCons/Tools/textfile.py b/BuildTools/SCons/Tools/textfile.py +index 89f8963dc..b8559f7a6 100644 +--- a/BuildTools/SCons/Tools/textfile.py ++++ b/BuildTools/SCons/Tools/textfile.py +@@ -113,7 +113,10 @@ def _action(target, source, env): + lsep = None + for s in source: + if lsep: fd.write(lsep) +- fd.write(_do_subst(s, subs)) ++ b = _do_subst(s, subs) ++ if isinstance(b, unicode): ++ b = b.encode('UTF-8') ++ fd.write(b) + lsep = linesep + fd.close() + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix new file mode 100644 index 000000000000..0921dcfccdd9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, wrapGAppsHook +, dpkg +, atomEnv +, libuuid +, pulseaudio +, at-spi2-atk +, coreutils +, gawk +, xdg_utils +, systemd }: + +stdenv.mkDerivation rec { + pname = "teams"; + version = "1.2.00.32451"; + + src = fetchurl { + url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb"; + sha256 = "1p053kg5qksr78v2h7cxia5mb9kzgfwm6n99x579vfx48kka1n18"; + }; + + nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ]; + + unpackCmd = "dpkg -x $curSrc ."; + + buildInputs = atomEnv.packages ++ [ + libuuid + at-spi2-atk + ]; + + runtimeDependencies = [ + systemd.lib + pulseaudio + ]; + + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin:${xdg_utils}/bin") + ''; + + installPhase = '' + mkdir -p $out/{opt,bin} + + mv share/teams $out/opt/ + mv share $out/share + + substituteInPlace $out/share/applications/teams.desktop \ + --replace /usr/bin/ $out/bin/ + + ln -s $out/opt/teams/teams $out/bin/ + ''; + + meta = with stdenv.lib; { + description = "Microsoft Teams"; + homepage = "https://teams.microsoft.com"; + downloadPage = "https://teams.microsoft.com/downloads"; + license = licenses.unfree; + maintainers = [ maintainers.liff ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix new file mode 100644 index 000000000000..a75d0c8633a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -0,0 +1,148 @@ +{ stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl +, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, xkeyboard_config, alsaLib +, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin +}: + +let + + arch = if stdenv.is64bit then "amd64" else "x86"; + + libDir = if stdenv.is64bit then "lib64" else "lib"; + + deps = + [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl + xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama + xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qtbase qtwebengine qtwebchannel qtsvg + libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi + ]; + + desktopItem = makeDesktopItem { + name = "teamspeak"; + exec = "ts3client"; + icon = "teamspeak"; + comment = "The TeamSpeak voice communication tool"; + desktopName = "TeamSpeak"; + genericName = "TeamSpeak"; + categories = "Network"; + }; + + fakeLess = writeShellScriptBin "less" "cat"; + +in + +stdenv.mkDerivation rec { + pname = "teamspeak-client"; + + version = "3.3.2"; + + src = fetchurl { + url = "https://files.teamspeak-services.com/releases/client/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"; + sha256 = if stdenv.is64bit + then "1n916ds67dxj5bfgc5zm9nz2xh2914k85pzzspzvfyr7njcw7hpi" + else "0csl5xklcb4v8bzwvby5m2n38zjrnaw8dcvha7qvfbjllxr75yn2"; + }; + + # grab the plugin sdk for the desktop icon + pluginsdk = fetchurl { + url = "http://dl.4players.de/ts/client/pluginsdk/pluginsdk_3.1.1.1.zip"; + sha256 = "1bywmdj54glzd0kffvr27r84n4dsd0pskkbmh59mllbxvj0qwy7f"; + }; + + nativeBuildInputs = [ makeWrapper fakeLess which unzip ]; + + unpackPhase = + '' + echo -e '\ny' | sh -xe $src + cd TeamSpeak* + ''; + + buildPhase = + '' + mv ts3client_linux_${arch} ts3client + echo "patching ts3client..." + patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip5.so ts3client + patchelf \ + --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${stdenv.lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \ + --force-rpath \ + ts3client + ''; + + installPhase = + '' + # Delete unecessary libraries - these are provided by nixos. + rm *.so.* *.so + rm QtWebEngineProcess + rm qt.conf + rm -r platforms # contains libqxcb.so + + # Install files. + mkdir -p $out/lib/teamspeak + mv * $out/lib/teamspeak/ + + # Make a desktop item + mkdir -p $out/share/applications/ $out/share/icons/ + unzip ${pluginsdk} + cp pluginsdk/docs/client_html/images/logo.png $out/share/icons/teamspeak.png + cp ${desktopItem}/share/applications/* $out/share/applications/ + + # Make a symlink to the binary from bin. + mkdir -p $out/bin/ + ln -s $out/lib/teamspeak/ts3client $out/bin/ts3client + + wrapProgram $out/bin/ts3client \ + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}" \ + --set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb + ''; + + dontStrip = true; + dontPatchELF = true; + + meta = { + description = "The TeamSpeak voice communication tool"; + homepage = http://teamspeak.com/; + license = { + fullName = "Teamspeak client license"; + url = http://sales.teamspeakusa.com/licensing.php; + free = false; + }; + maintainers = [ stdenv.lib.maintainers.lhvwb ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} + +/* +License issues: +Date: Mon, 10 Dec 2007 19:55:16 -0500 +From: TeamSpeak Sales <sales@tritoncia.com> +To: 'Marc Weber' <marco-oweber@gmx.de> +Subject: RE: teamspeak on nix? + +Yes, that would be fine. As long as you are not renting servers or selling +TeamSpeak then you are more than welcome to distribute it. + +Thank you, + +TeamSpeak Sales Team +________________________________ +e-Mail: sales@tritoncia.com +TeamSpeak: http://www.TeamSpeak.com +Account Login: https://sales.TritonCIA.com/users + + + +-----Original Message----- +From: Marc Weber [mailto:marco-oweber@gmx.de] +Sent: Monday, December 10, 2007 5:03 PM +To: sales@tritoncia.com +Subject: teamspeak on nix? + +Hello, + +nix is very young software distribution system (http://nix.cs.uu.nl/) +I'd like to ask wether you permit us to add teamspeak (server/ client?) + +Sincerly +Marc Weber (small nix contributor) +*/ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix new file mode 100644 index 000000000000..9c57ac829afb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix @@ -0,0 +1,73 @@ +{ stdenv, fetchurl, autoPatchelfHook }: + +let + arch = if stdenv.is64bit then "amd64" else "x86"; +in stdenv.mkDerivation rec { + pname = "teamspeak-server"; + version = "3.10.2"; + + src = fetchurl { + url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2"; + sha256 = if stdenv.is64bit + then "03c717qjlbym02nwy82l6jhrkbidsdm1jv5k8p3c10p6a46jy9nl" + else "1ay0lmbv2rw9klz289yg0hhsac83kfzzlbwwhjpi28xndl2lq4bf"; + }; + + buildInputs = [ stdenv.cc.cc ]; + + nativeBuildInputs = [ autoPatchelfHook ]; + + installPhase = '' + # Install files. + mkdir -p $out/lib/teamspeak + mv * $out/lib/teamspeak/ + + # Make symlinks to the binaries from bin. + mkdir -p $out/bin/ + ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server + ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver + ''; + + meta = with stdenv.lib; { + description = "TeamSpeak voice communication server"; + homepage = https://teamspeak.com/; + license = licenses.unfreeRedistributable; + platforms = platforms.linux; + maintainers = with maintainers; [ arobyn gerschtli ]; + }; +} + +/* +License issues: +Date: Mon, 10 Dec 2007 19:55:16 -0500 +From: TeamSpeak Sales <sales@tritoncia.com> +To: 'Marc Weber' <marco-oweber@gmx.de> +Subject: RE: teamspeak on nix? + +Yes, that would be fine. As long as you are not renting servers or selling +TeamSpeak then you are more than welcome to distribute it. + +Thank you, + +TeamSpeak Sales Team +________________________________ +e-Mail: sales@tritoncia.com +TeamSpeak: http://www.TeamSpeak.com +Account Login: https://sales.TritonCIA.com/users + + + +-----Original Message----- +From: Marc Weber [mailto:marco-oweber@gmx.de] +Sent: Monday, December 10, 2007 5:03 PM +To: sales@tritoncia.com +Subject: teamspeak on nix? + +Hello, + +nix is very young software distribution system (http://nix.cs.uu.nl/) +I'd like to ask wether you permit us to add teamspeak (server/ client?) + +Sincerly +Marc Weber (small nix contributor) +*/ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix new file mode 100644 index 000000000000..e57ff881af34 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix @@ -0,0 +1,174 @@ +{ mkDerivation, lib, fetchFromGitHub, fetchsvn, fetchpatch +, pkgconfig, pythonPackages, cmake, wrapGAppsHook, wrapQtAppsHook, gcc9 +, qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils +, dee, ffmpeg_4, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3 +}: + +with lib; + +mkDerivation rec { + pname = "telegram-desktop"; + version = "1.8.15"; + # Note: Due to our strong dependency on the Arch patches it's probably best + # to also wait for the Arch update (especially if the patches don't apply). + + # Telegram-Desktop with submodules + src = fetchFromGitHub { + owner = "telegramdesktop"; + repo = "tdesktop"; + rev = "v${version}"; + sha256 = "03173y2nlkf757llgpia8p2dkkwsjra7b6qm5nhmkcwcm8kmsvyy"; + fetchSubmodules = true; + }; + + # Arch patches (svn export telegram-desktop/trunk) + archPatches = fetchsvn { + url = "svn://svn.archlinux.org/community/telegram-desktop/trunk"; + # svn log svn://svn.archlinux.org/community/telegram-desktop/trunk + rev = "512849"; + sha256 = "1hl7znvv6qr4cwpkj8wlplpa63i1lhk2iax7hb4l1s1a4mijx9ls"; + }; + privateHeadersPatch = fetchpatch { + url = "https://github.com/telegramdesktop/tdesktop/commit/b9d3ba621eb8af638af46c6b3cfd7a8330bf0dd5.patch"; + sha256 = "1s5xvcp9dk0jfywssk8xfcsh7bk5xxif8xqnba0413lfx5rgvs5v"; + }; + + # Note: It would be best if someone could get as many patches upstream as + # possible (we currently depend a lot on custom patches...). + patches = [ + "${archPatches}/tdesktop.patch" + "${archPatches}/no-gtk2.patch" + "${archPatches}/Revert-Disable-DemiBold-fallback-for-Semibold.patch" + "${archPatches}/tdesktop_lottie_animation_qtdebug.patch" + # "${archPatches}/Revert-Change-some-private-header-includes.patch" + # "${archPatches}/Use-system-wide-font.patch" + ]; + + postPatch = '' + substituteInPlace Telegram/SourceFiles/platform/linux/linux_libs.cpp \ + --replace '"appindicator3"' '"${libappindicator-gtk3}/lib/libappindicator3.so"' + substituteInPlace Telegram/SourceFiles/platform/linux/linux_libnotify.cpp \ + --replace '"notify"' '"${libnotify}/lib/libnotify.so"' + ''; + + # We want to run wrapProgram manually (with additional parameters) + dontWrapGApps = true; + dontWrapQtApps = true; + + nativeBuildInputs = [ pkgconfig pythonPackages.gyp cmake wrapGAppsHook wrapQtAppsHook gcc9 ]; + + buildInputs = [ + qtbase qtimageformats gtk3 libappindicator-gtk3 + dee ffmpeg_4 openalSoft minizip libopus alsaLib libpulseaudio range-v3 + ]; + + enableParallelBuilding = true; + + GYP_DEFINES = concatStringsSep "," [ + "TDESKTOP_DISABLE_CRASH_REPORTS" + "TDESKTOP_DISABLE_AUTOUPDATE" + "TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME" + ]; + + NIX_CFLAGS_COMPILE = [ + "-DTDESKTOP_DISABLE_CRASH_REPORTS" + "-DTDESKTOP_DISABLE_AUTOUPDATE" + "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME" + "-I${minizip}/include/minizip" + # See Telegram/gyp/qt.gypi + "-I${getDev qtbase}/mkspecs/linux-g++" + ] ++ concatMap (x: [ + "-I${getDev qtbase}/include/${x}" + "-I${getDev qtbase}/include/${x}/${qtbase.version}" + "-I${getDev qtbase}/include/${x}/${qtbase.version}/${x}" + "-I${getDev libopus}/include/opus" + "-I${getDev alsaLib}/include/alsa" + "-I${getDev libpulseaudio}/include/pulse" + ]) [ "QtCore" "QtGui" "QtDBus" ]; + CPPFLAGS = NIX_CFLAGS_COMPILE; + + preConfigure = '' + # Patches to revert: + patch -R -Np1 -i "${privateHeadersPatch}" + + # Patches to apply: + pushd "Telegram/ThirdParty/libtgvoip" + patch -Np1 -i "${archPatches}/libtgvoip.patch" + popd + + # disable static-qt for rlottie + sed "/RLOTTIE_WITH_STATIC_QT/d" -i "Telegram/gyp/lib_rlottie.gyp" + + sed -i Telegram/gyp/telegram/linux.gypi \ + -e 's,/usr,/does-not-exist,g' \ + -e 's,appindicator-0.1,appindicator3-0.1,g' \ + -e 's,-flto,,g' + + sed -i Telegram/gyp/modules/qt.gypi \ + -e "s,/usr/include/qt/QtCore/,${qtbase.dev}/include/QtCore/,g" \ + -e 's,\d+",\d+" | head -n1,g' + sed -i Telegram/gyp/modules/qt_moc.gypi \ + -e "s,/usr/bin/moc,moc,g" + sed -i Telegram/gyp/modules/qt_rcc.gypi \ + -e "s,/usr/bin/rcc,rcc,g" + + # Build system assumes x86, but it works fine on non-x86 if we patch this one flag out + sed -i Telegram/ThirdParty/libtgvoip/libtgvoip.gyp \ + -e "/-msse2/d" + + gyp \ + -Dapi_id=17349 \ + -Dapi_hash=344583e45741c457fe1862106095a5eb \ + -Dbuild_defines=${GYP_DEFINES} \ + -Gconfig=Release \ + --depth=Telegram/gyp \ + --generator-output=../.. \ + -Goutput_dir=out \ + --format=cmake \ + Telegram/gyp/Telegram.gyp + + cd out/Release + + NUM=$((`wc -l < CMakeLists.txt` - 2)) + sed -i "$NUM r $archPatches/CMakeLists.inj" CMakeLists.txt + + export ASM=$(type -p gcc) + ''; + + cmakeFlags = [ "-UTDESKTOP_OFFICIAL_TARGET" ]; + + installPhase = '' + install -Dm755 Telegram $out/bin/telegram-desktop + + mkdir -p $out/share/applications $out/share/kde4/services + install -m444 "$src/lib/xdg/telegramdesktop.desktop" "$out/share/applications/telegram-desktop.desktop" + sed "s,/usr/bin,$out/bin,g" $archPatches/tg.protocol > $out/share/kde4/services/tg.protocol + for icon_size in 16 32 48 64 128 256 512; do + install -Dm644 "../../../Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram.png" + done + ''; + + postFixup = '' + # This is necessary to run Telegram in a pure environment. + # We also use gappsWrapperArgs from wrapGAppsHook. + wrapProgram $out/bin/telegram-desktop \ + "''${gappsWrapperArgs[@]}" \ + "''${qtWrapperArgs[@]}" \ + --prefix PATH : ${xdg_utils}/bin \ + --set XDG_RUNTIME_DIR "XDG-RUNTIME-DIR" + sed -i $out/bin/telegram-desktop \ + -e "s,'XDG-RUNTIME-DIR',\"\''${XDG_RUNTIME_DIR:-/run/user/\$(id --user)}\"," + ''; + + meta = { + description = "Telegram Desktop messaging app"; + longDescription = '' + Desktop client for the Telegram messenger, based on the Telegram API and + the MTProto secure protocol. + ''; + license = licenses.gpl3; + platforms = platforms.linux; + homepage = https://desktop.telegram.org/; + maintainers = with maintainers; [ primeos abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix new file mode 100644 index 000000000000..a0cc73da46d8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, libxslt, telepathy-glib, libxml2, dbus-glib, dbus +, sqlite, libsoup, libnice, gnutls}: + +stdenv.mkDerivation rec { + name = "telepathy-gabble-0.18.4"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/telepathy-gabble/${name}.tar.gz"; + sha256 = "174nlkqm055vrhv11gy73m20jbsggcb0ddi51c7s9m3j5ibr2p0i"; + }; + + nativeBuildInputs = [ pkgconfig libxslt ]; + buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls telepathy-glib.python ]; + + checkInputs = [ dbus.daemon ]; + + configureFlags = [ "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" ]; + + enableParallelBuilding = true; + doCheck = true; + + meta = with stdenv.lib; { + homepage = https://telepathy.freedesktop.org/components/telepathy-gabble/; + description = "Jabber/XMPP connection manager for the Telepathy framework"; + license = licenses.lgpl21Plus; + platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix new file mode 100644 index 000000000000..769e639314e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, fetchpatch, pidgin, telepathy-glib, glib, dbus-glib, pkgconfig, libxslt }: + +stdenv.mkDerivation rec { + pname = "telepathy-haze"; + name = "${pname}-0.8.0"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz"; + sha256 = "1jgrp32p6rllj089ynbsk3n9xrvsvzmwzhf0ql05kkgj0nf08xiy"; + }; + + buildInputs = [ glib telepathy-glib dbus-glib pidgin telepathy-glib.python ]; + + nativeBuildInputs = [ pkgconfig libxslt ]; + + patches = [ + # Patch from Gentoo that helps telepathy-haze build with more + # recent versions of pidgin. + (fetchpatch { + url = https://raw.githubusercontent.com/gentoo/gentoo/master/net-voip/telepathy-haze/files/telepathy-haze-0.8.0-pidgin-2.10.12-compat.patch; + sha256 = "0fa1p4n1559qd096w7ya4kvfnc1c98ykarkxzlpkwvzbczwzng3c"; + }) + ]; + + meta = { + description = "A Telepathy connection manager based on libpurple"; + platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # Random choice + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix new file mode 100644 index 000000000000..f3d1e6cfd750 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, glib, dconf, pkgconfig, dbus-glib, telepathy-glib, libxslt, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "telepathy-idle"; + version = "0.2.0"; + + src = fetchurl { + url = "http://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz"; + sha256 = "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib telepathy-glib dbus-glib libxslt telepathy-glib.python (stdenv.lib.getLib dconf) makeWrapper ]; + + preFixup = '' + wrapProgram "$out/libexec/telepathy-idle" \ + --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" + ''; + + meta = { + description = "IRC connection manager for the Telepathy framework"; + license = stdenv.lib.licenses.lgpl21; + platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix new file mode 100644 index 000000000000..af0ca1589e5a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, pkgconfig +, dconf, makeWrapper, intltool, libxslt, gobject-introspection, dbus }: + +stdenv.mkDerivation rec { + project = "telepathy-logger"; + name = "${project}-0.8.2"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${project}/${name}.tar.bz2"; + sha256 = "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"; + }; + + nativeBuildInputs = [ + makeWrapper pkgconfig intltool libxslt gobject-introspection + ]; + buildInputs = [ + dbus-glib libxml2 sqlite telepathy-glib + dbus telepathy-glib.python + ]; + + configureFlags = [ "--enable-call" ]; + + preFixup = '' + wrapProgram "$out/libexec/telepathy-logger" \ + --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "Logger service for Telepathy framework"; + homepage = https://telepathy.freedesktop.org/components/telepathy-logger/; + license = licenses.lgpl21; + maintainers = with maintainers; [ jtojnar ]; + platforms = platforms.gnu ++ platforms.linux; # Arbitrary choice + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix new file mode 100644 index 000000000000..ef842275a5de --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, fetchurl +, pkgconfig +, dconf +, telepathy-glib +, python3 +, libxslt +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "telepathy-mission-control"; + version = "5.16.5"; + + outputs = [ "out" "lib" "dev" ]; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz"; + sha256 = "00xxv38cfdirnfvgyd56m60j0nkmsv5fz6p2ydyzsychicxl6ssc"; + }; + + buildInputs = [ + python3 + ]; # ToDo: optional stuff missing + + nativeBuildInputs = [ + pkgconfig + libxslt + makeWrapper + ]; + + propagatedBuildInputs = [ + telepathy-glib + ]; + + doCheck = true; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$lib/libexec/mission-control-5" \ + --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "An account manager and channel dispatcher for the Telepathy framework"; + homepage = https://telepathy.freedesktop.org/components/telepathy-mission-control/; + license = licenses.lgpl21; + maintainers = with maintainers; [ jtojnar ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix new file mode 100644 index 000000000000..6513c6324a61 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, avahi, libsoup +, libuuid, openssl, pcre, sqlite, pkgconfig }: + +stdenv.mkDerivation rec { + pname = "telepathy-salut"; + name = "${pname}-0.8.1"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz"; + sha256 = "13k112vrr3zghzr03pnbqc1id65qvpj0sn0virlbf4dmr2511fbh"; + }; + + # pcre needed because https://github.com/NixOS/nixpkgs/pull/15046 + buildInputs = [ glib libxml2 telepathy-glib avahi libsoup libuuid openssl + sqlite pcre telepathy-glib.python ]; + + nativeBuildInputs = [ libxslt pkgconfig ]; + + configureFlags = [ "--disable-avahi-tests" ]; + + meta = with stdenv.lib; { + description = "Link-local XMPP connection manager for Telepathy"; + platforms = platforms.gnu ++ platforms.linux; # Random choice + maintainers = [ maintainers.lethalman ]; + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix new file mode 100644 index 000000000000..11845ecfb26c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }: + +# we now have libqmatrixclient so a future version of tensor that supports it +# should use that + +stdenv.mkDerivation rec { + pname = "tensor-git"; + version = "2017-02-21"; + + src = fetchgit { + url = "https://github.com/davidar/tensor.git"; + rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5"; + sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9"; + fetchSubmodules = true; + }; + + enableParallelBuilding = true; + + buildInputs = [ qtbase qtquickcontrols ]; + nativeBuildInputs = [ qmake ]; + + desktopItem = makeDesktopItem { + name = "tensor"; + exec = "@bin@"; + icon = "tensor.png"; + comment = meta.description; + desktopName = "Tensor Matrix Client"; + genericName = meta.description; + categories = "Chat;Utility"; + mimeType = "application/x-chat"; + }; + + installPhase = '' + runHook preInstall + + install -Dm755 tensor $out/bin/tensor + install -Dm644 client/logo.png \ + $out/share/icons/hicolor/512x512/apps/tensor.png + install -Dm644 ${desktopItem}/share/applications/tensor.desktop \ + $out/share/applications/tensor.desktop + + substituteInPlace $out/share/applications/tensor.desktop \ + --subst-var-by bin $out/bin/tensor + + runHook postInstall + ''; + + meta = with stdenv.lib; { + homepage = https://matrix.org/docs/projects/client/tensor.html; + description = "Cross-platform Qt5/QML-based Matrix client"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + inherit (qtbase.meta) platforms; + inherit version; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix new file mode 100644 index 000000000000..edfec97edf8a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, python, unzip, wxPython, wrapPython, tor }: +stdenv.mkDerivation rec { + + pname = "torchat"; + version = "0.9.9.553"; + + src = fetchurl { + url = "https://github.com/prof7bit/TorChat/archive/${version}.tar.gz"; + sha256 = "0rb4lvv40pz6ab5kxq40ycvh7kh1yxn7swzgv2ff2nbhi62xnzp0"; + }; + + buildInputs = [ python unzip wxPython wrapPython ]; + pythonPath = [ wxPython ]; + + preConfigure = "cd torchat/src; rm portable.txt"; + + installPhase = '' + substituteInPlace "Tor/tor.sh" --replace "tor -f" "${tor}/bin/tor -f" + + wrapPythonPrograms + + mkdir -p $out/lib/torchat + cp -rf * $out/lib/torchat + makeWrapper ${python}/bin/python $out/bin/torchat \ + --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \ + --run "cd $out/lib/torchat" \ + --add-flags "-O $out/lib/torchat/torchat.py" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/prof7bit/TorChat; + description = "Instant messaging application on top of the Tor network and it's location hidden services"; + license = licenses.gpl3; + maintainers = [ maintainers.phreedom ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix new file mode 100644 index 000000000000..540aa3fcea4d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, libsodium, ncurses, curl +, libtoxcore, openal, libvpx, freealut, libconfig, pkgconfig, libopus +, qrencode, gdk-pixbuf, libnotify }: + +stdenv.mkDerivation rec { + pname = "toxic"; + version = "0.8.3"; + + src = fetchFromGitHub { + owner = "Tox"; + repo = "toxic"; + rev = "v${version}"; + sha256 = "09l2j3lwvrq7bf3051vjsnml9w63790ly3iylgf26gkrmld6k31w"; + }; + + makeFlags = [ "PREFIX=$(out)"]; + installFlags = [ "PREFIX=$(out)"]; + + buildInputs = [ + libtoxcore libsodium ncurses curl gdk-pixbuf libnotify + ] ++ stdenv.lib.optionals (!stdenv.isAarch32) [ + openal libopus libvpx freealut qrencode + ]; + nativeBuildInputs = [ pkgconfig libconfig ]; + + meta = with stdenv.lib; { + description = "Reference CLI for Tox"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix new file mode 100644 index 000000000000..780dab79e997 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchpatch, python3Packages }: + +with stdenv.lib; +with python3Packages; + +buildPythonPackage rec { + pname = "turses"; + version = "0.3.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "15mkhm3b5ka42h8qph0mhh8izfc1200v7651c62k7ldcs50ib9j6"; + }; + + checkInputs = [ mock pytest coverage tox ]; + propagatedBuildInputs = [ urwid tweepy future ]; + + patches = [ + (fetchpatch { + url = "https://github.com/louipc/turses/commit/be0961b51f502d49fd9e2e5253ac130e543a31c7.patch"; + sha256 = "17s1n0275mcj03vkf3n39dmc09niwv4y7ssrfk7k3vqx22kppzg3"; + }) + # python 3.7+ support + (fetchpatch { + url = "https://github.com/booxter/turses/commit/e6e285eae50fc3d2042a476185fe60daef1e758e.patch"; + sha256 = "0g2zsrny955viwgs2l6gpiiz8m67b5sgdcxkjmfimfvvih5sg79f"; + }) + ]; + + checkPhase = '' + TMP_TURSES=`echo turses-$RANDOM` + mkdir $TMP_TURSES + PYTHONPATH=tests:$PYTHONPATH HOME=$TMP_TURSES py.test tests/ + rm -rf $TMP_TURSES + ''; + + postPatch = '' + sed -i -e 's|urwid==1.3.0|urwid==${getVersion urwid}|' setup.py + sed -i -e "s|future==0.14.3|future==${getVersion future}|" setup.py + sed -i -e "s|tweepy==3.3.0|tweepy==${getVersion tweepy}|" setup.py + sed -i -e "s|config.generate_config_file.assert_called_once()|assert config.generate_config_file.call_count == 1|" tests/test_config.py + sed -i -e "s|self.observer.update.assert_called_once()|assert self.observer.update.call_count == 1|" tests/test_meta.py + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/louipc/turses; + description = "A Twitter client for the console"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix new file mode 100644 index 000000000000..0378f50a9c00 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix @@ -0,0 +1,78 @@ +{ stdenv +, fetchFromGitHub +, cmake +, libxml2 +, libsndfile +, file +, readline +, bison +, flex +, ucommon +, ccrtp +, qtbase +, qttools +, qtquickcontrols2 +, alsaLib +, speex +, ilbc +, fetchurl +, mkDerivation +, bcg729 +}: + +mkDerivation rec { + pname = "twinkle"; + version = "1.10.2"; + + src = fetchFromGitHub { + repo = pname; + owner = "LubosD"; + rev = "v${version}"; + sha256 = "0s0gi03xwvzp02ah4q6j33r9jx9nbayr6dxlg2ck9pwbay1nq1hx"; + }; + + buildInputs = [ + libxml2 + file # libmagic + libsndfile + readline + ucommon + ccrtp + qtbase + qttools + qtquickcontrols2 + alsaLib + speex + ilbc + ]; + + patches = [ + (fetchurl { # https://github.com/LubosD/twinkle/pull/152 patch for bcg729 1.0.2+ + url = "https://github.com/LubosD/twinkle/compare/05082ae12051821b1d969e6672d9e4e5afe1bc07...7a6c533cda387652b5b4cb2a867be1a18585890c.patch"; + sha256 = "39fc6cef3e88cfca8db44612b2d082fb618027b0f99509138d3c0d2777a494c2"; + }) + ]; + + nativeBuildInputs = [ + cmake + bison + flex + bcg729 + ]; + + cmakeFlags = [ + "-DWITH_G729=On" + "-DWITH_SPEEX=On" + "-DWITH_ILBC=On" + /* "-DWITH_DIAMONDCARD=On" seems ancient and broken */ + ]; + + meta = with stdenv.lib; { + changelog = "https://github.com/LubosD/twinkle/blob/${version}/NEWS"; + description = "A SIP-based VoIP client"; + homepage = "http://twinkle.dolezel.info/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.mkg20001 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix new file mode 100644 index 000000000000..5ef0d9162429 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, check, cmake, pkgconfig +, libtoxcore, filter-audio, dbus, libvpx, libX11, openal, freetype, libv4l +, libXrender, fontconfig, libXext, libXft, libsodium, libopus }: + +stdenv.mkDerivation rec { + pname = "utox"; + + version = "0.17.0"; + + src = fetchFromGitHub { + owner = "uTox"; + repo = "uTox"; + rev = "v${version}"; + sha256 = "12wbq883il7ikldayh8hm0cjfrkp45vn05xx9s1jbfz6gmkidyar"; + fetchSubmodules = true; + }; + + buildInputs = [ + libtoxcore dbus libvpx libX11 openal freetype + libv4l libXrender fontconfig libXext libXft filter-audio + libsodium libopus + ]; + + nativeBuildInputs = [ + cmake pkgconfig + ]; + + cmakeFlags = [ + "-DENABLE_AUTOUPDATE=OFF" + "-DENABLE_TESTS=${if doCheck then "ON" else "OFF"}" + ]; + + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + checkInputs = [ check ]; + + meta = with stdenv.lib; { + description = "Lightweight Tox client"; + homepage = https://github.com/uTox/uTox; + license = licenses.gpl3; + maintainers = with maintainers; [ domenkozar ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix new file mode 100644 index 000000000000..923ce3737532 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub + , qt4, qmake4Hook, openssl + , xorgproto, libX11, libXScrnSaver + , xz, zlib +}: +stdenv.mkDerivation { + pname = "vacuum-im"; + version = "1.3.0.20160104"; + + src = fetchFromGitHub { + owner = "Vacuum-IM"; + repo = "vacuum-im"; + rev = "1.3.0.20160104-Alpha"; + sha256 = "1jcw9c7s75y4c3m4skfc3cc0i519z39b23n997vj5mwcjplxyc76"; + }; + + buildInputs = [ + qt4 openssl xorgproto libX11 libXScrnSaver xz zlib + ]; + + # hack: needed to fix build issues in + # http://hydra.nixos.org/build/38322959/nixlog/1 + # should be an upstream issue but it's easy to fix + NIX_LDFLAGS = "-lz"; + + nativeBuildInputs = [ qmake4Hook ]; + + preConfigure = '' + qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out" + ''; + + hardeningDisable = [ "format" ]; + + meta = with stdenv.lib; { + description = "An XMPP client fully composed of plugins"; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; + license = licenses.gpl3; + homepage = http://www.vacuum-im.org; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix new file mode 100644 index 000000000000..acdec1dc99c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix @@ -0,0 +1,104 @@ +{fetchurl, stdenv, dpkg, makeWrapper, + alsaLib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1, harfbuzz, libcap, + libpulseaudio, libxml2, libxslt, libGLU, libGL, nspr, nss, openssl, systemd, wayland, xorg, zlib, ... +}: + +stdenv.mkDerivation { + pname = "viber"; + version = "7.0.0.1035"; + + src = fetchurl { + url = "https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb"; + sha256 = "06mp2wvqx4y6rd5gs2mh442qcykjrrvwnkhlpx0lara331i2p0lj"; + }; + + buildInputs = [ dpkg makeWrapper ]; + + dontUnpack = true; + + libPath = stdenv.lib.makeLibraryPath [ + alsaLib + cups + curl + dbus + expat + fontconfig + freetype + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + harfbuzz + libcap + libpulseaudio + libxml2 + libxslt + libGLU libGL + nspr + nss + openssl + stdenv.cc.cc + systemd + wayland + zlib + + xorg.libICE + xorg.libSM + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXScrnSaver + xorg.libXtst + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + xorg.xcbutilwm + ] + ; + + installPhase = '' + dpkg-deb -x $src $out + mkdir -p $out/bin + + # Soothe nix-build "suspicions" + chmod -R g-w $out + + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath $libPath:$out/opt/viber/lib $file || true + done + + # qt.conf is not working, so override everything using environment variables + wrapProgram $out/opt/viber/Viber \ + --set QT_PLUGIN_PATH "$out/opt/viber/plugins" \ + --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \ + --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" + ln -s $out/opt/viber/Viber $out/bin/viber + + mv $out/usr/share $out/share + rm -rf $out/usr + + # Fix the desktop link + substituteInPlace $out/share/applications/viber.desktop \ + --replace /opt/viber/Viber $out/opt/viber/Viber \ + --replace /usr/share/ $out/share/ + ''; + + dontStrip = true; + dontPatchELF = true; + + meta = { + homepage = http://www.viber.com; + description = "An instant messaging and Voice over IP (VoIP) app"; + license = stdenv.lib.licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with stdenv.lib.maintainers; [ jagajaga ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix new file mode 100644 index 000000000000..165e3e959e0c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchurl, rpmextract, autoPatchelfHook +, xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify +, wrapGAppsHook }: + +let + version = "4.5.2"; +in stdenv.mkDerivation { + pname = "vk-messenger"; + inherit version; + src = { + i686-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm"; + sha256 = "11xsdmvd2diq3m61si87x2c08nap0vakcypm90wjmdjwayg3fdlw"; + }; + x86_64-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm"; + sha256 = "0j65d6mwj6rxczi0p9fsr6jh37jxw3a3h6w67xwgdvibb7lf3gbb"; + }; + }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); + + nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ]; + buildInputs = (with xorg; [ + libXdamage libXtst libXScrnSaver libxkbfile + ]) ++ [ + gtk3 nss alsaLib + ]; + runtimeDependencies = [ udev.lib libnotify ]; + + unpackPhase = '' + rpmextract $src + ''; + + buildPhase = '' + substituteInPlace usr/share/applications/vk.desktop \ + --replace /usr/share/pixmaps/vk.png vk + ''; + + installPhase = '' + mkdir $out + cd usr + cp -r --parents bin $out + cp -r --parents share/vk $out + cp -r --parents share/applications $out + cp -r --parents share/pixmaps $out + ''; + + meta = with stdenv.lib; { + description = "Simple and Convenient Messaging App for VK"; + homepage = https://vk.com/messenger; + license = licenses.unfree; + maintainers = [ maintainers.gnidorah ]; + platforms = ["i686-linux" "x86_64-linux"]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix new file mode 100644 index 000000000000..ceb9b4a11403 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix @@ -0,0 +1,68 @@ +{ alsaLib, autoPatchelfHook, fetchurl, gtk3, libnotify +, makeDesktopItem, makeWrapper, nss, stdenv, udev, xdg_utils +, xorg +}: + +with stdenv.lib; + +let + bits = "x86_64"; + + version = "4.11.3"; + + desktopItem = makeDesktopItem rec { + name = "Wavebox"; + exec = "wavebox"; + icon = "wavebox"; + desktopName = name; + genericName = name; + categories = "Network;"; + }; + + tarball = "Wavebox_${replaceStrings ["."] ["_"] (toString version)}_linux_${bits}.tar.gz"; + +in stdenv.mkDerivation { + pname = "wavebox"; + inherit version; + src = fetchurl { + url = "https://github.com/wavebox/waveboxapp/releases/download/v${version}/${tarball}"; + sha256 = "0z04071lq9bfyrlg034fmvd4346swgfhxbmsnl12m7c2m2b9z784"; + }; + + # don't remove runtime deps + dontPatchELF = true; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; + + buildInputs = with xorg; [ + libXdmcp libXScrnSaver libXtst + ] ++ [ + alsaLib gtk3 nss + ]; + + runtimeDependencies = [ udev.lib libnotify ]; + + installPhase = '' + mkdir -p $out/bin $out/opt/wavebox + cp -r * $out/opt/wavebox + + # provide desktop item and icon + mkdir -p $out/share/applications $out/share/pixmaps + ln -s ${desktopItem}/share/applications/* $out/share/applications + ln -s $out/opt/wavebox/Wavebox-linux-x64/wavebox_icon.png $out/share/pixmaps/wavebox.png + ''; + + postFixup = '' + makeWrapper $out/opt/wavebox/Wavebox $out/bin/wavebox \ + --prefix PATH : ${xdg_utils}/bin + ''; + + meta = with stdenv.lib; { + description = "Wavebox messaging application"; + homepage = https://wavebox.io; + license = licenses.mpl20; + maintainers = with maintainers; [ rawkode ]; + platforms = ["x86_64-linux"]; + hydraPlatforms = []; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix new file mode 100644 index 000000000000..c04851d586b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix @@ -0,0 +1,151 @@ +{ atomEnv +, autoPatchelfHook +, dpkg +, fetchurl +, makeDesktopItem +, makeWrapper +, stdenv +, udev +, wrapGAppsHook +, cpio +, xar +}: + +let + + inherit (stdenv.hostPlatform) system; + + throwSystem = throw "Unsupported system: ${system}"; + + pname = "wire-desktop"; + + version = { + x86_64-darwin = "3.12.3490"; + x86_64-linux = "3.12.2916"; + }.${system} or throwSystem; + + sha256 = { + x86_64-darwin = "0xvhx3r99fl1v1cdqj6sk46kzxv9qi7j754amkhv7knrpmgyp55z"; + x86_64-linux = "0xx03cpy6kapbjpygwranxjg1a0p8s1xq3cpapvi55rnkbk0qvjw"; + }.${system} or throwSystem; + + meta = with stdenv.lib; { + description = "A modern, secure messenger for everyone"; + longDescription = '' + Wire Personal is a secure, privacy-friendly messenger. It combines useful + and fun features, audited security, and a beautiful, distinct user + interface. It does not require a phone number to register and chat. + + * End-to-end encrypted chats, calls, and files + * Crystal clear voice and video calling + * File and screen sharing + * Timed messages and chats + * Synced across your phone, desktop and tablet + ''; + homepage = "https://wire.com/"; + downloadPage = "https://wire.com/download/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ + arianvp + kiwi + toonn + worldofpeace + ]; + platforms = [ + "x86_64-darwin" + "x86_64-linux" + ]; + }; + + linux = stdenv.mkDerivation rec { + inherit pname version meta; + + src = fetchurl { + url = "https://wire-app.wire.com/linux/debian/pool/main/" + + "Wire-${version}_amd64.deb"; + inherit sha256; + }; + + desktopItem = makeDesktopItem { + categories = "Network;InstantMessaging;Chat;VideoConference"; + comment = "Secure messenger for everyone"; + desktopName = "Wire"; + exec = "wire-desktop %U"; + genericName = "Secure messenger"; + icon = "wire-desktop"; + name = "wire-desktop"; + extraEntries = '' + StartupWMClass="Wire" + ''; + }; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + dontWrapGApps = true; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + wrapGAppsHook + ]; + + buildInputs = atomEnv.packages; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p "$out/bin" + cp -R "opt" "$out" + cp -R "usr/share" "$out/share" + chmod -R g-w "$out" + + # Desktop file + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* "$out/share/applications" + ''; + + runtimeDependencies = [ + udev.lib + ]; + + postFixup = '' + makeWrapper $out/opt/Wire/wire-desktop $out/bin/wire-desktop \ + "''${gappsWrapperArgs[@]}" + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version meta; + + src = fetchurl { + url = "https://github.com/wireapp/wire-desktop/releases/download/" + + "macos%2F${version}/Wire.pkg"; + inherit sha256; + }; + + buildInputs = [ + cpio + xar + ]; + + unpackPhase = '' + xar -xf $src + cd com.wearezeta.zclient.mac.pkg + ''; + + buildPhase = '' + cat Payload | gunzip -dc | cpio -i + ''; + + installPhase = '' + mkdir -p $out/Applications + cp -r Wire.app $out/Applications + ''; + }; + +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix new file mode 100644 index 000000000000..4047eba1fbb5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "xmpp-client"; + version = "20160916-${stdenv.lib.strings.substring 0 7 rev}"; + rev = "abbf9020393e8caae3e8996a16ce48446e31cf0e"; + + goPackagePath = "github.com/agl/xmpp-client"; + + src = fetchFromGitHub { + owner = "agl"; + repo = "xmpp-client"; + inherit rev; + sha256 = "0j9mfr208cachzm39i8b94v5qk9hws278vv2ms9ma4wn16wns81s"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "An XMPP client with OTR support"; + homepage = https://github.com/agl/xmpp-client; + license = licenses.bsd3; + maintainers = with maintainers; [ codsl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix new file mode 100644 index 000000000000..caa41024fc61 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix @@ -0,0 +1,20 @@ +[ + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4"; + sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6"; + sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix new file mode 100644 index 000000000000..972d7c13a283 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -0,0 +1,132 @@ +{ stdenv, fetchurl, mkDerivation, autoPatchelfHook, bash +, fetchFromGitHub +# Dynamic libraries +, dbus, glib, libGL, libX11, libXfixes, libuuid, libxcb, qtbase, qtdeclarative +, qtimageformats, qtlocation, qtquickcontrols, qtquickcontrols2, qtscript, qtsvg +, qttools, qtwayland, qtwebchannel, qtwebengine +# Runtime +, coreutils, libjpeg_turbo, pciutils, procps, utillinux, libv4l +, pulseaudioSupport ? true, libpulseaudio ? null +}: + +assert pulseaudioSupport -> libpulseaudio != null; + +let + inherit (stdenv.lib) concatStringsSep makeBinPath optional; + + version = "3.5.336627.1216"; + srcs = { + x86_64-linux = fetchurl { + url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; + sha256 = "04r45z2rjjn9gr7bxhfwg49xkyhmpcn5y6pdbkdnrfwzaqzisavz"; + }; + }; + + # Used for icons, appdata, and desktop file. + desktopIntegration = fetchFromGitHub { + owner = "flathub"; + repo = "us.zoom.Zoom"; + rev = "0d294e1fdd2a4ef4e05d414bc680511f24d835d7"; + sha256 = "0rm188844a10v8d6zgl2pnwsliwknawj09b02iabrvjw5w1lp6wl"; + }; + +in mkDerivation { + pname = "zoom-us"; + inherit version; + + src = srcs.${stdenv.hostPlatform.system}; + + nativeBuildInputs = [ autoPatchelfHook ]; + + buildInputs = [ + dbus glib libGL libX11 libXfixes libuuid libxcb libjpeg_turbo + qtbase qtdeclarative qtlocation qtquickcontrols qtquickcontrols2 qtscript + qtwebchannel qtwebengine qtimageformats qtsvg qttools qtwayland + ]; + + runtimeDependencies = optional pulseaudioSupport libpulseaudio; + + installPhase = + let + files = concatStringsSep " " [ + "*.pcm" + "*.png" + "ZoomLauncher" + "config-dump.sh" + "timezones" + "translations" + "version.txt" + "zcacert.pem" + "zoom" + "zoom.sh" + "zoomlinux" + "zopen" + ]; + in '' + runHook preInstall + + mkdir -p $out/{bin,share/zoom-us} + + cp -ar ${files} $out/share/zoom-us + + # TODO Patch this somehow; tries to dlopen './libturbojpeg.so' from cwd + ln -s $(readlink -e "${libjpeg_turbo.out}/lib/libturbojpeg.so") $out/share/zoom-us/libturbojpeg.so + + runHook postInstall + ''; + + postInstall = '' + mkdir -p $out/share/{applications,appdata,icons} + + # Desktop File + cp ${desktopIntegration}/us.zoom.Zoom.desktop $out/share/applications + substituteInPlace $out/share/applications/us.zoom.Zoom.desktop \ + --replace "Exec=zoom" "Exec=$out/bin/zoom-us" + + # Appdata + cp ${desktopIntegration}/us.zoom.Zoom.appdata.xml $out/share/appdata + + # Icons + for icon_size in 64 96 128 256; do + path=$icon_size'x'$icon_size + icon=${desktopIntegration}/us.zoom.Zoom.$icon_size.png + + mkdir -p $out/share/icons/hicolor/$path/apps + cp $icon $out/share/icons/hicolor/$path/apps/us.zoom.Zoom.png + done + ''; + + # $out/share/zoom-us isn't in auto-wrap directories list, need manual wrapping + dontWrapQtApps = true; + + qtWrapperArgs = [ + ''--prefix PATH : ${makeBinPath [ coreutils glib.dev pciutils procps qttools.dev utillinux ]}'' + ''--prefix LD_PRELOAD : ${libv4l}/lib/libv4l/v4l2convert.so'' + # --run "cd ${placeholder "out"}/share/zoom-us" + # ^^ unfortunately, breaks run arg into multiple array elements, due to + # some bad array propagation. We'll do that in bash below + ]; + + postFixup = '' + # Zoom expects "zopen" executable (needed for web login) to be present in CWD. Or does it expect + # everybody runs Zoom only after cd to Zoom package directory? Anyway, :facepalm: + qtWrapperArgs+=( --run "cd ${placeholder "out"}/share/zoom-us" ) + + for app in ZoomLauncher zopen zoom; do + wrapQtApp $out/share/zoom-us/$app + done + + ln -s $out/share/zoom-us/ZoomLauncher $out/bin/zoom-us + ''; + + passthru.updateScript = ./update.sh; + + meta = { + homepage = "https://zoom.us/"; + description = "zoom.us video conferencing application"; + license = stdenv.lib.licenses.unfree; + platforms = builtins.attrNames srcs; + maintainers = with stdenv.lib.maintainers; [ danbst tadfisher ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh new file mode 100755 index 000000000000..6214d4e26255 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl pcre common-updater-scripts + +set -eu -o pipefail + +oldVersion=$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion zoom-us" | tr -d '"') +version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')" + +if [ ! "${oldVersion}" = "${version}" ]; then + update-source-version zoom-us "$version" + nixpkgs="$(git rev-parse --show-toplevel)" + default_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix" + git add "${default_nix}" + git commit -m "zoom-us: ${oldVersion} -> ${version}" +else + echo "zoom-us is already up-to-date" +fi diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix new file mode 100644 index 000000000000..33392af766c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -0,0 +1,40 @@ +{ lib +, fetchurl +, appimageTools +}: + +let + pname = "zulip"; + version = "4.0.0"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; + sha256 = "1pni02mb5bvwx3k45vd6ga269ghdl633gjklyslai24rrhp16h9z"; + name="${pname}-${version}.AppImage"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + +in appimageTools.wrapType2 { + inherit name src; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/zulip.desktop $out/share/applications/zulip.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/zulip.png \ + $out/share/icons/hicolor/512x512/apps/zulip.png + substituteInPlace $out/share/applications/zulip.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "Desktop client for Zulip Chat"; + homepage = https://zulipchat.com; + license = licenses.asl20; + maintainers = with maintainers; [ jonafato ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/insync/default.nix b/nixpkgs/pkgs/applications/networking/insync/default.nix new file mode 100644 index 000000000000..3a2b32f01175 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/insync/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "insync"; + version = "1.5.7.37371"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "http://s.insynchq.com/builds/insync-portable_${version}_amd64.tar.bz2"; + sha256 = "1cm3q6y2crw6pcsvh21sbkmh1hin7xl4fyslc96nbyql8rxsky5n"; + } + else + throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}"; + + buildInputs = [ makeWrapper ]; + + postPatch = '' + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable + ''; + + installPhase = '' + mkdir -p $out/bin + cp -a client $out/client + makeWrapper $out/client/insync-portable $out/bin/insync --set LC_TIME C + ''; + + meta = { + platforms = ["x86_64-linux"]; + license = stdenv.lib.licenses.unfree; + maintainers = [ stdenv.lib.maintainers.benley ]; + homepage = https://www.insynchq.com; + description = "Google Drive sync and backup with multiple account support"; + longDescription = '' + Insync is a commercial application that syncs your Drive files to your + computer. It has more advanced features than Google's official client + such as multiple account support, Google Doc conversion, symlink support, + and built in sharing. + + There is a 15-day free trial, and it is a paid application after that. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix new file mode 100644 index 000000000000..76cc393f26a3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoModule, fetchFromGitHub, fetchgx, gx-go }: + +buildGoModule rec { + pname = "ipfs-cluster"; + version = "0.11.0"; + rev = "v${version}"; + + modSha256 = "03bqwg9nqh7w6j887gzxr2mcn14jc8f07z896b3swg5wzaz1i6hs"; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "ipfs-cluster"; + inherit rev; + sha256 = "0q5lanm2zdwwhdwv05fssb34y4y4dha3dq7x1iaabbf70lpqv6yx"; + }; + + meta = with stdenv.lib; { + description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons"; + homepage = https://cluster.ipfs.io/; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ jglukasik ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix new file mode 100644 index 000000000000..dc646f9471e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix @@ -0,0 +1,27 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage { + pname = "ipfs-migrator"; + version = "7"; + + goPackagePath = "github.com/ipfs/fs-repo-migrations"; + + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "fs-repo-migrations"; + rev = "4e8e0b41d7348646c719d572c678c3d0677e541a"; + sha256 = "1i6izncgc3wgabppglnnrslffvwrv3cazbdhsk4vjfsd66hb4d37"; + }; + + patches = [ ./lru-repo-path-fix.patch ]; + + meta = with stdenv.lib; { + description = "Migration tool for ipfs repositories"; + homepage = https://ipfs.io/; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ elitak ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ipfs-migrator/deps.nix b/nixpkgs/pkgs/applications/networking/ipfs-migrator/deps.nix new file mode 100644 index 000000000000..1ad1c383c8c6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/deps.nix @@ -0,0 +1,47 @@ +[ + { + goPackagePath = "github.com/jbenet/goprocess"; + fetch = { + type = "git"; + url = https://github.com/jbenet/goprocess; + rev = "b497e2f366b8624394fb2e89c10ab607bebdde0b"; + sha256 = "1lnvkzki7vnqn5c4m6bigk0k85haicmg27w903kwg30rdvblm82s"; + }; + } + { + goPackagePath = "github.com/jbenet/go-random"; + fetch = { + type = "git"; + url = https://github.com/jbenet/go-random; + rev = "384f606e91f542a98e779e652eed88051618f0f7"; + sha256 = "0gcshzl9n3apzc0jaxqrjsc038yfrzfyhpdqgbpcnajin83l2msa"; + }; + } + { + goPackagePath = "github.com/jbenet/go-random-files"; + fetch = { + type = "git"; + url = https://github.com/jbenet/go-random-files; + rev = "737479700b40b4b50e914e963ce8d9d44603e3c8"; + sha256 = "1klpdc4qkrfy31r7qh00fcz42blswzabmcnry9byd5adhszxj9bw"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = https://github.com/hashicorp/golang-lru; + rev = "20f1fb78b0740ba8c3cb143a61e86ba5c8669768"; + sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "26e67e76b6c3f6ce91f7c52def5af501b4e0f3a2"; + sha256 = "17bqkd64zksi1578lb10ls4qf5lbqs7shfjcc6bi97y1qz5k31c4"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/ipfs-migrator/lru-repo-path-fix.patch b/nixpkgs/pkgs/applications/networking/ipfs-migrator/lru-repo-path-fix.patch new file mode 100644 index 000000000000..a933a7b5358b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/lru-repo-path-fix.patch @@ -0,0 +1,13 @@ +diff --git a/ipfs-1-to-2/go-datastore/lru/datastore.go b/ipfs-1-to-2/go-datastore/lru/datastore.go +index 7eb18eb..cd8dcb7 100644 +--- a/ipfs-1-to-2/go-datastore/lru/datastore.go ++++ b/ipfs-1-to-2/go-datastore/lru/datastore.go +@@ -3,7 +3,7 @@ package lru + import ( + "errors" + +- lru "github.com/ipfs/fs-repo-migrations/ipfs-1-to-2/golang-lru" ++ lru "github.com/hashicorp/golang-lru" + + ds "github.com/ipfs/fs-repo-migrations/ipfs-1-to-2/go-datastore" + dsq "github.com/ipfs/fs-repo-migrations/ipfs-1-to-2/go-datastore/query" diff --git a/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/nixpkgs/pkgs/applications/networking/ipfs/default.nix new file mode 100644 index 000000000000..db325cf13877 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ipfs"; + version = "0.4.22"; + rev = "v${version}"; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "go-ipfs"; + inherit rev; + sha256 = "1drwkam2m1qdny51l7ja9vd33jffy8w0z0wbp28ajx4glp0kyra2"; + }; + + modSha256 = "0jbzkifn88myk2vpd390clyl835978vpcfz912y8cnl26s6q677n"; + + meta = with stdenv.lib; { + description = "A global, versioned, peer-to-peer filesystem"; + homepage = https://ipfs.io/; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ fpletz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ipget/default.nix b/nixpkgs/pkgs/applications/networking/ipget/default.nix new file mode 100644 index 000000000000..9f206a8f48f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipget/default.nix @@ -0,0 +1,32 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, fetchgx }: + +buildGoPackage rec { + pname = "ipget"; + version = "0.3.2"; + rev = "v${version}"; + + goPackagePath = "github.com/ipfs/ipget"; + + extraSrcPaths = [ + (fetchgx { + inherit src;name = "${pname}-${version}"; + sha256 = "07l9hpkhk5phr95zp1l5wd3ii38bw91hy4dlw2rsfbzcsc8bq4s8"; + }) + ]; + + goDeps = ../../../tools/package-management/gx/deps.nix; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "ipget"; + inherit rev; + sha256 = "1ljf5ddvc1p5swmgn4m1ivfj74fykk56myk2r9c4grdjzksf4a15"; + }; + + meta = with stdenv.lib; { + description = "Retrieve files over IPFS and save them locally"; + homepage = https://ipfs.io/; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix b/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix new file mode 100644 index 000000000000..cdece4eb644f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchurl, ncurses }: + +stdenv.mkDerivation rec { + version = "1.1.4"; + pname = "iptraf-ng"; + + src = fetchurl { + url = "https://fedorahosted.org/releases/i/p/iptraf-ng/${pname}-${version}.tar.gz"; + sha256 = "02gb8z9h2s6s1ybyikywz7jgb1mafdx88hijfasv3khcgkq0q53r"; + }; + + buildInputs = [ ncurses ]; + + configurePhase = '' + ./configure --prefix=$out/usr --sysconfdir=$out/etc \ + --localstatedir=$out/var --sbindir=$out/bin + ''; + + hardeningDisable = [ "format" ]; + + meta = { + description = "A console-based network monitoring utility (fork of iptraf)"; + longDescription = '' + IPTraf-ng is a console-based network monitoring utility. IPTraf-ng + gathers data like TCP connection packet and byte counts, interface + statistics and activity indicators, TCP/UDP traffic breakdowns, and LAN + station packet and byte counts. IPTraf-ng features include an IP traffic + monitor which shows TCP flag information, packet and byte counts, ICMP + details, OSPF packet types, and oversized IP packet warnings; interface + statistics showing IP, TCP, UDP, ICMP, non-IP and other IP packet counts, + IP checksum errors, interface activity and packet size counts; a TCP and + UDP service monitor showing counts of incoming and outgoing packets for + common TCP and UDP application ports, a LAN statistics module that + discovers active hosts and displays statistics about their activity; TCP, + UDP and other protocol display filters so you can view just the traffic + you want; logging; support for Ethernet, FDDI, ISDN, SLIP, PPP, and + loopback interfaces; and utilization of the built-in raw socket interface + of the Linux kernel, so it can be used on a wide variety of supported + network cards. + ''; + homepage = https://fedorahosted.org/iptraf-ng/; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/iptraf/default.nix b/nixpkgs/pkgs/applications/networking/iptraf/default.nix new file mode 100644 index 000000000000..d2d9a67fb4d9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/iptraf/default.nix @@ -0,0 +1,32 @@ +{stdenv, fetchurl, ncurses}: + +stdenv.mkDerivation { + name = "iptraf-3.0.1"; + + src = fetchurl { + url = ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.1.tar.gz; + sha256 = "12n059j9iihhpf6spmlaspqzxz3wqan6kkpnhmlj08jdijpnk84m"; + }; + + hardeningDisable = [ "format" ]; + + patchPhase = '' + sed -i -e 's,#include <linux/if_tr.h>,#include <netinet/if_tr.h>,' src/* + ''; + + preConfigure = "cd src"; + + installPhase = '' + mkdir -p $out/bin + cp iptraf $out/bin + ''; + + buildInputs = [ncurses]; + + meta = { + homepage = http://iptraf.seul.org/; + license = stdenv.lib.licenses.gpl2Plus; + description = "Console-based network statistics utility for Linux"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/bip/default.nix b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix new file mode 100644 index 000000000000..43ec0910cc2b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, fetchpatch, bison, flex, autoconf, automake, openssl }: + +stdenv.mkDerivation rec { + pname = "bip"; + version = "0.8.9"; + + # fetch sources from debian, because the creator's website provides + # the files only via https but with an untrusted certificate. + src = fetchurl { + url = "mirror://debian/pool/main/b/bip/bip_${version}.orig.tar.gz"; + sha256 = "0q942g9lyd8pjvqimv547n6vik5759r9npw3ws3bdj4ixxqhz59w"; + }; + + buildInputs = [ bison flex autoconf automake openssl ]; + + # includes an important security patch + patches = [ + (fetchpatch { + url = "mirror://gentoo/../gentoo-portage/net-irc/bip/files/bip-freenode.patch"; + sha256 = "05qy7a62p16f5knrsdv2lkhc07al18qq32ciq3k4r0lq1wbahj2y"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/revisions/39414f8ff9df63c8bc2e4eee34f09f829a5bf8f5/diff/src/connection.c?format=diff"; + sha256 = "1hvg58vci6invh0z19wf04jjvnm8w6f6v4c4nk1j5hc3ymxdp1rb"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/87192685f55856d2c28021963ab2c308e21faddc/diff?format=diff"; + sha256 = "0rspzp7q1lq8v0cl0c35xxpgisfk264i648vslgsjax2s0g9svx0"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/814d54c676d5827f6ea37c1cd2d6e846d080c13c/diff?format=diff"; + sha256 = "137l77kmm6p9p4c4kvw2zc4xkr10ayyc9z5rlpwn67574h47v55i"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/d2dcb0adb1aa8c2c4526aa6ad650483b0e02ab7d/diff?format=diff"; + sha256 = "1pvywaljdkmy4870xs6gvsk4qwg69h47qr0yjywbcdsfycrgp8aq"; + }) + ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=unused-result -Wno-error=duplicate-decl-specifier"; + + meta = { + description = "An IRC proxy (bouncer)"; + homepage = http://bip.milkypond.org/; + license = stdenv.lib.licenses.gpl2; + downloadPage = "https://projects.duckcorp.org/projects/bip/files"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix new file mode 100644 index 000000000000..8278f90d321c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix @@ -0,0 +1,48 @@ +{ fetchgit, libcommuni, qtbase, qmake, stdenv }: + +stdenv.mkDerivation rec { + pname = "communi"; + version = "3.5.0"; + + src = fetchgit { + url = "https://github.com/communi/communi-desktop.git"; + rev = "v${version}"; + sha256 = "10grskhczh8601s90ikdsbjabgr9ypcp2j7vivjkl456rmg6xbji"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ qmake ]; + + buildInputs = [ libcommuni qtbase ]; + + enableParallelBuilding = true; + + preConfigure = '' + export QMAKEFEATURES=${libcommuni}/features + qmakeFlags="$qmakeFlags \ + COMMUNI_INSTALL_PREFIX=$out \ + COMMUNI_INSTALL_BINS=$out/bin \ + COMMUNI_INSTALL_PLUGINS=$out/lib/communi/plugins \ + COMMUNI_INSTALL_ICONS=$out/share/icons/hicolor \ + COMMUNI_INSTALL_DESKTOP=$out/share/applications \ + COMMUNI_INSTALL_THEMES=$out/share/communi/themes + " + ''; + + postInstall = stdenv.lib.optionalString stdenv.isLinux '' + substituteInPlace "$out/share/applications/communi.desktop" \ + --replace "/usr/bin" "$out/bin" + ''; + + preFixup = '' + rm -rf lib + ''; + + meta = with stdenv.lib; { + description = "A simple and elegant cross-platform IRC client"; + homepage = https://github.com/communi/communi-desktop; + license = licenses.bsd3; + maintainers = with maintainers; [ hrdinka ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix b/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix new file mode 100644 index 000000000000..0cf06a1f4522 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, openssl, ncurses, libiconv, tcl, coreutils, fetchpatch }: + +stdenv.mkDerivation rec { + pname = "epic5"; + version = "2.0.1"; + + src = fetchurl { + url = "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/${pname}-${version}.tar.xz"; + sha256 = "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"; + }; + + # Darwin needs libiconv, tcl; while Linux build don't + buildInputs = [ openssl ncurses ] + ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv tcl ]; + + patches = [ + (fetchpatch { + url = "https://sources.debian.net/data/main/e/epic5/2.0.1-1/debian/patches/openssl-1.1.patch"; + sha256 = "03bpsyv1sr5icajs2qkdvv8nnn6rz6yvvj7pgiq8gz9sbp6siyfv"; + }) + ]; + + configureFlags = [ "--disable-debug" "--with-ipv6" ]; + + postConfigure = '' + substituteInPlace bsdinstall \ + --replace /bin/cp ${coreutils}/bin/cp \ + --replace /bin/rm ${coreutils}/bin/rm \ + --replace /bin/chmod ${coreutils}/bin/chmod \ + ''; + + meta = with stdenv.lib; { + homepage = http://epicsol.org; + description = "A IRC client that offers a great ircII interface"; + license = licenses.bsd3; + maintainers = []; + }; +} + + + diff --git a/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix b/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix new file mode 100644 index 000000000000..2d12386bafac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix @@ -0,0 +1,27 @@ +{ fetchFromGitHub, stdenv }: + +stdenv.mkDerivation rec { + pname = "glowing-bear"; + version = "0.7.2"; + + src = fetchFromGitHub { + rev = version; + owner = "glowing-bear"; + repo = "glowing-bear"; + sha256 = "14a3fqsmi28g7j3lzk4l4m47p2iml1aaf3514wazn2clw48lnqhw"; + }; + + installPhase = '' + mkdir $out + cp index.html min.js serviceworker.js webapp.manifest.json $out + cp -R 3rdparty assets css directives js $out + ''; + + meta = with stdenv.lib; { + description = "A web client for Weechat"; + homepage = https://github.com/glowing-bear/glowing-bear; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ delroth ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix b/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix new file mode 100644 index 000000000000..7dd3792a3cb3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, gtk2, lua, perl, python3 +, pciutils, dbus-glib, libcanberra-gtk2, libproxy +, enchant2, libnotify, openssl, isocodes +, desktop-file-utils +, meson, ninja +}: + +stdenv.mkDerivation rec { + pname = "hexchat"; + version = "2.14.2"; + + src = fetchFromGitHub { + owner = "hexchat"; + repo = "hexchat"; + rev = "v${version}"; + sha256 = "1kz81xfis0bw2cfd6ndw32jdzdl5azk9ixqj4a3lginmlj6fs45a"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig ]; + + buildInputs = [ + gtk2 lua perl python3 pciutils dbus-glib libcanberra-gtk2 libproxy + libnotify openssl desktop-file-utils + isocodes + ]; + + patches = [ + #https://github.com/hexchat/hexchat/issues/2237 + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/hexchat/raw/8a08a0c8a8da503b18f2fbb15194c5f3728a689a/f/0001-Python-plugin-Call-EndInterpreter-when-deinit-ing-th.patch"; + sha256 = "1199dj3wvjqj6h5vlm7lzhaax84j9ki6an8y8fs4rww27iq0lk8g"; + }) + ]; + + #hexchat and hexchat-text loads enchant spell checking library at run time and so it needs to have route to the path + postPatch = '' + sed -i "s,libenchant-2.so.2,${enchant2}/lib/libenchant-2.so.2,g" src/fe-gtk/sexy-spell-entry.c + sed -i "/flag.startswith('-I')/i if flag.contains('no-such-path')\ncontinue\nendif" plugins/perl/meson.build + chmod +x meson_post_install.py + for f in meson_post_install.py \ + src/common/make-te.py \ + plugins/perl/generate_header.py \ + po/validate-textevent-translations + do + patchShebangs $f + done + ''; + + mesonFlags = [ "-Dwith-lua=lua" "-Dwith-text=true" ]; + + meta = with stdenv.lib; { + description = "A popular and easy to use graphical IRC (chat) client"; + homepage = https://hexchat.github.io/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/ii/default.nix b/nixpkgs/pkgs/applications/networking/irc/ii/default.nix new file mode 100644 index 000000000000..4807f3419d15 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/ii/default.nix @@ -0,0 +1,21 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation rec { + name = "ii-1.8"; + + src = fetchurl { + url = "https://dl.suckless.org/tools/${name}.tar.gz"; + sha256 = "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr"; + }; + + installPhase = '' + make install PREFIX=$out + ''; + + meta = { + homepage = https://tools.suckless.org/ii/; + license = stdenv.lib.licenses.mit; + description = "Irc it, simple FIFO based irc client"; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix b/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix new file mode 100644 index 000000000000..93ab9f828f64 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix @@ -0,0 +1,38 @@ +{ appimageTools, fetchurl, lib }: + +let + pname = "irccloud"; + version = "0.13.0"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage"; + sha256 = "0ff69m5jav2c90918avsr5wvik2gds3klij3dzhkb352fgrd1s0l"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + +in appimageTools.wrapType2 { + inherit name src; + + extraPkgs = pkgs: with pkgs; [ at-spi2-core ]; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/irccloud.desktop $out/share/applications/irccloud.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/irccloud.png \ + $out/share/icons/hicolor/512x512/apps/irccloud.png + substituteInPlace $out/share/applications/irccloud.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "A desktop client for IRCCloud"; + homepage = "https://www.irccloud.com"; + license = licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ lightbulbjim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix new file mode 100644 index 000000000000..1751812d67e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr }: + +stdenv.mkDerivation rec { + pname = "irssi"; + version = "1.2.2"; + + src = fetchurl { + url = "https://github.com/irssi/irssi/releases/download/${version}/${pname}-${version}.tar.gz"; + sha256 = "0g2nxazn4lszmd6mf1s36x5ablk4999g1qx7byrnvgnjsihjh62k"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ncurses glib openssl perl libintl libgcrypt libotr ]; + + configureFlags = [ + "--with-proxy" + "--with-bot" + "--with-perl=yes" + "--with-otr=yes" + "--enable-true-color" + ]; + + meta = { + homepage = https://irssi.org; + description = "A terminal based IRC client"; + platforms = stdenv.lib.platforms.unix; + maintainers = with stdenv.lib.maintainers; [ lovek323 ]; + license = stdenv.lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix new file mode 100644 index 000000000000..aefc48d4a3ee --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, irssi, gmp, automake, autoconf, libtool, openssl, glib, pkgconfig }: + +stdenv.mkDerivation rec { + name = "fish-irssi-20130413-e98156bebd"; + + src = fetchurl { + url = https://github.com/falsovsky/FiSH-irssi/tarball/e98156bebd; + name = "${name}.tar.gz"; + sha256 = "1ndr51qrg66h1mfzacwzl1vd6lj39pdc4p4z5iihrj4r2f6gk11a"; + }; + + preConfigure = '' + tar xf ${irssi.src} + configureFlags="$configureFlags --with-irssi-source=`pwd`/${irssi.name}" + + ./regen.sh + ''; + + installPhase = '' + mkdir -p $out/lib/irssi/modules + cp src/.libs/libfish.so $out/lib/irssi/modules + ''; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gmp automake autoconf libtool openssl glib ]; + + meta = { + homepage = https://github.com/falsovsky/FiSH-irssi; + license = stdenv.lib.licenses.unfree; # I can't find any mention of license + maintainers = with stdenv.lib.maintainers; [viric]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix b/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix new file mode 100644 index 000000000000..6a58241b89aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix @@ -0,0 +1,87 @@ +{ mkDerivation +, lib +, fetchurl +, fetchpatch +, extra-cmake-modules +, kdoctools +, kbookmarks +, karchive +, kconfig +, kconfigwidgets +, kcoreaddons +, kcrash +, kdbusaddons +, kemoticons +, kglobalaccel +, ki18n +, kiconthemes +, kidletime +, kitemviews +, knotifications +, knotifyconfig +, kwindowsystem +, kio +, kparts +, kwallet +, solid +, sonnet +, phonon +}: + +let + pname = "konversation"; + version = "1.7.5"; +in mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz"; + sha256 = "0h098yhlp36ls6pdvs2r93ig8dv4fys62m0h6wxccprb0qrpbgv0"; + }; + + patches = [ + # Delete this patch for konversation > 1.7.5 + (fetchpatch { + url = "https://cgit.kde.org/konversation.git/patch/?id=4d0036617becc26a76fd021138c98aceec4c7b53"; + sha256 = "17hdj6zyln3n93b71by26mrwbgyh4k052ck5iw1drysx5dyd5l6y"; + }) + ]; + + buildInputs = [ + kbookmarks + karchive + kconfig + kconfigwidgets + kcoreaddons + kcrash + kdbusaddons + kdoctools + kemoticons + kglobalaccel + ki18n + kiconthemes + kidletime + kitemviews + knotifications + knotifyconfig + kwindowsystem + kio + kparts + kwallet + solid + sonnet + phonon + ]; + + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + + meta = { + description = "Integrated IRC client for KDE"; + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ fridh ]; + homepage = https://konversation.kde.org; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix b/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix new file mode 100644 index 000000000000..6fd66096b5b2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix @@ -0,0 +1,32 @@ +{ lib, mkDerivation, fetchFromGitHub +, qtbase, qtmultimedia, qtsvg, qtx11extras +, pkgconfig, cmake, gettext +}: + +mkDerivation rec { + pname = "kvirc"; + version = "5.0.0"; + + src = fetchFromGitHub { + owner = "kvirc"; + repo = "KVIrc"; + rev = version; + sha256 = "1dq7v6djw0gz56rvghs4r5gfhzx4sfg60rnv6b9zprw0vlvcxbn4"; + }; + + buildInputs = [ + qtbase qtmultimedia qtsvg qtx11extras + ]; + + nativeBuildInputs = [ + pkgconfig cmake gettext + ]; + + meta = with lib; { + description = "Advanced IRC Client"; + homepage = "http://www.kvirc.net/"; + license = licenses.gpl2; + maintainers = [ maintainers.suhr ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix new file mode 100644 index 000000000000..f78053bdc37b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix @@ -0,0 +1,97 @@ +{ monolithic ? true # build monolithic Quassel +, enableDaemon ? false # build Quassel daemon +, client ? false # build Quassel client +, tag ? "-kf5" # tag added to the package name +, static ? false # link statically + +, stdenv, fetchFromGitHub, cmake, makeWrapper, dconf +, mkDerivation, qtbase, qtscript +, phonon, libdbusmenu, qca-qt5 + +, withKDE ? true # enable KDE integration +, extra-cmake-modules +, kconfigwidgets +, kcoreaddons +, knotifications +, knotifyconfig +, ktextwidgets +, kwidgetsaddons +, kxmlgui +}: + +let + inherit (stdenv) lib; + buildClient = monolithic || client; + buildCore = monolithic || enableDaemon; +in + +assert monolithic -> !client && !enableDaemon; +assert client || enableDaemon -> !monolithic; +assert !buildClient -> !withKDE; # KDE is used by the client only + +let + edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))]; + +in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec { + name = "quassel${tag}-${version}"; + version = "0.13.1"; + + src = fetchFromGitHub { + owner = "quassel"; + repo = "quassel"; + rev = version; + sha256 = "0z8p7iv90yrrjbh31cyxhpr6hsynfmi23rlayn7p2f6ki5az7yc3"; + }; + + enableParallelBuilding = true; + + # Prevent ``undefined reference to `qt_version_tag''' in SSL check + NIX_CFLAGS_COMPILE = "-DQT_NO_VERSION_TAGGING=1"; + + buildInputs = + [ cmake makeWrapper qtbase ] + ++ lib.optionals buildCore [qtscript qca-qt5] + ++ lib.optionals buildClient [libdbusmenu phonon] + ++ lib.optionals (buildClient && withKDE) [ + extra-cmake-modules kconfigwidgets kcoreaddons + knotifications knotifyconfig ktextwidgets kwidgetsaddons + kxmlgui + ]; + + cmakeFlags = [ + "-DEMBED_DATA=OFF" + "-DUSE_QT5=ON" + ] + ++ edf static "STATIC" + ++ edf monolithic "WANT_MONO" + ++ edf enableDaemon "WANT_CORE" + ++ edf client "WANT_QTCLIENT" + ++ edf withKDE "WITH_KDE"; + + dontWrapQtApps = true; + + postFixup = + lib.optionalString enableDaemon '' + wrapProgram "$out/bin/quasselcore" --suffix PATH : "${qtbase.bin}/bin" + '' + + lib.optionalString buildClient '' + wrapQtApp "$out/bin/quassel${lib.optionalString client "client"}" \ + --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" + ''; + + meta = with stdenv.lib; { + homepage = https://quassel-irc.org/; + description = "Qt/KDE distributed IRC client suppporting a remote daemon"; + longDescription = '' + Quassel IRC is a cross-platform, distributed IRC client, + meaning that one (or multiple) client(s) can attach to + and detach from a central core -- much like the popular + combination of screen and a text-based IRC client such + as WeeChat, but graphical (based on Qt4/KDE4 or Qt5/KF5). + ''; + license = licenses.gpl3; + maintainers = with maintainers; [ phreedom ttuegel ]; + repositories.git = https://github.com/quassel/quassel.git; + inherit (qtbase.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix new file mode 100644 index 000000000000..acf030222a1b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, python27Packages }: + +python27Packages.buildPythonApplication rec { + version = "2016-07-29"; + name = "qweechat-unstable-${version}"; + namePrefix = ""; + + src = fetchFromGitHub { + owner = "weechat"; + repo = "qweechat"; + rev = "f5e54d01691adb3abef47e051a6412186c33313c"; + sha256 = "0dhlriwvkrsn7jj01p2wqhf2p63n9qd173jsgccgxlacm2zzvhaz"; + }; + + prePatch = '' + substituteInPlace setup.py \ + --replace 'qweechat = qweechat.qweechat' 'qweechat = qweechat.qweechat:main' + ''; + + propagatedBuildInputs = with python27Packages; [ + pyside + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/weechat/qweechat; + description = "Qt remote GUI for WeeChat"; + license = licenses.gpl3; + maintainers = with maintainers; [ ramkromberg ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/sic/default.nix b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix new file mode 100644 index 000000000000..409142955970 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "sic"; + version = "1.2"; + + makeFlags = [ "PREFIX=$(out)" ]; + src = fetchurl { + url = "https://dl.suckless.org/tools/sic-${version}.tar.gz"; + sha256 = "ac07f905995e13ba2c43912d7a035fbbe78a628d7ba1c256f4ca1372fb565185"; + }; + + meta = { + description = "Simple IRC client"; + homepage = https://tools.suckless.org/sic/; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix new file mode 100644 index 000000000000..ed58954894f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix @@ -0,0 +1,87 @@ +{ stdenv, fetchurl, lib +, ncurses, openssl, aspell, gnutls, gettext +, zlib, curl, pkgconfig, libgcrypt +, cmake, makeWrapper, libobjc, libresolv, libiconv +, asciidoctor # manpages +, guileSupport ? true, guile +, luaSupport ? true, lua5 +, perlSupport ? true, perl +, pythonSupport ? true, python3Packages +, rubySupport ? true, ruby +, tclSupport ? true, tcl +, extraBuildInputs ? [] +}: + +let + inherit (python3Packages) python; + plugins = [ + { name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; } + { name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; } + { name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; } + { name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; } + { name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; } + { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON3"; buildInputs = [ python ]; } + ]; + enabledPlugins = builtins.filter (p: p.enabled) plugins; + + in + assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins; + stdenv.mkDerivation rec { + version = "2.7"; + pname = "weechat"; + + src = fetchurl { + url = "https://weechat.org/files/src/weechat-${version}.tar.bz2"; + sha256 = "00hzchzw1w2181kczcrrnj8ngml3bwk7qciha3higxq3qynf0h8c"; + }; + + outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins; + + enableParallelBuilding = true; + cmakeFlags = with stdenv.lib; [ + "-DENABLE_MAN=ON" + "-DENABLE_DOC=ON" + "-DENABLE_JAVASCRIPT=OFF" # Requires v8 <= 3.24.3, https://github.com/weechat/weechat/issues/360 + "-DENABLE_PHP=OFF" + + # This just means it's okay to use Python 3 if it's in the environment. + "-DENABLE_PYTHON3=ON" + ] + ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"] + ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins + ; + + buildInputs = with stdenv.lib; [ + ncurses openssl aspell gnutls gettext zlib curl pkgconfig + libgcrypt makeWrapper cmake asciidoctor + ] + ++ optionals stdenv.isDarwin [ libobjc libresolv ] + ++ concatMap (p: p.buildInputs) enabledPlugins + ++ extraBuildInputs; + + NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}" + # Fix '_res_9_init: undefined symbol' error + + (stdenv.lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv"); + + postInstall = with stdenv.lib; '' + for p in ${concatMapStringsSep " " (p: p.name) enabledPlugins}; do + from=$out/lib/weechat/plugins/$p.so + to=''${!p}/lib/weechat/plugins/$p.so + mkdir -p $(dirname $to) + mv $from $to + done + ''; + + meta = { + homepage = http://www.weechat.org/; + description = "A fast, light and extensible chat client"; + longDescription = '' + You can find more documentation as to how to customize this package + (eg. adding python modules for scripts that would require them, etc.) + on https://nixos.org/nixpkgs/manual/#sec-weechat . + ''; + license = stdenv.lib.licenses.gpl3; + maintainers = with stdenv.lib.maintainers; [ lovek323 the-kenny lheckemann ma27 ]; + platforms = stdenv.lib.platforms.unix; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/colorize_nicks/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/colorize_nicks/default.nix new file mode 100644 index 000000000000..646d1fa48a15 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/colorize_nicks/default.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchurl }: + +stdenv.mkDerivation { + pname = "weechat-colorize_nicks"; + version = "26"; + + src = fetchurl { + url = "https://github.com/weechat/scripts/raw/ffda2e03486d1e90983a35ee3505b84d10fd5244/python/colorize_nicks.py"; + sha256 = "1ldk6q4yhwgf1b8iizr971vqd9af6cz7f3krd3xw99wd1kjqqbx5"; + }; + + unpackPhase = '' + : + ''; + + installPhase = '' + mkdir -p $out/share + cp $src $out/share/colorize_nicks.py + ''; + + passthru = { + scripts = [ "colorize_nicks.py" ]; + }; + + meta = with lib; { + description = "Use the weechat nick colors in the chat area"; + licenses = licenses.gpl2Plus; + maintainers = with maintainers; [ qyliss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix new file mode 100644 index 000000000000..8a61c4f5acce --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix @@ -0,0 +1,22 @@ +{ callPackage, luaPackages, python3Packages }: + +{ + colorize_nicks = callPackage ./colorize_nicks { }; + + go = callPackage ./go { }; + + weechat-matrix-bridge = callPackage ./weechat-matrix-bridge { + inherit (luaPackages) cjson luaffi; + }; + + weechat-matrix = python3Packages.callPackage ./weechat-matrix { }; + + wee-slack = callPackage ./wee-slack { }; + + weechat-autosort = callPackage ./weechat-autosort { }; + + weechat-otr = callPackage ./weechat-otr { }; + + zncplayback = callPackage ./zncplayback { }; + +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/go/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/go/default.nix new file mode 100644 index 000000000000..5f0afbfdc6d9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/go/default.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchurl }: + +stdenv.mkDerivation { + pname = "go.py"; + version = "2.5"; + + src = fetchurl { + url = "https://github.com/weechat/scripts/raw/dc9e69f37fcdc51f0f5a8856ef977ee3d8d8e371/python/go.py"; + sha256 = "0ajfv4sl66jq02zzmdas81rvnv2l6dl3ckb4xzkyb3kdm68w31rf"; + }; + + unpackPhase = '' + : + ''; + + installPhase = '' + mkdir -p $out/share + cp $src $out/share/go.py + ''; + + passthru = { + scripts = [ "go.py" ]; + }; + + meta = with lib; { + description = "Quick jump to buffers"; + licenses = licenses.gpl3; + maintainers = with maintainers; [ qyliss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix new file mode 100644 index 000000000000..f3d96a1b5c6b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix @@ -0,0 +1,39 @@ +{ stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }: + +stdenv.mkDerivation rec { + pname = "wee-slack"; + version = "2.3.0"; + + src = fetchFromGitHub { + repo = "wee-slack"; + owner = "wee-slack"; + rev = "v${version}"; + sha256 = "0544j6vqbvb2xshq7ma2a3apx2vvpgfg3jh5prg265wnh4991nsw"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "wee-slack-env"; + paths = with python3Packages; [ websocket_client six ]; + }}/${python3Packages.python.sitePackages}"; + }) + ]; + + passthru.scripts = [ "wee_slack.py" ]; + + installPhase = '' + mkdir -p $out/share + cp wee_slack.py $out/share/wee_slack.py + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/wee-slack/wee-slack; + license = licenses.mit; + maintainers = with maintainers; [ willibutz ]; + description = '' + A WeeChat plugin for Slack.com. Synchronizes read markers, provides typing notification, search, etc.. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch new file mode 100644 index 000000000000..af2dd36b41c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch @@ -0,0 +1,13 @@ +diff --git a/wee_slack.py b/wee_slack.py +index dbe6446..d1b7546 100644 +--- a/wee_slack.py ++++ b/wee_slack.py +@@ -25,6 +25,8 @@ import random + import socket + import string + ++sys.path.append('@env@') ++ + from websocket import ABNF, create_connection, WebSocketConnectionClosedException + + try: diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix new file mode 100644 index 000000000000..17e07f91c031 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "weechat-autosort"; + version = "3.4"; + + src = fetchFromGitHub { + owner = "de-vri-es"; + repo = pname; + rev = version; + sha256 = "1sbr6ga9krrfgqznvsxjd3hdxzkvslh41ls5xrj7l2p4ws4gwlkn"; + }; + + passthru.scripts = [ "autosort.py" ]; + installPhase = '' + install -D autosort.py $out/share/autosort.py + ''; + + meta = with stdenv.lib; { + description = "Autosort is a weechat script to automatically or manually keep your buffers sorted"; + homepage = https://github.com/de-vri-es/weechat-autosort; + license = licenses.gpl3; + maintainers = with maintainers; [ ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix new file mode 100644 index 000000000000..ea5052f37a3f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix @@ -0,0 +1,50 @@ +{ stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }: + +stdenv.mkDerivation { + name = "weechat-matrix-bridge-2018-11-19"; + src = fetchFromGitHub { + owner = "torhve"; + repo = "weechat-matrix-protocol-script"; + rev = "8d32e90d864a8f3f09ecc2857cd5dd6e39a8c3f7"; + sha256 = "0qqd6qmkrdc0r3rnl53c3yp93fbcz7d3mdw3vq5gmdqxyym4s9lj"; + }; + + patches = [ + ./library-path.patch + ]; + + buildInputs = [ curl cjson olm luaffi ]; + + postPatch = '' + substituteInPlace matrix.lua \ + --replace "/usr/bin/curl" "${curl}/bin/curl" \ + --replace "__NIX_LIB_PATH__" "$out/lib/?.so" \ + --replace "__NIX_OLM_PATH__" "$out/share/?.lua" + + substituteInPlace olm.lua \ + --replace "__NIX_LIB_PATH__" "$out/lib/?.so" + ''; + + passthru.scripts = [ "matrix.lua" ]; + + installPhase = '' + mkdir -p $out/{share,lib} + + cp {matrix.lua,olm.lua} $out/share + cp ${cjson}/lib/lua/${cjson.lua.luaversion}/cjson.so $out/lib/cjson.so + cp ${olm}/lib/libolm.so $out/lib/libolm.so + cp ${luaffi}/lib/lua/${luaffi.lua.luaversion}/ffi.so $out/lib/ffi.so + ''; + + meta = with stdenv.lib; { + description = "A WeeChat script in Lua that implements the matrix.org chat protocol"; + homepage = https://github.com/torhve/weechat-matrix-protocol-script; + maintainers = with maintainers; [ ma27 ]; + license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53 + platforms = platforms.unix; + + # As of 2019-06-30, all of the dependencies are available on macOS but the + # package itself does not build. + broken = stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch new file mode 100644 index 000000000000..d9945c2993b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch @@ -0,0 +1,28 @@ +diff --git a/matrix.lua b/matrix.lua +index b79f500..32b37a2 100644 +--- a/matrix.lua ++++ b/matrix.lua +@@ -43,6 +43,9 @@ This script maps this as follows: + + ]] + ++package.cpath = package.cpath .. ";__NIX_LIB_PATH__" ++package.path = package.path .. ";__NIX_OLM_PATH__" ++ + local json = require 'cjson' -- apt-get install lua-cjson + local olmstatus, olm = pcall(require, 'olm') -- LuaJIT olm FFI binding ln -s ~/olm/olm.lua /usr/local/share/lua/5.1 + local w = weechat +diff --git a/olm.lua b/olm.lua +index 114649c..4828371 100644 +--- a/olm.lua ++++ b/olm.lua +@@ -17,6 +17,9 @@ + * limitations under the License. + */ + --]] ++ ++package.cpath = package.cpath .. ";__NIX_LIB_PATH__" ++ + local ffi = require'ffi' + + ffi.cdef[[ diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix new file mode 100644 index 000000000000..ff6a7d947411 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix @@ -0,0 +1,58 @@ +{ buildPythonPackage, stdenv, python, fetchFromGitHub, + pyopenssl, webcolors, future, atomicwrites, + attrs, Logbook, pygments, cachetools, matrix-nio }: + +let + matrixUploadPython = python.withPackages (ps: with ps; [ + magic + ]); +in buildPythonPackage { + pname = "weechat-matrix"; + version = "unstable-2019-11-10"; + + src = fetchFromGitHub { + owner = "poljar"; + repo = "weechat-matrix"; + rev = "69ad2a9c03d516c212d3d0700dbb2bfe654f6365"; + sha256 = "1mfbkag5np2lgv6f31nyfnvavyh67jrrx6gxhzb8m99dd43lgs8c"; + }; + + propagatedBuildInputs = [ + pyopenssl + webcolors + future + atomicwrites + attrs + Logbook + pygments + cachetools + matrix-nio + ]; + + passthru.scripts = [ "matrix.py" ]; + + dontBuild = true; + doCheck = false; + + installPhase = '' + mkdir -p $out/share $out/bin + cp $src/main.py $out/share/matrix.py + + cp $src/contrib/matrix_upload $out/bin/ + substituteInPlace $out/bin/matrix_upload \ + --replace '/usr/bin/env -S python3 -u' '${matrixUploadPython}/bin/python -u' + + mkdir -p $out/${python.sitePackages} + cp -r $src/matrix $out/${python.sitePackages}/matrix + ''; + + dontPatchShebangs = true; + + meta = with stdenv.lib; { + description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol"; + homepage = "https://github.com/poljar/weechat-matrix"; + license = licenses.isc; + platforms = platforms.linux; + maintainers = [ maintainers.tilpner ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix new file mode 100644 index 000000000000..9682aa3169ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix @@ -0,0 +1,64 @@ +{ stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, python3Packages, gmp }: + +let + # pure-python-otr (potr) requires an older version of pycrypto, which is + # not compatible with pycryptodome. Therefore, the latest patched version + # of pycrypto will be fetched from the Debian project. + # https://security-tracker.debian.org/tracker/source-package/python-crypto + + pycrypto = python3Packages.buildPythonPackage rec { + pname = "pycrypto"; + version = "2.6.1-10"; + + src = fetchgit { + url = "https://salsa.debian.org/sramacher/python-crypto.git"; + rev = "debian/${version}"; + sha256 = "10rgq8bmjfpiqqa1g1p1hh7pxlxs7x0nawvk6zip0pd6x2vsr661"; + }; + + buildInputs = [ gmp ]; + + preConfigure = '' + sed -i 's,/usr/include,/no-such-dir,' configure + sed -i "s!,'/usr/include/'!!" setup.py + ''; + }; + + potr = python3Packages.potr.overridePythonAttrs (oldAttrs: { + propagatedBuildInputs = [ pycrypto ]; + }); +in stdenv.mkDerivation rec { + pname = "weechat-otr"; + version = "1.9.2"; + + src = fetchFromGitHub { + repo = pname; + owner = "mmb"; + rev = "v${version}"; + sha256 = "1lngv98y6883vk8z2628cl4d5y8jxy39w8245gjdvshl8g18k5s2"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "weechat-otr-env"; + paths = [ potr pycrypto ]; + }}/${python3Packages.python.sitePackages}"; + }) + ]; + + passthru.scripts = [ "weechat_otr.py" ]; + + installPhase = '' + mkdir -p $out/share + cp weechat_otr.py $out/share/weechat_otr.py + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/mmb/weechat-otr"; + license = licenses.gpl3; + maintainers = with maintainers; [ geistesk ]; + description = "WeeChat script for Off-the-Record messaging"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch new file mode 100644 index 000000000000..a7b77ed9b602 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch @@ -0,0 +1,13 @@ +diff --git a/weechat_otr.py b/weechat_otr.py +index 0ccfb35..c42bebf 100644 +--- a/weechat_otr.py ++++ b/weechat_otr.py +@@ -41,6 +41,8 @@ import shlex + import shutil + import sys + ++sys.path.append('@env@') ++ + import potr + import weechat + diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix new file mode 100644 index 000000000000..dcd74c0da0e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchurl }: + +stdenv.mkDerivation { + pname = "weechat-zncplayback"; + version = "0.1.0"; + + src = fetchurl { + url = "https://github.com/weechat/scripts/raw/643afdd25d29c2614cd67deb2388683cc270d686/python/zncplayback.py"; + sha256 = "1mz9pmnrqv2pjk4wz9yp1bic49m8qbf4nh7pg4j7vghmpq9srkd9"; + }; + + unpackPhase = '' + : + ''; + + installPhase = '' + mkdir -p $out/share + cp $src $out/share/zncplayback.py + ''; + + passthru = { + scripts = [ "zncplayback.py" ]; + }; + + meta = with lib; { + description = "Add support for the ZNC Playback module"; + licenses = licenses.gpl2Plus; + maintainers = with maintainers; [ qyliss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix new file mode 100644 index 000000000000..5c06bb8517a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix @@ -0,0 +1,91 @@ +{ lib, runCommand, writeScriptBin, buildEnv +, python3Packages, perlPackages, runtimeShell +}: + +weechat: + +let + wrapper = { + installManPages ? true + , configure ? { availablePlugins, ... }: { plugins = builtins.attrValues availablePlugins; } + }: + + let + perlInterpreter = perlPackages.perl; + availablePlugins = let + simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";}; + in rec { + python = (simplePlugin "python") // { + extraEnv = '' + export PATH="${python3Packages.python}/bin:$PATH" + ''; + withPackages = pkgsFun: (python // { + extraEnv = '' + export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}" + ''; + }); + }; + perl = (simplePlugin "perl") // { + extraEnv = '' + export PATH="${perlInterpreter}/bin:$PATH" + ''; + withPackages = pkgsFun: (perl // { + extraEnv = '' + ${perl.extraEnv} + export PERL5LIB=${perlPackages.makeFullPerlPath (pkgsFun perlPackages)} + ''; + }); + }; + tcl = simplePlugin "tcl"; + ruby = simplePlugin "ruby"; + guile = simplePlugin "guile"; + lua = simplePlugin "lua"; + }; + + config = configure { inherit availablePlugins; }; + + plugins = config.plugins or (builtins.attrValues availablePlugins); + + pluginsDir = runCommand "weechat-plugins" {} '' + mkdir -p $out/plugins + for plugin in ${lib.concatMapStringsSep " " (p: p.pluginFile) plugins} ; do + ln -s $plugin $out/plugins + done + ''; + + init = let + init = builtins.replaceStrings [ "\n" ] [ ";" ] (config.init or ""); + + mkScript = drv: lib.forEach drv.scripts (script: "/script load ${drv}/share/${script}"); + + scripts = builtins.concatStringsSep ";" (lib.foldl (scripts: drv: scripts ++ mkScript drv) + [ ] (config.scripts or [])); + in "${scripts};${init}"; + + mkWeechat = bin: (writeScriptBin bin '' + #!${runtimeShell} + export WEECHAT_EXTRA_LIBDIR=${pluginsDir} + ${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins} + exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init} + '') // { + inherit (weechat) name man; + unwrapped = weechat; + outputs = [ "out" "man" ]; + }; + in buildEnv { + name = "weechat-bin-env-${weechat.version}"; + extraOutputsToInstall = lib.optionals installManPages [ "man" ]; + paths = [ + (mkWeechat "weechat") + (mkWeechat "weechat-headless") + (runCommand "weechat-out-except-bin" { } '' + mkdir $out + ln -sf ${weechat}/include $out/include + ln -sf ${weechat}/lib $out/lib + ln -sf ${weechat}/share $out/share + '') + ]; + meta = builtins.removeAttrs weechat.meta [ "outputsToInstall" ]; + }; + +in lib.makeOverridable wrapper diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch b/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch new file mode 100644 index 000000000000..e5fa2feb2019 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch @@ -0,0 +1,58 @@ +--- a/configure ++++ b/configure +@@ -6029,53 +6029,8 @@ + #AC_CHECK_HEADERS(zlib.h) + #EGG_CHECK_ZLIB + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for path to OpenSSL" >&5 +-$as_echo_n "checking for path to OpenSSL... " >&6; } +- +- +-# Check whether --with-openssl was given. +-if test "${with_openssl+set}" = set; then : +- withval=$with_openssl; with_openssl_path=$withval +-else +- with_openssl_path=auto +-fi +- +- +- +-cf_openssl_basedir="" +-if test "$with_openssl_path" != "auto"; then +- cf_openssl_basedir="`echo ${with_openssl_path} | sed 's/\/$//'`" +-else +- for dirs in /usr/local/ssl /usr/pkg /usr/local /usr/local/openssl; do +- if test -f "${dirs}/include/openssl/opensslv.h" && test -f "${dirs}/lib/libssl.so"; then +- cf_openssl_basedir="${dirs}" +- break +- fi +- done +- unset dirs +-fi +-if test ! -z "$cf_openssl_basedir"; then +- if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" && test -f "${cf_openssl_basedir}/lib/libssl.so"; then +- SSL_INCLUDES="-I${cf_openssl_basedir}/include" +- SSL_LIBS="-L${cf_openssl_basedir}/lib" +- else +- cf_openssl_basedir="" +- fi +-else +- if test -f "/usr/include/openssl/opensslv.h" ; then +- cf_openssl_basedir="/usr" +- fi +-fi +- +-if test ! -z "$cf_openssl_basedir"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_openssl_basedir" >&5 +-$as_echo "$cf_openssl_basedir" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-$as_echo "not found" >&6; } +- as_fn_error 1 "OpenSSL is required." "$LINENO" 5 +-fi +-unset cf_openssl_basedir ++SSL_INCLUDES="-I@openssl.dev@/include" ++SSL_LIBS="-L@openssl.out@/lib" + + save_CXX="$CXX" + CXX="$CXX $SSL_INCLUDES" diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix new file mode 100644 index 000000000000..6d9acdb68e52 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl, openssl }: + +with stdenv; +with stdenv.lib; + +mkDerivation rec { + pname = "wraith"; + version = "1.4.7"; + src = fetchurl { + url = "mirror://sourceforge/wraithbotpack/wraith-v${version}.tar.gz"; + sha256 = "0h6liac5y7im0jfm2sj18mibvib7d1l727fjs82irsjj1v9kif3j"; + }; + hardeningDisable = [ "format" ]; + buildInputs = [ openssl ]; + patches = [ ./configure.patch ./dlopen.patch ]; + postPatch = '' + substituteInPlace configure --subst-var-by openssl.dev ${openssl.dev} \ + --subst-var-by openssl.out ${openssl.out} + substituteInPlace src/libssl.cc --subst-var-by openssl ${openssl.out} + substituteInPlace src/libcrypto.cc --subst-var-by openssl ${openssl.out} + ''; + installPhase = '' + mkdir -p $out/bin + cp -a wraith $out/bin/wraith + ln -s wraith $out/bin/hub + ''; + + meta = { + description = "An IRC channel management bot written purely in C/C++"; + longDescription = '' + Wraith is an IRC channel management bot written purely in C/C++. It has + been in development since late 2003. It is based on Eggdrop 1.6.12 but has + since evolved into something much different at its core. TCL and loadable + modules are currently not supported. + + Maintainer's Notes: + Copy the binary out of the store before running it with the -C option to + configure it. See https://github.com/wraith/wraith/wiki/GettingStarted . + + The binary will not run when moved onto non-NixOS systems; use patchelf + to fix its runtime dependenices. + ''; + homepage = http://wraith.botpack.net/; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ elitak ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch b/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch new file mode 100644 index 000000000000..bfc854ef9e9c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch @@ -0,0 +1,48 @@ +diff --git a/src/libcrypto.cc b/src/libcrypto.cc +index 0339258..68746c8 100644 +--- a/src/libcrypto.cc ++++ b/src/libcrypto.cc +@@ -95,17 +95,9 @@ int load_libcrypto() { + } + + sdprintf("Loading libcrypto"); ++ dlerror(); // Clear Errors ++ libcrypto_handle = dlopen("@openssl@/lib/libcrypto.so", RTLD_LAZY|RTLD_GLOBAL); + +- bd::Array<bd::String> libs_list(bd::String("libcrypto.so." SHLIB_VERSION_NUMBER " libcrypto.so libcrypto.so.0.9.8 libcrypto.so.7 libcrypto.so.6").split(' ')); +- +- for (size_t i = 0; i < libs_list.length(); ++i) { +- dlerror(); // Clear Errors +- libcrypto_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY|RTLD_GLOBAL); +- if (libcrypto_handle) { +- sdprintf("Found libcrypto: %s", bd::String(libs_list[i]).c_str()); +- break; +- } +- } + if (!libcrypto_handle) { + fprintf(stderr, STR("Unable to find libcrypto\n")); + return(1); +diff --git a/src/libssl.cc b/src/libssl.cc +index b432c7b..8940998 100644 +--- a/src/libssl.cc ++++ b/src/libssl.cc +@@ -68,17 +68,9 @@ int load_libssl() { + } + + sdprintf("Loading libssl"); ++ dlerror(); // Clear Errors ++ libssl_handle = dlopen("@openssl@/lib/libssl.so", RTLD_LAZY); + +- bd::Array<bd::String> libs_list(bd::String("libssl.so." SHLIB_VERSION_NUMBER " libssl.so libssl.so.0.9.8 libssl.so.7 libssl.so.6").split(' ')); +- +- for (size_t i = 0; i < libs_list.length(); ++i) { +- dlerror(); // Clear Errors +- libssl_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY); +- if (libssl_handle) { +- sdprintf("Found libssl: %s", bd::String(libs_list[i]).c_str()); +- break; +- } +- } + if (!libssl_handle) { + fprintf(stderr, STR("Unable to find libssl\n")); + return(1); diff --git a/nixpkgs/pkgs/applications/networking/jmeter/default.nix b/nixpkgs/pkgs/applications/networking/jmeter/default.nix new file mode 100644 index 000000000000..3f626a6ac483 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/jmeter/default.nix @@ -0,0 +1,60 @@ +{ fetchurl, stdenv, jre, makeWrapper, coreutils }: + +stdenv.mkDerivation rec { + pname = "jmeter"; + version = "5.1.1"; + src = fetchurl { + url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz"; + sha256 = "1bmlxnlcias781mwf3wzpd4935awswbq3w8ijck65bsaw07m2kc4"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir $out + + rm bin/*.bat bin/*.cmd + + cp -R * $out/ + + substituteInPlace $out/bin/create-rmi-keystore.sh --replace \ + "keytool -genkey" \ + "${jre}/lib/openjdk/jre/bin/keytool -genkey" + + # Prefix some scripts with jmeter to avoid clobbering the namespace + for i in heapdump.sh mirror-server mirror-server.sh shutdown.sh stoptest.sh create-rmi-keystore.sh; do + mv $out/bin/$i $out/bin/jmeter-$i + wrapProgram $out/bin/jmeter-$i \ + --prefix PATH : "${jre}/bin" + done + + wrapProgram $out/bin/jmeter --set JAVA_HOME "${jre}" + wrapProgram $out/bin/jmeter.sh --set JAVA_HOME "${jre}" + ''; + + doInstallCheck = true; + + checkInputs = [ coreutils ]; + + installCheckPhase = '' + $out/bin/jmeter --version 2>&1 | grep -q "${version}" + $out/bin/jmeter-heapdump.sh > /dev/null + $out/bin/jmeter-shutdown.sh > /dev/null + $out/bin/jmeter-stoptest.sh > /dev/null + timeout --kill=1s 1s $out/bin/jmeter-mirror-server.sh || test "$?" = "124" + ''; + + meta = with stdenv.lib; { + description = "A 100% pure Java desktop application designed to load test functional behavior and measure performance"; + longDescription = '' + The Apache JMeter desktop application is open source software, a 100% + pure Java application designed to load test functional behavior and + measure performance. It was originally designed for testing Web + Applications but has since expanded to other test functions. + ''; + license = licenses.asl20; + maintainers = [ ]; + priority = 1; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix new file mode 100644 index 000000000000..e2a8a2d56bd1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, jre, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "jnetmap"; + version = "0.5.4"; + + src = fetchurl { + url = "mirror://sourceforge/project/jnetmap/jNetMap%20${version}/jNetMap-${version}.jar"; + sha256 = "0nxsfa600jhazwbabxmr9j37mhwysp0fyrvczhv3f1smiy8rjanl"; + }; + + buildInputs = [ jre makeWrapper ]; + + dontUnpack = true; + + installPhase = '' + mkdir -p "$out/bin" + mkdir -p "$out/lib" + + cp "${src}" "$out/lib/jnetmap.jar" + makeWrapper "${jre}/bin/java" "$out/bin/jnetmap" \ + --add-flags "-jar \"$out/lib/jnetmap.jar\"" + ''; + + meta = with stdenv.lib; { + description = "Graphical network monitoring and documentation tool"; + homepage = "http://www.rakudave.ch/jnetmap/"; + license = licenses.gpl3Plus; + # Upstream supports macOS and Windows too. + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/libcoap/default.nix b/nixpkgs/pkgs/applications/networking/libcoap/default.nix new file mode 100644 index 000000000000..d3a3dd6e29af --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/libcoap/default.nix @@ -0,0 +1,31 @@ +{ fetchFromGitHub, automake, autoconf, which, pkgconfig, libtool, stdenv }: +stdenv.mkDerivation rec { + pname = "libcoap"; + version = "4.2.0"; + src = fetchFromGitHub { + repo = "libcoap"; + owner = "obgm"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "0mmvkq72i4rda6b7g93qrwg2nwh2rvkq4xw70yppj51hsdrnpfl7"; + }; + nativeBuildInputs = [ + automake + autoconf + which + libtool + pkgconfig + ]; + preConfigure = "./autogen.sh"; + configureFlags = [ + "--disable-documentation" + "--disable-shared" + ]; + meta = with stdenv.lib; { + homepage = "https://github.com/obgm/libcoap"; + description = "A CoAP (RFC 7252) implementation in C"; + platforms = platforms.linux; + license = licenses.bsd2; + maintainers = [ maintainers.kmein ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch b/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch new file mode 100644 index 000000000000..46224ede33d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch @@ -0,0 +1,43 @@ +From e57f22a5089f194013534c9a9bbc42ee639297f1 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Sat, 19 Sep 2015 11:10:32 -0500 +Subject: [PATCH] unbundled qwt + +--- + linssid-app/linssid-app.pro | 4 +--- + linssid.pro | 4 +--- + 2 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/linssid-app/linssid-app.pro b/linssid-app/linssid-app.pro +index 26f61e7..7b80b60 100644 +--- a/linssid-app/linssid-app.pro ++++ b/linssid-app/linssid-app.pro +@@ -19,13 +19,11 @@ QMAKE_CC = gcc + QMAKE_CXX = g++ + DEFINES += + INCLUDEPATH += /usr/include/qt5 +-# /usr/local/qwt-6.1.0/include +-INCLUDEPATH += ../qwt-lib/src + # LIBS += /usr/lib/x86_64-linux-gnu/libboost_regex.a + # LIBS += -lboost_regex + LIBS += -l:libboost_regex.a + # /usr/local/qwt-6.1.0/lib/libqwt.a +-LIBS += ../qwt-lib/lib/libqwt.a ++LIBS += -lqwt + QMAKE_CXXFLAGS += -std=c++11 + # + TARGET = linssid +diff --git a/linssid.pro b/linssid.pro +index 42dc277..26d1a2c 100644 +--- a/linssid.pro ++++ b/linssid.pro +@@ -1,5 +1,3 @@ + TEMPLATE = subdirs + CONFIG += ordered +-SUBDIRS = qwt-lib \ +- linssid-app +-linssid-app.depends = qwt-lib ++SUBDIRS = linssid-app +-- +2.5.2 + diff --git a/nixpkgs/pkgs/applications/networking/linssid/default.nix b/nixpkgs/pkgs/applications/networking/linssid/default.nix new file mode 100644 index 000000000000..daddf6adf7e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/linssid/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, qtbase, qtsvg, qmake, pkgconfig, boost, wirelesstools, iw, qwt, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "linssid"; + version = "2.7"; + + src = fetchurl { + url = "mirror://sourceforge/project/linssid/LinSSID_${version}/linssid_${version}.orig.tar.gz"; + sha256 = "13d35rlcjncd8lx3khkgn9x8is2xjd5fp6ns5xsn3w6l4xj9b4gl"; + }; + + nativeBuildInputs = [ pkgconfig qmake wrapQtAppsHook ]; + buildInputs = [ qtbase qtsvg boost qwt ]; + + patches = [ ./0001-unbundled-qwt.patch ]; + + postPatch = '' + sed -e "s|/usr/include/qt5.*$|& ${qwt}/include|" -i linssid-app/linssid-app.pro + sed -e "s|/usr/include/|/nonexistent/|g" -i linssid-app/*.pro + sed -e 's|^LIBS .*= .*libboost_regex.a|LIBS += -lboost_regex|' \ + -e "s|/usr|$out|g" \ + -i linssid-app/linssid-app.pro linssid-app/linssid.desktop + sed -e "s|\.\./\.\./\.\./\.\./usr|$out|g" -i linssid-app/*.ui + + # Remove bundled qwt + rm -fr qwt-lib + ''; + + qtWrapperArgs = + [ ''--prefix PATH : ${stdenv.lib.makeBinPath [ wirelesstools iw ]}'' ]; + + meta = with stdenv.lib; { + description = "Graphical wireless scanning for Linux"; + homepage = https://sourceforge.net/projects/linssid/; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/maestral/default.nix b/nixpkgs/pkgs/applications/networking/maestral/default.nix new file mode 100644 index 000000000000..708957bdf015 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/maestral/default.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, python3Packages, fetchFromGitHub +, withGui ? false, wrapQtAppsHook ? null }: + +python3Packages.buildPythonApplication rec { + pname = "maestral${lib.optionalString withGui "-gui"}"; + version = "0.4.2"; + + src = fetchFromGitHub { + owner = "SamSchott"; + repo = "maestral-dropbox"; + rev = "v${version}"; + sha256 = "0xis0cqfp3wgajwk44dmi2gbfirmz0a0zi25qxdzpdn0z19hp88m"; + }; + + disabled = python3Packages.pythonOlder "3.6"; + + propagatedBuildInputs = (with python3Packages; [ + blinker click dropbox keyring keyrings-alt Pyro4 requests u-msgpack-python watchdog + ] ++ lib.optionals stdenv.isLinux [ + sdnotify systemd + ] ++ lib.optional withGui pyqt5); + + nativeBuildInputs = lib.optional withGui wrapQtAppsHook; + + postInstall = lib.optionalString withGui '' + makeQtWrapper $out/bin/maestral $out/bin/maestral-gui \ + --add-flags gui + ''; + + # no tests + doCheck = false; + + meta = with lib; { + description = "Open-source Dropbox client for macOS and Linux"; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + inherit (src.meta) homepage; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix new file mode 100644 index 000000000000..6915cfd79821 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix @@ -0,0 +1,63 @@ +{ stdenv, buildGoModule, fetchurl +, go, ncurses, notmuch, scdoc +, python3, perl, w3m, dante +}: + +buildGoModule rec { + pname = "aerc"; + version = "0.3.0"; + + src = fetchurl { + url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz"; + sha256 = "188jln8hmgiqn5il5m54bns0wk4grj09di8y6mmid58ibw6spma4"; + }; + + nativeBuildInputs = [ + go + scdoc + python3.pkgs.wrapPython + notmuch + ]; + + patches = [ + ./runtime-sharedir.patch + ]; + + pythonPath = [ + python3.pkgs.colorama + ]; + + buildInputs = [ python3 perl ]; + + GOFLAGS="-tags=notmuch"; + + buildPhase = " + runHook preBuild + # we use make instead of go build + runHook postBuild + "; + + installPhase = '' + runHook preInstall + make PREFIX=$out install + wrapPythonProgramsIn $out/share/aerc/filters "$out $pythonPath" + runHook postInstall + ''; + + postFixup = '' + wrapProgram $out/bin/aerc --prefix PATH ":" \ + "$out/share/aerc/filters:${stdenv.lib.makeBinPath [ ncurses ]}" + wrapProgram $out/share/aerc/filters/html --prefix PATH ":" \ + ${stdenv.lib.makeBinPath [ w3m dante ]} + ''; + + modSha256 = "0pxbv4zfhii0g41cy0ycfpkkxw6nnd4ibavic6zqw30j476jnm2x"; + + meta = with stdenv.lib; { + description = "aerc is an email client for your terminal"; + homepage = https://aerc-mail.org/; + maintainers = with maintainers; [ tadeokondrak ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch new file mode 100644 index 000000000000..ed670d61a7b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch @@ -0,0 +1,56 @@ +From 6cf3c2e42d219b9665a43ca65f321c653b0aa102 Mon Sep 17 00:00:00 2001 +From: Tadeo Kondrak <me@tadeo.ca> +Date: Mon, 28 Oct 2019 08:36:36 -0600 +Subject: [PATCH] Fix aerc breaking every time the package is rebuilt. + +On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc +fills it in as part of the default config and then installs that config +to the users home folder. Fix this by not substituting @SHAREDIR@ in the +default config until runtime. +--- + Makefile | 2 +- + config/config.go | 8 ++++++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index d1c755d..1185a96 100644 +--- a/Makefile ++++ b/Makefile +@@ -24,7 +24,7 @@ aerc: $(GOSRC) + -o $@ + + aerc.conf: config/aerc.conf.in +- sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in ++ cat config/aerc.conf.in > $@ + + DOCS := \ + aerc.1 \ +diff --git a/config/config.go b/config/config.go +index 32d07fc..8ffd3e8 100644 +--- a/config/config.go ++++ b/config/config.go +@@ -355,6 +355,11 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) { + return nil, err + } + } ++ if sec, err := file.GetSection("templates"); err == nil { ++ if key, err := sec.GetKey("template-dirs"); err == nil { ++ sec.NewKey("template-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir)) ++ } ++ } + file.NameMapper = mapName + config := &AercConfig{ + Bindings: BindingConfig{ +@@ -423,6 +428,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) { + if err = config.LoadConfig(file); err != nil { + return nil, err + } ++ for i, filter := range config.Filters { ++ config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir) ++ } + if ui, err := file.GetSection("general"); err == nil { + if err := ui.MapTo(&config.General); err != nil { + return nil, err +-- +2.23.0 + diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix new file mode 100644 index 000000000000..54b3e10b5e29 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix @@ -0,0 +1,41 @@ +{ stdenv, python3Packages, notmuch }: + +python3Packages.buildPythonApplication rec { + pname = "afew"; + version = "2.0.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "0j60501nm242idf2ig0h7p6wrg58n5v2p6zfym56v9pbvnbmns0s"; + }; + + nativeBuildInputs = with python3Packages; [ sphinx setuptools_scm ]; + + propagatedBuildInputs = with python3Packages; [ + python3Packages.setuptools python3Packages.notmuch chardet dkimpy + ] ++ stdenv.lib.optional (!python3Packages.isPy3k) subprocess32; + + makeWrapperArgs = [ + ''--prefix PATH ':' "${notmuch}/bin"'' + ]; + + outputs = [ "out" "doc" ]; + + postBuild = '' + ${python3Packages.python.interpreter} setup.py build_sphinx -b html,man + ''; + + postInstall = '' + install -D -v -t $out/share/man/man1 build/sphinx/man/* + mkdir -p $out/share/doc/afew + cp -R build/sphinx/html/* $out/share/doc/afew + ''; + + + meta = with stdenv.lib; { + homepage = https://github.com/afewmail/afew; + description = "An initial tagging script for notmuch mail"; + license = licenses.isc; + maintainers = with maintainers; [ andir flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix new file mode 100644 index 000000000000..cfaa7dcd4af6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix @@ -0,0 +1,32 @@ +{stdenv, fetchurl, ncurses, tcl, openssl, pam, kerberos +, openldap +}: + +stdenv.mkDerivation rec { + pname = "alpine"; + version = "2.21"; + + src = fetchurl { + url = "http://alpine.x10host.com/alpine/release/src/${pname}-${version}.tar.xz"; + sha256 = "0f3llxrmaxw7w9w6aixh752md3cdc91mwfmbarkm8s413f4bcc30"; + }; + + buildInputs = [ + ncurses tcl openssl pam kerberos openldap + ]; + + hardeningDisable = [ "format" ]; + + configureFlags = [ + "--with-ssl-include-dir=${openssl.dev}/include/openssl" + "--with-passfile=.pine-passfile" + ]; + + meta = with stdenv.lib; { + description = "Console mail reader"; + license = licenses.asl20; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.linux; + homepage = "http://alpine.x10host.com/"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix new file mode 100644 index 000000000000..7d62aa43888e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, gnome3, gmime3, webkitgtk +, libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf, vim_configurable +, gtkmm3, libpeas, gsettings-desktop-schemas +, python3, python3Packages +, vim ? vim_configurable.override { + features = "normal"; + gui = "auto"; + } +, ronn +}: + +stdenv.mkDerivation rec { + pname = "astroid"; + version = "0.15"; + + src = fetchFromGitHub { + owner = "astroidmail"; + repo = "astroid"; + rev = "v${version}"; + sha256 = "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3"; + }; + + nativeBuildInputs = [ cmake ronn pkgconfig wrapGAppsHook ]; + + buildInputs = [ + gtkmm3 gmime3 webkitgtk libsass libpeas + python3 python3Packages.pygobject3 + notmuch boost gsettings-desktop-schemas gnome3.adwaita-icon-theme + glib-networking protobuf + ] ++ (if vim == null then [] else [ vim ]); + + postPatch = '' + sed -i "s~gvim ~${vim}/bin/vim -g ~g" src/config.cc + sed -i "s~ -geom 10x10~~g" src/config.cc + ''; + + postInstall = '' + wrapProgram "$out/bin/astroid" --set CHARSET=en_us.UTF-8 + ''; + + meta = with stdenv.lib; { + homepage = https://astroidmail.github.io/; + description = "GTK frontend to the notmuch mail system"; + maintainers = with maintainers; [ bdimcheff SuprDewd ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix new file mode 100644 index 000000000000..e7c9d50cb9be --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk3, gmime, gnutls, + webkitgtk, libesmtp, openssl, libnotify, gtkspell3, gpgme, + libcanberra-gtk3, libsecret, gtksourceview, gobject-introspection, + wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "balsa"; + version = "2.5.9"; + + src = fetchurl { + url = "https://pawsa.fedorapeople.org/balsa/${pname}-${version}.tar.bz2"; + sha256 = "19gs1qfvbk9qx4rjmgrmvid00kl9k153zjjx8zjii2lz09w7g19i"; + }; + + nativeBuildInputs = [ + pkgconfig + intltool + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + gmime + gnutls + webkitgtk + openssl + libnotify + gtkspell3 + gpgme + libcanberra-gtk3 + gtksourceview + libsecret + libesmtp + ]; + + configureFlags = [ + "--with-canberra" + "--with-gpgme" + "--with-gtksourceview" + "--with-libsecret" + "--with-ssl" + "--with-unique" + "--without-gnome" + "--with-spell-checker=gtkspell" + ]; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = http://pawsa.fedorapeople.org/balsa/; + description = "An e-mail client for GNOME"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix new file mode 100644 index 000000000000..e89a36eade07 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix @@ -0,0 +1,112 @@ +{ config, fetchurl, stdenv, wrapGAppsHook, autoreconfHook +, curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme +, libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager +, openldap, perl, pkgconfig, poppler, python, shared-mime-info +, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical +# Build options +# TODO: A flag to build the manual. +# TODO: Plugins that complain about their missing dependencies, even when +# provided: +# gdata requires libgdata +# geolocation requires libchamplain +, enableLdap ? false +, enableNetworkManager ? config.networking.networkmanager.enable or false +, enablePgp ? true +, enablePluginArchive ? false +, enablePluginNotificationDialogs ? true +, enablePluginNotificationSounds ? true +, enablePluginPdf ? false +, enablePluginPython ? false +, enablePluginRavatar ? false +, enablePluginRssyl ? false +, enablePluginSmime ? false +, enablePluginSpamassassin ? false +, enablePluginSpamReport ? false +, enablePluginVcalendar ? false +, enableSpellcheck ? false +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "claws-mail"; + version = "3.17.4"; + + src = fetchurl { + url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz"; + sha256 = "00mfhaac16sv67rwiq98hr4nl5zmd1h2afswwwksdcsi3q9x23jr"; + }; + + outputs = [ "out" "dev" ]; + + patches = [ ./mime.patch ]; + + preConfigure = '' + # autotools check tries to dlopen libpython as a requirement for the python plugin + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${python}/lib + ''; + + postPatch = '' + substituteInPlace src/procmime.c \ + --subst-var-by MIMEROOTDIR ${shared-mime-info}/share + ''; + + nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook python.pkgs.wrapPython ]; + propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ]; + + buildInputs = + [ curl dbus dbus-glib gtk2 gnutls gsettings-desktop-schemas + libetpan perl glib-networking libSM libytnef + ] + ++ optional enableSpellcheck enchant + ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ] + ++ optional enablePluginArchive libarchive + ++ optional enablePluginNotificationSounds libcanberra-gtk2 + ++ optional enablePluginNotificationDialogs libnotify + ++ optional enablePluginRssyl libxml2 + ++ optional enableNetworkManager networkmanager + ++ optional enableLdap openldap + ++ optional enablePluginPdf poppler + ++ optional enablePluginVcalendar libical; + + configureFlags = + optional (!enableLdap) "--disable-ldap" + ++ optional (!enableNetworkManager) "--disable-networkmanager" + ++ optionals (!enablePgp) [ + "--disable-pgpcore-plugin" + "--disable-pgpinline-plugin" + "--disable-pgpmime-plugin" + ] + ++ optional (!enablePluginArchive) "--disable-archive-plugin" + ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin" + ++ optional (!enablePluginPython) "--disable-python-plugin" + ++ optional (!enablePluginRavatar) "--disable-libravatar-plugin" + ++ optional (!enablePluginRssyl) "--disable-rssyl-plugin" + ++ optional (!enablePluginSmime) "--disable-smime-plugin" + ++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin" + ++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin" + ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin" + ++ optional (!enableSpellcheck) "--disable-enchant"; + + enableParallelBuilding = true; + + pythonPath = with python.pkgs; [ pygobject2 pygtk ]; + + preFixup = '' + buildPythonPath "$out $pythonPath" + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH") + ''; + + postInstall = '' + mkdir -p $out/share/applications + cp claws-mail.desktop $out/share/applications + ''; + + meta = { + description = "The user-friendly, lightweight, and fast email client"; + homepage = https://www.claws-mail.org/; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ fpletz globin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch new file mode 100644 index 000000000000..2ff4269c3329 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch @@ -0,0 +1,28 @@ +diff --git a/src/procmime.c b/src/procmime.c +index bd3239e..06a3b26 100644 +--- a/src/procmime.c ++++ b/src/procmime.c +@@ -1144,20 +1144,16 @@ GList *procmime_get_mime_type_list(void) + MimeType *mime_type; + gboolean fp_is_glob_file = TRUE; + + if (mime_type_list) + return mime_type_list; +- +-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) +- if ((fp = claws_fopen(DATAROOTDIR "/mime/globs", "rb")) == NULL) +-#else +- if ((fp = claws_fopen("/usr/share/mime/globs", "rb")) == NULL) +-#endif ++ ++ if ((fp = claws_fopen("@MIMEROOTDIR@/mime/globs", "rb")) == NULL) + { + fp_is_glob_file = FALSE; + if ((fp = claws_fopen("/etc/mime.types", "rb")) == NULL) { + if ((fp = claws_fopen(SYSCONFDIR "/mime.types", "rb")) + == NULL) { + FILE_OP_ERROR(SYSCONFDIR "/mime.types", + "claws_fopen"); + return NULL; + } + diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix new file mode 100644 index 000000000000..49f0ac533659 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, pkgconfig +, gobject-introspection +, pango +, cairo +, gtk2 +}: + +buildGoModule rec { + pname = "hasmail-unstable"; + version = "2019-08-24"; + + src = fetchFromGitHub { + owner = "jonhoo"; + repo = "hasmail"; + rev = "eb52536d26815383bfe5990cd5ace8bb9d036c8d"; + sha256 = "1p6kwa5xk1mb1fkkxz1b5rcyp5kb4zc8nfif1gk6fab6wbdj9ia1"; + }; + + modSha256 = "0z3asz7v1izg81f9xifx9s2sp5hly173hajsn9idi3bkv0h78is2"; + + nativeBuildInputs = [ + pkgconfig + ]; + + buildInputs = [ + pango + cairo + gtk2 + ]; + + meta = with lib; { + description = "Simple tray icon for detecting new email on IMAP servers"; + homepage = "https://github.com/jonhoo/hasmail"; + license = licenses.unlicense; + maintainers = with maintainers; [ doronbehar ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix new file mode 100644 index 000000000000..38e4bf5d7105 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, openssl, lua, pcre }: + +stdenv.mkDerivation rec { + pname = "imapfilter"; + version = "2.6.16"; + + src = fetchFromGitHub { + owner = "lefcha"; + repo = "imapfilter"; + rev = "v${version}"; + sha256 = "0f65sg6hhv6778fxwsz4hvarbm97dsb8jj0mg7a9qs273r35pqck"; + }; + + makeFlagsArray = "PREFIX=$(out)"; + propagatedBuildInputs = [ openssl pcre lua ]; + + meta = { + homepage = https://github.com/lefcha/imapfilter; + description = "Mail filtering utility"; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.unix; + maintainers = with stdenv.lib.maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix new file mode 100644 index 000000000000..189ac1e6aaed --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix @@ -0,0 +1,87 @@ +{ stdenv, fetchurl, binutils, patchelf, makeWrapper +, expat, xorg, gdk-pixbuf, glib, gnome2, cairo, atk, freetype +, fontconfig, dbus, nss, nspr, gtk2-x11, alsaLib, cups, libpulseaudio, udev }: + +stdenv.mkDerivation rec { + pname = "inboxer"; + version = "1.2.1"; + + meta = with stdenv.lib; { + description = "Unofficial, free and open-source Google Inbox Desktop App"; + homepage = "https://denysdovhan.com/inboxer"; + maintainers = [ maintainers.mgttlinger ]; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + }; + + src = fetchurl { + url = "https://github.com/denysdovhan/inboxer/releases/download/v${version}/inboxer_${version}_amd64.deb"; + sha256 = "0nyxas07d6ckgjazxapmc6iyakd2cddla6wflr5rhfp78d7kax3a"; + }; + + unpackPhase = '' + ar p $src data.tar.xz | tar xJ + ''; + nativeBuildInputs = [ patchelf makeWrapper ]; + buildInputs = [ binutils ]; + + preFixup = with stdenv.lib; let + lpath = makeLibraryPath [ + alsaLib + atk + cairo + cups + dbus + nss + nspr + freetype + fontconfig + gtk2-x11 + xorg.libX11 + xorg.libXcursor + xorg.libXdamage + xorg.libXi + xorg.libXext + xorg.libXfixes + xorg.libXrandr + xorg.libXrender + xorg.libXcomposite + xorg.libXtst + xorg.libXScrnSaver + xorg.libxcb + gdk-pixbuf + glib + gnome2.pango + gnome2.GConf + expat + stdenv.cc.cc.lib + libpulseaudio + udev + ]; + in '' + patchelf \ + --set-rpath "$out/opt/Inboxer:${lpath}" \ + $out/opt/Inboxer/libnode.so + patchelf \ + --set-rpath "$out/opt/Inboxer:${lpath}" \ + $out/opt/Inboxer/libffmpeg.so + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "$out/opt/Inboxer:${lpath}" \ + $out/opt/Inboxer/inboxer + + wrapProgram $out/opt/Inboxer/inboxer --set LD_LIBRARY_PATH "${xorg.libxkbfile}/lib:${lpath}" + ''; + + installPhase = '' + mkdir -p $out/bin + cp -R usr/share opt $out/ + # fix the path in the desktop file + substituteInPlace \ + $out/share/applications/inboxer.desktop \ + --replace /opt/ $out/opt/ + # symlink the binary to bin/ + ln -s $out/opt/Inboxer/inboxer $out/bin/inboxer + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix new file mode 100644 index 000000000000..44b97fb3793c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix @@ -0,0 +1,82 @@ +{ stdenv, fetchurl, pkgconfig, lua, file, ncurses, gmime, pcre-cpp +, perl, perlPackages, makeWrapper +, debugBuild ? false +, alternativeGlobalConfigFilePath ? null +}: + +let + version = "3.1"; + binaryName = if debugBuild then "lumail2-debug" else "lumail2"; + alternativeConfig = builtins.toFile "lumail2.lua" + (builtins.readFile alternativeGlobalConfigFilePath); + + globalConfig = if alternativeGlobalConfigFilePath == null then '' + mkdir -p $out/etc/lumail2 + cp global.config.lua $out/etc/lumail2.lua + for n in ./lib/*.lua; do + cp "$n" $out/etc/lumail2/ + done + '' else '' + ln -s ${alternativeConfig} $out/etc/lumail2.lua + ''; + + getPath = type : "${lua}/lib/?.${type};"; + luaPath = getPath "lua"; + luaCPath = getPath "so"; +in +stdenv.mkDerivation { + pname = "lumail"; + inherit version; + + src = fetchurl { + url = "https://lumail.org/download/lumail-${version}.tar.gz"; + sha256 = "0vj7p7f02m3w8wb74ilajcwznc4ai4h2ikkz9ildy0c00aqsi5w4"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkgconfig makeWrapper ]; + buildInputs = [ + lua file ncurses gmime pcre-cpp + perl perlPackages.JSON perlPackages.NetIMAPClient + ]; + + preConfigure = '' + sed -e 's|"/etc/lumail2|LUMAIL_LUAPATH"/..|' -i src/lumail2.cc src/imap_proxy.cc + + perlFlags= + for i in $(IFS=:; echo $PERL5LIB); do + perlFlags="$perlFlags -I$i" + done + + sed -e "s|^#\!\(.*/perl.*\)$|#\!\1$perlFlags|" -i perl.d/imap-proxy + ''; + + buildFlags = stdenv.lib.optional debugBuild "lumail2-debug"; + + installPhase = '' + mkdir -p $out/bin || true + install -m755 ${binaryName} $out/bin/ + '' + + globalConfig + + '' + wrapProgram $out/bin/${binaryName} \ + --prefix LUA_PATH : "${luaPath}" \ + --prefix LUA_CPATH : "${luaCPath}" + ''; + + makeFlags = [ + "LVER=lua" + "PREFIX=$(out)" + "SYSCONFDIR=$(out)/etc" + "LUMAIL_LIBS=$(out)/etc/lumail2" + ]; + + meta = with stdenv.lib; { + description = "Console-based email client"; + homepage = https://lumail.org/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [orivej]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix new file mode 100644 index 000000000000..ffa3e92d390c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "mailcheck"; + version = "1.91.2"; + + patches = [ ./mailcheck-Makefile.patch ]; + + src = fetchurl { + url = "mirror://sourceforge/mailcheck/mailcheck_${version}.tar.gz"; + sha256 = "0p0azaxsnjvjbg41ycicc1i0kzw6jiynq8k49cfkdhlckxfdm9kc"; + }; + + meta = { + description = "Simple command line tool to check for new messages"; + homepage = http://mailcheck.sourceforge.net/; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ kovirobi ]; + platforms = stdenv.lib.platforms.linux; + inherit version; + + longDescription = '' + A simple command line tool to check for new mail in local mbox and + maildir and remote POP3 and IMAP mailboxes. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch new file mode 100644 index 000000000000..46b3bff4f7a9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch @@ -0,0 +1,22 @@ +diff -u a/Makefile b/Makefile +--- a/Makefile 2015-04-05 19:31:41.871227295 +0100 ++++ b/Makefile 2015-04-05 19:42:49.743517508 +0100 +@@ -1,3 +1,5 @@ ++prefix=$(out) ++ + all: mailcheck + + debug: mailcheck.c netrc.c netrc.h socket.c +@@ -7,8 +9,10 @@ + $(CC) -Wall -O2 mailcheck.c netrc.c socket.c -s -o mailcheck + + install: mailcheck +- install mailcheck $(prefix)/usr/bin +- install -m 644 mailcheckrc $(prefix)/etc ++ [ -d $(prefix)/bin ] || mkdir $(prefix)/bin ++ [ -d $(prefix)/etc ] || mkdir $(prefix)/etc ++ install mailcheck $(prefix)/bin/ ++ install -m 644 mailcheckrc $(prefix)/etc/ + + distclean: clean + diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix new file mode 100644 index 000000000000..4cbaee4488b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, gettext, gtk3, pythonPackages +, gdk-pixbuf, libnotify, gst_all_1 +, libgnome-keyring3 +, wrapGAppsHook, gnome3 +# otherwise passwords are stored unencrypted +, withGnomeKeyring ? true +}: + +let + inherit (pythonPackages) python; +in pythonPackages.buildPythonApplication rec { + pname = "mailnag"; + version = "1.3.0"; + + src = fetchurl { + url = "https://github.com/pulb/mailnag/archive/v${version}.tar.gz"; + sha256 = "0cp5pad6jzd5c14pddbi9ap5bi78wjhk1x2p0gbblmvmcasw309s"; + }; + + buildInputs = [ + gtk3 gdk-pixbuf libnotify gst_all_1.gstreamer + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gnome3.adwaita-icon-theme + ] ++ stdenv.lib.optional withGnomeKeyring libgnome-keyring3; + + nativeBuildInputs = [ + gettext + wrapGAppsHook + ]; + + propagatedBuildInputs = with pythonPackages; [ + pygobject3 dbus-python pyxdg + ]; + + buildPhase = ""; + + installPhase = "${python}/bin/python setup.py install --prefix=$out"; + + doCheck = false; + + meta = with stdenv.lib; { + description = "An extensible mail notification daemon"; + homepage = https://github.com/pulb/mailnag; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix new file mode 100644 index 000000000000..89231939bfbc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchFromGitHub, python2Packages, gnupg1orig, openssl, git }: + +python2Packages.buildPythonApplication rec { + pname = "mailpile"; + version = "1.0.0rc2"; + + src = fetchFromGitHub { + owner = "mailpile"; + repo = "Mailpile"; + rev = version; + sha256 = "1z5psh00fjr8gnl4yjcl4m9ywfj24y1ffa2rfb5q8hq4ksjblbdj"; + }; + + postPatch = '' + patchShebangs scripts + ''; + + nativeBuildInputs = with python2Packages; [ pbr git ]; + PBR_VERSION=version; + + propagatedBuildInputs = with python2Packages; [ + appdirs + cryptography + fasteners + gnupg1orig + jinja2 + pgpdump + pillow + python2Packages.lxml + spambayes + ]; + + postInstall = '' + wrapProgram $out/bin/mailpile \ + --prefix PATH ":" "${stdenv.lib.makeBinPath [ gnupg1orig openssl ]}" \ + --set-default MAILPILE_SHARED "$out/share/mailpile" + ''; + + # No tests were found + doCheck = false; + + meta = with stdenv.lib; { + description = "A modern, fast web-mail client with user-friendly encryption and privacy features"; + homepage = https://www.mailpile.is/; + license = [ licenses.asl20 licenses.agpl3 ]; + platforms = platforms.linux; + maintainers = [ maintainers.domenkozar ]; + knownVulnerabilities = [ + "Numerous and uncounted, upstream has requested we not package it. See more: https://github.com/NixOS/nixpkgs/pull/23058#issuecomment-283515104" + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix new file mode 100644 index 000000000000..ba8f272203bc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, fetchpatch, libiconv }: + +stdenv.mkDerivation rec { + pname = "mblaze"; + version = "0.5.1"; + + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv ]; + + src = fetchFromGitHub { + owner = "chneukirchen"; + repo = "mblaze"; + rev = "v${version}"; + sha256 = "11x548dl2jy9cmgsakqrzfdq166whhk4ja7zkiaxrapkjmkf6pbh"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/leahneukirchen/mblaze/commit/53151f4f890f302291eb8d3375dec4f8ecb66ed7.patch"; + sha256 = "1mcyrh053iiyzdhgm09g5h3a77np496whnc7jr4agpk1nkbcpfxc"; + }) + ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + install -Dm644 -t $out/share/zsh/site-functions contrib/_mblaze + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/chneukirchen/mblaze; + description = "Unix utilities to deal with Maildir"; + license = licenses.cc0; + platforms = platforms.all; + maintainers = [ maintainers.ajgrf ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix new file mode 100644 index 000000000000..2fb30e5ae6ad --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix @@ -0,0 +1,28 @@ +{ stdenv, python3, notmuch }: + +python3.pkgs.buildPythonApplication rec { + pname = "mlarchive2maildir"; + version = "0.0.8"; + + src = python3.pkgs.fetchPypi { + inherit pname version; + sha256 = "1din3yay2sas85178v0xr0hbm2396y4dalkcqql1ny9vdm94h6sp"; + }; + + nativeBuildInputs = with python3.pkgs; [ setuptools_scm ]; + + propagatedBuildInputs = with python3.pkgs; [ + beautifulsoup4 + click + click-log + requests + six + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/flokli/mlarchive2maildir; + description = "Imports mail from (pipermail) archives into a maildir"; + license = licenses.mit; + maintainers = with maintainers; [ andir flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix new file mode 100644 index 000000000000..fc8c167e9849 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl, makeWrapper, unzip, jre, runtimeShell }: + +let + version = "1.9"; + name = "msgviewer-${version}"; + uname = "MSGViewer-${version}"; + +in stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "mirror://sourceforge/msgviewer/${uname}/${uname}.zip"; + sha256 = "0igmr8c0757xsc94xlv2470zv2mz57zaj52dwr9wj8agmj23jbjz"; + }; + + buildCommand = '' + dir=$out/lib/msgviewer + mkdir -p $out/bin $dir + unzip $src -d $dir + mv $dir/${uname}/* $dir + rmdir $dir/${uname} + cat <<_EOF > $out/bin/msgviewer + #!${runtimeShell} -eu + exec ${stdenv.lib.getBin jre}/bin/java -jar $dir/MSGViewer.jar "\$@" + _EOF + chmod 755 $out/bin/msgviewer + ''; + + nativeBuildInputs = [ makeWrapper unzip ]; + + meta = with stdenv.lib; { + description = "Viewer for .msg files (MS Outlook)"; + homepage = https://www.washington.edu/alpine/; + license = licenses.asl20; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix new file mode 100644 index 000000000000..f0b8fdcf8e2a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix @@ -0,0 +1,96 @@ +{ stdenv, fetchurl, fetchpatch, ncurses, which, perl +, gdbm ? null +, openssl ? null +, cyrus_sasl ? null +, gnupg ? null +, gpgme ? null +, kerberos ? null +, headerCache ? true +, sslSupport ? true +, saslSupport ? true +, smimeSupport ? false +, gpgSupport ? false +, gpgmeSupport ? true +, imapSupport ? true +, withSidebar ? true +, gssSupport ? true +}: + +assert headerCache -> gdbm != null; +assert sslSupport -> openssl != null; +assert saslSupport -> cyrus_sasl != null; +assert smimeSupport -> openssl != null; +assert gpgSupport -> gnupg != null; +assert gpgmeSupport -> gpgme != null && openssl != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "mutt"; + version = "1.13.2"; + + src = fetchurl { + url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz"; + sha256 = "0x4yfvk8415p80h9an242n6q3b43mw6mnnczh95zd3j0zwdr6wrg"; + }; + + patches = optional smimeSupport (fetchpatch { + url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.10.1-2/debian/patches/misc/smime.rc.patch"; + sha256 = "0b4i00chvx6zj9pcb06x2jysmrcb2znn831lcy32cgfds6gr3nsi"; + }); + + buildInputs = + [ ncurses which perl ] + ++ optional headerCache gdbm + ++ optional sslSupport openssl + ++ optional gssSupport kerberos + ++ optional saslSupport cyrus_sasl + ++ optional gpgmeSupport gpgme; + + configureFlags = [ + (enableFeature headerCache "hcache") + (enableFeature gpgmeSupport "gpgme") + (enableFeature imapSupport "imap") + (enableFeature withSidebar "sidebar") + "--enable-smtp" + "--enable-pop" + "--with-mailpath=" + + # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail + "ac_cv_path_SENDMAIL=sendmail" + + # This allows calls with "-d N", that output debug info into ~/.muttdebug* + "--enable-debug" + + # The next allows building mutt without having anything setgid + # set by the installer, and removing the need for the group 'mail' + # I set the value 'mailbox' because it is a default in the configure script + "--with-homespool=mailbox" + ] ++ optional sslSupport "--with-ssl" + ++ optional gssSupport "--with-gss" + ++ optional saslSupport "--with-sasl"; + + postPatch = optionalString (smimeSupport || gpgmeSupport) '' + sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl + ''; + + postInstall = optionalString smimeSupport '' + # S/MIME setup + cp contrib/smime.rc $out/etc/smime.rc + sed -i 's#openssl#${openssl}/bin/openssl#' $out/etc/smime.rc + echo "source $out/etc/smime.rc" >> $out/etc/Muttrc + '' + optionalString gpgSupport '' + # GnuPG setup + cp contrib/gpg.rc $out/etc/gpg.rc + sed -i 's#\(command="\)gpg #\1${gnupg}/bin/gpg #' $out/etc/gpg.rc + echo "source $out/etc/gpg.rc" >> $out/etc/Muttrc + ''; + + meta = { + description = "A small but very powerful text-based mail client"; + homepage = http://www.mutt.org; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ the-kenny rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix new file mode 100644 index 000000000000..274d9d4718e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix @@ -0,0 +1,86 @@ +{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript +, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl +, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell, sqlite +}: + +stdenv.mkDerivation rec { + version = "20191207"; + pname = "neomutt"; + + src = fetchFromGitHub { + owner = "neomutt"; + repo = "neomutt"; + rev = version; + sha256 = "147yjpqnsbfy01fhsflxlixk0985r91a6bjmqq3cwmf7gka3sihm"; + }; + + buildInputs = [ + cyrus_sasl gss gpgme kerberos libidn ncurses + notmuch openssl perl lmdb + mailcap sqlite + ]; + + nativeBuildInputs = [ + docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which + ]; + + enableParallelBuilding = true; + + postPatch = '' + substituteInPlace contrib/smime_keys \ + --replace /usr/bin/openssl ${openssl}/bin/openssl + + for f in doc/*.{xml,xsl}* ; do + substituteInPlace $f \ + --replace http://docbook.sourceforge.net/release/xsl/current ${docbook_xsl}/share/xml/docbook-xsl \ + --replace http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd + done + + + # allow neomutt to map attachments to their proper mime.types if specified wrongly + # and use a far more comprehensive list than the one shipped with neomutt + substituteInPlace sendlib.c \ + --replace /etc/mime.types ${mailcap}/etc/mime.types + + # The string conversion tests all fail with the first version of neomutt + # that has tests (20180223) as well as 20180716 so we disable them for now. + # I don't know if that is related to the tests or our build environment. + # Try again with a later release. + sed -i '/rfc2047/d' test/Makefile.autosetup test/main.c + ''; + + configureFlags = [ + "--enable-autocrypt" + "--gpgme" + "--gss" + "--lmdb" + "--notmuch" + "--ssl" + "--sasl" + "--with-homespool=mailbox" + "--with-mailpath=" + # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail + "ac_cv_path_SENDMAIL=sendmail" + ]; + + # Fix missing libidn in mutt; + # this fix is ugly since it links all binaries in mutt against libidn + # like pgpring, pgpewrap, ... + NIX_LDFLAGS = "-lidn"; + + postInstall = '' + wrapProgram "$out/bin/neomutt" --prefix PATH : "$out/libexec/neomutt" + ''; + + doCheck = true; + + checkTarget = "test"; + + meta = with stdenv.lib; { + description = "A small but very powerful text-based mail client"; + homepage = http://www.neomutt.org; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix new file mode 100644 index 000000000000..370c4f838870 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, + gettext, openssl +}: + +with stdenv.lib; + +stdenv.mkDerivation { + pname = "notbit"; + version = "2018-01-09"; + + src = fetchFromGitHub { + owner = "bpeel"; + repo = "notbit"; + rev = "8b5d3d2da8ce54abae2536b4d97641d2c798cff3"; + sha256 = "1623n0lvx42mamvb2vwin5i38hh0nxpxzmkr5188ss2x7m20lmii"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + buildInputs = [ openssl gettext ]; + + meta = { + description = "A minimal Bitmessage client"; + homepage = https://github.com/bpeel/notbit; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ mog ]; + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix new file mode 100644 index 000000000000..86aef5011342 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, pkgconfig, glib, notmuch }: + +let + version = "9"; +in +stdenv.mkDerivation { + pname = "notmuch-addrlookup"; + inherit version; + + src = fetchFromGitHub { + owner = "aperezdc"; + repo = "notmuch-addrlookup-c"; + rev ="v${version}"; + sha256 = "1j3zdx161i1x4w0nic14ix5i8hd501rb31daf8api0k8855sx4rc"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib notmuch ]; + + installPhase = "install -D notmuch-addrlookup $out/bin/notmuch-addrlookup"; + + meta = with stdenv.lib; { + description = "Address lookup tool for Notmuch in C"; + homepage = https://github.com/aperezdc/notmuch-addrlookup-c; + maintainers = with maintainers; [ mog ]; + platforms = platforms.unix; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix new file mode 100644 index 000000000000..d9eae3c9c503 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, gawk, mercury, pandoc, ncurses, gpgme }: + +stdenv.mkDerivation rec { + pname = "notmuch-bower"; + version = "0.11"; + + src = fetchFromGitHub { + owner = "wangp"; + repo = "bower"; + rev = version; + sha256 = "0vhac8yjnhb1gz60jfzg27spyn96c1rr849gc6vjym5xamw7zp0v"; + }; + + nativeBuildInputs = [ gawk mercury pandoc ]; + + buildInputs = [ ncurses gpgme ]; + + makeFlags = [ "PARALLEL=-j$(NIX_BUILD_CORES)" "bower" "man" ]; + + installPhase = '' + mkdir -p $out/bin + mv bower $out/bin/ + mkdir -p $out/share/man/man1 + mv bower.1 $out/share/man/man1/ + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://github.com/wangp/bower; + description = "A curses terminal client for the Notmuch email system"; + maintainers = with maintainers; [ erictapen ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix new file mode 100644 index 000000000000..64faee641f08 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix @@ -0,0 +1,85 @@ +{ fetchurl, stdenv +, pkgconfig, gnupg +, xapian, gmime, talloc, zlib +, doxygen, perl +, pythonPackages +, bash-completion +, emacs +, ruby +, which, dtach, openssl, bash, gdb, man +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + version = "0.29.2"; + pname = "notmuch"; + + passthru = { + pythonSourceRoot = "${pname}-${version}/bindings/python"; + inherit version; + }; + + src = fetchurl { + url = "https://notmuchmail.org/releases/${pname}-${version}.tar.xz"; + sha256 = "1pjmrnbn0iavm5pnw7wgfw5d6hg5i6miqfa6s7s4027vn94n3nhv"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + gnupg # undefined dependencies + xapian gmime talloc zlib # dependencies described in INSTALL + doxygen perl # (optional) api docs + pythonPackages.sphinx pythonPackages.python # (optional) documentation -> doc/INSTALL + bash-completion # (optional) dependency to install bash completion + emacs # (optional) to byte compile emacs code, also needed for tests + ruby # (optional) ruby bindings + ]; + + postPatch = '' + patchShebangs configure + patchShebangs test/ + + substituteInPlace lib/Makefile.local \ + --replace '-install_name $(libdir)' "-install_name $out/lib" + + substituteInPlace emacs/notmuch-emacs-mua \ + --replace 'EMACS:-emacs' 'EMACS:-${emacs}/bin/emacs' \ + --replace 'EMACSCLIENT:-emacsclient' 'EMACSCLIENT:-${emacs}/bin/emacsclient' + ''; + + configureFlags = [ "--zshcompletiondir=${placeholder "out"}/share/zsh/site-functions" ]; + + # Notmuch doesn't use autoconf and consequently doesn't tag --bindir and + # friends + setOutputFlags = false; + enableParallelBuilding = true; + makeFlags = [ "V=1" ]; + + preCheck = let + test-database = fetchurl { + url = "https://notmuchmail.org/releases/test-databases/database-v1.tar.xz"; + sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2"; + }; + in '' + ln -s ${test-database} test/test-databases/database-v1.tar.xz + ''; + doCheck = !stdenv.hostPlatform.isDarwin && (versionAtLeast gmime.version "3.0.3"); + checkTarget = "test"; + checkInputs = [ + which dtach openssl bash + gdb man + ]; + + installTargets = [ "install" "install-man" ]; + + dontGzipMan = true; # already compressed + + meta = { + description = "Mail indexer"; + homepage = https://notmuchmail.org/; + license = licenses.gpl3; + maintainers = with maintainers; [ flokli puckipedia the-kenny ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix new file mode 100644 index 000000000000..a0dbf98f2763 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl +, notmuch, openssl, pkgconfig, sqlite, xapian, zlib +}: +stdenv.mkDerivation rec { + version = "5"; + pname = "muchsync"; + passthru = { + inherit version; + }; + src = fetchurl { + url = "http://www.muchsync.org/src/${pname}-${version}.tar.gz"; + sha256 = "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb"; + }; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ notmuch openssl sqlite xapian zlib ]; + meta = { + description = "Synchronize maildirs and notmuch databases"; + homepage = "http://www.muchsync.org/"; + platforms = stdenv.lib.platforms.unix; + maintainers = with stdenv.lib.maintainers; [ ocharles ]; + license = stdenv.lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix new file mode 100644 index 000000000000..7382b97ba811 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix @@ -0,0 +1,46 @@ +{ stdenv, lib, perl, perlPackages, makeWrapper, coreutils, notmuch }: + +stdenv.mkDerivation rec { + pname = "notmuch-mutt"; + version = notmuch.version; + + outputs = [ "out" ]; + + dontStrip = true; + + buildInputs = [ + perl + makeWrapper + ] ++ (with perlPackages; [ + FileRemove + DigestSHA1 + Later + MailBox + MailMaildir + MailTools + StringShellQuote + TermReadLineGnu + ]); + + src = notmuch.src; + + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + + installPhase = '' + ${coreutils}/bin/install -Dm755 \ + ./contrib/notmuch-mutt/notmuch-mutt \ + $out/bin/notmuch-mutt + + wrapProgram $out/bin/notmuch-mutt \ + --prefix PERL5LIB : $PERL5LIB + ''; + + meta = with lib; { + inherit version; + description = "Mutt support for notmuch"; + homepage = https://notmuchmail.org/; + license = with licenses; gpl3; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix new file mode 100644 index 000000000000..8e1f67201207 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, gtk2, openssl ? null, gpgme ? null +, gpgSupport ? true, sslSupport ? true }: + +assert gpgSupport -> gpgme != null; +assert sslSupport -> openssl != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "sylpheed"; + version = "3.7.0"; + + src = fetchurl { + url = "https://sylpheed.sraoss.jp/sylpheed/v3.7/${pname}-${version}.tar.xz"; + sha256 = "0j9y5vdzch251s264diw9clrn88dn20bqqkwfmis9l7m8vmwasqd"; + }; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ gtk2 ] + ++ optionals gpgSupport [ gpgme ] + ++ optionals sslSupport [ openssl ]; + + configureFlags = optional gpgSupport "--enable-gpgme" + ++ optional sslSupport "--enable-ssl"; + + meta = { + homepage = http://sylpheed.sraoss.jp/en/; + description = "Lightweight and user-friendly e-mail client"; + maintainers = with maintainers; [ eelco ]; + platforms = platforms.linux ++ platforms.darwin; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix new file mode 100644 index 000000000000..f46e355cd570 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix @@ -0,0 +1,191 @@ +{ stdenv, fetchurl, config, makeWrapper +, gconf +, alsaLib +, at-spi2-atk +, atk +, cairo +, cups +, curl +, dbus-glib +, dbus +, fontconfig +, freetype +, gdk-pixbuf +, glib +, glibc +, gst-plugins-base +, gstreamer +, gtk2 +, gtk3 +, kerberos +, libX11 +, libXScrnSaver +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXinerama +, libXrender +, libXt +, libxcb +, libcanberra-gtk2 +, libgnome +, libgnomeui +, gnome3 +, libGLU, libGL +, nspr +, nss +, pango +, writeScript +, xidel +, coreutils +, gnused +, gnugrep +, gnupg +, runtimeShell +}: + +# imports `version` and `sources` +with (import ./release_sources.nix); + +let + arch = if stdenv.hostPlatform.system == "i686-linux" + then "linux-i686" + else "linux-x86_64"; + + isPrefixOf = prefix: string: + builtins.substring 0 (builtins.stringLength prefix) string == prefix; + + sourceMatches = locale: source: + (isPrefixOf source.locale locale) && source.arch == arch; + + systemLocale = config.i18n.defaultLocale or "en-US"; + + defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources; + + source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources; + + name = "thunderbird-bin-${version}"; +in + +stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2"; + inherit (source) sha512; + }; + + phases = "unpackPhase installPhase"; + + libPath = stdenv.lib.makeLibraryPath + [ stdenv.cc.cc + gconf + alsaLib + at-spi2-atk + atk + cairo + cups + curl + dbus-glib + dbus + fontconfig + freetype + gdk-pixbuf + glib + glibc + gst-plugins-base + gstreamer + gtk2 + gtk3 + kerberos + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXinerama + libXrender + libXt + libxcb + libcanberra-gtk2 + libgnome + libgnomeui + libGLU libGL + nspr + nss + pango + ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ + stdenv.cc.cc + ]; + + buildInputs = [ gtk3 gnome3.adwaita-icon-theme ]; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = + '' + mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}" + cp -r * "$prefix/usr/lib/thunderbird-bin-${version}" + + mkdir -p "$out/bin" + ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/" + + for executable in \ + thunderbird crashreporter thunderbird-bin plugin-container updater + do + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$out/usr/lib/thunderbird-bin-${version}/$executable" + done + + find . -executable -type f -exec \ + patchelf --set-rpath "$libPath" \ + "$out/usr/lib/thunderbird-bin-${version}/{}" \; + + # Create a desktop item. + mkdir -p $out/share/applications + cat > $out/share/applications/thunderbird.desktop <<EOF + [Desktop Entry] + Type=Application + Exec=$out/bin/thunderbird + Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png + Name=Thunderbird + GenericName=Mail Reader + Categories=Application;Network; + EOF + + # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980 + # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE: + # commit 87e261843c4236c541ee0113988286f77d2fa1ee + wrapProgram "$out/bin/thunderbird" \ + --argv0 "$out/bin/.thunderbird-wrapped" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \ + --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \ + --set SNAP_NAME "thunderbird" \ + --set MOZ_LEGACY_PROFILES 1 \ + --set MOZ_ALLOW_DOWNGRADE 1 + ''; + + passthru.updateScript = import ./../../browsers/firefox-bin/update.nix { + inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell; + baseName = "thunderbird"; + channel = "release"; + basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin"; + baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/"; + }; + meta = with stdenv.lib; { + description = "Mozilla Thunderbird, a full-featured email client (binary package)"; + homepage = http://www.mozilla.org/thunderbird/; + license = { + free = false; + url = http://www.mozilla.org/en-US/foundation/trademarks/policy/; + }; + maintainers = with stdenv.lib.maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix new file mode 100644 index 000000000000..5cfb14d2e2ff --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix @@ -0,0 +1,615 @@ +{ + version = "68.3.1"; + sources = [ + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ar/thunderbird-68.3.1.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "17052536aa5e0a3e2aae2ef7bd07fb44abdb8871df0d5fd99b9c2965ef747d542601bd6088701b5af0fead05617073f5a496af2d6626f77cedc7fa3e8e2a1c85"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ast/thunderbird-68.3.1.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "218b923ec83a9c049d743ff75207b07619ea4368c0620a162eb2f48e094173b404c4a393327c4dc497ee951d97fc3010c424c3b186da0e1bb1a024d7f7b3769e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/be/thunderbird-68.3.1.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "74ed02a0e62a2eba57d2fec9485ff38974d8077c3a9e9b5f37bcaa5823a43ebde657f69f863ba72a079e9f3c0e8139dc12b192604c55024a48b1929b39ade504"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/bg/thunderbird-68.3.1.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "95869b21e7141624310a9c6d0a021e84a507f13a06fbc68ece2eb20c8a302ccfae8dfe3fd00141aba0fec3becd5949520436d1a637234dee504a3bb71ed6e966"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/br/thunderbird-68.3.1.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "8b76d5929bb1a45abe3d86b8725e268e67aa5bc427cdb2e6d3a60c3ae58dc0e1563fbe3b9a205836a71907fb0248ab4d8f9c11d5f646cb1a0ebb4a95aecb578f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ca/thunderbird-68.3.1.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "62e161105db38e5fc9bc55a9cc0edfb42982fbe8af9a01a9664638e5fefa06aa4304ce4ddeffe893007dbdee873772571b99b03644027f42d576ac9d00e978b9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/cak/thunderbird-68.3.1.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "f80101e3ac77d140ee27bd489174c61114b9f72c3b2185e1908d488f3f13c445a02d2c38ec897dcc24a66f87ebe2d76104d37ced482ea9fc1c7241edf38db724"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/cs/thunderbird-68.3.1.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "f4b27aae7c69c4a46c974f75f0f1a7a2154d422e236618df8efdf99859954b04c2b672c553fcadaaf07868fc95b35b75e678b855f5734d204cab32b0c20792ef"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/cy/thunderbird-68.3.1.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "5c94a45af181ab8f5c1f1c485a2f2af9fe82eca02f9a910326c69a555c5e3f7bdb99712d9efe0efeba3f2d8af30fe83f62191a4399434f442ffd7442f861fd08"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/da/thunderbird-68.3.1.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "1141851239c3808f6fd65a027e7656279c950de67bf02416e43e37baf96e25ae567122e7610baa02fcf168a3b8e3d8b4200493d835a7a40b08cf99b4d42feb26"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/de/thunderbird-68.3.1.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "e201a89c573416cb1ae5d3f6fa9e7dd5f9ab53e60eba55755c78d70545f77341ddd4d7298903e2e424c9f6a14c5e10138348250c843d95b91503132b7909063d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/dsb/thunderbird-68.3.1.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "a7f700781d233b78a83cfb35fd1dd2393acd10d685b3dc4b333580c2511946f5e44f057e7ba775160ac2c635b5a15db0bb3faf0e7e946c92d365025eee6b741d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/el/thunderbird-68.3.1.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "f88050e071131929ac728938674e1a77c938538634e6a11f7d085a577bcc7b49855cf568d1bdaf6b86a79052cd294d3cf7962650f11d066f5a98a3cd90856482"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/en-GB/thunderbird-68.3.1.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "314400d8f9cef4cb6d177b60824b371b6c135d0df5d5a69bf0d8870c3d51e88902df6404e7226abf5cba68de538f0b4019725c1a7f6f788270698ea0d26b75bb"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/en-US/thunderbird-68.3.1.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "6c8dd662d2e2d998476828247e5455219fce61c251a37d08ddfea4b5d78e236c85c61dd3304038d274ebbcfb442c15b94080df57fb002a3627961b204cf8954d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/es-AR/thunderbird-68.3.1.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "86a55fe5347382b5c607e29d9a1f7fcf15c5db97180fad4e643f2da0a11c98476688cbdac03e37ba8e3483cc5a65a802fa2b6913719083a529dc2ead08473991"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/es-ES/thunderbird-68.3.1.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "ffd8390320c7c8fd04dcaea219bc3c51be8af9c922b465e778c7a03d388cc496d9ce288fa6e9c2d5c2ef718f1e870929a7079f76c703961959037111f634db69"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/et/thunderbird-68.3.1.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "b8b7305eb644b5637fad17015dc6ef37f35ac2f238327589e50c6ddcb80e1fdd365451de3ee28fb5ac34e37ce3f69883a38464d799aad0cfa8c8da6a41b8ea6e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/eu/thunderbird-68.3.1.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "68b424b3b53f66efbc90543683ad83f76ecb8a2e0469c00aeb013b5828a95a88bef6de6d1809767238715ffb81495508b765a1a7b347810e69e51bd2d732a0a2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/fi/thunderbird-68.3.1.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "4088e2260609b14b8a8dbf6b60b3f88fd4fbdaa182da5671056333e01906a5dedfbf63f39cccf331de25ce2e905811fa6be6b25f615bf0244dff4f3b11a5fe6a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/fr/thunderbird-68.3.1.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "c986e334221e56f9c7b45a09bc3cb8ff2c8376ed363e52ab6421a468a050b9369206942830043aee9acc1b1f5ffbc03df649542c69e05d99a6ef4ee604bcae3c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/fy-NL/thunderbird-68.3.1.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "8ae6e8aacb6e7788fddb3169db4099a6c4cbf0ced65bd2892977a9c6a480de7437abce78dd526cf442aa9f6d56d369248252442249bc21e333e218a927fe852d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ga-IE/thunderbird-68.3.1.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "8528b198a821ed03d859c1a05704cfcaef3a809205521a07fb08422e93c0bb46e205b26466223b1dd5722ffcb2966298f6b3d98dbd31a211bd9862e536c7cc48"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/gd/thunderbird-68.3.1.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "273acb355638ae7f8d14bf9ad8a9f55ed31c64c2f08a2e10eb987b2a061b77e5b87616421375346dc12c23ceb134c00b607ebf96de6bd80c745bdc19cfbe3e47"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/gl/thunderbird-68.3.1.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "d7ce4c44846140365cbc950429feda5204c5683ca760aa70ba7c5d81c5213968ea0bd81d6eab304b383778be7bcaf041784f4d91a4b1f7cadea45a4a102e3bae"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/he/thunderbird-68.3.1.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "a7847097dedf3337211a79b18323b3cb81d208286dfbb4371cbb306a52923461e016587e62a9e74ef1cf9eb21a1d8ae961ef10822c774ffbf6d4ef8c66789e24"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/hr/thunderbird-68.3.1.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "e92d6ecd1c32e411d5f8af94aeb9f5880e20f752ade3d30357770d9e35af8bf68f14db25503a0d52a58e6f36687f0ac4666e320db942f69700d239a0ad4bbb3d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/hsb/thunderbird-68.3.1.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "b13eb09fef032e74424b7ec24d551e1e4de12fbedc6a21786165ba7c4799fdea2bfe9a7142cb218af2dc9199ac5412146a3c954457d0c3a1801031733d6c65c0"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/hu/thunderbird-68.3.1.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "d507f27473f7e1213208405ec8b266e0bd3f91ff23ac026180361445d59e92d69838212343684d12dca6f05c15ba2de19fd60062395b1f791ff6954dc6754097"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/hy-AM/thunderbird-68.3.1.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "ec1ecb62ae98887a49d5da9f81c97909a9d59a01b90c0435e8bd9efe682266faef88845f810a95af109e621d4a56b404e9283ae3a9c9104d6eb55afad4ae14dc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/id/thunderbird-68.3.1.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "1a96c8b40bf843ccf8fb1223a5f1f1f4418184b63e38c1a6b2c7f03fd43b97acb81917be5ba1acad5bf67fcecbc5374b56d7de34b651b21738dbfbe009ac36d1"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/is/thunderbird-68.3.1.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "0f11e5aa11bc4ba7ab2064d69d8b0770c0db7b4dae5821a3d0c35257777ab690b114eb6c2d5e8dabb1efc17f9f5668ba32e824f3bc1650b65b9835758faf1d0a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/it/thunderbird-68.3.1.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "2c3387fde0b35db4995ddad6ad3c4cefadea2f53eaa44a9dc34747fef8188c61e3eb3142952faa9a3800bcfab6ab0cd01268b5d5f94083e3fc0efdf72e6cc137"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ja/thunderbird-68.3.1.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "139d60c3aa21e5f9bde72b1bec2954ba1eead8a3806ffb54269211e44c343ebeb9bd2ef12a35c0e1dab004e44248454fea5e96b8c9f936d2b33ea91ae5969f95"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ka/thunderbird-68.3.1.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "2ac9802728c2d5d9a380c28af124d0f983d818d3f4dd0d8465e7c14278db81b0eaf7bdaeed408920e64644cbf6857641791c8d02cb0c48dfeca663d5f2658b42"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/kab/thunderbird-68.3.1.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "8105ae7b35653796128da3bb34200787649bf5ce0bdc4da9dbd43b02b64c7c5f0aad4c26413032b63fd0eb4600cc2992464da55da953dbb358b0ddfd1a676f90"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/kk/thunderbird-68.3.1.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "80d85a5d30309964a6e139eb89a75fbddfe4e3ba2c8d8990040f2e9f25ee20d945e43a0de365ab44d6d54c593ba4e0bcb427334e3eaae2750e6fe4c6300a13b8"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ko/thunderbird-68.3.1.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "034769456f8c78ae75b4ca094838c1398ecfeb570620f6f7f9a6beb68df1fa91fb6ff47296982edd720fc38c04a795525d1276c23172cbaae05cd8f367f6658c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/lt/thunderbird-68.3.1.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "7726cc77d6346d9c80d6eefea6898a7a911d3ffc0f11c990183b90a21b216f0f26b80a01861c5d0be5e07a56cd6442cc4429cd8dc5e1274e1fc1086068aecdf7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ms/thunderbird-68.3.1.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "78ddacb75e28022d0bfc9add0ec0f397bee3b69c924d5f8a9731d74bbba150fcc160a84b67c27879560aa572a423c4973390b9bb221d8897460cb3ae6d1a4a5b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/nb-NO/thunderbird-68.3.1.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "3b70a504a6e2ac0ff8e7835b43b8dd1527ea934354e3cd97610e26ed60b3b4b2565ef6213a11ef9a5b58307e3c836f35d3359bbf79a4187ffdf58ac8718feb6a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/nl/thunderbird-68.3.1.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "309be3866ced93396a528645c286e9ba9c031031a2cd3d608edb99b19b285a6ee313ff25067d25774d0f55c4a93c60dba4ab81ffca67786dca0873294ef96681"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/nn-NO/thunderbird-68.3.1.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "026ba56748d96225c801aa8fa12e3c88b66ae9327155831e86ab5109afdacb69883b63a855c118c803f267cc04af91362cbb7155bec5eb23c28422c592f4b583"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/pl/thunderbird-68.3.1.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "53e64d86f139bc8463e63252ad52970a7eee25f281ca39ac73cf34affc302e0f9b620115d953fb40c661e8dfac08d219d2b65932ddbd93e4d9e3467f899e329f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/pt-BR/thunderbird-68.3.1.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "8625c47ed663c68bdc25e16658bec052582ef48e582a7f932d072e29409554375e1787d36d2269ef32bbe9f9b0408530450c20b3be8c2526b96986308a87ff18"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/pt-PT/thunderbird-68.3.1.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "a17325aee249eb11cb8af4b787dbaa93f3c68fb57c6c27a7771ea04921f40c00a60b43f13fa0eb88c42a937b0c8d7b6697c74078be2427fb35702b7405e6c866"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/rm/thunderbird-68.3.1.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "dea2186fcc46d3a795430a4fb15c3f50ff04eda053a54a1949335134b28044dd961bd6d52a5e8237aaffbc60ae6adaba2387a3b153362bfb7572046e002be0d9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ro/thunderbird-68.3.1.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "94e30dc37fbc38528908c2e434c15a02e6e95e279b6fe92d9ea8df1b8ccc988f95f1fd5129e02c20be7bdd5e2201037ad47209d75f5fc005bc670a023aae143b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/ru/thunderbird-68.3.1.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "c4f8b328c497760ee9149de6407a7bb9d1f2e63b8482ed279d70f693f5645ed688b8e5c4ee9a0d5a4e593819718f5e6764d1bc5e0b14061ecf03a0e2eca609b0"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/si/thunderbird-68.3.1.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "80698a5bca63711db2f2f08617868803c99ce4afe2e0998ec98fab255bf632833e7d6cc84affd5306469854b29ade93eaf568fc870792dee29397335ea6c2e38"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/sk/thunderbird-68.3.1.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "844d63101e62f7525bfe7e47cef0017aec6a8aaeb3693a345b247a50749c078f3d7697ee7ea0c758af48f2d12e354d0f0ad939959bfc8c813761e1cd092a065a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/sl/thunderbird-68.3.1.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "5641b327576f56e44506dbcf4234e2885df4c1de482ca5acabafc29bd9885b263818eeb5d0c49693194721b03c6572ddb4ca8136c88438db457a80f442bb153e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/sq/thunderbird-68.3.1.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "070cb427f6e80935ed43f27145491c7a8d6eca7b54a69958912aeec724699362c4beedd8067ad94f30dde2b74f5763ae5c4375320c7aec039716e6274a540fd2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/sr/thunderbird-68.3.1.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "1966fbae58c58112afcae545d36e03d0555d6ca3e172ce6077c32b692ef049d3304f44534f7d2d05ff8d9877cef6297aecfe3aeb03bf6727d544f01475d731a7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/sv-SE/thunderbird-68.3.1.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "5a07a3e16166fc7b0d8333279250f08dda228b588f5437a78469a30a3a2f28259658eef183dd7fbc595ee8133297cbaba5912a7260db4e5ec3bf3d45b0b51b49"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/tr/thunderbird-68.3.1.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "f04678b9d30747a44279f5bb7660e5a4e24e48545054889752268dd130f184f00089ebdb74f1439f2d2861acc3d326513c483a5a82b0a2857696438783494986"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/uk/thunderbird-68.3.1.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "7b812fe4736d064a8854c52d7f4422fe0cbe1a82fe45d04a1713e5ac961e35e8df85fd0690e2b6102f631f64b487545b5886d9033cb5d26fce95dcb444a4312f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/uz/thunderbird-68.3.1.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "0f1d60b83e48ebc2ee38e24aea951d7e1b17e7ede4145ba3170380b51479271d04f32da493e3d9eda751c41974320d2c3e75587fdcd9fa716d9795bde597d0b9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/vi/thunderbird-68.3.1.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "ef8f8aa5f676d9b629ad0491be1767d5a66f25cccd1cf4e089cd48b0dc91efb4be22ee037b21645236b49f0c1d5016e89285dabafcca9a9dba27dd272cea7559"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/zh-CN/thunderbird-68.3.1.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "15eb738721b6cb0bbcc9547422ff89a1f3d9b28abddbc0c386a56ba44d91a1eeade1a4367aab0532b37b009ba7a29e8faea42cf84b320155defcae22ae113e46"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-x86_64/zh-TW/thunderbird-68.3.1.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "012a043f5c66eb76876dfa44925751f37e7cd149dd7158cef2121c73e3bce714443663ba4fea011879e7c80d6a653d7cddfa889657b2ee6d6f62a287c3d17507"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ar/thunderbird-68.3.1.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "5beb572e48d06893a38c17e7b5c9bae1f6a4f74e9d5f36137f73fef085c6e1a5583f7d1ddf1efa587479e682eeec96999f2c5ee82827665f27b963f242c87710"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ast/thunderbird-68.3.1.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "f0c5bfb629f594fe83692133496526df6d26147ea392451f9c279545cf2be8a160f6a9a1f7bdfe8684b099223764c5e0b3d751ce64e92eed7005fd970dc5dfcf"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/be/thunderbird-68.3.1.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "446102c112be7dd92f1bcfd377c88b7801f0aad56f0b7f36ad18aa4bacd51e68ef3a6caf758465c42d0bc0d19d7845514a4f8920a98910244a73769c1177cc63"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/bg/thunderbird-68.3.1.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "455f22009b00a8ab2afe829181fa0d2d4fe973bc595a999da01521d514f2c4ea3df203e439426ce3bdd389e58f3c954af15068dcffbdf4b0d2988f197703cb1b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/br/thunderbird-68.3.1.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "56c5dd9bbb19cde280b2b0c6cf4835dbfa4cf72f2dcaf5cef50e5d13e28aab99fd42c716c9fbbe5ef6b571e22aa0d6c7e82bf24d14746428547747026a41355a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ca/thunderbird-68.3.1.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "c35b3bd4752b3cd72347eaee3a48d288e9c0a65ba9c50d2da80aafab0d57df7315531941e89c1ce374ba3f2171553e465b8f1a653acf0032aa08cdefd06399a3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/cak/thunderbird-68.3.1.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "ea7b2fd5abc216603897264efbd3501b5eadf4d0714dfa00ee351c53dd4595de5ee1f314bffd86a8a3e5dd92548d5c1ae28339e9bb0c32be2fe05f1279db009c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/cs/thunderbird-68.3.1.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "24e07fab3d550a3c5bf3e5c649dadf5466d2f7ea86bf607173802385f2a79454aebedc4ecff7d25c8fb86ebc7594a29ae2cce6cfa551cc3c0ddc165fd77a350b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/cy/thunderbird-68.3.1.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "36c2b67b0c88cd2341ad6dab022afe7a5d37a2796fb75fac6014bac9b4b81e7734ab8d803bd97846bcf6b16e1e15921ea7e983b07fe77ca52d51a9819d785f81"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/da/thunderbird-68.3.1.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "c200e146778c1719b2ef1c31cf3b3a5cad8b07cd4f773d1e889a6fac8f6a4cc3700bbf8d108eaec90f8319056c036719601bebcdc975ac4ecbf86b962d65732c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/de/thunderbird-68.3.1.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "ebc55f82e83dd9d17bfcb8c5f471418ca561bc5acf01ec08251dc7c0715ce0c5dd2fb1ee28c2e92e1dc9b24b6fc8ecc1902a5e78e1b23967d683e2825c92aead"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/dsb/thunderbird-68.3.1.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "9f67dd9f57b0f1289cee31750409b14fef52202c4cc205fa7426e81ec8f262f8d39786ee4750a47cc100fff133063a5a16c67729871e86eaddd1fcfde419f7ae"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/el/thunderbird-68.3.1.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "6b9624e4779d1720d7bfd6d5ac72affb2559ea730222edd85322d17216a6d0491a745a15e98d1a5bb8b68df9bc6ba33144f9e4af1558844aba98583051a07f0d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/en-GB/thunderbird-68.3.1.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "9e8ff4441e1f0813f7a797c7815961f229f6e4bacb3090e3417546d3c62274d94b7bcc7cd4e83319f456024fcbb6d4f5a1d347d8789d6cb5c530aed2369bd18d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/en-US/thunderbird-68.3.1.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "413614f1508befe9f5b518125bdb53791d2fc86acabf899f7d48ff645f02f09d74e751671be4e1a5aba8d816d3f45fd5f3cf5490fc037d87596a10574301af43"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/es-AR/thunderbird-68.3.1.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "2ae7b1883b238727d2fa6261c7eda3bd428c996153b1cbb468f371e5fbf9f2101e4e2c078246359659fd495ad3ba80e71437aeb6157799225dbffaa7b7462f25"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/es-ES/thunderbird-68.3.1.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "927801de4ffc11354994cef415b231b967d8d70326c86ade52432287c8a8a10756974e3286b8c9b372c08db2530c0e28be7913537ff4d83a80c7a69fbe191959"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/et/thunderbird-68.3.1.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "e800b51e43a0e4ea23442419f51a17de6a0695bbbd03c2b5431097c1438befd31cf2e07b70ea4ddfdc02a68494d56e2263a5f6d97f84b9d077ab600a6e3b7d4a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/eu/thunderbird-68.3.1.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "deb4999da8a2a5bb6b695666581f544cb33d844a4a69fb802802c9eeef96fa945faeb88311ceb10fca4762c98e0134ff09705b3c76ca4f1b25f342fea048f69c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/fi/thunderbird-68.3.1.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "c6913908c29f26242062ed647838d07a70183ede0712b5542125b121506ddffc6454ada2557d2bf5090b4d5f5a5f94300b979e3426c57af8949326bf4ed9a3c2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/fr/thunderbird-68.3.1.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "53e65c88271b04f4b73de9b2ce32020da0aa0f27ccc383d6a567f65639a4d9274f7699506115893029f150969554aafa2e09ed97a345e0f5c9ebce0e33273003"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/fy-NL/thunderbird-68.3.1.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "197182e6f8c024f1ad04e157bb33b9e9c2742adc58177434b070454de1d7fa529f7f4b7738b43bd7c5167774666de23c4031ad5418ab828ea354248351eb4b98"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ga-IE/thunderbird-68.3.1.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "4001e0b11f7d9aff506b84bbe183d8d1a6b9f9db948b345ee302f5327631def91bd28ed101905bf024e3294c3c4ca3e80286b62dd42895d4845a98f321fdb27c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/gd/thunderbird-68.3.1.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "1059be94966f3451ec366ff7490face91f4af446f072356ec6f34c34b18df0a8b55577a074cd3ac55a631803bc2e6af1f7de50d3d6c4e52577f3d6990485ae45"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/gl/thunderbird-68.3.1.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "405f4c81edaf4d00925966c22f7c85f0aed9b01ff362e93977a561e36ccfb40ffc7ef5569c580f1be48e731aa44fdc3c182b740342a8d5470a425c58d87edfe9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/he/thunderbird-68.3.1.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "87c6e427f40603a68f86aed839ae7b06e488ebe6f20838a49ac967ab08d13a715621fa20c103a8f9511a8aca1d42b89c8329fbe0334ebc64b03e8bbe47ca3ca6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/hr/thunderbird-68.3.1.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "8137ea66317afac5c40bf81b49195662a3aa7fff827bf9c5da1aab46cd41bbf1237a5205f5be50faf456cbe8a8e95abdada90b44e6a31ee9b48b21144848ad40"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/hsb/thunderbird-68.3.1.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "76f99828d3716d209e2fc2220f1a42a9e2de7ae905d833f286a3161f20bd4b9f015108a1c2d7fe5bee5aae11289568516010f347929e8f504601b96dbb3b051b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/hu/thunderbird-68.3.1.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "fa73fe24c69419e38edf786c3cb2085038f11b8071d03958ae82468a7782c523382784c4bfbb686db167b2b16059f4faf73df2faaf3ffcc94f00abf25e498c3b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/hy-AM/thunderbird-68.3.1.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "4e0c4d4cdedc595d73d2ef5618ee89018a574ed56055545ed41015bcd7fb1f8ca6c2e9f9916f09f043a62259f71b1a1b5e49ff59d3f7e2d58ad735b1f059896a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/id/thunderbird-68.3.1.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "0c53ed9927037db892c37f6b8c930af53c49d9325f35df7cffafab07500d8b3a76708ee01742b63ebbe952fd6e95e2e90d2445d06bdfcc86d293722d2c472609"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/is/thunderbird-68.3.1.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "fe9da6b03a962cf613e46613dca0652a17e27f1084ad60b26d9b301ff8a81b8e9b7c81222ea9aa1c5ad50bd5a0b8baa565d70d479712abae4618724e2c64237f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/it/thunderbird-68.3.1.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "a309f5cb7fd7e2187470fc46ffb008a829f5e33ce888afb3c015ce741d902534cc09a3338f3649223b2fef84368108e0fd1d5852c3fcc0dca0abbb1853c626d5"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ja/thunderbird-68.3.1.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "83af58ca30ebca413ab71cfc033ee3d7589088e73d739a89a81441725b67d1fe271db806538b0882ae802cdab45480f7c6d6d04f63e10b9a5dbb62c497a50389"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ka/thunderbird-68.3.1.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "9ca88cc5a66041e1db771c7551ce9f246b8eb25946c3a90988615287f4089c5e1c0c9dc89ce776d5ab7f3015005229aba3dc724efde954147411315c8e964f17"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/kab/thunderbird-68.3.1.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "b7ed2fbb279c5aaaed7b219bd2e3097a9b2f524df91b37c9d68d2b94187323cecfc92b176d6205a4d184f64273b75eb4121a882583a0e06a9c07b09501f06841"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/kk/thunderbird-68.3.1.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "86215ba52d4bae535706159c60dbbe471f0656d4c69473771566205fb1a700111bb8181c156fa3593cfcd32e0a8d2c51b72056277cc2d6946cfb797d24c67b47"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ko/thunderbird-68.3.1.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "d97cce3025365dd274903630aaa096e89ebabdbf3335f03a3593c90f372b2df100df059391f16c7d1262dddb7dcc4e2e48b104e10a5735767d0d359f1d8f27ec"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/lt/thunderbird-68.3.1.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "6e4f5e35b61589a10de95f2e8269893a061ba26fb19fd072643764f5c5b476c807f149abb9557c646e38dd4cffd63f6a1cc343803ea4bf3b2ebdec730ccca64d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ms/thunderbird-68.3.1.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "32149a9dd72da68862e44203e1e89f3702cf01203f5a6c6362d696dfd6de8ac850f6aca273a8bc8b2e6146ef9987b1c054fc738942f64fcfb5d3f98016cbee38"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/nb-NO/thunderbird-68.3.1.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "2a28c4585dba6642f5216228380dfd4b3ff0b7cfa23bd44feffdd0baea3dd352d290d6d236547fb8e7f6e7d7c724607e472d718006884f35a00cd257f91e83d6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/nl/thunderbird-68.3.1.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "055f6e6eb1a6cb84e1a3268b394eb514ba45278a26ff507339d00f5b2fbc8f1704bccc59a691d8068e94be9a84296640401146ab522a393e0db2f32f2d31490d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/nn-NO/thunderbird-68.3.1.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "a0fe6bddc1babd7671da9105e5870edd8bce128adacaee0f8f31b904c022d62d593d32863d4c8e836dab2f2cfa11e79d2cdc0f71bf0909f44b46b7883beddecc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/pl/thunderbird-68.3.1.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "6bf2693ac1dc360cb0af200fa07cc59d8a85e1da3db62e90dbb372e6ea92551224ad638dfaf0789c006b7e6800e18bab3f8a787e58aaee1070e7e799733bd0d1"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/pt-BR/thunderbird-68.3.1.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "d428949e8e1157201e068127cab265a546d358c0015341cfb489d2ee212675dfb3b5b837eae90cc50a3d997cacaa92a7b0777542e6aada37b29df16644113d7e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/pt-PT/thunderbird-68.3.1.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "9d03c8563c16a1b765890e3d45686b02f8cf222628d44c2abf8069308e1c5698c4f7dce34a5dfe872cfbfed9f37c2ed9483b84fd56c85d1e9a42ef77a31297a6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/rm/thunderbird-68.3.1.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "307b2858f594ae685e0800a6c17c498f239e848e2c7c2df9d360b0bc34716b51e6ffd405614428d213af22e4dec188f2ceaa0ac9b88ac70504473c6182c52191"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ro/thunderbird-68.3.1.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "711d7bbffd932f26e2ff4001ee72147daa247ab4952f5b7dd5bd382df59f0f21edd18e20aeb5ae74f3cb4dec6f1d357e3ce479607b8b049088b5126829e66e96"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/ru/thunderbird-68.3.1.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "1983e078d89de73e9767a03321278dac6adbf3684a0b06d9073a79b765a7abd1602a90e7a69774d878c3fc3ed2819a6cac0ea55e662a03d85242b2f2f5897355"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/si/thunderbird-68.3.1.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "478a7faf1aa49f3416e0191bd733b1bac609cd5fc422e1ff5a6b45adac73572d32a12460c4577f3c9037fcb82f2bf672399a68b161d8e1d2f76a8b20ed272a44"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/sk/thunderbird-68.3.1.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "11754a89286dfc86868b6373ac73948efd239fc91dde87007ba07b7d62aed780ae6030818a8e3803098c2a8881705b1e39ac517e1883ff3064e2d37d5dd13caa"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/sl/thunderbird-68.3.1.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "4f4142f9e0673eb4f53c21027f1ba74c02cb0ffce2894f2cc077d299b082da554bd972811daef73c14281cdad2de3af9ae2456032cb3dead186b75cd27ece020"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/sq/thunderbird-68.3.1.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "cdfc9cf530d813a69073f481dca6ecbeb58c3e5b90d1f682f2ef84b2e0ea4b3c823e88704ad781e9b29e7cdb98732c66d8fd6182f7b721b18a29ceef75174c12"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/sr/thunderbird-68.3.1.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "81f6a3376db8db3eac012fe4b13bc9a47107cebc4114627ba1d6aa06007bba83b7f8348543b30056658a0080dd9e710ec8dff039d5383cd4cf7c91b4c2337f87"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/sv-SE/thunderbird-68.3.1.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "4ce8d5244836c9935cf8c3413ec5189e9ef952c207df5d5cf83772f0d5e2d64519674344aa45838abd2c23a19a6170a213c4c76e57ccdd94efa1c238401e9a3b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/tr/thunderbird-68.3.1.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "648d8e03df497c67254a3757b52b555f032a4637f54a24cbd67d6c51a99db8b758c76e0b2c9523bd43a835c979f57975cc6d8df661b3d10526b33b3d1f535a63"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/uk/thunderbird-68.3.1.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "7a121928cb1bb2f47db14bfe06a738249041e3a9ddb90895a9e9db614cc22980a5da1c0d6ad0e8f534a345c1765fd8240a307c0c8409c1554618ad822cd9c20d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/uz/thunderbird-68.3.1.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "5a79dfeed1e2ab362df3500f94c177df5ec7b2a266c3f1362af5f74c74a6760deb85a0ca822a3777b6236639495d8e0c52203024582626d8fc4a6d5de18f1c1a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/vi/thunderbird-68.3.1.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "4a88c3605b365265fc0c807b753a7b5b7fdb1ac2dfc781e9a8457690a5ea11a26eda39e617bd12e67d86ba26fd28f27088404e17af286546978abdba9349b71d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/zh-CN/thunderbird-68.3.1.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "0499ab6f076c44901122c302208d919a977a5ae68df4780926efecdb4281bc085ee1e6a3e7f889dd2fe90d16f0ea939b1447203ad8a2950789e1972262149724"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.3.1/linux-i686/zh-TW/thunderbird-68.3.1.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "b1456490911eead3f8afa640cff10f33673631df6431e2074fcf7baeea3f128a60a1e07a5d9224bc2776aeb3f1ab3655e27f51b16ed118bb8437ef50797930ac"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix new file mode 100644 index 000000000000..a6c743a85ed8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix @@ -0,0 +1,341 @@ +{ autoconf213 +, bzip2 +, cargo +, common-updater-scripts +, coreutils +, curl +, dbus +, dbus-glib +, fetchurl +, file +, fontconfig +, freetype +, glib +, gnugrep +, gnused +, icu +, jemalloc +, lib +, libGL +, libGLU +, libIDL +, libevent +, libjpeg +, libnotify +, libpng +, libstartup_notification +, libvpx +, libwebp +, llvmPackages +, m4 +, makeDesktopItem +, nasm +, nodejs +, nspr +, nss +, pango +, perl +, pkgconfig +, python2 +, python3 +, runtimeShell +, rust-cbindgen +, rustc +, sqlite +, stdenv +, unzip +, which +, writeScript +, xidel +, xorg +, yasm +, zip +, zlib + +, debugBuild ? false + +, alsaSupport ? stdenv.isLinux, alsaLib +, pulseaudioSupport ? stdenv.isLinux, libpulseaudio +, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook +, waylandSupport ? true +, libxkbcommon, calendarSupport ? true + +, # If you want the resulting program to call itself "Thunderbird" instead +# of "Earlybird" or whatever, enable this option. However, those +# binaries may not be distributed without permission from the +# Mozilla Foundation, see +# http://www.mozilla.org/foundation/trademarks/. +enableOfficialBranding ? false +}: + +assert waylandSupport -> gtk3Support == true; + +stdenv.mkDerivation rec { + pname = "thunderbird"; + version = "68.3.1"; + + src = fetchurl { + url = + "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; + sha512 = + "01vn2snp631lngfy0kz6fax6r6w5w2iqc27hqr3zsvkfsl6ji0rkxm17g4ifv2qvkqgrnhxicdh4gj80x7fkw2nmmsqsypdddp5a91f"; + }; + + nativeBuildInputs = [ + autoconf213 + cargo + gnused + llvmPackages.llvm + m4 + nasm + nodejs + perl + pkgconfig + python2 + python3 + rust-cbindgen + rustc + which + yasm + ] ++ lib.optional gtk3Support wrapGAppsHook; + + buildInputs = [ + bzip2 + dbus + dbus-glib + file + fontconfig + freetype + glib + gtk2 + icu + jemalloc + libGL + libGLU + libIDL + libevent + libjpeg + libnotify + libpng + libstartup_notification + libvpx + libwebp + nspr + nss + pango + perl + sqlite + unzip + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcursor + xorg.libXext + xorg.libXft + xorg.libXi + xorg.libXrender + xorg.libXt + xorg.pixman + xorg.xorgproto + zip + zlib + ] ++ lib.optional alsaSupport alsaLib + ++ lib.optional gtk3Support gtk3 + ++ lib.optional pulseaudioSupport libpulseaudio + ++ lib.optional waylandSupport libxkbcommon; + + NIX_CFLAGS_COMPILE =[ + "-I${glib.dev}/include/gio-unix-2.0" + "-I${nss.dev}/include/nss" + ]; + + patches = [ + ./no-buildconfig.patch + ]; + + postPatch = '' + rm -rf obj-x86_64-pc-linux-gnu + ''; + + hardeningDisable = [ "format" ]; + + preConfigure = '' + # remove distributed configuration files + rm -f configure + rm -f js/src/configure + rm -f .mozconfig* + + configureScript="$(realpath ./mach) configure" + # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286 + unset AS + + export MOZCONFIG=$(pwd)/mozconfig + + # Set C flags for Rust's bindgen program. Unlike ordinary C + # compilation, bindgen does not invoke $CC directly. Instead it + # uses LLVM's libclang. To make sure all necessary flags are + # included we need to look in a few places. + # TODO: generalize this process for other use-cases. + + BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \ + $(< ${stdenv.cc}/nix-support/cc-cflags) \ + ${stdenv.cc.default_cxx_stdlib_compile} \ + ${ + lib.optionalString stdenv.cc.isClang + "-idirafter ${stdenv.cc.cc}/lib/clang/${ + lib.getVersion stdenv.cc.cc + }/include" + } \ + ${ + lib.optionalString stdenv.cc.isGNU + "-isystem ${stdenv.cc.cc}/include/c++/${ + lib.getVersion stdenv.cc.cc + } -isystem ${stdenv.cc.cc}/include/c++/${ + lib.getVersion stdenv.cc.cc + }/$(cc -dumpmachine)" + } \ + $NIX_CFLAGS_COMPILE" + + echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG + ''; + + configureFlags = let + toolkitSlug = if gtk3Support then + "3${lib.optionalString waylandSupport "-wayland"}" + else + "2"; + toolkitValue = "cairo-gtk${toolkitSlug}"; + in [ + "--enable-application=comm/mail" + + "--with-system-bz2" + "--with-system-icu" + "--with-system-jpeg" + "--with-system-libevent" + "--with-system-nspr" + "--with-system-nss" + "--with-system-png" # needs APNG support + "--with-system-icu" + "--with-system-zlib" + "--with-system-webp" + "--with-system-libvpx" + + "--enable-rust-simd" + "--enable-crashreporter" + "--enable-default-toolkit=${toolkitValue}" + "--enable-js-shell" + "--enable-necko-wifi" + "--enable-startup-notification" + "--enable-system-ffi" + "--enable-system-pixman" + "--enable-system-sqlite" + + "--disable-gconf" + "--disable-tests" + "--disable-updater" + "--enable-jemalloc" + ] ++ (if debugBuild then [ + "--enable-debug" + "--enable-profiling" + ] else [ + "--disable-debug" + "--enable-release" + "--disable-debug-symbols" + "--enable-optimize" + "--enable-strip" + ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [ + # on i686-linux: --with-libclang-path is not available in this configuration + "--with-libclang-path=${llvmPackages.libclang}/lib" + "--with-clang-path=${llvmPackages.clang}/bin/clang" + ] ++ lib.optional alsaSupport "--enable-alsa" + ++ lib.optional calendarSupport "--enable-calendar" + ++ lib.optional enableOfficialBranding "--enable-official-branding" + ++ lib.optional pulseaudioSupport "--enable-pulseaudio"; + + enableParallelBuilding = true; + + postConfigure = '' + cd obj-* + ''; + + makeFlags = lib.optionals enableOfficialBranding [ + "MOZILLA_OFFICIAL=1" + "BUILD_OFFICIAL=1" + ]; + + doCheck = false; + + postInstall = let + desktopItem = makeDesktopItem { + categories = lib.concatStringsSep ";" [ "Application" "Network" ]; + desktopName = "Thunderbird"; + genericName = "Mail Reader"; + name = "thunderbird"; + exec = "thunderbird %U"; + icon = "$out/lib/thunderbird/chrome/icons/default/default256.png"; + mimeType = lib.concatStringsSep ";" [ + # Email + "x-scheme-handler/mailto" + "message/rfc822" + # Feeds + "x-scheme-handler/feed" + "application/rss+xml" + "application/x-extension-rss" + # Newsgroups + "x-scheme-handler/news" + "x-scheme-handler/snews" + "x-scheme-handler/nntp" + ]; + }; + in '' + # TODO: Move to a dev output? + rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl + + ${desktopItem.buildCommand} + ''; + + preFixup = '' + # Needed to find Mozilla runtime + gappsWrapperArgs+=( + --argv0 "$out/bin/thunderbird" + --set MOZ_APP_LAUNCHER thunderbird + # https://github.com/NixOS/nixpkgs/pull/61980 + --set SNAP_NAME "thunderbird" + --set MOZ_LEGACY_PROFILES 1 + --set MOZ_ALLOW_DOWNGRADE 1 + ) + ''; + + # FIXME: This can probably be removed as soon as we package a + # Thunderbird >=71.0 since XUL shouldn't be anymore (in use)? + postFixup = '' + local xul="$out/lib/thunderbird/libxul.so" + patchelf --set-rpath "${libnotify}/lib:$(patchelf --print-rpath $xul)" $xul + ''; + + doInstallCheck = true; + installCheckPhase = '' + "$out/bin/thunderbird" --version + ''; + + disallowedRequisites = [ + stdenv.cc + ]; + + passthru.updateScript = import ./../../browsers/firefox/update.nix { + attrPath = "thunderbird"; + baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/"; + inherit writeScript lib common-updater-scripts xidel coreutils gnused + gnugrep curl runtimeShell; + }; + + meta = with stdenv.lib; { + description = "A full-featured e-mail client"; + homepage = "https://www.thunderbird.net"; + maintainers = with maintainers; [ + eelco + lovesegfault + pierron + ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch new file mode 100644 index 000000000000..fe3a93ebda7b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch @@ -0,0 +1,35 @@ +diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp +--- a/docshell/base/nsAboutRedirector.cpp 2017-07-31 18:20:51.000000000 +0200 ++++ b/docshell/base/nsAboutRedirector.cpp 2017-09-26 22:02:00.814151731 +0200 +@@ -32,8 +32,6 @@ + {"about", "chrome://global/content/aboutAbout.xhtml", 0}, + {"addons", "chrome://mozapps/content/extensions/extensions.xul", + nsIAboutModule::ALLOW_SCRIPT}, +- {"buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT}, + {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT}, +diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn +--- a/toolkit/content/jar.mn 2017-07-31 18:20:52.000000000 +0200 ++++ b/toolkit/content/jar.mn 2017-09-26 22:01:42.383350314 +0200 +@@ -39,7 +39,6 @@ + content/global/plugins.css + content/global/browser-child.js + content/global/browser-content.js +-* content/global/buildconfig.html + content/global/buildconfig.css + content/global/contentAreaUtils.js + content/global/datepicker.xhtml +--- a/comm/mail/base/jar.mn ++++ b/comm/mail/base/jar.mn +@@ -117,9 +117,7 @@ + % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js + % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul + +-* content/messenger/buildconfig.html (content/buildconfig.html) + content/messenger/buildconfig.css (content/buildconfig.css) +-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html + % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css + + # L10n resources and overrides. diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix new file mode 100644 index 000000000000..9829ca883f37 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix @@ -0,0 +1,57 @@ +{ akonadi-contacts +, cmake +, fetchgit +, gnupg +, gpgme +, kcontacts +, kf5gpgmepp +, lib +, mimetic +, mkDerivation +, pkgconfig +, qgpgme +, qtbase +, qtkeychain +, qttools +, qtwebkit +}: + +mkDerivation rec { + pname = "trojita"; + version = "0.7.20190618"; + + src = fetchgit { + url = "https://anongit.kde.org/trojita.git"; + rev = "90b417b131853553c94ff93aef62abaf301aa8f1"; + sha256 = "0xpxq5bzqaa68lkz90wima5q2m0mdcn0rvnigb66lylb4n20mnql"; + }; + + buildInputs = [ + akonadi-contacts + gpgme + kcontacts + mimetic + qgpgme + qtbase + qtkeychain + qtwebkit + mimetic + kf5gpgmepp + ]; + + nativeBuildInputs = [ + cmake + pkgconfig + qttools + gnupg + ]; + + meta = with lib; { + description = "A Qt IMAP e-mail client"; + homepage = "http://trojita.flaska.net/"; + license = with licenses; [ gpl2 gpl3 ]; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.linux; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix new file mode 100644 index 000000000000..bfd177cda7a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix @@ -0,0 +1,63 @@ +{ stdenv +, pkgconfig +, python3 +, fetchhg +, gtk3 +, glib +, gdbm +, gtkspell3 +, ofono +, itstool +, libappindicator-gtk3 +, perlPackages +, glibcLocales +, meson +, ninja +}: + +stdenv.mkDerivation rec { + pname = "modem-manager-gui"; + version = "0.0.19.1"; + + src = fetchhg { + url = https://linuxonly@bitbucket.org/linuxonly/modem-manager-gui; + rev = "version ${version}"; + sha256 = "11iibh36567814h2bz41sa1072b86p1l13xyj670pwkh9k8kw8fd"; + }; + + nativeBuildInputs = [ + pkgconfig + python3 + perlPackages.Po4a + itstool + meson + ninja + ]; + + buildInputs = [ + gtk3 + glib + gdbm + gtkspell3 + ofono + libappindicator-gtk3 + ]; + + postPatch = '' + patchShebangs man/manhelper.py + ''; + + meta = with stdenv.lib; { + description = "An app to send/receive SMS, make USSD requests, control mobile data usage and more"; + longDescription = '' + A simple GTK based GUI compatible with Modem manager, Wader and oFono + system services able to control EDGE/3G/4G broadband modem specific + functions. You can check balance of your SIM card, send or receive SMS + messages, control mobile traffic consumption and more. + ''; + homepage = https://linuxonly.ru/page/modem-manager-gui; + license = licenses.gpl3; + maintainers = with maintainers; [ ahuzik ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mpop/default.nix b/nixpkgs/pkgs/applications/networking/mpop/default.nix new file mode 100644 index 000000000000..dce1934febf4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mpop/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, pkgconfig, gnutls, gsasl, libidn, Security }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "mpop"; + version = "1.4.7"; + + src = fetchurl { + url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; + sha256 = "0c6n5afn9pr4p7gxkv462lysrw52w9fhvavzm99c78dcp9dj5xnk"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gnutls gsasl libidn ] + ++ optional stdenv.isDarwin Security; + + configureFlags = optional stdenv.isDarwin [ "--with-macosx-keyring" ]; + + meta = { + description = "POP3 mail retrieval agent"; + homepage = https://marlam.de/mpop; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/nixpkgs/pkgs/applications/networking/msmtp/default.nix new file mode 100644 index 000000000000..486b34ecb308 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/msmtp/default.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig +, netcat-gnu, gnutls, gsasl, libidn2, Security +, withKeyring ? true, libsecret ? null +, systemd ? null }: + +let + tester = "n"; # {x| |p|P|n|s} + journal = if stdenv.isLinux then "y" else "n"; + +in stdenv.mkDerivation rec { + pname = "msmtp"; + version = "1.8.7"; + + src = fetchurl { + url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; + sha256 = "1waiiksa57byb7gvx1zmh6srvl6r8rvwqklk0slb3iaf4kfbqlws"; + }; + + patches = [ + ./paths.patch + ]; + + buildInputs = [ gnutls gsasl libidn2 ] + ++ stdenv.lib.optional stdenv.isDarwin Security + ++ stdenv.lib.optional withKeyring libsecret; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + configureFlags = + [ "--sysconfdir=/etc" ] ++ stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ]; + + postInstall = '' + install -d $out/share/doc/${pname}/scripts + cp -r scripts/{find_alias,msmtpqueue,msmtpq,set_sendmail} $out/share/doc/${pname}/scripts + install -Dm644 doc/*.example $out/share/doc/${pname} + + substitute scripts/msmtpq/msmtpq $out/bin/msmtpq \ + --replace @msmtp@ $out/bin/msmtp \ + --replace @nc@ ${netcat-gnu}/bin/nc \ + --replace @journal@ ${journal} \ + ${lib.optionalString (journal == "y") "--replace @systemdcat@ ${systemd}/bin/systemd-cat" } \ + --replace @test@ ${tester} + + substitute scripts/msmtpq/msmtp-queue $out/bin/msmtp-queue \ + --replace @msmtpq@ $out/bin/msmtpq + + ln -s msmtp $out/bin/sendmail + + chmod +x $out/bin/* + ''; + + meta = with stdenv.lib; { + description = "Simple and easy to use SMTP client with excellent sendmail compatibility"; + homepage = https://marlam.de/msmtp/; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/msmtp/paths.patch b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch new file mode 100644 index 000000000000..707163bff0c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch @@ -0,0 +1,97 @@ +diff --git a/scripts/msmtpq/msmtp-queue b/scripts/msmtpq/msmtp-queue +index 1dc220d..d834241 100755 +--- a/scripts/msmtpq/msmtp-queue ++++ b/scripts/msmtpq/msmtp-queue +@@ -27,4 +27,4 @@ + ## change the below line to be + ## exec /path/to/msmtpq --q-mgmt + +-exec msmtpq --q-mgmt "$1" ++exec @msmtpq@ --q-mgmt "$1" +diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq +index bdb4fb8..1363a67 100755 +--- a/scripts/msmtpq/msmtpq ++++ b/scripts/msmtpq/msmtpq +@@ -59,7 +59,7 @@ err() { dsp '' "$@" '' ; exit 1 ; } + ## enter the location of the msmtp executable (no quotes !!) + ## e.g. ( MSMTP=/path/to/msmtp ) + ## and uncomment the test for its existence +-MSMTP=msmtp ++MSMTP=@msmtp@ + #[ -x "$MSMTP" ] || \ + # log -e 1 "msmtpq : can't find the msmtp executable [ $MSMTP ]" # if not found - complain ; quit + ## +@@ -70,9 +70,8 @@ MSMTP=msmtp + ## ( chmod 0700 msmtp.queue ) + ## + ## the queue dir - modify this to reflect where you'd like it to be (no quotes !!) +-Q=~/.msmtp.queue +-[ -d "$Q" ] || \ +- err '' "msmtpq : can't find msmtp queue directory [ $Q ]" '' # if not present - complain ; quit ++Q=${MSMTP_QUEUE:-~/.msmtp.queue} ++test -d "$Q" || mkdir -p "$Q" + ## + ## set the queue log file var to the location of the msmtp queue log file + ## where it is or where you'd like it to be +@@ -84,7 +83,10 @@ Q=~/.msmtp.queue + ## (doing so would be inadvisable under most conditions, however) + ## + ## the queue log file - modify (or comment out) to taste (but no quotes !!) +-LOG=~/log/msmtp.queue.log ++LOG=${MSMTP_LOG:-~/log/msmtp.queue.log} ++test -d "$(dirname $LOG)" || mkdir -p "$(dirname $LOG)" ++ ++JOURNAL=@journal@ + ## ====================================================================================== + + ## msmtpq can use the following environment variables : +@@ -108,7 +110,7 @@ LOG=~/log/msmtp.queue.log + ## + #EMAIL_CONN_NOTEST=y # deprecated ; use below var + #EMAIL_CONN_TEST={x| |p|P|n|s} # see settings above for EMAIL_CONN_TEST +-EMAIL_CONN_TEST=n ++EMAIL_CONN_TEST=@test@ + #EMAIL_QUEUE_QUIET=t + ## ====================================================================================== + +@@ -138,6 +140,7 @@ on_exit() { # unlock the queue on exit if the lock was + ## display msg to user, as well + ## + log() { ++ local NAME=msmtpq + local ARG RC PFX + PFX="$('date' +'%Y %d %b %H:%M:%S')" + # time stamp prefix - "2008 13 Mar 03:59:45 " + if [ "$1" = '-e' ] ; then # there's an error exit code +@@ -154,10 +157,19 @@ log() { + done + fi + ++ if [ "$JOURNAL" == "y" ] ; then ++ for ARG ; do ++ [ -n "$ARG" ] && \ ++ echo "$PFX : $ARG" | @systemdcat@ -t $NAME -p info ++ done ++ fi ++ + if [ -n "$RC" ] ; then # an error ; leave w/error return + [ -n "$LKD" ] && lock_queue -u # unlock here (if locked) + [ -n "$LOG" ] && \ + echo " exit code = $RC" >> "$LOG" # logging ok ; send exit code to log ++ [ "$JOURNAL" == "y" ] && \ ++ echo "exit code= $RC" | @systemdcat@ -t $NAME -p emerg + exit $RC # exit w/return code + fi + } +@@ -207,10 +219,7 @@ connect_test() { + ping -qnc1 -w4 8.8.8.8 >/dev/null 2>&1 || return 1 + + elif [ "$EMAIL_CONN_TEST" = 'n' ] ; then # use netcat (nc) test +- # must, of course, have netcat (nc) installed +- which nc >/dev/null 2>&1 || \ +- log -e 1 "msmtpq : can't find netcat executable [ nc ]" # if not found - complain ; quit +- 'nc' -vz www.debian.org 80 >/dev/null 2>&1 || return 1 ++ @nc@ -vz www.debian.org 80 >/dev/null 2>&1 || return 1 + + elif [ "$EMAIL_CONN_TEST" = 's' ] ; then # use sh sockets test + # note that this does not work on debian systems diff --git a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix new file mode 100644 index 000000000000..343685c4ab76 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix @@ -0,0 +1,90 @@ +{ stdenv, makeWrapper, fetchurl, dpkg +, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype +, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3 +, xorg, autoPatchelfHook, systemd, libnotify +}: + +let deps = [ + alsaLib + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + pango + gtk3 + libnotify + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + nspr + nss + systemd + ]; + +in + +stdenv.mkDerivation rec { + pname = "mullvad-vpn"; + version = "2019.10"; + + src = fetchurl { + url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb"; + sha256 = "0nckbhfpf4r5l5h22jcv93b5i9y2sc8lhcaffsg2ld804h5ygbbq"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + ]; + + buildInputs = deps; + + dontBuild = true; + dontConfigure = true; + + unpackPhase = "dpkg-deb -x $src ."; + + runtimeDependencies = [ systemd.lib libnotify ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/mullvad $out/bin + + mv usr/share/* $out/share + mv usr/bin/* $out/bin + mv opt/Mullvad\ VPN/* $out/share/mullvad + + sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop + + ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/ + ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon + + runHook postInstall + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/mullvad/mullvadvpn-app"; + description = "Client for Mullvad VPN"; + changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md"; + license = licenses.gpl3; + platforms = [ "x86_64-linux" ]; + maintainers = [ maintainers.xfix ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix new file mode 100644 index 000000000000..dfb49e14133f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix @@ -0,0 +1,141 @@ +{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkgconfig, qt5 +, avahi, boost, libopus, libsndfile, protobuf, speex, libcap +, alsaLib, python +, rnnoise +, jackSupport ? false, libjack2 ? null +, speechdSupport ? false, speechd ? null +, pulseSupport ? false, libpulseaudio ? null +, iceSupport ? false, zeroc-ice ? null +}: + +assert jackSupport -> libjack2 != null; +assert speechdSupport -> speechd != null; +assert pulseSupport -> libpulseaudio != null; +assert iceSupport -> zeroc-ice != null; + +with stdenv.lib; +let + generic = overrides: source: qt5.mkDerivation (source // overrides // { + pname = overrides.type; + version = source.version; + + patches = (source.patches or []) ++ optional jackSupport ./mumble-jack-support.patch; + + nativeBuildInputs = [ pkgconfig python qt5.qmake ] + ++ (overrides.nativeBuildInputs or [ ]); + + buildInputs = [ boost protobuf avahi ] + ++ (overrides.buildInputs or [ ]); + + qmakeFlags = [ + "CONFIG+=c++11" + "CONFIG+=shared" + "CONFIG+=no-g15" + "CONFIG+=packaged" + "CONFIG+=no-update" + "CONFIG+=no-embed-qt-translations" + "CONFIG+=bundled-celt" + "CONFIG+=no-bundled-opus" + "CONFIG+=no-bundled-speex" + ] ++ optional (!speechdSupport) "CONFIG+=no-speechd" + ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio" + ++ (overrides.configureFlags or [ ]); + + preConfigure = '' + qmakeFlags="$qmakeFlags DEFINES+=PLUGIN_PATH=$out/lib/mumble" + patchShebangs scripts + ''; + + makeFlags = [ "release" ]; + + installPhase = '' + runHook preInstall + + ${overrides.installPhase} + + # doc stuff + mkdir -p $out/share/man/man1 + install -Dm644 man/mum* $out/share/man/man1/ + + runHook postInstall + ''; + + enableParallelBuilding = true; + + meta = { + description = "Low-latency, high quality voice chat software"; + homepage = "https://mumble.info"; + license = licenses.bsd3; + maintainers = with maintainers; [ petabyteboy ]; + platforms = platforms.linux; + }; + }); + + client = source: generic { + type = "mumble"; + + nativeBuildInputs = [ qt5.qttools ]; + buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ] + ++ optional stdenv.isLinux alsaLib + ++ optional jackSupport libjack2 + ++ optional speechdSupport speechd + ++ optional pulseSupport libpulseaudio; + + configureFlags = [ + "CONFIG+=no-server" + ]; + + NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher"; + + installPhase = '' + # bin stuff + install -Dm755 release/mumble $out/bin/mumble + install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay + + # lib stuff + mkdir -p $out/lib/mumble + cp -P release/libmumble.so* $out/lib + cp -P release/libcelt* $out/lib/mumble + cp -P release/plugins/* $out/lib/mumble + + # icons + install -Dm644 scripts/mumble.desktop $out/share/applications/mumble.desktop + install -Dm644 icons/mumble.svg $out/share/icons/hicolor/scalable/apps/mumble.svg + ''; + } source; + + server = source: generic { + type = "murmur"; + + postPatch = optional iceSupport '' + grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g' + ''; + + configureFlags = [ + "CONFIG+=no-client" + ] ++ optional (!iceSupport) "CONFIG+=no-ice"; + + buildInputs = [ libcap ] ++ optional iceSupport zeroc-ice; + + installPhase = '' + # bin stuff + install -Dm755 release/murmurd $out/bin/murmurd + ''; + } source; + + source = rec { + version = "1.3.0"; + + # Needs submodules + src = fetchFromGitHub { + owner = "mumble-voip"; + repo = "mumble"; + rev = version; + sha256 = "0g5ri84gg0x3crhpxlzawf9s9l4hdna6aqw6qbdpx1hjlf5k6g8k"; + fetchSubmodules = true; + }; + }; +in { + mumble = client source; + murmur = server source; +} diff --git a/nixpkgs/pkgs/applications/networking/mumble/mumble-jack-support.patch b/nixpkgs/pkgs/applications/networking/mumble/mumble-jack-support.patch new file mode 100644 index 000000000000..7c18a33193df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/mumble-jack-support.patch @@ -0,0 +1,457 @@ +The patch was created by Filipe Coelho (falkTX) of the KXStudio +project. http://kxstudio.sourceforge.net + +diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.cpp mumble-1.2.2/src/mumble/JackAudio.cpp +--- mumble-1.2.2.orig/src/mumble/JackAudio.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ mumble-1.2.2/src/mumble/JackAudio.cpp 2011-01-26 06:02:00.000000000 +0000 +@@ -0,0 +1,314 @@ ++/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net> ++ Copyright (C) 2011, Filipe Coelho <falktx@gmail.com> ++ ++ All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ - Redistributions of source code must retain the above copyright notice, ++ this list of conditions and the following disclaimer. ++ - Redistributions in binary form must reproduce the above copyright notice, ++ this list of conditions and the following disclaimer in the documentation ++ and/or other materials provided with the distribution. ++ - Neither the name of the Mumble Developers nor the names of its ++ contributors may be used to endorse or promote products derived from this ++ software without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR ++ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++*/ ++ ++#include "JackAudio.h" ++#include "User.h" ++#include "Global.h" ++#include "MainWindow.h" ++#include "Timer.h" ++ ++#include <cstring> ++ ++static JackAudioSystem *jasys = NULL; ++ ++class JackAudioInputRegistrar : public AudioInputRegistrar { ++ public: ++ JackAudioInputRegistrar(); ++ virtual AudioInput *create(); ++ virtual const QList<audioDevice> getDeviceChoices(); ++ virtual void setDeviceChoice(const QVariant &, Settings &); ++ virtual bool canEcho(const QString &) const; ++}; ++ ++class JackAudioOutputRegistrar : public AudioOutputRegistrar { ++ public: ++ JackAudioOutputRegistrar(); ++ virtual AudioOutput *create(); ++ virtual const QList<audioDevice> getDeviceChoices(); ++ virtual void setDeviceChoice(const QVariant &, Settings &); ++}; ++ ++class JackAudioInit : public DeferInit { ++ public: ++ JackAudioInputRegistrar *airJackAudio; ++ JackAudioOutputRegistrar *aorJackAudio; ++ void initialize() { ++ jasys = new JackAudioSystem(); ++ jasys->init_jack(); ++ jasys->qmWait.lock(); ++ jasys->qwcWait.wait(&jasys->qmWait, 1000); ++ jasys->qmWait.unlock(); ++ if (jasys->bJackIsGood) { ++ airJackAudio = new JackAudioInputRegistrar(); ++ aorJackAudio = new JackAudioOutputRegistrar(); ++ } else { ++ airJackAudio = NULL; ++ aorJackAudio = NULL; ++ delete jasys; ++ jasys = NULL; ++ } ++ }; ++ void destroy() { ++ if (airJackAudio) ++ delete airJackAudio; ++ if (aorJackAudio) ++ delete aorJackAudio; ++ if (jasys) { ++ jasys->close_jack(); ++ delete jasys; ++ jasys = NULL; ++ } ++ }; ++}; ++ ++static JackAudioInit jackinit; //unused ++ ++JackAudioSystem::JackAudioSystem() { ++ bJackIsGood = false; ++ iSampleRate = 0; ++} ++ ++JackAudioSystem::~JackAudioSystem() { ++} ++ ++void JackAudioSystem::init_jack() ++{ ++ client = jack_client_open("mumble", JackNullOption, 0); ++ ++ if (client) { ++ in_port = jack_port_register(client, "input", JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); ++ out_port = jack_port_register(client, "output", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); ++ jack_set_process_callback(client, process_callback, this); ++ jack_set_sample_rate_callback(client, srate_callback, this); ++ jack_on_shutdown(client, shutdown_callback, this); ++ ++ iSampleRate = jack_get_sample_rate(client); ++ ++ if (jack_activate(client) || in_port == NULL || out_port == NULL) { ++ client = NULL; ++ return; ++ } ++ ++ int port_flags; ++ unsigned i = -1; ++ const char** ports = jack_get_ports(client, 0, 0, JackPortIsPhysical); ++ ++ if (ports) { ++ while (ports[++i]) ++ { ++ jack_port_t* port = jack_port_by_name(client, ports[i]); ++ port_flags = jack_port_flags(port); ++ ++ if (port_flags & (JackPortIsPhysical|JackPortIsOutput) && strstr(jack_port_type(port), "audio")) { ++ jack_connect(client, ports[i], jack_port_name(in_port)); ++ } ++ if (port_flags & (JackPortIsPhysical|JackPortIsInput) && strstr(jack_port_type(port), "audio")) { ++ jack_connect(client, jack_port_name(out_port), ports[i]); ++ } ++ } ++ } ++ ++ jack_free(ports); ++ ++ // If we made it this far, then everything is okay ++ qhInput.insert(QString(), tr("Hardware Ports")); ++ qhOutput.insert(QString(), tr("Hardware Ports")); ++ bJackIsGood = true; ++ ++ } else { ++ bJackIsGood = false; ++ client = NULL; ++ } ++} ++ ++void JackAudioSystem::close_jack() ++{ ++ if (client) { ++ jack_deactivate(client); ++ jack_client_close(client); ++ client = NULL; ++ } ++} ++ ++int JackAudioSystem::process_callback(jack_nframes_t nframes, void *arg) ++{ ++ JackAudioSystem *jas = (JackAudioSystem*)arg; ++ ++ if (jas && jas->bJackIsGood) { ++ AudioInputPtr ai = g.ai; ++ AudioOutputPtr ao = g.ao; ++ JackAudioInput *jai = (JackAudioInput*)(ai.get()); ++ JackAudioOutput *jao = (JackAudioOutput*)(ao.get()); ++ ++ if (jai && jai->bRunning && jai->iMicChannels > 0 && !jai->isFinished()) { ++ void* input = jack_port_get_buffer(jas->in_port, nframes); ++ if ((float*)input != 0) ++ jai->addMic(input, nframes); ++ } ++ ++ if (jao && jao->bRunning && jao->iChannels > 0 && !jao->isFinished()) { ++ jack_default_audio_sample_t* output = (jack_default_audio_sample_t*)jack_port_get_buffer(jas->out_port, nframes); ++ memset(output, 0, sizeof(jack_default_audio_sample_t)*nframes); //TEST ++ jao->mix(output, nframes); ++ } ++ } ++ ++ return 0; ++} ++ ++int JackAudioSystem::srate_callback(jack_nframes_t frames, void *arg) ++{ ++ JackAudioSystem *jas = (JackAudioSystem*)arg; ++ jas->iSampleRate = frames; ++ return 0; ++} ++ ++void JackAudioSystem::shutdown_callback(void *arg) ++{ ++ JackAudioSystem *jas = (JackAudioSystem*)arg; ++ jas->bJackIsGood = false; ++} ++ ++JackAudioInputRegistrar::JackAudioInputRegistrar() : AudioInputRegistrar(QLatin1String("JACK"), 10) { ++} ++ ++AudioInput *JackAudioInputRegistrar::create() { ++ return new JackAudioInput(); ++} ++ ++const QList<audioDevice> JackAudioInputRegistrar::getDeviceChoices() { ++ QList<audioDevice> qlReturn; ++ ++ QStringList qlInputDevs = jasys->qhInput.keys(); ++ qSort(qlInputDevs); ++ ++ foreach(const QString &dev, qlInputDevs) { ++ qlReturn << audioDevice(jasys->qhInput.value(dev), dev); ++ } ++ ++ return qlReturn; ++} ++ ++void JackAudioInputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) { ++ Q_UNUSED(choice); ++ Q_UNUSED(s); ++} ++ ++bool JackAudioInputRegistrar::canEcho(const QString &osys) const { ++ Q_UNUSED(osys); ++ return false; ++} ++ ++JackAudioOutputRegistrar::JackAudioOutputRegistrar() : AudioOutputRegistrar(QLatin1String("JACK"), 10) { ++} ++ ++AudioOutput *JackAudioOutputRegistrar::create() { ++ return new JackAudioOutput(); ++} ++ ++const QList<audioDevice> JackAudioOutputRegistrar::getDeviceChoices() { ++ QList<audioDevice> qlReturn; ++ ++ QStringList qlOutputDevs = jasys->qhOutput.keys(); ++ qSort(qlOutputDevs); ++ ++ foreach(const QString &dev, qlOutputDevs) { ++ qlReturn << audioDevice(jasys->qhOutput.value(dev), dev); ++ } ++ ++ return qlReturn; ++} ++ ++void JackAudioOutputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) { ++ Q_UNUSED(choice); ++ Q_UNUSED(s); ++} ++ ++JackAudioInput::JackAudioInput() { ++ bRunning = true; ++ iMicChannels = 0; ++}; ++ ++JackAudioInput::~JackAudioInput() { ++ bRunning = false; ++ iMicChannels = 0; ++ qmMutex.lock(); ++ qwcWait.wakeAll(); ++ qmMutex.unlock(); ++ wait(); ++} ++ ++void JackAudioInput::run() { ++ if (jasys && jasys->bJackIsGood) { ++ iMicFreq = jasys->iSampleRate; ++ iMicChannels = 1; ++ eMicFormat = SampleFloat; ++ initializeMixer(); ++ } ++ ++ qmMutex.lock(); ++ while (bRunning) ++ qwcWait.wait(&qmMutex); ++ qmMutex.unlock(); ++} ++ ++JackAudioOutput::JackAudioOutput() { ++ bRunning = true; ++ iChannels = 0; ++} ++ ++JackAudioOutput::~JackAudioOutput() { ++ bRunning = false; ++ iChannels = 0; ++ qmMutex.lock(); ++ qwcWait.wakeAll(); ++ qmMutex.unlock(); ++ wait(); ++} ++ ++void JackAudioOutput::run() { ++ if (jasys && jasys->bJackIsGood) { ++ unsigned int chanmasks[32]; ++ ++ chanmasks[0] = SPEAKER_FRONT_LEFT; ++ chanmasks[1] = SPEAKER_FRONT_RIGHT; ++ ++ eSampleFormat = SampleFloat; ++ iMixerFreq = jasys->iSampleRate; ++ iChannels = 1; ++ initializeMixer(chanmasks); ++ } ++ ++ qmMutex.lock(); ++ while (bRunning) ++ qwcWait.wait(&qmMutex); ++ qmMutex.unlock(); ++} +diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.h mumble-1.2.2/src/mumble/JackAudio.h +--- mumble-1.2.2.orig/src/mumble/JackAudio.h 1970-01-01 01:00:00.000000000 +0100 ++++ mumble-1.2.2/src/mumble/JackAudio.h 2011-01-26 06:03:58.000000000 +0000 +@@ -0,0 +1,97 @@ ++/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net> ++ Copyright (C) 2011, Filipe Coelho <falktx@gmail.com> ++ ++ All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ - Redistributions of source code must retain the above copyright notice, ++ this list of conditions and the following disclaimer. ++ - Redistributions in binary form must reproduce the above copyright notice, ++ this list of conditions and the following disclaimer in the documentation ++ and/or other materials provided with the distribution. ++ - Neither the name of the Mumble Developers nor the names of its ++ contributors may be used to endorse or promote products derived from this ++ software without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR ++ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++*/ ++ ++#ifndef _JACKAUDIO_H ++#define _JACKAUDIO_H ++ ++#include "AudioInput.h" ++#include "AudioOutput.h" ++#include <jack/jack.h> ++ ++class JackAudioOutput; ++class JackAudioInput; ++ ++class JackAudioSystem : public QObject { ++ private: ++ Q_OBJECT ++ Q_DISABLE_COPY(JackAudioSystem) ++ protected: ++ jack_client_t* client; ++ jack_port_t* in_port; ++ jack_port_t* out_port; ++ ++ static int process_callback(jack_nframes_t nframes, void *arg); ++ static int srate_callback(jack_nframes_t frames, void *arg); ++ static void shutdown_callback(void *arg); ++ public: ++ QHash<QString, QString> qhInput; ++ QHash<QString, QString> qhOutput; ++ bool bJackIsGood; ++ int iSampleRate; ++ QMutex qmWait; ++ QWaitCondition qwcWait; ++ ++ void init_jack(); ++ void close_jack(); ++ ++ JackAudioSystem(); ++ ~JackAudioSystem(); ++}; ++ ++class JackAudioInput : public AudioInput { ++ friend class JackAudioSystem; ++ private: ++ Q_OBJECT ++ Q_DISABLE_COPY(JackAudioInput) ++ protected: ++ QMutex qmMutex; ++ QWaitCondition qwcWait; ++ public: ++ JackAudioInput(); ++ ~JackAudioInput(); ++ void run(); ++}; ++ ++class JackAudioOutput : public AudioOutput { ++ friend class JackAudioSystem; ++ private: ++ Q_OBJECT ++ Q_DISABLE_COPY(JackAudioOutput) ++ protected: ++ QMutex qmMutex; ++ QWaitCondition qwcWait; ++ public: ++ JackAudioOutput(); ++ ~JackAudioOutput(); ++ void run(); ++}; ++ ++#endif +diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/mumble.pro mumble-1.2.2/src/mumble/mumble.pro +--- mumble-1.2.2.orig/src/mumble/mumble.pro 2010-02-09 16:34:51.000000000 +0000 ++++ mumble-1.2.2/src/mumble/mumble.pro 2011-01-26 01:45:55.000000000 +0000 +@@ -93,11 +93,17 @@ + unix { + HAVE_PULSEAUDIO=$$system(pkg-config --modversion --silence-errors libpulse) + HAVE_PORTAUDIO=$$system(pkg-config --modversion --silence-errors portaudio-2.0) ++ HAVE_JACKAUDIO=$$system(pkg-config --modversion --silence-errors jack) + + !isEmpty(HAVE_PORTAUDIO):!CONFIG(no-portaudio) { + CONFIG *= portaudio + } + ++ !isEmpty(HAVE_JACKAUDIO):!CONFIG(no-jackaudio) { ++ CONFIG -= portaudio ++ CONFIG *= jackaudio ++ } ++ + !isEmpty(HAVE_PULSEAUDIO):!CONFIG(no-pulseaudio) { + CONFIG -= portaudio + CONFIG *= pulseaudio +@@ -110,6 +116,13 @@ + QMAKE_CXXFLAGS_DEBUG *= -I../../speex/include -I../../speexbuild + } + ++ jackaudio { ++ DEFINES *= USE_JACKAUDIO ++ PKGCONFIG *= jack ++ HEADERS *= JackAudio.h ++ SOURCES *= JackAudio.cpp ++ } ++ + CONFIG *= link_pkgconfig + + PKGCONFIG *= openssl sndfile diff --git a/nixpkgs/pkgs/applications/networking/mumble/overlay.nix b/nixpkgs/pkgs/applications/networking/mumble/overlay.nix new file mode 100644 index 000000000000..babb3812bb92 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/overlay.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, which, file, mumble, mumble_i686 +}: + +let + binPath = lib.makeBinPath [ which file ]; +in stdenv.mkDerivation { + name = "mumble-overlay-${mumble.version}"; + + inherit (mumble) src; + + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + + installPhase = '' + mkdir -p $out/lib + ln -s ${mumble}/lib/libmumble.so.1.2.* $out/lib/libmumble.so.1 + ${lib.optionalString (mumble_i686 != null) '' + mkdir -p $out/lib32 + ln -s ${mumble_i686}/lib/libmumble.so.1.2.* $out/lib32/libmumble.so.1 + ''} + install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay + sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay + sed -i '2iPATH="${binPath}:$PATH"' $out/bin/mumble-overlay + ''; + + meta = { + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ndppd/default.nix b/nixpkgs/pkgs/applications/networking/ndppd/default.nix new file mode 100644 index 000000000000..42950f23a843 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ndppd/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, gzip }: + +stdenv.mkDerivation rec { + pname = "ndppd"; + version = "0.2.5"; + + src = fetchFromGitHub { + owner = "DanielAdolfsson"; + repo = "ndppd"; + rev = version; + sha256 = "0niri5q9qyyyw5lmjpxk19pv3v4srjvmvyd5k6ks99mvqczjx9c0"; + }; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + preConfigure = '' + substituteInPlace Makefile --replace /bin/gzip ${gzip}/bin/gzip + ''; + + postInstall = '' + mkdir -p $out/etc + cp ndppd.conf-dist $out/etc/ndppd.conf + ''; + + meta = with stdenv.lib; { + description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces"; + homepage = https://github.com/DanielAdolfsson/ndppd; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ fadenb globin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/netperf/default.nix b/nixpkgs/pkgs/applications/networking/netperf/default.nix new file mode 100644 index 000000000000..c2a84971bc29 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/netperf/default.nix @@ -0,0 +1,30 @@ +{ libsmbios, stdenv, autoreconfHook, fetchFromGitHub }: + +stdenv.mkDerivation { + pname = "netperf"; + version = "20180613"; + + src = fetchFromGitHub { + owner = "HewlettPackard"; + repo = "netperf"; + rev = "bcb868bde7f0203bbab69609f65d4088ba7398db"; + sha256 = "1wbbgdvhadd3qs3afv6i777argdpcyxkwz4yv6aqp223n8ki6dm8"; + }; + + buildInputs = stdenv.lib.optional (stdenv.hostPlatform.isx86) libsmbios; + nativeBuildInputs = [ autoreconfHook ]; + autoreconfPhase = '' + autoreconf -i -I src/missing/m4 + ''; + configureFlags = [ "--enable-demo" ]; + enableParallelBuilding = true; + + meta = { + description = "Benchmark to measure the performance of many different types of networking"; + homepage = http://www.netperf.org/netperf/; + license = "Hewlett-Packard BSD-like license"; + + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.mmlb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix new file mode 100644 index 000000000000..6352922e33e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, pkgconfig, intltool, python3Packages, wrapGAppsHook +, glib, libxml2, libxslt, sqlite, libsoup , webkitgtk, json-glib, gst_all_1 +, libnotify, gtk3, gsettings-desktop-schemas, libpeas, dconf, librsvg +, gobject-introspection, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "liferea"; + version = "1.12.6"; + + src = fetchurl { + url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}b.tar.bz2"; + sha256 = "sha256:03pr1gmiv5y0i92bkhcxr8s311ll91chz19wb96jkixx32xav91d"; + }; + + nativeBuildInputs = [ wrapGAppsHook python3Packages.wrapPython intltool pkgconfig ]; + + buildInputs = [ + glib gtk3 webkitgtk libxml2 libxslt sqlite libsoup gsettings-desktop-schemas + libpeas gsettings-desktop-schemas json-glib dconf gobject-introspection + librsvg glib-networking libnotify + ] ++ (with gst_all_1; [ + gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad + ]); + + pythonPath = with python3Packages; [ pygobject3 pycairo ]; + + preFixup = '' + buildPythonPath "$out $pythonPath" + gappsWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH") + ''; + + meta = with stdenv.lib; { + description = "A GTK-based news feed aggregator"; + homepage = http://lzone.de/liferea/; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ vcunat romildo ]; + platforms = platforms.linux; + + longDescription = '' + Liferea (Linux Feed Reader) is an RSS/RDF feed reader. + It's intended to be a clone of the Windows-only FeedReader. + It can be used to maintain a list of subscribed feeds, + browse through their items, and show their contents. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix new file mode 100644 index 000000000000..f50d9516167a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix @@ -0,0 +1,46 @@ +{ spellChecking ? true +, stdenv, fetchurl, pkgconfig, gtk3, gtkspell3 ? null +, gmime2, gettext, intltool, itstool, libxml2, libnotify, gnutls +, makeWrapper, gnupg +, gnomeSupport ? true, libsecret, gcr +}: + +assert spellChecking -> gtkspell3 != null; + +let version = "0.146"; in + +stdenv.mkDerivation { + pname = "pan"; + inherit version; + + src = fetchurl { + url = "http://pan.rebelbase.com/download/releases/${version}/source/pan-${version}.tar.bz2"; + sha256 = "17agd27sn4a7nahvkpg0w39kv74njgdrrygs74bbvpaj8rk2hb55"; + }; + + nativeBuildInputs = [ pkgconfig gettext intltool itstool libxml2 makeWrapper ]; + buildInputs = [ gtk3 gmime2 libnotify gnutls ] + ++ stdenv.lib.optional spellChecking gtkspell3 + ++ stdenv.lib.optionals gnomeSupport [ libsecret gcr ]; + + configureFlags = [ + "--with-dbus" + "--with-gtk3" + "--with-gnutls" + "--enable-libnotify" + ] ++ stdenv.lib.optional spellChecking "--with-gtkspell" + ++ stdenv.lib.optional gnomeSupport "--enable-gkr"; + + postInstall = '' + wrapProgram $out/bin/pan --suffix PATH : ${gnupg}/bin + ''; + + enableParallelBuilding = true; + + meta = { + description = "A GTK-based Usenet newsreader good at both text and binaries"; + homepage = http://pan.rebelbase.com/; + maintainers = [ stdenv.lib.maintainers.eelco ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix new file mode 100644 index 000000000000..d54e8eca78e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, qmake, pkgconfig, wrapQtAppsHook +, qtbase, qttools, qtwebkit, sqlite +}: + +stdenv.mkDerivation rec { + pname = "quiterss"; + version = "0.19.2"; + + src = fetchFromGitHub { + owner = "QuiteRSS"; + repo = "quiterss"; + rev = version; + sha256 = "1dmfag5hmy4jac20nizwgd92w8h2hdl2ch57hvw5hmjyfckn9rpj"; + }; + + nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ]; + buildInputs = [ qtbase qttools qtwebkit sqlite.dev ]; + + meta = with stdenv.lib; { + description = "A Qt-based RSS/Atom news feed reader"; + longDescription = '' + QuiteRSS is a open-source cross-platform RSS/Atom news feeds reader + written on Qt/C++ + ''; + homepage = https://quiterss.org; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix new file mode 100644 index 000000000000..e8fff0deddf1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl +, slang, ncurses, openssl }: + +stdenv.mkDerivation rec { + pname = "slrn"; + version = "1.0.3a"; + + src = fetchurl { + url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2"; + sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v"; + }; + + preConfigure = '' + sed -i -e "s|-ltermcap|-lncurses|" configure + sed -i autoconf/Makefile.in src/Makefile.in \ + -e "s|/bin/cp|cp|" \ + -e "s|/bin/rm|rm|" + ''; + + configureFlags = [ + "--with-slang=${slang.dev}" + "--with-ssl=${openssl.dev}" + ]; + + buildInputs = [ slang ncurses openssl ]; + + meta = with stdenv.lib; { + description = "The slrn (S-Lang read news) newsreader"; + homepage = http://slrn.sourceforge.net/index.html; + maintainers = with maintainers; [ ehmry ]; + license = licenses.gpl2; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch b/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch new file mode 100644 index 000000000000..ab7cb9bffa45 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch @@ -0,0 +1,25 @@ +From bbd366348d1f0e334d4604d04e293a046070e666 Mon Sep 17 00:00:00 2001 +From: Maximilian Bosch <maximilian@mbosch.me> +Date: Fri, 23 Aug 2019 00:19:20 +0200 +Subject: [PATCH] Explicitly copy dbus files into the store dir + +--- + shell_integration/libcloudproviders/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/shell_integration/libcloudproviders/CMakeLists.txt b/shell_integration/libcloudproviders/CMakeLists.txt +index 1f35335..7f76951 100644 +--- a/shell_integration/libcloudproviders/CMakeLists.txt ++++ b/shell_integration/libcloudproviders/CMakeLists.txt +@@ -19,7 +19,7 @@ MACRO(PKGCONFIG_GETVAR _package _var _output_variable) + ENDMACRO(PKGCONFIG_GETVAR _package _var _output_variable) + + macro(dbus_add_activation_service _sources) +- PKGCONFIG_GETVAR(dbus-1 session_bus_services_dir _install_dir) ++ set(_install_dir "${CMAKE_INSTALL_DATADIR}/dbus-1/service") + foreach (_i ${_sources}) + get_filename_component(_service_file ${_i} ABSOLUTE) + string(REGEX REPLACE "\\.service.*$" ".service" _output_file ${_i}) +-- +2.19.2 + diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix new file mode 100644 index 000000000000..71fce57504c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix @@ -0,0 +1,66 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, inotify-tools +, libcloudproviders +, libsecret +, openssl +, pcre +, pkgconfig +, qtbase +, qtkeychain +, qttools +, qtwebengine +, sqlite +}: + +mkDerivation rec { + pname = "nextcloud-client"; + version = "2.6.1"; + + src = fetchFromGitHub { + owner = "nextcloud"; + repo = "desktop"; + rev = "v${version}"; + sha256 = "18318j488pxksf4zc6zag8pdpyaks55yivn91nx3x458ax6albkz"; + }; + + patches = [ + ./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch + ]; + + nativeBuildInputs = [ + pkgconfig + cmake + ]; + + buildInputs = [ + inotify-tools + libcloudproviders + openssl + pcre + qtbase + qtkeychain + qttools + qtwebengine + sqlite + ]; + + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}" + ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH + "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit + ]; + + meta = with lib; { + description = "Nextcloud themed desktop client"; + homepage = https://nextcloud.com; + license = licenses.gpl2; + maintainers = with maintainers; [ caugner ma27 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nload/default.nix b/nixpkgs/pkgs/applications/networking/nload/default.nix new file mode 100644 index 000000000000..16cc0e3d50a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nload/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, fetchpatch, ncurses }: + +stdenv.mkDerivation rec { + version = "0.7.4"; + pname = "nload"; + + src = fetchurl { + url = "http://www.roland-riegel.de/nload/${pname}-${version}.tar.gz"; + sha256 = "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"; + }; + + patches = [ + # Fixes an ugly bug of graphs scrolling to the side, corrupting the view. + # There is an upstream fix, but not a new upstream release that includes it. + # Other distributions like Gentoo also patch this as a result; see: + # https://github.com/rolandriegel/nload/issues/3#issuecomment-427579143 + # TODO Remove when https://github.com/rolandriegel/nload/issues/3 is merged and available + (fetchpatch { + url = "https://github.com/rolandriegel/nload/commit/8a93886e0fb33a81b8fe32e88ee106a581fedd34.patch"; + name = "nload-0.7.4-Eliminate-flicker-on-some-terminals.patch"; + sha256 = "10yppy5l50wzpcvagsqkbyf1rcan6aj30am4rw8hmkgnbidf4zbq"; + }) + ]; + + buildInputs = [ ncurses ]; + + meta = { + description = "Monitors network traffic and bandwidth usage with ncurses graphs"; + longDescription = '' + nload is a console application which monitors network traffic and + bandwidth usage in real time. It visualizes the in- and outgoing traffic + using two graphs and provides additional info like total amount of + transfered data and min/max network usage. + ''; + homepage = http://www.roland-riegel.de/nload/index.html; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix b/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix new file mode 100644 index 000000000000..96bdc0b1dfa4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, libconfig, pkgconfig, libevent, openssl }: + +stdenv.mkDerivation { + pname = "nntp-proxy"; + version = "2014-01-06"; + + src = fetchFromGitHub { + owner = "nieluj"; + repo = "nntp-proxy"; + rev = "0358e7ad6c4676f90ac5074320b16e1461b0011a"; + sha256 = "0jwxh71am83fbnq9mn06jl06rq8qybm506js79xmmc3xbk5pqvy4"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libconfig libevent openssl ]; + + installFlags = [ "INSTALL_DIR=$(out)/bin/" ]; + + prePatch = '' + mkdir -p $out/bin + substituteInPlace Makefile \ + --replace /usr/bin/install $(type -P install) \ + --replace gcc cc + ''; + + meta = { + description = "Simple NNTP proxy with SSL support"; + homepage = https://github.com/nieluj/nntp-proxy; + license = stdenv.lib.licenses.gpl2Plus; + maintainers = [ stdenv.lib.maintainers.fadenb ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/offrss/default.nix b/nixpkgs/pkgs/applications/networking/offrss/default.nix new file mode 100644 index 000000000000..d91bfbae501d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/offrss/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, curl, libmrss, podofo, libiconv }: + +stdenv.mkDerivation { + name = "offrss-1.3"; + + installPhase = '' + mkdir -p $out/bin + cp offrss $out/bin + ''; + + buildInputs = [ curl libmrss ] + ++ stdenv.lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) podofo + ++ stdenv.lib.optional (!stdenv.isLinux) libiconv; + + configurePhase = '' + substituteInPlace Makefile \ + --replace '$(CC) $(CFLAGS) $(LDFLAGS)' '$(CXX) $(CFLAGS) $(LDFLAGS)' + '' + stdenv.lib.optionalString (!stdenv.isLinux) '' + sed 's/#EXTRA/EXTRA/' -i Makefile + '' + stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + sed 's/^PDF/#PDF/' -i Makefile + ''; + + src = fetchurl { + url = http://vicerveza.homeunix.net/~viric/soft/offrss/offrss-1.3.tar.gz; + sha256 = "1akw1x84jj2m9z60cvlvmz21qwlaywmw18pl7lgp3bj5nw6250p6"; + }; + + meta = { + homepage = http://vicerveza.homeunix.net/~viric/cgi-bin/offrss; + description = "Offline RSS/Atom reader"; + license="AGPLv3+"; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/omping/default.nix b/nixpkgs/pkgs/applications/networking/omping/default.nix new file mode 100644 index 000000000000..dc52d767438b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/omping/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, fetchpatch }: + +stdenv.mkDerivation rec { + pname = "omping"; + version = "0.0.5"; + + src = fetchFromGitHub { + owner = "troglobit"; + repo = "omping"; + rev = version; + sha256 = "1f0vsbnhxp7bbgdnfqshryx3nhz2sqdnxdj068s0nmzsh53ckbf7"; + }; + + patches = [ + # This can go in 0.0.6+ + (fetchpatch { + url = "https://github.com/troglobit/omping/commit/08a31ec1a6eb4e8f88c301ef679c3b6f9893f333.patch"; + sha256 = "1xafyvd46bq53w2zvjw8bdw7vjqbrcrr21cyh6d0zfcn4gif1k0f"; + name = "fix_manpage_install.patch"; + }) + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Open Multicast Ping (omping) is a tool for testing IPv4/IPv6 multicast connectivity on a LAN."; + license = licenses.mit; + platforms = platforms.unix; + inherit (src.meta) homepage; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ostinato/default.nix b/nixpkgs/pkgs/applications/networking/ostinato/default.nix new file mode 100644 index 000000000000..3f48601d96f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ostinato/default.nix @@ -0,0 +1,68 @@ +{ stdenv, fetchFromGitHub, fetchurl, qmake4Hook, makeDesktopItem +, qt4, protobuf, libpcap, wireshark, gzip, diffutils, gawk +}: + +stdenv.mkDerivation rec { + pname = "ostinato"; + version = "0.9"; + + src = fetchFromGitHub { + owner = "pstavirs"; + repo = "ostinato"; + rev = "v${version}"; + sha256 = "109gxj6djdsk7rp1nxpx39kfi75xfl9p9qgffh1cpcdpbsbvq5bx"; + }; + + ostinatoIcon = fetchurl { + url = "https://ostinato.org/images/site-logo.png"; + sha256 = "f5c067823f2934e4d358d76f65a343efd69ad783a7aeabd7ab4ce3cd03490d70"; + }; + + buildInputs = [ qt4 protobuf libpcap ]; + + nativeBuildInputs = [ qmake4Hook ]; + + patches = [ ./drone_ini.patch ]; + + desktopItem = makeDesktopItem { + type = "application"; + name = "ostinato"; + desktopName = "Ostinato"; + genericName = "Packet/Traffic Generator and Analyzer"; + comment = "Network packet and traffic generator and analyzer with a friendly GUI"; + categories = "Network"; + terminal = "false"; + startupNotify = "true"; + exec = "$out/bin/ostinato"; + icon = ostinatoIcon; + extraEntries = '' + GenericName[it]=Generatore ed Analizzatore di pacchetti di rete + Comment[it]=Generatore ed Analizzatore di pacchetti di rete con interfaccia amichevole + ''; + }; + + postInstall = '' + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications/ + + cat > $out/bin/ostinato.ini <<EOF + WiresharkPath=${wireshark}/bin/wireshark + TsharkPath=${wireshark}/bin/tshark + GzipPath=${gzip}/bin/gzip + DiffPath=${diffutils}/bin/diff + AwkPath=${gawk}/bin/awk + EOF + ''; + + # `cd common; qmake ostproto.pro; make pdmlreader.o`: + # pdmlprotocol.h:23:25: fatal error: protocol.pb.h: No such file or directory + enableParallelBuilding = false; + + meta = with stdenv.lib; { + description = "A packet traffic generator and analyzer"; + homepage = https://ostinato.org; + license = licenses.gpl3; + maintainers = with maintainers; [ rick68 ]; + platforms = with platforms; linux ++ darwin ++ cygwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch b/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch new file mode 100644 index 000000000000..5818f4e94c30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch @@ -0,0 +1,14 @@ +diff -Nru ostinato-414d89860de0987843295d149bcabeac7c6fd9e5/server/drone_main.cpp ostinato-414d89860de0987843295d149bcabeac7c6fd9e5.new/server/drone_main.cpp +--- ostinato-414d89860de0987843295d149bcabeac7c6fd9e5/server/drone_main.cpp 2015-12-24 16:46:35.000000000 +0800 ++++ ostinato-414d89860de0987843295d149bcabeac7c6fd9e5.new/server/drone_main.cpp 2015-12-30 20:59:04.319199699 +0800 +@@ -62,8 +62,8 @@ + /* (Portable Mode) If we have a .ini file in the same directory as the + executable, we use that instead of the platform specific location + and format for the settings */ +- QString portableIni = QCoreApplication::applicationDirPath() +- + "/drone.ini"; ++ QString portableIni = argc > 2 ? argv[2] : ++ QCoreApplication::applicationDirPath() + "/drone.ini"; + if (QFile::exists(portableIni)) + appSettings = new QSettings(portableIni, QSettings::IniFormat); + else diff --git a/nixpkgs/pkgs/applications/networking/owamp/default.nix b/nixpkgs/pkgs/applications/networking/owamp/default.nix new file mode 100644 index 000000000000..4dad5f4d6bdf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/owamp/default.nix @@ -0,0 +1,28 @@ +{stdenv, fetchFromGitHub +, autoconf, automake, mandoc }: + +stdenv.mkDerivation rec { + pname = "owamp"; + version = "3.5.6"; + buildInputs = [ autoconf automake mandoc ]; + src = fetchFromGitHub { + owner = "perfsonar"; + repo = "owamp"; + rev = version; + sha256="019rcshmrqk8pfp510j5jvazdcnz0igfkwv44mfxb5wirzj9p6s7"; + fetchSubmodules = true; + }; + + preConfigure = '' + I2util/bootstrap.sh + ./bootstrap + ''; + + meta = with stdenv.lib; { + homepage = http://software.internet2.edu/owamp/; + description = ''A tool for performing one-way active measurements''; + platforms = platforms.linux; + maintainers = [maintainers.teto]; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix new file mode 100644 index 000000000000..998944838e8e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, mkDerivation, cmake, pkgconfig, qtbase, qtkeychain, sqlite }: + +mkDerivation rec { + pname = "owncloud-client"; + version = "2.5.4.11654"; + + src = fetchurl { + url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz"; + sha256 = "0gsnry0786crbnpgg3f1vcqw6mwbz6svhm6mw3767qi4lb33jm31"; + }; + + nativeBuildInputs = [ pkgconfig cmake ]; + buildInputs = [ qtbase qtkeychain sqlite ]; + + cmakeFlags = [ + "-UCMAKE_INSTALL_LIBDIR" + "-DNO_SHIBBOLETH=1" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Synchronise your ownCloud with your computer using this desktop client"; + homepage = https://owncloud.org; + maintainers = [ maintainers.qknight ]; + platforms = platforms.unix; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix new file mode 100644 index 000000000000..63218f1c2ffc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, fetchpatch, intltool, libtorrentRasterbar, pythonPackages }: + +pythonPackages.buildPythonPackage rec { + pname = "deluge"; + version = "1.3.15"; + + src = fetchurl { + url = "http://download.deluge-torrent.org/source/${pname}-${version}.tar.bz2"; + sha256 = "1467b9hmgw59gf398mhbf40ggaka948yz3afh6022v753c9j7y6w"; + }; + + patches = [ + # Fix preferences when built against libtorrent >=0.16 + (fetchpatch { + url = "https://git.deluge-torrent.org/deluge/patch/?id=38d7b7cdfde3c50d6263602ffb03af92fcbfa52e"; + sha256 = "0la3i0lkj6yv4725h4kbd07mhfwcb34w7prjl9gxg12q7px6c31d"; + }) + ]; + + propagatedBuildInputs = with pythonPackages; [ + pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity + libtorrentRasterbar.dev libtorrentRasterbar.python setuptools + ]; + + nativeBuildInputs = [ intltool ]; + + postInstall = '' + mkdir -p $out/share/applications + cp -R deluge/data/pixmaps $out/share/ + cp -R deluge/data/icons $out/share/ + cp deluge/data/share/applications/deluge.desktop $out/share/applications + ''; + + meta = with stdenv.lib; { + homepage = https://deluge-torrent.org; + description = "Torrent client"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ domenkozar ebzzry ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix new file mode 100644 index 000000000000..2692e5360cec --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix @@ -0,0 +1,65 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, qt4, boost, bzip2, libX11 +, fetchpatch, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext }: + +stdenv.mkDerivation rec { + pname = "eiskaltdcpp"; + version = "2.2.10"; + + src = fetchFromGitHub { + owner = "eiskaltdcpp"; + repo = "eiskaltdcpp"; + rev = "v${version}"; + sha256 = "1mqz0g69njmlghcra3izarjxbxi1jrhiwn4ww94b8jv8xb9cv682"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ qt4 boost bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext ] + ++ stdenv.lib.optional stdenv.isDarwin libiconv; + + patches = [ + (fetchpatch { + url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b7b56bd7060b426b1f1bfded392ae6853644e2e.patch"; + sha256 = "1rqjdsvirn3ks9w9qn893fb73mz84xm04wl13fvsvj8p42i5cjas"; + }) + (fetchpatch { + url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/bb9eb364a943fe2a67b3ea52ec6a3f9e911f07dc.patch"; + sha256 = "1hjhf9a9j4z8v24g5qh5mcg3n0540lbn85y7kvxsh3khc5v3cywx"; + }) + (fetchpatch { + url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/ef4426f1f9a8255e335b0862234e6cc28befef5e.patch"; + sha256 = "13j018c499n4b5as2n39ws64yj0cf4fskxbqab309vmnjkirxv6x"; + }) + (fetchpatch { + url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/a9c136c8707280d0eeb66be6b289d9718287c55c.patch"; + sha256 = "0w8v4mbrzk7pmzc475ff96mzzwlh8a0p62kk7p829m5yqdwj4sc9"; + }) + (fetchpatch { + url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b9c502ff5c98856d4f8fdb7ed3c6ef34448bfb7.patch"; + sha256 = "0fjwaq0wd9a164k5ysdjy89hx0ixnxc6q7cvyn1ba28snm0pgxb8"; + }) + ]; + + cmakeFlags = [ + "-DUSE_ASPELL=ON" + "-DUSE_QT_QML=ON" + "-DFREE_SPACE_BAR_C=ON" + "-DUSE_MINIUPNP=ON" + "-DLOCAL_MINIUPNP=ON" + "-DDBUS_NOTIFY=ON" + "-DUSE_JS=ON" + "-DPERL_REGEX=ON" + "-DUSE_CLI_XMLRPC=ON" + "-DWITH_SOUNDS=ON" + "-DLUA_SCRIPT=ON" + "-DWITH_LUASCRIPTS=ON" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "A cross-platform program that uses the Direct Connect and ADC protocols"; + homepage = https://github.com/eiskaltdcpp/eiskaltdcpp; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix new file mode 100644 index 000000000000..244352884883 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchurl, fetchFromGitHub, ant, jdk, bash, coreutils, substituteAll }: + +let + freenet_ext = fetchurl { + url = https://downloads.freenetproject.org/latest/freenet-ext.jar; + sha256 = "17ypljdvazgx2z6hhswny1lxfrknysz3x6igx8vl3xgdpvbb7wij"; + }; + + bcprov_version = "jdk15on-154"; + bcprov = fetchurl { + url = "https://www.bouncycastle.org/download/bcprov-ext-${bcprov_version}.jar"; + sha256 = "0abmhg2h44g8c5p7skzqwfxj8xwcjh9vs84mc0hr78k1am0633jk"; + }; + seednodes = fetchurl { + url = https://downloads.freenetproject.org/alpha/opennet/seednodes.fref; + sha256 = "08awwr8n80b4cdzzb3y8hf2fzkr1f2ly4nlq779d6pvi5jymqdvv"; + }; + version = "build01475"; + + freenet-jars = stdenv.mkDerivation { + pname = "freenet-jars"; + inherit version; + + src = fetchFromGitHub { + owner = "freenet"; + repo = "fred"; + rev = version; + sha256 = "0k02fna9x219j7dhginbnf27i36bibb0rmm4qdwr5xm28hy1nd08"; + }; + + patchPhase = '' + cp ${freenet_ext} lib/freenet/freenet-ext.jar + cp ${bcprov} lib/bcprov-${bcprov_version}.jar + + sed '/antcall.*-ext/d' -i build.xml + sed 's/@unknown@/${version}/g' -i build-clean.xml + ''; + + buildInputs = [ ant jdk ]; + + buildPhase = "ant package-only"; + + installPhase = '' + mkdir -p $out/share/freenet + cp lib/bcprov-${bcprov_version}.jar $out/share/freenet + cp lib/freenet/freenet-ext.jar $out/share/freenet + cp dist/freenet.jar $out/share/freenet + ''; + }; + +in stdenv.mkDerivation { + name = "freenet-${version}"; + inherit version; + + src = substituteAll { + src = ./freenetWrapper; + inherit bash coreutils seednodes bcprov_version; + freenet = freenet-jars; + jre = jdk.jre; + }; + + jars = freenet-jars; + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/bin + cp $src $out/bin/freenet + chmod +x $out/bin/freenet + ln -s ${freenet-jars}/share $out/share + ''; + + meta = { + description = "Decentralised and censorship-resistant network"; + homepage = https://freenetproject.org/; + license = stdenv.lib.licenses.gpl2Plus; + maintainers = [ stdenv.lib.maintainers.doublec ]; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper b/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper new file mode 100755 index 000000000000..f3106265801f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper @@ -0,0 +1,18 @@ +#! @bash@/bin/bash + +PATH=@coreutils@/bin:$PATH + +export FREENET_HOME="$HOME/.local/share/freenet" +if [ -n "$XDG_DATA_HOME" ] + then export FREENET_HOME="$XDG_DATA_HOME/freenet" +fi + +if [ ! -d $FREENET_HOME ]; then + mkdir -p $FREENET_HOME +fi + +cp -u @seednodes@ $FREENET_HOME/seednodes.fref +chmod u+rw $FREENET_HOME/seednodes.fref + +cd $FREENET_HOME +@jre@/bin/java -cp @freenet@/share/freenet/bcprov-@bcprov_version@.jar:@freenet@/share/freenet/freenet-ext.jar:@freenet@/share/freenet/freenet.jar -Xmx1024M freenet.node.NodeStarter diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix new file mode 100644 index 000000000000..0449540eaff1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix @@ -0,0 +1,94 @@ +{ stdenv, fetchFromGitHub, gradle, perl, jre, makeWrapper, makeDesktopItem, mplayer }: + +let + version = "6.6.7-build-529"; + name = "frostwire-desktop-${version}"; + + src = fetchFromGitHub { + owner = "frostwire"; + repo = "frostwire"; + rev = name; + sha256 = "03wdj2kr8akzx8m1scvg98132zbaxh81qjdsxn2645b3gahjwz0m"; + }; + + desktopItem = makeDesktopItem { + name = "frostwire"; + desktopName = "FrostWire"; + genericName = "P2P Bittorrent client"; + exec = "frostwire"; + icon = "frostwire"; + comment = "Search and explore all kinds of files on the Bittorrent network"; + categories = "Network;FileTransfer;P2P;"; + }; + + # fake build to pre-download deps into fixed-output derivation + deps = stdenv.mkDerivation { + name = "${name}-deps"; + inherit src; + buildInputs = [ gradle perl ]; + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + ( cd desktop + 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 -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" #e' \ + | sh + ''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "11zd98g0d0fdgls4lsskkagwfxyh26spfd6c6g9cahl89czvlg3c"; + }; + +in stdenv.mkDerivation { + inherit name src; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ gradle ]; + + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + ( cd desktop + + # disable auto-update (anyway it won't update frostwire installed in nix store) + substituteInPlace src/com/frostwire/gui/updates/UpdateManager.java \ + --replace 'um.checkForUpdates' '// um.checkForUpdates' + + # fix path to mplayer + substituteInPlace src/com/frostwire/gui/player/MediaPlayerLinux.java \ + --replace /usr/bin/mplayer ${mplayer}/bin/mplayer + + substituteInPlace build.gradle \ + --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' + gradle --offline --no-daemon build + ) + ''; + + installPhase = '' + mkdir -p $out/lib $out/share/java + + cp desktop/build/libs/frostwire.jar $out/share/java/frostwire.jar + + cp ${ { x86_64-darwin = "desktop/lib/native/*.dylib"; + x86_64-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}.so"; + i686-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}X86.so"; + }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}") + } $out/lib + + cp -dpR ${desktopItem}/share $out + + makeWrapper ${jre}/bin/java $out/bin/frostwire \ + --add-flags "-Djava.library.path=$out/lib -jar $out/share/java/frostwire.jar" + ''; + + meta = with stdenv.lib; { + homepage = https://www.frostwire.com/; + description = "BitTorrent Client and Cloud File Downloader"; + license = licenses.gpl2; + maintainers = with maintainers; [ gavin ]; + platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix new file mode 100644 index 000000000000..d4fbb2ceb598 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, jre, makeWrapper }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + version = "6.7.4"; + pname = "frostwire"; + + src = fetchurl { + url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz"; + sha256 = "0pd9akfq8cx9qkfkzravvrb8pjaxa4b0vgjdwqc1zvkng4wl8848"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/share/java + mv $(ls */*.jar) $out/share/java + + makeWrapper $out/share/java/frostwire $out/bin/frostwire \ + --prefix PATH : ${jre}/bin/ + ''; + + meta = with stdenv.lib; { + homepage = https://www.frostwire.com/; + description = "BitTorrent Client and Cloud File Downloader"; + license = licenses.gpl2; + maintainers = with maintainers; [ gavin ]; + platforms = [ "x86_64-linux"]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix new file mode 100644 index 000000000000..e4b306453a41 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix @@ -0,0 +1,72 @@ +{ stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor +, libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring +, makeWrapper, ncurses, pkgconfig, libxml2, sqlite, zlib +, libpulseaudio, libopus, libogg, jansson }: + +stdenv.mkDerivation rec { + pname = "gnunet"; + version = "0.12.1"; + + src = fetchurl { + url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; + sha256 = "0zhz3dd4mr6k7wlcxw2xclq8p8l4ia5nlg78dylyz6lbz96h2lsm"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkgconfig libtool makeWrapper ]; + buildInputs = [ + adns curl gmp gnutls libextractor libgcrypt libgnurl libidn + libmicrohttpd libunistring libxml2 ncurses gettext + sqlite zlib libpulseaudio libopus libogg jansson + ]; + + preConfigure = '' + # Brute force: since nix-worker chroots don't provide + # /etc/{resolv.conf,hosts}, replace all references to `localhost' + # by their IPv4 equivalent. + find . \( -name \*.c -or -name \*.conf \) | \ + xargs sed -ie 's|\<localhost\>|127.0.0.1|g' + + # Make sure the tests don't rely on `/tmp', for the sake of chroot + # builds. + find . \( -iname \*test\*.c -or -name \*.conf \) | \ + xargs sed -ie "s|/tmp|$TMPDIR|g" + + sed -ie 's|@LDFLAGS@|@LDFLAGS@ $(Z_LIBS)|g' \ + src/regex/Makefile.in \ + src/fs/Makefile.in + ''; + + # unfortunately, there's still a few failures with impure tests + doCheck = false; + checkPhase = '' + export GNUNET_PREFIX="$out" + export PATH="$out/bin:$PATH" + make -k check + ''; + + meta = with stdenv.lib; { + description = "GNU's decentralized anonymous and censorship-resistant P2P framework"; + + longDescription = '' + GNUnet is a framework for secure peer-to-peer networking that + does not use any centralized or otherwise trusted services. A + first service implemented on top of the networking layer + allows anonymous censorship-resistant file-sharing. Anonymity + is provided by making messages originating from a peer + indistinguishable from messages that the peer is routing. All + peers act as routers and use link-encrypted connections with + stable bandwidth utilization to communicate with each other. + GNUnet uses a simple, excess-based economic model to allocate + resources. Peers in GNUnet monitor each others behavior with + respect to resource usage; peers that contribute to the + network are rewarded with better service. + ''; + + homepage = https://gnunet.org/; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ vrthra ]; + platforms = platforms.gnu ++ platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix new file mode 100644 index 000000000000..e8f209239bfe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix @@ -0,0 +1,92 @@ +{ stdenv, fetchgit, libextractor, libmicrohttpd, libgcrypt +, zlib, gmp, curl, libtool, adns, sqlite, pkgconfig +, libxml2, ncurses, gettext, libunistring, libidn +, makeWrapper, autoconf, automake, texinfo, which +, withVerbose ? false }: + +let + rev = "ce2864cfaa27e55096b480bf35db5f8cee2a5e7e"; +in +stdenv.mkDerivation { + name = "gnunet-git-${rev}"; + + src = fetchgit { + url = https://gnunet.org/git/gnunet.git; + inherit rev; + sha256 = "0gbw920m9v4b3425c0d1h7drgl2m1fni1bwjn4fwqnyz7kdqzsgl"; + }; + + buildInputs = [ + libextractor libmicrohttpd libgcrypt gmp curl libtool + zlib adns sqlite libxml2 ncurses libidn + pkgconfig gettext libunistring makeWrapper + autoconf automake texinfo which + ]; + + configureFlags = stdenv.lib.optional withVerbose "--enable-logging=verbose "; + + preConfigure = '' + # Brute force: since nix-worker chroots don't provide + # /etc/{resolv.conf,hosts}, replace all references to `localhost' + # by their IPv4 equivalent. + for i in $(find . \( -name \*.c -or -name \*.conf \) \ + -exec grep -l '\<localhost\>' {} \;) + do + echo "$i: substituting \`127.0.0.1' to \`localhost'..." + sed -i "$i" -e's/\<localhost\>/127.0.0.1/g' + done + + # Make sure the tests don't rely on `/tmp', for the sake of chroot + # builds. + for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \ + -exec grep -l /tmp {} \;) + do + echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..." + substituteInPlace "$i" --replace "/tmp" "$TMPDIR" + done + + # Ensure NSS installation works fine + configureFlags="$configureFlags --with-nssdir=$out/lib" + + sh contrib/pogen.sh + sh bootstrap + ''; + + doCheck = false; + + /* FIXME: Tests must be run this way, but there are still a couple of + failures. + + postInstall = + '' export GNUNET_PREFIX="$out" + export PATH="$out/bin:$PATH" + make -k check + ''; + */ + + meta = with stdenv.lib; { + description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework"; + + longDescription = '' + GNUnet is a framework for secure peer-to-peer networking that + does not use any centralized or otherwise trusted services. A + first service implemented on top of the networking layer + allows anonymous censorship-resistant file-sharing. Anonymity + is provided by making messages originating from a peer + indistinguishable from messages that the peer is routing. All + peers act as routers and use link-encrypted connections with + stable bandwidth utilization to communicate with each other. + GNUnet uses a simple, excess-based economic model to allocate + resources. Peers in GNUnet monitor each others behavior with + respect to resource usage; peers that contribute to the + network are rewarded with better service. + ''; + + homepage = https://gnunet.org/; + + license = licenses.agpl3Plus; + + maintainers = with stdenv.lib.maintainers; [ ]; + platforms = platforms.gnu ++ platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix new file mode 100644 index 000000000000..e38378d09b32 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix @@ -0,0 +1,34 @@ +{ mkDerivation, lib, fetchurl, fetchpatch, cmake +, extra-cmake-modules, qtbase, qtscript +, karchive, kcrash, kdnssd, ki18n, kio, knotifications, knotifyconfig +, kdoctools, kross, kcmutils, kwindowsystem +, libktorrent, taglib, libgcrypt, kplotting +}: + +mkDerivation rec { + pname = "ktorrent"; + version = "${libktorrent.mainVersion}"; + + src = fetchurl { + url = "mirror://kde/stable/ktorrent/${libktorrent.mainVersion}/${pname}-${version}.tar.xz"; + sha256 = "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534"; + }; + + nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ]; + + buildInputs = [ + qtbase qtscript + karchive kcrash kdnssd ki18n kio knotifications knotifyconfig kross kcmutils kwindowsystem + libktorrent taglib libgcrypt kplotting + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "KDE integrated BtTorrent client"; + homepage = https://www.kde.org/applications/internet/ktorrent/; + license = licenses.gpl2; + maintainers = with maintainers; [ eelco ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix new file mode 100644 index 000000000000..1c266d247b7c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix @@ -0,0 +1,33 @@ +{ lib, fetchFromGitHub, buildGoModule, go-bindata }: + +buildGoModule rec { + pname = "magnetico"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "boramalper"; + repo = "magnetico"; + rev = "v${version}"; + sha256 = "1f7y3z9ql079ix6ycihkmd3z3da3sfiqw2fap31pbvvjs65sg644"; + }; + + modSha256 = "1h9fij8mxlxfw7kxix00n10fkhkvmf8529fxbk1n30cxc1bs2szf"; + + buildInputs = [ go-bindata ]; + buildPhase = '' + make magneticow magneticod + ''; + + doCheck = true; + checkPhase = '' + make test + ''; + + meta = with lib; { + description = "Autonomous (self-hosted) BitTorrent DHT search engine suite."; + homepage = https://github.com/boramalper/magnetico; + license = licenses.agpl3; + badPlatforms = platforms.darwin; + maintainers = with maintainers; [ rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix new file mode 100644 index 000000000000..0ead4b7e3ec4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, ocamlPackages, zlib, bzip2, ncurses, file, gd, libpng, libjpeg }: + +stdenv.mkDerivation ({ + name = "mldonkey-3.1.6"; + + src = fetchurl { + url = https://github.com/ygrek/mldonkey/releases/download/release-3-1-6/mldonkey-3.1.6.tar.bz2; + sha256 = "0g84islkj72ymp0zzppcj9n4r21h0vlghnq87hv2wg580mybadhv"; + }; + + preConfigure = stdenv.lib.optionalString (ocamlPackages.camlp4 != null) '' + substituteInPlace Makefile --replace '+camlp4' \ + '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4' + ''; + + buildInputs = [ zlib ncurses bzip2 file gd libpng libjpeg ] ++ + (with ocamlPackages; [ ocaml camlp4 ]); + configureFlags = [ "--disable-gui" ]; + + meta = { + description = "Client for many p2p networks, with multiple frontends"; + homepage = http://mldonkey.sourceforge.net/; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.unix; + }; +} // (if !ocamlPackages.ocaml.nativeCompilers then +{ + # Byte code compilation (the ocaml opt compiler is not supported in some platforms) + buildPhase = "make mlnet.byte"; + installPhase = '' + mkdir -p $out/bin + cp mlnet.byte $out/bin/mlnet + ''; + + # ocaml bytecode selfcontained binaries loose the bytecode if stripped + dontStrip = true; +} else {})) diff --git a/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix new file mode 100644 index 000000000000..b28074a2fd6e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkgconfig, glib, gnutls }: + +stdenv.mkDerivation rec { + pname = "ncdc"; + version = "1.22.1"; + + src = fetchurl { + url = "https://dev.yorhel.nl/download/ncdc-${version}.tar.gz"; + sha256 = "1bdgqd07f026qk6vpbxqsin536znd33931m3b4z44prlm9wd6pyi"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls ]; + + meta = with stdenv.lib; { + description = "Modern and lightweight direct connect client with a friendly ncurses interface"; + homepage = https://dev.yorhel.nl/ncdc; + license = licenses.mit; + platforms = platforms.linux; # arbitrary + maintainers = with maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix new file mode 100644 index 000000000000..46c482818f8b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchgit, libowfat, zlib }: + +stdenv.mkDerivation { + name = "opentracker-2018-05-26"; + + src = fetchgit { + url = "https://erdgeist.org/gitweb/opentracker"; + rev = "6411f1567f64248b0d145493c2e61004d2822623"; + sha256 = "110nfb6n4clykwdzpk54iccsfjawq0krjfqhg114i1z0ri5dyl8j"; + }; + + buildInputs = [ libowfat zlib ]; + + installPhase = '' + runHook preInstall + install -D opentracker $out/bin/opentracker + install -D opentracker.conf.sample $out/share/doc/opentracker.conf.sample + runHook postInstall + ''; + + meta = with stdenv.lib; { + homepage = https://erdgeist.org/arts/software/opentracker/; + license = licenses.beerware; + platforms = platforms.linux; + description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router."; + maintainers = with maintainers; [ makefu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix new file mode 100644 index 000000000000..8ab83c8a4ba4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix @@ -0,0 +1,47 @@ +{ mkDerivation, lib, fetchFromGitHub, pkgconfig +, boost, libtorrentRasterbar, qtbase, qttools, qtsvg +, debugSupport ? false # Debugging +, guiSupport ? true, dbus ? null # GUI (disable to run headless) +, webuiSupport ? true # WebUI +}: + +assert guiSupport -> (dbus != null); +with lib; + +mkDerivation rec { + pname = "qbittorrent"; + version = "4.2.1"; + + src = fetchFromGitHub { + owner = "qbittorrent"; + repo = "qbittorrent"; + rev = "release-${version}"; + sha256 = "0bz4l7awkx4qf3gh9c8gj8fab989439zj8qy4x9r36wxdjg5cxil"; + }; + + # NOTE: 2018-05-31: CMake is working but it is not officially supported + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ boost libtorrentRasterbar qtbase qttools qtsvg ] + ++ optional guiSupport dbus; # D(esktop)-Bus depends on GUI support + + # Otherwise qm_gen.pri assumes lrelease-qt5, which does not exist. + QMAKE_LRELEASE = "lrelease"; + + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--with-boost=${boost.dev}" ] + ++ optionals (!guiSupport) [ "--disable-gui" "--enable-systemd" ] # Also place qbittorrent-nox systemd service files + ++ optional (!webuiSupport) "--disable-webui" + ++ optional debugSupport "--enable-debug"; + + enableParallelBuilding = true; + + meta = { + description = "Featureful free software BitTorrent client"; + homepage = https://www.qbittorrent.org/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ Anton-Latukha ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix new file mode 100644 index 000000000000..f10714031ff0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix @@ -0,0 +1,59 @@ +{ stdenv, fetchFromGitHub, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2 +, libXScrnSaver, speex, curl, libxml2, libxslt, sqlcipher, libmicrohttpd, opencv, qmake, ffmpeg +, qtmultimedia, qtx11extras, qttools }: + +stdenv.mkDerivation rec { + pname = "retroshare"; + version = "0.6.2"; + + src = fetchFromGitHub { + owner = "RetroShare"; + repo = "RetroShare"; + rev = "v${version}"; + sha256 = "0hly2x87wdvqzzwf3wjzi7092bj8fk4xs6302rkm8gp9bkkmiiw8"; + }; + + # NIX_CFLAGS_COMPILE = [ "-I${glib.dev}/include/glib-2.0" "-I${glib.dev}/lib/glib-2.0/include" "-I${libxml2.dev}/include/libxml2" "-I${sqlcipher}/include/sqlcipher" ]; + + patchPhase = '' + # Fix build error + sed -i 's/UpnpString_get_String(es_event->PublisherUrl)/es_event->PublisherUrl/' \ + libretroshare/src/upnp/UPnPBase.cpp + ''; + + nativeBuildInputs = [ pkgconfig qmake ]; + buildInputs = [ + speex libupnp gpgme gnome3.libgnome-keyring glib libssh qtmultimedia qtx11extras qttools + protobuf bzip2 libXScrnSaver curl libxml2 libxslt sqlcipher libmicrohttpd opencv ffmpeg + ]; + + preConfigure = '' + qmakeFlags="$qmakeFlags DESTDIR=$out" + ''; + + # gui/settings/PluginsPage.h:25:28: fatal error: ui_PluginsPage.h: No such file or directory + enableParallelBuilding = false; + + postInstall = '' + mkdir -p $out/bin + mv $out/RetroShare06-nogui $out/bin/RetroShare-nogui + mv $out/RetroShare06 $out/bin/Retroshare + ln -s $out/bin/RetroShare-nogui $out/bin/retroshare-nogui + + # plugins + mkdir -p $out/share/retroshare + mv $out/lib* $out/share/retroshare + + # BT DHT bootstrap + cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare + ''; + + meta = with stdenv.lib; { + description = ""; + homepage = http://retroshare.sourceforge.net/; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.domenkozar ]; + broken = true; # broken by libupnp: 1.6.21 -> 1.8.3 (#41684) + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix new file mode 100644 index 000000000000..b52320c96814 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix @@ -0,0 +1,61 @@ +{ stdenv, lib, fetchurl, mkDerivation +, autoPatchelfHook +, dbus +, desktop-file-utils +, fontconfig +, libjson +, pythonPackages +, qtmultimedia +, squashfsTools +, zlib +}: + +mkDerivation rec { + pname = "soulseekqt"; + version = "2018-1-30"; + + src = fetchurl { + urls = [ + "https://www.dropbox.com/s/0vi87eef3ooh7iy/SoulseekQt-${version}.tgz" + "https://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-${version}-64bit-appimage.tgz" + ]; + sha256 = "0d1cayxr1a4j19bc5a3qp9pg22ggzmd55b6f5av3lc6lvwqqg4w6"; + }; + + dontBuild = true; + + nativeBuildInputs = [ autoPatchelfHook pythonPackages.binwalk squashfsTools desktop-file-utils ]; + buildInputs = [ qtmultimedia stdenv.cc.cc ]; + + # avoid usage of appimage's runner option --appimage-extract + unpackCmd = '' + export HOME=$(pwd) # workaround for binwalk + appimage=$(tar xvf $curSrc) && binwalk --quiet \ + $appimage -D 'squashfs:squashfs:unsquashfs %e' + ''; + + patchPhase = '' + cd squashfs-root/ + binary="$(readlink AppRun)" + + # fixup desktop file + desktop-file-edit --set-key Exec --set-value $binary default.desktop + desktop-file-edit --set-key Comment --set-value "${meta.description}" default.desktop + desktop-file-edit --set-key Categories --set-value Network default.desktop + ''; + + installPhase = '' + mkdir -p $out/{bin,share/applications,share/icons/} + cp default.desktop $out/share/applications/$binary.desktop + cp soulseek.png $out/share/icons/ + cp $binary $out/bin/ + ''; + + meta = with lib; { + description = "Official Qt SoulSeek client"; + homepage = http://www.soulseekqt.net; + license = licenses.unfree; + maintainers = [ maintainers.genesis ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix new file mode 100644 index 000000000000..80b8251f2a3f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix @@ -0,0 +1,56 @@ +{ lib +, fetchFromGitHub +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "stig"; + # This project has a different concept for pre release / alpha, + # Read the project's README for details: https://github.com/rndusr/stig#stig + version = "0.10.1a"; + + src = fetchFromGitHub { + owner = "rndusr"; + repo = "stig"; + rev = "v${version}"; + sha256 = "076rlial6h1nhwdxf1mx5nf2zld5ci43cadj9wf8xms7zn8s6c8v"; + }; + + # urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged + # in nixpkgs) is not uploaded to pypi and 1.0.1 has a problematic `setup.py`. + # As long as we don't have any problems installing it, no special features / specific bugs + # were fixed in 1.0.3 that aren't available in 1.0.2 are used by stig. + # See https://github.com/rndusr/stig/issues/120 + postPatch = '' + substituteInPlace setup.py \ + --replace "urwidtrees>=1.0.3dev0" "urwidtrees" + ''; + + buildInputs = with python3.pkgs; [ + urwid + urwidtrees + aiohttp + async-timeout + pyxdg + blinker + natsort + maxminddb + setproctitle + ]; + + checkInputs = with python3.pkgs; [ + asynctest + pytest + ]; + + checkPhase = '' + pytest tests + ''; + + meta = with lib; { + description = "TUI and CLI for the BitTorrent client Transmission"; + homepage = "https://github.com/rndusr/stig"; + license = licenses.gpl3; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix new file mode 100644 index 000000000000..f3c7f8ccf18a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, CoreServices, Security }: + +rustPlatform.buildRustPackage rec { + pname = "synapse-bt"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "Luminarys"; + repo = "synapse"; + rev = version; + sha256 = "01npv3zwia5d534zdwisd9xfng507adv4qkljf8z0zm0khqqn71a"; + }; + + cargoSha256 = "0m4jigz6la3mf4yq217849ilcncb7d97mqyw2qicff4rbscdgf6h"; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openssl ] + ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ]; + + cargoBuildFlags = [ "--all" ]; + + meta = with stdenv.lib; { + description = "Flexible and fast BitTorrent daemon"; + homepage = https://synapse-bt.org/; + license = licenses.isc; + maintainers = with maintainers; [ dywedir ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix new file mode 100644 index 000000000000..72003f417210 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, glib, zlib, dbus, dbus-glib, gtk2, gdk-pixbuf, cairo, pango }: + +stdenv.mkDerivation rec { + pname = "tixati"; + version = "2.66"; + + src = fetchurl { + url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz"; + sha256 = "1qwmxfkgc5q7v6ickxr29khil6mh9crv5mwdm72bp6k64w0akbs7"; + }; + + installPhase = '' + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${stdenv.lib.makeLibraryPath [ glib zlib dbus dbus-glib gtk2 gdk-pixbuf cairo pango ]} \ + tixati + install -D tixati $out/bin/tixati + install -D tixati.desktop $out/share/applications/tixati.desktop + install -D tixati.png $out/share/icons/tixati.png + ''; + + dontStrip = true; + + meta = with stdenv.lib; { + description = "Torrent client"; + homepage = http://www.tixati.com; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ volth ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix b/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix new file mode 100644 index 000000000000..01da8a633742 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix @@ -0,0 +1,66 @@ +{ stdenv +, fetchFromGitHub +, cmake +, pkgconfig +, vala_0_40 +, pantheon +, curl +, glib +, gtk3 +, libb64 +, libevent +, libgee +, libnatpmp +, libunity +, miniupnpc +, openssl +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "torrential"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "davidmhewitt"; + repo = "torrential"; + rev = version; + fetchSubmodules = true; + sha256 = "17aby0c17ybyzyzyc1cg1j6q1a186801fy84avlaxahqp7vdammx"; + }; + + nativeBuildInputs = [ + cmake + vala_0_40 # https://github.com/davidmhewitt/torrential/issues/135 + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + curl + glib + gtk3 + libb64 + libevent + libgee + libnatpmp + libunity + miniupnpc + openssl + pantheon.granite + ]; + + passthru = { + updateScript = pantheon.updateScript { + attrPath = pname; + }; + }; + + meta = with stdenv.lib; { + description = "Download torrents in style with this speedy, minimalist torrent client for elementary OS"; + homepage = https://github.com/davidmhewitt/torrential; + maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix new file mode 100644 index 000000000000..51d591995b76 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix @@ -0,0 +1,76 @@ +{ stdenv, fetchFromGitHub, pkgconfig, makeDesktopItem, unzip, fpc, lazarus, +libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }: + +stdenv.mkDerivation rec { + pname = "transgui"; + version = "5.18.0"; + + src = fetchFromGitHub { + owner = "transmission-remote-gui"; + repo = "transgui"; + rev = "v${version}"; + sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + unzip fpc lazarus stdenv.cc + libX11 glib gtk2 gdk-pixbuf pango atk cairo openssl + ]; + + NIX_LDFLAGS = " + -L${stdenv.cc.cc.lib}/lib + -lX11 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 + -lgdk_pixbuf-2.0 -lpango-1.0 -latk-1.0 -lcairo -lc -lcrypto + "; + + prePatch = '' + substituteInPlace restranslator.pas --replace /usr/ $out/ + ''; + + preBuild = '' + lazbuild -B transgui.lpr --lazarusdir=${lazarus}/share/lazarus + ''; + + makeFlags = [ + "FPC=fpc" + "PP=fpc" + "INSTALL_PREFIX=$(out)" + ]; + + LCL_PLATFORM = "gtk2"; + + desktopItem = makeDesktopItem rec { + name = "transgui"; + exec = name + " %U"; + icon = name; + type = "Application"; + comment = meta.description; + desktopName = "Transmission Remote GUI"; + genericName = "BitTorrent Client"; + categories = stdenv.lib.concatStringsSep ";" [ + "Application" "Network" "FileTransfer" "P2P" "GTK" + ]; + startupNotify = "true"; + mimeType = stdenv.lib.concatStringsSep ";" [ + "application/x-bittorrent" "x-scheme-handler/magnet" + ]; + }; + + postInstall = '' + mkdir -p "$out/share/applications" + cp $desktopItem/share/applications/* $out/share/applications + mkdir -p "$out/share/icons/hicolor/48x48/apps" + cp transgui.png "$out/share/icons/hicolor/48x48/apps" + mkdir -p "$out/share/transgui" + cp -r "./lang" "$out/share/transgui" + ''; + + meta = { + description = "A cross platform front-end for the Transmission Bit-Torrent client"; + homepage = https://sourceforge.net/p/transgui; + license = stdenv.lib.licenses.gpl2Plus; + maintainers = with stdenv.lib.maintainers; [ ramkromberg ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix new file mode 100644 index 000000000000..e05ca43eb507 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, pythonPackages }: + +stdenv.mkDerivation rec { + pname = "transmission-remote-cli"; + version = "1.7.1"; + + src = fetchurl { + url = "https://github.com/fagga/transmission-remote-cli/archive/v${version}.tar.gz"; + sha256 = "1y0hkpcjf6jw9xig8yf484hbhy63nip0pkchx401yxj81m25l4z9"; + }; + + buildInputs = with pythonPackages; [ python wrapPython ]; + + installPhase = '' + install -D transmission-remote-cli $out/bin/transmission-remote-cli + install -D transmission-remote-cli.1 $out/share/man/man1/transmission-remote-cli.1 + wrapPythonPrograms + ''; + + meta = { + description = "Curses interface for the Transmission BitTorrent daemon"; + homepage = https://github.com/fagga/transmission-remote-cli; + license = stdenv.lib.licenses.gpl3Plus; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix new file mode 100644 index 000000000000..68babaddd1bc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix @@ -0,0 +1,42 @@ +{ stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkgconfig +, intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib, fetchpatch }: + + +stdenv.mkDerivation rec { + pname = "transmission-remote-gtk"; + version = "1.4.1"; + + src = fetchFromGitHub { + owner = "transmission-remote-gtk"; + repo = "transmission-remote-gtk"; + rev = version; + sha256 = "1pipc1f94jdppv597mqmcj2kw2rdvaqcbl512v7z8vir76p1a7gk"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/transmission-remote-gtk/transmission-remote-gtk/commit/0f5cc8a9942e220ea0f7d0b17db4a78d094e3b65.patch"; + sha256 = "195rsjpbc0gzmr9bycvq4mra7abp3hd9by3a5vvcmxsh5ipikycf"; + }) + ]; + + preConfigure = "./autogen.sh"; + + nativeBuildInputs= [ + autoconf automake libtool wrapGAppsHook + pkgconfig intltool autoconf-archive + appstream-glib + ]; + + buildInputs = [ gtk3 json-glib curl glib ]; + + doCheck = false; # fails with style validation error + + meta = with stdenv.lib; { + description = "GTK remote control for the Transmission BitTorrent client"; + homepage = https://github.com/ajf8/transmission-remote-gtk; + license = licenses.gpl2; + maintainers = [ maintainers.ehmry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix new file mode 100644 index 000000000000..25996953e11a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchurl, pkgconfig, intltool, file, wrapGAppsHook +, openssl, curl, libevent, inotify-tools, systemd, zlib +, enableGTK3 ? false, gtk3 +, enableSystemd ? stdenv.isLinux +, enableDaemon ? true +, enableCli ? true +}: + +let inherit (stdenv.lib) optional optionals optionalString; in + +stdenv.mkDerivation rec { + name = "transmission-" + optionalString enableGTK3 "gtk-" + version; + version = "2.94"; + + src = fetchurl { + url = "https://github.com/transmission/transmission-releases/raw/master/transmission-2.94.tar.xz"; + sha256 = "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m"; + }; + + nativeBuildInputs = [ pkgconfig ] + ++ optionals enableGTK3 [ wrapGAppsHook ]; + buildInputs = [ intltool file openssl curl libevent zlib ] + ++ optionals enableGTK3 [ gtk3 ] + ++ optionals enableSystemd [ systemd ] + ++ optionals stdenv.isLinux [ inotify-tools ]; + + postPatch = '' + substituteInPlace ./configure \ + --replace "libsystemd-daemon" "libsystemd" \ + --replace "/usr/bin/file" "${file}/bin/file" \ + --replace "test ! -d /Developer/SDKs/MacOSX10.5.sdk" "false" + ''; + + configureFlags = [ + ("--enable-cli=" + (if enableCli then "yes" else "no")) + ("--enable-daemon=" + (if enableDaemon then "yes" else "no")) + "--disable-mac" # requires xcodebuild + ] + ++ optional enableSystemd "--with-systemd-daemon" + ++ optional enableGTK3 "--with-gtk"; + + NIX_LDFLAGS = optionalString stdenv.isDarwin "-framework CoreFoundation"; + + meta = with stdenv.lib; { + description = "A fast, easy and free BitTorrent client"; + longDescription = '' + Transmission is a BitTorrent client which features a simple interface + on top of a cross-platform back-end. + Feature spotlight: + * Uses fewer resources than other clients + * Native Mac, GTK and Qt GUI clients + * Daemon ideal for servers, embedded systems, and headless use + * All these can be remote controlled by Web and Terminal clients + * Bluetack (PeerGuardian) blocklists with automatic updates + * Full encryption, DHT, and PEX support + ''; + homepage = http://www.transmissionbt.com/; + license = licenses.gpl2; # parts are under MIT + maintainers = with maintainers; [ astsmtl vcunat wizeman ]; + platforms = platforms.unix; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix new file mode 100644 index 000000000000..683507f8b19a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchurl, pkgs, python3Packages, makeWrapper +, enablePlayer ? true, vlc ? null, qt5, lib }: + +stdenv.mkDerivation rec { + pname = "tribler"; + version = "7.4.0-exp1"; + + src = fetchurl { + url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz"; + sha256 = "18ziisg0v2gdxnprbhqsryz92yk270waj0la7m2h326k5qql3qkf"; + }; + + nativeBuildInputs = [ + python3Packages.wrapPython + makeWrapper + ]; + + buildInputs = [ + python3Packages.python + ]; + + pythonPath = [ + python3Packages.libtorrentRasterbar + python3Packages.twisted + python3Packages.netifaces + python3Packages.pycrypto + python3Packages.pyasn1 + python3Packages.requests + python3Packages.m2crypto + python3Packages.pyqt5 + python3Packages.chardet + python3Packages.cherrypy + python3Packages.cryptography + python3Packages.libnacl + python3Packages.configobj + python3Packages.decorator + python3Packages.feedparser + python3Packages.service-identity + python3Packages.psutil + python3Packages.pillow + python3Packages.networkx + python3Packages.pony + python3Packages.lz4 + python3Packages.pyqtgraph + + # there is a BTC feature, but it requires some unclear version of + # bitcoinlib, so this doesn't work right now. + # python3Packages.bitcoinlib + ]; + + postPatch = '' + ${stdenv.lib.optionalString enablePlayer '' + substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${vlc}/lib/libvlc.so')" + substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "if vlc and vlc.plugin_path" "if vlc" + substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${vlc}/lib/vlc/plugins'" + ''} + ''; + + installPhase = '' + mkdir -pv $out + # Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH. + wrapPythonPrograms + cp -prvd ./* $out/ + makeWrapper ${python3Packages.python}/bin/python $out/bin/tribler \ + --set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \ + --set _TRIBLERPATH $out \ + --set PYTHONPATH $out:$program_PYTHONPATH \ + --set NO_AT_BRIDGE 1 \ + --run 'cd $_TRIBLERPATH' \ + --add-flags "-O $out/run_tribler.py" \ + ${stdenv.lib.optionalString enablePlayer '' + --prefix LD_LIBRARY_PATH : ${vlc}/lib + ''} + ''; + + meta = with stdenv.lib; { + maintainers = with maintainers; [ xvapx ]; + homepage = https://www.tribler.org/; + description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol"; + license = licenses.lgpl21; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix b/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix new file mode 100644 index 000000000000..30491470392a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkgconfig, python2 +, boost, db, openssl, geoip, libiconv, miniupnpc +, srcOnly, fetchgit +}: + +let + twisterHTML = srcOnly { + name = "twister-html"; + src = fetchgit { + url = "git://github.com/miguelfreitas/twister-html.git"; + rev = "01e7f7ca9b7e42ed90f91bc42da2c909ca5c0b9b"; + sha256 = "0scjbin6s1kmi0bqq0dx0qyjw4n5xgmj567n0156i39f9h0dabqy"; + }; + }; + + boostPython = boost.override { enablePython = true; }; + +in stdenv.mkDerivation rec { + pname = "twister"; + version = "2019-08-19"; + + src = fetchFromGitHub { + owner = "miguelfreitas"; + repo = "twister-core"; + rev = "31faf3f63e461ea0a9b23081567a4a552cf06873"; + sha256 = "0xh1lgnl9nd86jr0mp7m8bkd7r5j4d6chd0y73h2xv4aq5sld0sp"; + }; + + configureFlags = [ + "--with-libgeoip" + "--with-libiconv" + "--disable-deprecated-functions" + "--enable-tests" + "--enable-python-binding" + "--with-boost-libdir=${boostPython.out}/lib" + ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + autoconf automake libtool python2 + boostPython db openssl geoip miniupnpc libiconv + ]; + + postPatch = '' + sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \ + src/init.cpp + sed -i -e '/GetDataDir.*html/s|path *= *[^;]*|path = "${twisterHTML}"|' \ + src/util.cpp + ''; + + preConfigure = '' + sh autotool.sh + ''; + + installPhase = '' + install -vD twisterd "$out/bin/twisterd" + ''; + + enableParallelBuilding = true; + + meta = { + homepage = http://www.twister.net.co/; + description = "Peer-to-peer microblogging"; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix new file mode 100644 index 000000000000..b1d3c73129aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchsvn, jdk, jre, ant, swt, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "vuze"; + version = "5750"; + + src = fetchsvn { + url = "http://svn.vuze.com/public/client/tags/RELEASE_${version}"; + sha256 = "07w6ipyiy8hi88d6yxbbf3vkv26mj7dcz9yr8141hb2ig03v0h0p"; + }; + + buildInputs = [ makeWrapper jdk ant ]; + + buildPhase = "ant"; + + installPhase = '' + install -D dist/Vuze_0000-00.jar $out/share/java/Vuze_${version}-00.jar + makeWrapper ${jre}/bin/java $out/bin/vuze \ + --add-flags "-Xmx256m -Djava.library.path=${swt}/lib -cp $out/share/java/Vuze_${version}-00.jar:${swt}/jars/swt.jar org.gudy.azureus2.ui.swt.Main" + ''; + + meta = with stdenv.lib; { + description = "Torrent client"; + homepage = http://www.vuze.com; + license = licenses.unfree; + platforms = platforms.all; + maintainers = with maintainers; [ volth ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix new file mode 100644 index 000000000000..ce5a99b1e5fc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "zeronet"; + version = "0.7.1"; + format = "other"; + + src = fetchFromGitHub { + owner = "HelloZeroNet"; + repo = "ZeroNet"; + rev = "v${version}"; + sha256 = "04prgicm0yjh2klcxdgwx1mvlsxxi2bdkzfcvysvixbgq20wjvdk"; + }; + + propagatedBuildInputs = with python3Packages; [ + gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket_client + gevent-websocket rencode bitcoinlib maxminddb pyopenssl + ]; + + buildPhase = '' + ${python3Packages.python.interpreter} -O -m compileall . + ''; + + installPhase = '' + mkdir -p $out/share + cp -r plugins src tools *.py $out/share/ + ''; + + postFixup = '' + makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \ + --set PYTHONPATH "$PYTHONPATH" \ + --set PATH ${python3Packages.python}/bin + ''; + + meta = with stdenv.lib; { + description = "Decentralized websites using Bitcoin crypto and BitTorrent network"; + homepage = "https://zeronet.io/"; + license = licenses.gpl2; + maintainers = with maintainers; [ fgaz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ping/default.nix b/nixpkgs/pkgs/applications/networking/ping/default.nix new file mode 100644 index 000000000000..925618bbe991 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ping/default.nix @@ -0,0 +1,65 @@ +{ stdenv +, fetchFromGitHub +, meson +, ninja +, vala +, pkgconfig +, pantheon +, python3 +, glib +, gtk3 +, gtksourceview +, json-glib +, libsoup +, libgee +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "ping"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "jeremyvaartjes"; + repo = "ping"; + rev = version; + sha256 = "1h9cdy2jxa2ffykjg89j21hazls32z9yyv3g0x07x3vizzl5xcij"; + }; + + nativeBuildInputs = [ + meson + ninja + vala + pkgconfig + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + gtksourceview + json-glib + libgee + libsoup + pantheon.granite + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = pantheon.updateScript { + attrPath = pname; + }; + }; + + meta = with stdenv.lib; { + description = "A helpful tool that lets you debug what part of your API is causing you issues"; + homepage = https://github.com/jeremyvaartjes/ping; + maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/nixpkgs/pkgs/applications/networking/pjsip/default.nix new file mode 100644 index 000000000000..c9df5d3fbe37 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, openssl, libsamplerate, alsaLib }: + +stdenv.mkDerivation rec { + pname = "pjsip"; + version = "2.9"; + + src = fetchurl { + url = "https://www.pjsip.org/release/${version}/pjproject-${version}.tar.bz2"; + sha256 = "0dm6l8fypkimmzvld35zyykbg957cm5zb4ny3lchgv68amwfz1fi"; + }; + + patches = [ ./fix-aarch64.patch ]; + + buildInputs = [ openssl libsamplerate alsaLib ]; + + preConfigure = '' + export LD=$CC + ''; + + postInstall = '' + mkdir -p $out/bin + cp pjsip-apps/bin/pjsua-* $out/bin/pjsua + mkdir -p $out/share/${pname}-${version}/samples + cp pjsip-apps/bin/samples/*/* $out/share/${pname}-${version}/samples + ''; + + # We need the libgcc_s.so.1 loadable (for pthread_cancel to work) + dontPatchELF = true; + + meta = { + description = "A multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE"; + homepage = https://pjsip.org/; + license = stdenv.lib.licenses.gpl2Plus; + maintainers = with stdenv.lib.maintainers; [olynch]; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch b/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch new file mode 100644 index 000000000000..f4aabf7a9bb4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch @@ -0,0 +1,13 @@ +--- a/aconfigure ++++ b/aconfigure +@@ -8945,6 +8945,10 @@ + ac_webrtc_instset=neon + ac_webrtc_cflags="-DWEBRTC_ARCH_ARMV7 -mfloat-abi=hard -mfpu=neon" + ;; ++ arm64*|aarch64*) ++ ac_webrtc_instset=neon ++ ac_webrtc_cflags="-DWEBRTC_ARCH_ARM64" ++ ;; + *) + ac_webrtc_instset=sse2 + ;; diff --git a/nixpkgs/pkgs/applications/networking/protocol/default.nix b/nixpkgs/pkgs/applications/networking/protocol/default.nix new file mode 100644 index 000000000000..8785d2449b3e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protocol/default.nix @@ -0,0 +1,20 @@ +{ stdenv, buildPythonApplication, fetchFromGitHub }: + +buildPythonApplication { + pname = "protocol-unstable"; + version = "2019-03-28"; + + src = fetchFromGitHub { + owner = "luismartingarcia"; + repo = "protocol"; + rev = "4e8326ea6c2d288be5464c3a7d9398df468c0ada"; + sha256 = "13l10jhf4vghanmhh3pn91b2jdciispxy0qadz4n08blp85qn9cm"; + }; + + meta = with stdenv.lib; { + description = "An ASCII Header Generator for Network Protocols"; + homepage = https://github.com/luismartingarcia/protocol; + license = licenses.gpl3; + maintainers = with maintainers; [ teto ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix new file mode 100644 index 000000000000..7acf821dfcf4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix @@ -0,0 +1,73 @@ +{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtsvg, qtdeclarative, qttools, qtgraphicaleffects, qtquickcontrols2, full +, libsecret, libGL, libpulseaudio, glib, wrapQtAppsHook, mkDerivation }: + +let + version = "1.2.3-1"; + + description = '' + An application that runs on your computer in the background and seamlessly encrypts + and decrypts your mail as it enters and leaves your computer. + + To work, gnome-keyring service must be enabled. + ''; +in mkDerivation { + pname = "protonmail-bridge"; + inherit version; + + src = fetchurl { + url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb"; + sha256 = "032ggk9fvd19fbsqkzwzwh0hpyg8gpkrin71di7zsx6ias5innw1"; + }; + + sourceRoot = "."; + + unpackCmd = '' + ar p "$src" data.tar.xz | tar xJ + ''; + + installPhase = '' + mkdir -p $out/{bin,lib,share} + + cp -r usr/lib/protonmail/bridge/protonmail-bridge $out/lib + cp -r usr/share $out + + ln -s $out/lib/protonmail-bridge $out/bin/protonmail-bridge + ''; + + postFixup = let + rpath = lib.makeLibraryPath [ + stdenv.cc.cc.lib + qtbase + qtquickcontrols2 + qtgraphicaleffects + qtmultimedia + qtsvg + qtdeclarative + qttools + libGL + libsecret + libpulseaudio + glib + ]; + in '' + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${rpath}" \ + $out/lib/protonmail-bridge + + substituteInPlace $out/share/applications/ProtonMail_Bridge.desktop \ + --replace "/usr/" "$out/" \ + --replace "Exec=protonmail-bridge" "Exec=$out/bin/protonmail-bridge" + ''; + + buildInputs = [ qtbase qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative ]; + + meta = with stdenv.lib; { + homepage = "https://www.protonmail.com/bridge"; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ lightdiscord ]; + + inherit description; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix new file mode 100644 index 000000000000..f426a7c3a581 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix @@ -0,0 +1,43 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper, coreutils +, openvpn, python, dialog, wget, update-resolv-conf }: + +let + expectedUpdateResolvPath = "/etc/openvpn/update-resolv-conf"; + actualUpdateResolvePath = "${update-resolv-conf}/libexec/openvpn/update-resolv-conf"; + +in stdenv.mkDerivation rec { + name = "protonvpn-cli"; + version = "1.1.2"; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "protonvpn-cli"; + rev = "v${version}"; + sha256 = "0xvflr8zf267n3dv63nkk4wjxhbckw56sqmyca3krf410vrd7zlv"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p "$out/bin" + substituteInPlace protonvpn-cli.sh \ + --replace ${expectedUpdateResolvPath} ${actualUpdateResolvePath} \ + --replace \$UID 0 \ + --replace /etc/resolv.conf /dev/null \ + --replace \ + " echo \"Connecting...\"" \ + " sed -ri 's@${expectedUpdateResolvPath}@${actualUpdateResolvePath}@g' \"\$openvpn_config\"; echo \"Connecting...\"" + cp protonvpn-cli.sh "$out/bin/protonvpn-cli" + wrapProgram $out/bin/protonvpn-cli \ + --prefix PATH : ${lib.makeBinPath [ coreutils openvpn python dialog wget update-resolv-conf ]} + ln -s "$out/bin/protonvpn-cli" "$out/bin/pvpn" + ''; + + meta = with stdenv.lib; { + description = "ProtonVPN Command-Line Tool"; + homepage = https://github.com/ProtonVPN/protonvpn-cli; + maintainers = with maintainers; [ caugner ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ps2client/default.nix b/nixpkgs/pkgs/applications/networking/ps2client/default.nix new file mode 100644 index 000000000000..d75f92cb25c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ps2client/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + version = "unstable-2018-10-18"; + pname = "ps2client"; + + src = fetchFromGitHub { + owner = "ps2dev"; + repo = "ps2client"; + rev = "92fcaf18aabf74daaed40bd50d428cce326a87c0"; + sha256 = "1rlmns44pxm6dkh6d3cz9sw8v7pvi53r7r5r3kgwdzkhixjj0cdg"; + }; + + patchPhase = '' + sed -i -e "s|-I/usr/include||g" -e "s|-I/usr/local/include||g" Makefile + ''; + + installPhase = '' + make PREFIX=$out install + ''; + + meta = with stdenv.lib; { + description = "Desktop clients to interact with ps2link and ps2netfs"; + homepage = https://github.com/ps2dev/ps2client; + license = licenses.bsd3; + maintainers = [ maintainers.genesis ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix b/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix new file mode 100644 index 000000000000..66470bf8f314 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix @@ -0,0 +1,20 @@ +{ pythonPackages, isPy3k, pkgs }: + +pythonPackages.buildPythonPackage { + name = "beautifulsoup-3.2.1"; + disabled = isPy3k; + + src = pkgs.fetchurl { + url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz"; + sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm"; + }; + + # error: invalid command 'test' + doCheck = false; + + meta = { + homepage = http://www.crummy.com/software/BeautifulSoup/; + license = "bsd"; + description = "Undemanding HTML/XML parser"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/pyload/default.nix b/nixpkgs/pkgs/applications/networking/pyload/default.nix new file mode 100644 index 000000000000..3df21d414e04 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pyload/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchFromGitHub, fetchpatch, pythonPackages, gocr, unrar, rhino, spidermonkey }: + +let + beautifulsoup = pythonPackages.callPackage ./beautifulsoup.nix { + inherit pythonPackages; + }; + +in pythonPackages.buildPythonApplication rec { + version = "0.4.9-next"; + name = "pyLoad-" + version; + + src = fetchFromGitHub { + owner = "pyload"; + repo = "pyload"; + rev = "721ea9f089217b9cb0f2799c051116421faac081"; + sha256 = "1ad4r9slx1wgvd2fs4plfbpzi4i2l2bk0lybzsb2ncgh59m87h54"; + }; + + patches = + let + # gets merged in next release version of pyload + configParserPatch = fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2625.diff"; + sha256 = "1bisgx78kcr5c0x0i3h0ch5mykns5wx5wx7gvjj0pc71lfzlxzb9"; + }; + setupPyPatch = fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2638.diff"; + sha256 = "006g4qbl582262ariflbyfrszcx8ck2ac1cpry1f82f76p4cgf6z"; + }; + in [ configParserPatch setupPyPatch ]; + + buildInputs = [ + unrar rhino spidermonkey gocr pythonPackages.paver + ]; + + propagatedBuildInputs = with pythonPackages; [ + pycurl jinja2 beaker thrift simplejson pycrypto feedparser tkinter + beautifulsoup send2trash + ]; + + #remove this once the PR patches above are merged. Needed because githubs diff endpoint + #does not support diff -N + prePatch = '' + touch module/config/__init__.py + ''; + + preBuild = '' + ${pythonPackages.paver}/bin/paver generate_setup + ''; + + doCheck = false; + + meta = with stdenv.lib; { + description = "Free and open source downloader for 1-click-hosting sites"; + homepage = https://github.com/pyload/pyload; + license = licenses.gpl3; + maintainers = [ maintainers.mahe ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix new file mode 100644 index 000000000000..573752b5b533 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix @@ -0,0 +1,89 @@ +{ stdenv, fetchurl, makeWrapper, makeDesktopItem +, atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU, libGL, pango, xorg +, lsb-release, freetype, fontconfig, polkit, polkit_gnome +, pulseaudio }: + +let + sha256 = { + x86_64-linux = "1ysd8fwzm0360qs6ijr6l0y2agqb3njz20h7am1x4kxmhy8ravq9"; + i386-linux = "0vjxbg5hwkqkh600rr75xviwy848r1xw9mxwf6bb6l8b0isvlsgg"; + }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported"); + + arch = { + x86_64-linux = "amd64"; + i386-linux = "i386"; + }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported"); + + description = "Desktop sharing application, providing remote support and online meetings"; + + desktopItem = makeDesktopItem { + name = "AnyDesk"; + exec = "@out@/bin/anydesk"; + icon = "anydesk"; + desktopName = "AnyDesk"; + genericName = description; + categories = "Application;Network;"; + startupNotify = "false"; + }; + +in stdenv.mkDerivation rec { + pname = "anydesk"; + version = "5.5.1"; + + src = fetchurl { + urls = [ + "https://download.anydesk.com/linux/${pname}-${version}-${arch}.tar.gz" + "https://download.anydesk.com/linux/generic-linux/${pname}-${version}-${arch}.tar.gz" + ]; + inherit sha256; + }; + + buildInputs = [ + atk cairo gdk-pixbuf glib gtk2 stdenv.cc.cc pango + gnome2.gtkglext libGLU libGL freetype fontconfig + polkit polkit_gnome pulseaudio + ] ++ (with xorg; [ + libxcb libxkbfile libX11 libXdamage libXext libXfixes libXi libXmu + libXrandr libXtst libXt libICE libSM libXrender + ]); + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/{applications,doc/anydesk,icons/hicolor} + install -m755 anydesk $out/bin/anydesk + cp copyright README $out/share/doc/anydesk + cp -r icons/hicolor/* $out/share/icons/hicolor/ + cp ${desktopItem}/share/applications/*.desktop $out/share/applications + + runHook postInstall + ''; + + postFixup = '' + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "${stdenv.lib.makeLibraryPath buildInputs}" \ + $out/bin/anydesk + + # pangox is not actually necessary (it was only added as a part of gtkglext) + patchelf \ + --remove-needed libpangox-1.0.so.0 \ + $out/bin/anydesk + + wrapProgram $out/bin/anydesk \ + --prefix PATH : ${stdenv.lib.makeBinPath [ lsb-release ]} + + substituteInPlace $out/share/applications/*.desktop \ + --subst-var out + ''; + + meta = with stdenv.lib; { + inherit description; + homepage = https://www.anydesk.com; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ shyim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix new file mode 100644 index 000000000000..a4deda99f5b2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix @@ -0,0 +1,253 @@ +{ stdenv +, lib +, fetchurl +, requireFile +, makeWrapper +, libredirect +, busybox +, file +, makeDesktopItem +, tzdata +, cacert +, dconf +, glib +, gtk2 +, atk +, gdk-pixbuf +, cairo +, pango +, gnome3 +, xorg +, libpng12 +, freetype +, fontconfig +, gtk_engines +, alsaLib +, zlib +, version ? "19.12.0" +}: + +let + versionInfo = let + supportedVersions = { + "19.3.0" = { + major = "19"; + minor = "3"; + patch = "0"; + x64hash = "0mhpp29ca3dw9hx72i0qawdq35wcc7qzgxwzlx4aicwnm1gbil5c"; + x86hash = "1hxgj5lk5ghbpssbqjd404qr84gls967vwrh8ww5hg3pn86kyf8w"; + x64suffix = "5"; + x86suffix = "5"; + homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1903.html; + }; + + "19.6.0" = { + major = "19"; + minor = "6"; + patch = "0"; + x64hash = "0szqlfmigzgf0309i6ikxkizxaf4ri7qmhys75m0zi3bpwx6hzhs"; + x86hash = "16v3kgavrh62z6vxcbw6mn7h0bfishpl7m92k7g1p2882r1f8vaf"; + x64suffix = "60"; + x86suffix = "60"; + homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest.html; + }; + + "19.8.0" = { + major = "19"; + minor = "8"; + patch = "0"; + x64hash = "0f8djw8lp5wihb23y09yac1mh09w1qp422h72r6zfx9k1lqfsdbw"; + x86hash = "0afcqirb4q349r3izy88vqkszg6y2wg14iwypk6nrmvwgvcl6jdn"; + x64suffix = "20"; + x86suffix = "20"; + homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest1.html; + }; + + "19.10.0" = { + major = "19"; + minor = "10"; + patch = "0"; + x64hash = "1l4q4pmfiw9gmml6j5b3hls2101xf5m8p6855nhfhvqlisrj9h14"; + x86hash = "000zjik8wf8b6fadnsai0p77b4n2l95544zx503iyrb9pv53bj3y"; + x64suffix = "15"; + x86suffix = "15"; + homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1910.html; + }; + + "19.12.0" = { + major = "19"; + minor = "12"; + patch = "0"; + x64hash = "1si5mkxbgb8m99bkvgc3l80idjfdp0kby6pv47s07nn43dbr1j7a"; + x86hash = "07rfp90ksnvr8zv7ix7f0z6a59n48s7bd4kqbzilfwxgs4ddqmcy"; + x64suffix = "19"; + x86suffix = "19"; + homepage = https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html; + }; + }; + + # Copied this file largely from the citrix-receiver package + # Leaving this here even though there are no deprecations yet + # for ease of future maintenance. + # + # The lifespans of Citrix products can be found here: + # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html + deprecatedVersions = let + versions = [ ]; + in + lib.listToAttrs + (lib.forEach versions + (v: lib.nameValuePair v (throw "Unsupported citrix_workspace version: ${v}"))); + in + deprecatedVersions // supportedVersions; + + citrixWorkspaceForVersion = { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }: + stdenv.mkDerivation rec { + pname = "citrix-workspace"; + version = "${major}.${minor}.${patch}"; + inherit homepage; + + prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86"; + + preferLocalBuild = true; + + src = requireFile rec { + name = if stdenv.is64bit then "${prefixWithBitness}-${version}.${x64suffix}.tar.gz" else "${prefixWithBitness}-${version}.${x86suffix}.tar.gz"; + sha256 = if stdenv.is64bit then x64hash else x86hash; + message = '' + In order to use Citrix Workspace, you need to comply with the Citrix EULA and download + the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from: + + ${homepage} + + (if you do not find version ${version} there, try at + https://www.citrix.com/downloads/workspace-app/ + + Once you have downloaded the file, please use the following command and re-run the + installation: + + nix-prefetch-url file://\$PWD/${name} + ''; + }; + + dontBuild = true; + + sourceRoot = "."; + + buildInputs = [ + makeWrapper + busybox + file + gtk2 + gdk-pixbuf + ]; + + libPath = stdenv.lib.makeLibraryPath [ + glib + gtk2 + atk + gdk-pixbuf + cairo + pango + dconf + xorg.libX11 + xorg.libXext + xorg.libXrender + xorg.libXinerama + xorg.libXfixes + libpng12 + zlib + gtk_engines + freetype + fontconfig + alsaLib + stdenv.cc.cc # Fixes: Can not load [..]/opt/citrix-icaclient/lib/ctxh264_fb.so:(null) + ]; + + desktopItem = makeDesktopItem { + name = "wfica"; + desktopName = "Citrix Workspace"; + genericName = "Citrix Workspace"; + exec = "wfica"; + icon = "wfica"; + comment = "Connect to remote Citrix server"; + categories = "GTK;GNOME;X-GNOME-NetworkSettings;Network;"; + mimeType = "application/x-ica"; + }; + + installPhase = '' + runHook preInstall + + export ICAInstDir="$out/opt/citrix-icaclient" + + sed -i \ + -e 's,^main_install_menu$,install_ICA_client,g' \ + -e 's,^integrate_ICA_client(),alias integrate_ICA_client=true\nintegrate_ICA_client_old(),g' \ + -e 's,^ANSWER=""$,ANSWER="$INSTALLER_YES",' \ + -e 's,/bin/true,true,g' \ + ./${prefixWithBitness}/hinst + + # Run the installer... + bash ./${prefixWithBitness}/hinst CDROM "`pwd`" + + echo "Deleting broken links..." + for link in `find $ICAInstDir -type l ` + do + [ -f "$link" ] || rm -v "$link" + done + + echo "Expanding certificates..." + # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates + pushd "$ICAInstDir/keystore/cacerts" + awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ${cacert}/etc/ssl/certs/ca-bundle.crt + popd + + echo "Patching executables..." + find $ICAInstDir -type f -exec file {} \; | + grep 'ELF.*executable' | + cut -f 1 -d : | + grep -vi '\(.dll\|.so\)$' | # added as a workaround to https://github.com/NixOS/nixpkgs/issues/41729 + while read f + do + echo "Patching ELF intrepreter and rpath for $f" + chmod u+w "$f" + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "$ICAInstDir:$libPath" "$f" + done + + echo "Wrapping wfica..." + mkdir "$out/bin" + + makeWrapper "$ICAInstDir/wfica" "$out/bin/wfica" \ + --add-flags "-icaroot $ICAInstDir" \ + --set ICAROOT "$ICAInstDir" \ + --set GTK_PATH "${gtk2.out}/lib/gtk-2.0:${gnome3.gnome-themes-extra}/lib/gtk-2.0" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set LD_LIBRARY_PATH "$libPath" \ + --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone" + + echo "We arbitrarily set the timezone to UTC. No known consequences at this point." + echo UTC > "$ICAInstDir/timezone" + + echo "Installing desktop item..." + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications + + # We introduce a dependency on the source file so that it need not be redownloaded everytime + echo $src >> "$out/share/workspace_dependencies.pin" + + runHook postInstall + ''; + + meta = with stdenv.lib; { + license = stdenv.lib.licenses.unfree; + inherit homepage; + description = "Citrix Workspace"; + platforms = platforms.linux; + maintainers = with maintainers; [ ma27 ]; + }; + }; + +in citrixWorkspaceForVersion (lib.getAttr version versionInfo) diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix new file mode 100644 index 000000000000..ea475ae6dbc9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix @@ -0,0 +1,19 @@ +{ citrix_workspace, extraCerts ? [], symlinkJoin }: + +let + + mkCertCopy = certPath: + "cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/"; + +in + +if builtins.length extraCerts == 0 then citrix_workspace else symlinkJoin { + name = "citrix-with-extra-certs-${citrix_workspace.version}"; + paths = [ citrix_workspace ]; + + postBuild = '' + ${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)} + + sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix new file mode 100644 index 000000000000..5963c6b6c950 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix @@ -0,0 +1,77 @@ +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig +, alsaLib, ffmpeg, glib, openssl, pcre, zlib +, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama, libXrandr, libXrender, libXv +, libxkbcommon, libxkbfile +, wayland +, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc +, libpulseaudio ? null +, cups ? null +, pcsclite ? null +, systemd ? null +, buildServer ? true +, nocaps ? false +}: + +stdenv.mkDerivation rec { + pname = "freerdp"; + version = "2.0.0-rc4"; + + src = fetchFromGitHub { + owner = "FreeRDP"; + repo = "FreeRDP"; + rev = version; + sha256 = "0546i0m2d4nz5jh84ngwzpcm3c43fp987jk6cynqspsmvapab6da"; + }; + + # outputs = [ "bin" "out" "dev" ]; + + prePatch = '' + export HOME=$TMP + substituteInPlace "libfreerdp/freerdp.pc.in" \ + --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" + '' + lib.optionalString (pcsclite != null) '' + substituteInPlace "winpr/libwinpr/smartcard/smartcard_pcsc.c" \ + --replace "libpcsclite.so" "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so" + '' + lib.optionalString nocaps '' + substituteInPlace "libfreerdp/locale/keyboard_xkbfile.c" \ + --replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL" + ''; + + buildInputs = with lib; [ + alsaLib cups ffmpeg glib openssl pcre pcsclite libpulseaudio zlib + gstreamer gst-plugins-base gst-plugins-good libunwind orc + libX11 libXcursor libXdamage libXext libXi libXinerama libXrandr libXrender libXv + libxkbcommon libxkbfile + wayland + ] ++ optional stdenv.isLinux systemd; + + nativeBuildInputs = [ + cmake pkgconfig + ]; + + enableParallelBuilding = true; + + doCheck = false; + + cmakeFlags = with lib; [ + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DWITH_CUNIT=OFF" + "-DWITH_OSS=OFF" + ] ++ optional (libpulseaudio != null) "-DWITH_PULSE=ON" + ++ optional (cups != null) "-DWITH_CUPS=ON" + ++ optional (pcsclite != null) "-DWITH_PCSC=ON" + ++ optional buildServer "-DWITH_SERVER=ON" + ++ optional (stdenv.isx86_64) "-DWITH_SSE2=ON"; + + meta = with lib; { + description = "A Remote Desktop Protocol Client"; + longDescription = '' + FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) + following the Microsoft Open Specifications. + ''; + homepage = http://www.freerdp.com/; + license = licenses.asl20; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/putty/default.nix b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix new file mode 100644 index 000000000000..49182ec182fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix @@ -0,0 +1,55 @@ +{ stdenv, lib, fetchurl, autoconf, automake, pkgconfig, libtool +, gtk2, halibut, ncurses, perl, darwin +}: + +stdenv.mkDerivation rec { + version = "0.73"; + pname = "putty"; + + src = fetchurl { + urls = [ + "https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz" + "ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz" + ]; + sha256 = "076z34jpik2dmlwxicvf1djjgnahcqv12rjhmb9yq6ml7x0bbc1x"; + }; + + # glib-2.62 deprecations + NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS"; + + preConfigure = lib.optionalString stdenv.hostPlatform.isUnix '' + perl mkfiles.pl + ( cd doc ; make ); + ./mkauto.sh + cd unix + '' + lib.optionalString stdenv.hostPlatform.isWindows '' + cd windows + ''; + + TOOLPATH = stdenv.cc.targetPrefix; + makefile = if stdenv.hostPlatform.isWindows then "Makefile.mgw" else null; + + installPhase = if stdenv.hostPlatform.isWindows then '' + for exe in *.exe; do + install -D $exe $out/bin/$exe + done + '' else null; + + nativeBuildInputs = [ autoconf automake halibut libtool perl pkgconfig ]; + buildInputs = lib.optionals stdenv.hostPlatform.isUnix [ + gtk2 ncurses + ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.libs.utmp; + enableParallelBuilding = true; + + meta = with lib; { + description = "A Free Telnet/SSH Client"; + longDescription = '' + PuTTY is a free implementation of Telnet and SSH for Windows and Unix + platforms, along with an xterm terminal emulator. + It is written and maintained primarily by Simon Tatham. + ''; + homepage = https://www.chiark.greenend.org.uk/~sgtatham/putty/; + license = licenses.mit; + platforms = platforms.unix ++ platforms.windows; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix new file mode 100644 index 000000000000..9c9abe55daa6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix @@ -0,0 +1,32 @@ +{stdenv, fetchFromGitHub, openssl, libX11, libgssglue, pkgconfig, autoreconfHook +, enableCredssp ? (!stdenv.isDarwin) +} : + +stdenv.mkDerivation (rec { + pname = "rdesktop"; + version = "1.8.6"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "02sbhnqbasa54c75c86qw9w9h9sxxbnldj7bjv2gvn18lmq5rm20"; + }; + + nativeBuildInputs = [pkgconfig autoreconfHook]; + buildInputs = [openssl libX11] + ++ stdenv.lib.optional enableCredssp libgssglue; + + configureFlags = [ + "--with-ipv6" + "--with-openssl=${openssl.dev}" + "--disable-smartcard" + ] ++ stdenv.lib.optional (!enableCredssp) "--disable-credssp"; + + meta = { + description = "Open source client for Windows Terminal Services"; + homepage = http://www.rdesktop.org/; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + license = stdenv.lib.licenses.gpl2; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix new file mode 100644 index 000000000000..3c624faaf87a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchFromGitLab, cmake, ninja, pkgconfig, wrapGAppsHook +, glib, gtk3, gettext, libxkbfile, libX11 +, freerdp, libssh, libgcrypt, gnutls +, pcre, libdbusmenu-gtk3, libappindicator-gtk3 +, libvncserver, libpthreadstubs, libXdmcp, libxkbcommon +, libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core +, openssl, gsettings-desktop-schemas, json-glib, libsodium, webkitgtk, harfbuzz +# The themes here are soft dependencies; only icons are missing without them. +, gnome3 +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "remmina"; + version = "1.3.8"; + + src = fetchFromGitLab { + owner = "Remmina"; + repo = "Remmina"; + rev = "v${version}"; + sha256 = "017bm43d56clgray7sjvb00wpchr4zazc9ll0cd5wimirm12cxba"; + }; + + nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ]; + buildInputs = [ + gsettings-desktop-schemas + glib gtk3 gettext libxkbfile libX11 + freerdp libssh libgcrypt gnutls + pcre libdbusmenu-gtk3 libappindicator-gtk3 + libvncserver libpthreadstubs libXdmcp libxkbcommon + libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core + openssl gnome3.adwaita-icon-theme json-glib libsodium webkitgtk + harfbuzz + ]; + + cmakeFlags = [ + "-DWITH_VTE=OFF" + "-DWITH_TELEPATHY=OFF" + "-DWITH_AVAHI=OFF" + "-DFREERDP_LIBRARY=${freerdp}/lib/libfreerdp2.so" + "-DFREERDP_CLIENT_LIBRARY=${freerdp}/lib/libfreerdp-client2.so" + "-DFREERDP_WINPR_LIBRARY=${freerdp}/lib/libwinpr2.so" + "-DWINPR_INCLUDE_DIR=${freerdp}/include/winpr2" + ]; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${libX11.out}/lib" + ) + ''; + + meta = { + license = licenses.gpl2; + homepage = https://gitlab.com/Remmina/Remmina; + description = "Remote desktop client written in GTK"; + maintainers = with maintainers; [ melsigl ryantm ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix new file mode 100644 index 000000000000..68a454745c70 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix @@ -0,0 +1,66 @@ +{ mkDerivation, lib, fetchurl, autoPatchelfHook, makeWrapper, xdg_utils, dbus +, qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc +, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes +, wrapQtAppsHook +}: + +mkDerivation rec { + pname = "teamviewer"; + version = "15.0.8397"; + + src = fetchurl { + url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb"; + sha256 = "0bidlwlpzqpba9c0zfasm08vp308hgfnq4pslj1b04v64mlci66s"; + }; + + unpackPhase = '' + ar x $src + tar xf data.tar.* + ''; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ]; + buildInputs = [ dbus qtbase qtwebkit qtx11extras libX11 ]; + propagatedBuildInputs = [ qtquickcontrols ]; + + installPhase = '' + mkdir -p $out/share/teamviewer $out/bin $out/share/applications + cp -a opt/teamviewer/* $out/share/teamviewer + rm -R \ + $out/share/teamviewer/logfiles \ + $out/share/teamviewer/config \ + $out/share/teamviewer/tv_bin/xdg-utils \ + $out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh} + + ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin + ln -s $out/share/teamviewer/tv_bin/teamviewerd $out/bin + ln -s $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop $out/share/applications + ln -s /var/lib/teamviewer $out/share/teamviewer/config + ln -s /var/log/teamviewer $out/share/teamviewer/logfiles + ln -s ${xdg_utils}/bin $out/share/teamviewer/tv_bin/xdg-utils + + sed -i "s,/opt/teamviewer,$out/share/teamviewer,g" $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop + + substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_aux \ + --replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2' + substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \ + --replace '/var/run/' '/run/' + + wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" + wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" + wrapProgram $out/share/teamviewer/tv_bin/TeamViewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" + wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libXrandr libX11 libXext libXdamage libXtst libSM libXfixes ]}" + + wrapQtApp $out/bin/teamviewer + ''; + + dontStrip = true; + preferLocalBuild = true; + + meta = with lib; { + homepage = http://www.teamviewer.com; + license = licenses.unfree; + description = "Desktop sharing application, providing remote support and online meetings"; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ jagajaga dasuxullebt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix new file mode 100644 index 000000000000..d253e766284f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitLab +, meson, ninja, pkgconfig, scdoc +, wayland, wayland-protocols, openssh +, mesa, lz4, zstd, ffmpeg_4, libva +}: + +stdenv.mkDerivation rec { + pname = "waypipe-unstable"; + version = "0.6.1"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mstoeckl"; + repo = "waypipe"; + rev = "v${version}"; + sha256 = "13kp5snkksli0sj5ldkgybcs1s865f0qdak2w8796xvy8dg9jda8"; + }; + + postPatch = '' + substituteInPlace src/waypipe.c \ + --replace "/usr/bin/ssh" "${openssh}/bin/ssh" + ''; + + nativeBuildInputs = [ meson ninja pkgconfig scdoc ]; + + buildInputs = [ + wayland wayland-protocols + # Optional dependencies: + mesa lz4 zstd ffmpeg_4 libva + ]; + + enableParallelBuilding = true; + + mesonFlags = [ "-Dwerror=false" ]; # TODO: Report warnings upstream + + meta = with stdenv.lib; { + description = "A network proxy for Wayland clients (applications)"; + longDescription = '' + waypipe is a proxy for Wayland clients. It forwards Wayland messages and + serializes changes to shared memory buffers over a single socket. This + makes application forwarding similar to ssh -X feasible. + ''; + homepage = https://mstoeckl.com/notes/gsoc/blog.html; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix new file mode 100644 index 000000000000..13bcbf9b57e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchgit, cups, libssh, libXpm, nx-libs, openldap, openssh +, mkDerivation, qtbase, qtsvg, qtx11extras, qttools, phonon, pkgconfig }: + +mkDerivation { + pname = "x2goclient"; + version = "unstable-2019-07-24"; + + src = fetchgit { + url = "git://code.x2go.org/x2goclient.git"; + rev = "704c4ab92d20070dd160824c9b66a6d1c56dcc49"; + sha256 = "1pndp3lfzwifyxqq0gps3p1bwakw06clbk6n8viv020l4bsfmq5f"; + }; + + buildInputs = [ cups libssh libXpm nx-libs openldap openssh + qtbase qtsvg qtx11extras qttools phonon pkgconfig ]; + + postPatch = '' + substituteInPlace Makefile \ + --replace "SHELL=/bin/bash" "SHELL=$SHELL" \ + --replace "lrelease-qt4" "${qttools.dev}/bin/lrelease" \ + --replace "qmake-qt4" "${qtbase.dev}/bin/qmake" \ + --replace "-o root -g root" "" + ''; + + makeFlags = [ "PREFIX=$(out)" "ETCDIR=$(out)/etc" "build_client" "build_man" ]; + + enableParallelBuilding = true; + + installTargets = [ "install_client" "install_man" ]; + + qtWrapperArgs = [ ''--suffix PATH : ${nx-libs}/bin:${openssh}/libexec'' ]; + + meta = with stdenv.lib; { + description = "Graphical NoMachine NX3 remote desktop client"; + homepage = http://x2go.org/; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix b/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix new file mode 100644 index 000000000000..f69d2326217d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix @@ -0,0 +1,93 @@ +{ stdenv, lib, fetchurl, perlPackages, makeWrapper, perl, which, nx-libs +, utillinux, coreutils, glibc, gawk, gnused, gnugrep, findutils, xorg +, nettools, iproute, bc, procps, psmisc, lsof, pwgen, openssh, sshfs, bash +}: + +let + pname = "x2goserver"; + version = "4.1.0.3"; + + src = fetchurl { + url = "http://code.x2go.org/releases/source/x2goserver/${pname}-${version}.tar.gz"; + sha256 = "1l6wd708kbipib4ldprfiihqmj4895nifg0bkws4x97majislxk7"; + }; + + x2go-perl = perlPackages.buildPerlPackage rec { + pname = "X2Go"; + inherit version src; + makeFlags = [ "-f" "Makefile.perl" ]; + patchPhase = '' + substituteInPlace X2Go/Config.pm --replace '/etc/x2go' '/var/lib/x2go/conf' + substituteInPlace X2Go/Server/DB.pm \ + --replace '$x2go_lib_path/libx2go-server-db-sqlite3-wrapper' \ + '/run/wrappers/bin/x2gosqliteWrapper' + substituteInPlace X2Go/Server/DB/SQLite3.pm --replace "user='x2gouser'" "user='x2go'" + ''; + }; + + perlEnv = perl.withPackages (p: with p; [ + x2go-perl DBI DBDSQLite FileBaseDir TryTiny CaptureTiny ConfigSimple Switch + ]); + + binaryDeps = [ + perlEnv which nx-libs utillinux coreutils glibc.bin gawk gnused gnugrep + findutils nettools iproute bc procps psmisc lsof pwgen openssh sshfs + xorg.xauth xorg.xinit xorg.xrandr xorg.xmodmap xorg.xwininfo xorg.fontutil + xorg.xkbcomp xorg.setxkbmap + ]; +in +stdenv.mkDerivation rec { + inherit pname version src; + + buildInputs = [ perlEnv bash ]; + + nativeBuildInputs = [ makeWrapper ]; + + prePatch = '' + patchShebangs . + sed -i '/Makefile.PL\|Makefile.perl/d' Makefile + for i in */Makefile; do + substituteInPlace "$i" --replace "-o root -g root " "" + done + substituteInPlace libx2go-server-db-perl/Makefile --replace "chmod 2755" "chmod 755" + for i in x2goserver/sbin/x2godbadmin x2goserver/bin/x2go* + do + substituteInPlace $i --replace '/etc/x2go' '/var/lib/x2go/conf' + done + substituteInPlace x2goserver/sbin/x2gocleansessions \ + --replace '/var/run/x2goserver.pid' '/var/run/x2go/x2goserver.pid' + substituteInPlace x2goserver/sbin/x2godbadmin --replace 'user="x2gouser"' 'user="x2go"' + substituteInPlace x2goserver-xsession/etc/Xsession \ + --replace "SSH_AGENT /bin/bash -c" "SSH_AGENT ${bash}/bin/bash -c" \ + --replace "[ -f /etc/redhat-release ]" "[ -d /etc/nix ] || [ -f /etc/redhat-release ]" + ''; + + makeFlags = [ "PREFIX=/" "NXLIBDIR=${nx-libs}/lib/nx" ]; + + installFlags = [ "DESTDIR=$(out)" ]; + + postInstall = '' + mv $out/etc/x2go/x2goserver.conf{,.example} + mv $out/etc/x2go/x2goagent.options{,.example} + ln -sf ${nx-libs}/bin/nxagent $out/bin/x2goagent + for i in $out/sbin/x2go* $(find $out/bin -type f) \ + $(ls $out/lib/x2go/x2go* | grep -v x2gocheckport) + do + wrapProgram $i --prefix PATH : ${lib.makeBinPath binaryDeps}:$out + done + # We're patching @INC of the setgid wrapper, because we can't mix + # the perl wrapper (for PERL5LIB) with security.wrappers (for setgid) + sed -ie "s,.\+bin/perl,#!${perl}/bin/perl -I ${perlEnv}/lib/perl5/site_perl," \ + $out/lib/x2go/libx2go-server-db-sqlite3-wrapper.pl + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Remote desktop application, server component"; + homepage = "http://x2go.org/"; + platforms = stdenv.lib.platforms.linux; + license = licenses.gpl2; + maintainers = [ maintainers.averelld ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix new file mode 100644 index 000000000000..5d33f186df7b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix @@ -0,0 +1,105 @@ +{ stdenv, fetchFromGitHub, pkgconfig, which, perl, autoconf, automake, libtool, openssl, systemd, pam, fuse, libjpeg, libopus, nasm, xorg }: + +let + xorgxrdp = stdenv.mkDerivation rec { + pname = "xorgxrdp"; + version = "0.2.9"; + + src = fetchFromGitHub { + owner = "neutrinolabs"; + repo = "xorgxrdp"; + rev = "v${version}"; + sha256 = "1bhp5x47hajhinvglmc4vxxnpjvfjm6369njb3ghqfr7c5xypvzr"; + }; + + nativeBuildInputs = [ pkgconfig autoconf automake which libtool nasm ]; + + buildInputs = [ xorg.xorgserver ]; + + postPatch = '' + # patch from Debian, allows to run xrdp daemon under unprivileged user + substituteInPlace module/rdpClientCon.c \ + --replace 'g_sck_listen(dev->listen_sck);' 'g_sck_listen(dev->listen_sck); g_chmod_hex(dev->uds_data, 0x0660);' + + substituteInPlace configure.ac \ + --replace 'moduledir=`pkg-config xorg-server --variable=moduledir`' "moduledir=$out/lib/xorg/modules" \ + --replace 'sysconfdir="/etc"' "sysconfdir=$out/etc" + ''; + + preConfigure = "./bootstrap"; + + configureFlags = [ "XRDP_CFLAGS=-I${xrdp.src}/common" ]; + + enableParallelBuilding = true; + }; + + xrdp = stdenv.mkDerivation rec { + version = "0.9.9"; + pname = "xrdp"; + + src = fetchFromGitHub { + owner = "volth"; + repo = "xrdp"; + rev = "refs/tags/runtime-cfg-path-${version}"; # Fixes https://github.com/neutrinolabs/xrdp/issues/609; not a patch on top of the official repo because "xorgxrdp.configureFlags" above includes "xrdp.src" which must be patched already + fetchSubmodules = true; + sha256 = "0ynj6pml4f38y8571ryhifza57wfqg4frdrjcwzw3fmryiznfm1z"; + }; + + nativeBuildInputs = [ pkgconfig autoconf automake which libtool nasm ]; + + buildInputs = [ openssl systemd pam fuse libjpeg libopus xorg.libX11 xorg.libXfixes xorg.libXrandr ]; + + postPatch = '' + substituteInPlace sesman/xauth.c --replace "xauth -q" "${xorg.xauth}/bin/xauth -q" + ''; + + preConfigure = '' + (cd librfxcodec && ./bootstrap && ./configure --prefix=$out --enable-static --disable-shared) + ./bootstrap + ''; + dontDisableStatic = true; + configureFlags = [ "--with-systemdsystemunitdir=/var/empty" "--enable-ipv6" "--enable-jpeg" "--enable-fuse" "--enable-rfxcodec" "--enable-opus" ]; + + installFlags = [ "DESTDIR=$(out)" "prefix=" ]; + + postInstall = '' + # remove generated keys (as non-determenistic) and upstart script + rm $out/etc/xrdp/{rsakeys.ini,key.pem,cert.pem,xrdp.sh} + + cp $src/keygen/openssl.conf $out/share/xrdp/openssl.conf + + substituteInPlace $out/etc/xrdp/sesman.ini --replace /etc/xrdp/pulse $out/etc/xrdp/pulse + + # remove all session types except Xorg (they are not supported by this setup) + ${perl}/bin/perl -i -ne 'print unless /\[(X11rdp|Xvnc|console|vnc-any|sesman-any|rdp-any|neutrinordp-any)\]/ .. /^$/' $out/etc/xrdp/xrdp.ini + + # remove all session types and then add Xorg + ${perl}/bin/perl -i -ne 'print unless /\[(X11rdp|Xvnc|Xorg)\]/ .. /^$/' $out/etc/xrdp/sesman.ini + + cat >> $out/etc/xrdp/sesman.ini <<EOF + + [Xorg] + param=${xorg.xorgserver}/bin/Xorg + param=-modulepath + param=${xorgxrdp}/lib/xorg/modules,${xorg.xorgserver}/lib/xorg/modules + param=-config + param=${xorgxrdp}/etc/X11/xrdp/xorg.conf + param=-noreset + param=-nolisten + param=tcp + param=-logfile + param=.xorgxrdp.%s.log + EOF + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "An open source RDP server"; + homepage = https://github.com/neutrinolabs/xrdp; + license = licenses.asl20; + maintainers = [ maintainers.volth ]; + platforms = platforms.linux; + }; + }; +in xrdp diff --git a/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix new file mode 100644 index 000000000000..14d418cd2bfb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, ... }: + +let + arch = { + x86_64-linux = "x64"; + i686-linux = "i386"; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc ]; + +in stdenv.mkDerivation rec { + pname = "resilio-sync"; + version = "2.6.4"; + + src = fetchurl { + url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz"; + sha256 = { + x86_64-linux = "1c1yksjag58p7yjm72iiz82p2r01lq7kxvq7z5phmq5z6gxdg4a8"; + i686-linux = "167baz9fzmzk50jffzvgmgyw1zw3955r3cb73z23qvw8zqzdqydc"; + }.${stdenv.hostPlatform.system}; + }; + + dontStrip = true; # Don't strip, otherwise patching the rpaths breaks + sourceRoot = "."; + + installPhase = '' + install -D rslsync "$out/bin/rslsync" + patchelf \ + --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${libPath} "$out/bin/rslsync" + ''; + + meta = with stdenv.lib; { + description = "Automatically sync files via secure, distributed technology"; + homepage = https://www.resilio.com/; + license = licenses.unfreeRedistributable; + platforms = platforms.linux; + maintainers = with maintainers; [ domenkozar thoughtpolice cwoac ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix new file mode 100644 index 000000000000..16430d31e835 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix @@ -0,0 +1,36 @@ +{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools +, seafile-shared, ccnet +, withShibboleth ? true, qtwebengine }: + +with stdenv.lib; + +mkDerivation rec { + version = "6.2.11"; + pname = "seafile-client"; + + src = fetchFromGitHub { + owner = "haiwen"; + repo = "seafile-client"; + rev = "v${version}"; + sha256 = "1b8jqmr2qd3bpb3sr4p5w2a76x5zlknkj922sxrvw1rdwqhkb2pj"; + }; + + nativeBuildInputs = [ pkgconfig cmake ]; + buildInputs = [ qtbase qttools seafile-shared ] + ++ optional withShibboleth qtwebengine; + + cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ] + ++ optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON"; + + qtWrapperArgs = [ + "--suffix PATH : ${stdenv.lib.makeBinPath [ ccnet seafile-shared ]}" + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/haiwen/seafile-client; + description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix b/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix new file mode 100644 index 000000000000..dc578dccd19d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchFromGitHub, makeWrapper, perlPackages }: + +stdenv.mkDerivation rec { + pname = "sieve-connect"; + version = "0.90"; + + src = fetchFromGitHub { + owner = "philpennock"; + repo = "sieve-connect"; + rev = "v${version}"; + sha256 = "1ghvfa5ifa68b6imh85bkmy00r93c5f9hs6d039axb73gmma580p"; + }; + + buildInputs = [ perlPackages.perl ]; + nativeBuildInputs = [ makeWrapper ]; + + preBuild = '' + # Fixes failing build when not building in git repo + mkdir .git + touch .git/HEAD + echo "${version}" > versionfile + echo "$(date +%Y-%m-%d)" > datefile + ''; + + buildFlags = [ "PERL5LIB=${perlPackages.makePerlPath [ perlPackages.FileSlurp ]}" "bin" "man" ]; + + installPhase = '' + mkdir -p $out/bin $out/share/man/man1 + install -m 755 sieve-connect $out/bin + gzip -c sieve-connect.1 > $out/share/man/man1/sieve-connect.1.gz + + wrapProgram $out/bin/sieve-connect \ + --prefix PERL5LIB : "${with perlPackages; makePerlPath [ + AuthenSASL Socket6 IOSocketInet6 IOSocketSSL NetSSLeay NetDNS + TermReadKey TermReadLineGnu ]}" + ''; + + meta = with stdenv.lib; { + description = "A client for the MANAGESIEVE Protocol"; + longDescription = '' + This is sieve-connect. A client for the ManageSieve protocol, + as specifed in RFC 5804. Historically, this was MANAGESIEVE as + implemented by timsieved in Cyrus IMAP. + ''; + homepage = https://github.com/philpennock/sieve-connect; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = with maintainers; [ das_j ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch b/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch new file mode 100644 index 000000000000..69a3e3287371 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch @@ -0,0 +1,14 @@ +diff --git a/src/dejitter.c b/src/dejitter.c +index 1904ab3..cb3624d 100644 +--- a/src/dejitter.c ++++ b/src/dejitter.c +@@ -22,6 +22,8 @@ + + #include <errno.h> + ++#include <string.h> ++#include <sys/time.h> + #include <unistd.h> + #include <sys/types.h> + #include <sys/socket.h> + #include <netinet/in.h> diff --git a/nixpkgs/pkgs/applications/networking/siproxd/default.nix b/nixpkgs/pkgs/applications/networking/siproxd/default.nix new file mode 100644 index 000000000000..cd697f107b35 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/siproxd/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, libosip }: + +stdenv.mkDerivation rec { + name = "siproxd-0.8.2"; + + src = fetchurl { + url = "mirror://sourceforge/siproxd/${name}.tar.gz"; + sha256 = "1l6cyxxhra825jiiw9npa7jrbfgbyfpk4966cqkrw66cn28y8v2j"; + }; + + patches = [ ./cheaders.patch ]; + + buildInputs = [ libosip ]; + + meta = { + homepage = http://siproxd.sourceforge.net/; + description = "A masquerading SIP Proxy Server"; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; linux; + license = stdenv.lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix new file mode 100644 index 000000000000..81c48cff4a01 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, libtool, gtk3, libpcap, goocanvas2, +popt, itstool, libxml2 }: + +stdenv.mkDerivation rec { + name = "etherape-0.9.18"; + src = fetchurl { + url = "mirror://sourceforge/etherape/${name}.tar.gz"; + sha256 = "0y9cfc5iv5zy82j165i9agf45n1ixka064ykdvpdhb07sr3lzhmv"; + }; + + nativeBuildInputs = [ itstool pkgconfig (stdenv.lib.getBin libxml2) ]; + buildInputs = [ + libtool gtk3 libpcap goocanvas2 popt + ]; + + meta = with stdenv.lib; { + homepage = http://etherape.sourceforge.net/; + license = stdenv.lib.licenses.gpl2Plus; + platforms = with platforms; linux; + maintainers = with maintainers; [ symphorien ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix new file mode 100644 index 000000000000..dbff491fa807 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre +, openssl, ncurses, glib, gtk3, atk, pango, flex, bison, geoip +, pkgconfig }: + +stdenv.mkDerivation rec { + pname = "ettercap"; + version = "0.8.3"; + + src = fetchFromGitHub { + owner = "Ettercap"; + repo = "ettercap"; + rev = "v${version}"; + sha256 = "0m40bmbrv9a8qlg54z3b5f8r541gl9vah5hm0bbqcgyyljpg39bz"; + }; + + strictDeps = true; + nativeBuildInputs = [ cmake flex bison pkgconfig ]; + buildInputs = [ + libpcap libnet zlib curl pcre openssl ncurses + glib gtk3 atk pango geoip + ]; + + preConfigure = '' + substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc \ + --replace /usr \$\{INSTALL_PREFIX\} + ''; + + cmakeFlags = [ + "-DBUNDLED_LIBS=Off" + "-DGTK3_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" + ]; + + meta = with stdenv.lib; { + description = "Comprehensive suite for man in the middle attacks"; + homepage = http://ettercap.github.io/ettercap/; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix new file mode 100644 index 000000000000..0005a5d230d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, libpcap, ncurses, expat, pcre, libnl }: + +stdenv.mkDerivation rec { + pname = "kismet"; + version = "2016-07-R1"; + + src = fetchurl { + url = "https://www.kismetwireless.net/code/${pname}-${version}.tar.xz"; + sha256 = "0dz28y4ay4lskhl0lawqy2dkcrhgfkbg06v22qxzzw8i6caizcmx"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libpcap ncurses expat pcre libnl ]; + postConfigure = '' + sed -e 's/-o $(INSTUSR)//' \ + -e 's/-g $(INSTGRP)//' \ + -e 's/-g $(MANGRP)//' \ + -e 's/-g $(SUIDGROUP)//' \ + -i Makefile + ''; + + meta = with stdenv.lib; { + description = "Wireless network sniffer"; + homepage = https://www.kismetwireless.net/; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix new file mode 100644 index 000000000000..5c536b8aec23 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix @@ -0,0 +1,38 @@ +{ stdenv, autoconf, automake, fetchFromGitHub, libpcap, ncurses, openssl, pcre }: + +stdenv.mkDerivation rec { + pname = "sngrep"; + version = "1.4.6"; + + src = fetchFromGitHub { + owner = "irontec"; + repo = pname; + rev = "v${version}"; + sha256 = "0fj13pim5bfm3a2nr05apspraf29klpmcnhmycklfmrlncq5xqdf"; + }; + + buildInputs = [ + libpcap ncurses pcre openssl ncurses + ]; + + nativeBuildInputs = [ + autoconf automake + ]; + + configureFlags = [ + "--with-pcre" + "--enable-unicode" + "--enable-ipv6" + "--enable-eep" + ]; + + preConfigure = "./bootstrap.sh"; + + meta = with stdenv.lib; { + description = "A tool for displaying SIP calls message flows from terminal"; + homepage = "https://github.com/irontec/sngrep"; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ jorise ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix new file mode 100644 index 000000000000..67365405cc20 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix @@ -0,0 +1,116 @@ +{ stdenv, fetchurl, pkgconfig, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares +, gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python3, libcap, glib +, libssh, nghttp2, zlib, cmake, fetchpatch, makeWrapper +, withQt ? true, qt5 ? null +, ApplicationServices, SystemConfiguration, gmp +}: + +assert withQt -> qt5 != null; + +with stdenv.lib; + +let + version = "3.2.0"; + variant = if withQt then "qt" else "cli"; + +in stdenv.mkDerivation { + pname = "wireshark-${variant}"; + inherit version; + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz"; + sha256 = "0v5nn7i2nbqr59jsw8cs2052hr7xd96x1sa3480g8ks5kahk7zac"; + }; + + cmakeFlags = [ + "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}" + "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}" + ]; + + nativeBuildInputs = [ + bison cmake flex pkgconfig + ] ++ optional withQt qt5.wrapQtAppsHook; + + buildInputs = [ + gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt + libgpgerror gnutls geoip c-ares python3 glib zlib makeWrapper + ] ++ optionals withQt (with qt5; [ qtbase qtmultimedia qtsvg qttools ]) + ++ optionals stdenv.isLinux [ libcap libnl ] + ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ] + ++ optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]); + + patches = [ ./wireshark-lookup-dumpcap-in-path.patch ] + # https://code.wireshark.org/review/#/c/23728/ + ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch { + name = "fix-timeout.patch"; + url = "https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commitdiff_plain;h=8b5b843fcbc3e03e0fc45f3caf8cf5fc477e8613;hp=94af9724d140fd132896b650d10c4d060788e4f0"; + sha256 = "1g2dm7lwsnanwp68b9xr9swspx7hfj4v3z44sz3yrfmynygk8zlv"; + }); + + postPatch = '' + sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt + ''; + + preBuild = '' + export LD_LIBRARY_PATH="$PWD/run" + ''; + + postInstall = '' + # to remove "cycle detected in the references" + mkdir -p $dev/lib/wireshark + mv $out/lib/wireshark/cmake $dev/lib/wireshark + '' + (if stdenv.isDarwin && withQt then '' + mkdir -p $out/Applications + mv $out/bin/Wireshark.app $out/Applications/Wireshark.app + + for f in $(find $out/Applications/Wireshark.app/Contents/PlugIns -name "*.so"); do + for dylib in $(otool -L $f | awk '/^\t*lib/ {print $1}'); do + install_name_tool -change "$dylib" "$out/lib/$dylib" "$f" + done + done + + wrapQtApp $out/Applications/Wireshark.app/Contents/MacOS/Wireshark + '' else optionalString withQt '' + install -Dm644 -t $out/share/applications ../wireshark.desktop + + substituteInPlace $out/share/applications/*.desktop \ + --replace "Exec=wireshark" "Exec=$out/bin/wireshark" + + install -Dm644 ../image/wsicon.svg $out/share/icons/wireshark.svg + mkdir $dev/include/{epan/{wmem,ftypes,dfilter},wsutil,wiretap} -pv + + cp config.h $dev/include/ + cp ../ws_*.h $dev/include + cp ../epan/*.h $dev/include/epan/ + cp ../epan/wmem/*.h $dev/include/epan/wmem/ + cp ../epan/ftypes/*.h $dev/include/epan/ftypes/ + cp ../epan/dfilter/*.h $dev/include/epan/dfilter/ + cp ../wsutil/*.h $dev/include/wsutil/ + cp ../wiretap/*.h $dev/include/wiretap + ''); + + enableParallelBuilding = true; + + dontFixCmake = true; + + shellHook = '' + # to be able to run the resulting binary + export WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 + ''; + + meta = with stdenv.lib; { + homepage = https://www.wireshark.org/; + description = "Powerful network protocol analyzer"; + license = licenses.gpl2; + + longDescription = '' + Wireshark (formerly known as "Ethereal") is a powerful network + protocol analyzer developed by an international team of networking + experts. It runs on UNIX, macOS and Windows. + ''; + + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ bjornfor fpletz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch new file mode 100644 index 000000000000..549da5436e60 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch @@ -0,0 +1,63 @@ +From 5bef9deeff8a2e4401de0f45c9701cd6f98f29d8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com> +Date: Thu, 26 Nov 2015 21:03:35 +0100 +Subject: [PATCH] Lookup dumpcap in PATH + +NixOS patch: Look for dumpcap in PATH first, because there may be a +dumpcap wrapper that we want to use instead of the default +non-setuid dumpcap binary. + +Also change execv() to execvp() because we've set argv[0] to "dumpcap" +and have to enable PATH lookup. Wireshark is not a setuid program, so +looking in PATH is not a security issue. + +Signed-off-by: Franz Pletz <fpletz@fnordicwalking.de> +--- + capchild/capture_sync.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c +index 970688e..49914d5 100644 +--- a/capchild/capture_sync.c ++++ b/capchild/capture_sync.c +@@ -332,7 +332,18 @@ init_pipe_args(int *argc) { + #ifdef _WIN32 + exename = g_strdup_printf("%s\\dumpcap.exe", progfile_dir); + #else +- exename = g_strdup_printf("%s/dumpcap", progfile_dir); ++ /* ++ * NixOS patch: Look for dumpcap in PATH first, because there may be a ++ * dumpcap wrapper that we want to use instead of the default ++ * non-setuid dumpcap binary. ++ */ ++ if (system("command -v dumpcap >/dev/null") == 0) { ++ /* Found working dumpcap */ ++ exename = g_strdup_printf("dumpcap"); ++ } else { ++ /* take Wireshark's absolute program path and replace "Wireshark" with "dumpcap" */ ++ exename = g_strdup_printf("%s/dumpcap", progfile_dir); ++ } + #endif + + /* Make that the first argument in the argument list (argv[0]). */ +@@ -729,7 +740,7 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, voi + */ + dup2(sync_pipe[PIPE_WRITE], 2); + ws_close(sync_pipe[PIPE_READ]); +- execv(argv[0], argv); ++ execvp(argv[0], argv); + g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", + argv[0], g_strerror(errno)); + sync_pipe_errmsg_to_parent(2, errmsg, ""); +@@ -997,7 +1008,7 @@ sync_pipe_open_command(char** argv, int *data_read_fd, + dup2(sync_pipe[PIPE_WRITE], 2); + ws_close(sync_pipe[PIPE_READ]); + ws_close(sync_pipe[PIPE_WRITE]); +- execv(argv[0], argv); ++ execvp(argv[0], argv); + g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", + argv[0], g_strerror(errno)); + sync_pipe_errmsg_to_parent(2, errmsg, ""); +-- +2.6.3 + diff --git a/nixpkgs/pkgs/applications/networking/sniproxy/default.nix b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix new file mode 100644 index 000000000000..301802d322bd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, gettext, libev, pcre, pkgconfig, udns }: + +stdenv.mkDerivation rec { + pname = "sniproxy"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "dlundquist"; + repo = "sniproxy"; + rev = version; + sha256 = "0isgl2lyq8vz5kkxpgyh1sgjlb6sqqybakr64w2mfh29k5ls8xzm"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ gettext libev pcre udns ]; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "Transparent TLS and HTTP layer 4 proxy with SNI support"; + license = licenses.bsd2; + maintainers = [ maintainers.womfoo ]; + platforms = platforms.linux; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/soapui/default.nix b/nixpkgs/pkgs/applications/networking/soapui/default.nix new file mode 100644 index 000000000000..9de525d93245 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/soapui/default.nix @@ -0,0 +1,51 @@ +{ fetchurl, stdenv, writeText, jdk, maven, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "soapui"; + version = "5.5.0"; + + src = fetchurl { + url = "https://s3.amazonaws.com/downloads.eviware/soapuios/${version}/SoapUI-${version}-linux-bin.tar.gz"; + sha256 = "0v1wiy61jgvlxjk8qdvcnyn1gh2ysxf266zln7r4wpzwd5gc3dpw"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jdk maven ]; + + installPhase = '' + mkdir -p $out/share/java + cp -R bin lib $out/share/java + + makeWrapper $out/share/java/bin/soapui.sh $out/bin/soapui --set SOAPUI_HOME $out/share/java + ''; + + patches = [ + (writeText "soapui-${version}.patch" '' + --- a/bin/soapui.sh + +++ b/bin/soapui.sh + @@ -34,7 +34,7 @@ SOAPUI_CLASSPATH=$SOAPUI_HOME/bin/soapui-${version}.jar:$SOAPUI_HOME/lib/* + export SOAPUI_CLASSPATH + + JAVA_OPTS="-Xms128m -Xmx1024m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -Dsoapui.properties=soapui.properties -Dsoapui.home=$SOAPUI_HOME/bin -splash:SoapUI-Spashscreen.png" + -JFXRTPATH=`java -cp $SOAPUI_CLASSPATH com.eviware.soapui.tools.JfxrtLocator` + +JFXRTPATH=`${jdk}/bin/java -cp $SOAPUI_CLASSPATH com.eviware.soapui.tools.JfxrtLocator` + SOAPUI_CLASSPATH=$JFXRTPATH:$SOAPUI_CLASSPATH + + if $darwin + @@ -69,4 +69,4 @@ echo = SOAPUI_HOME = $SOAPUI_HOME + echo = + echo ================================ + + -java $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.SoapUI "$@" + +${jdk}/bin/java $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.SoapUI "$@" + '') + ]; + + meta = with stdenv.lib; { + description = "The Most Advanced REST & SOAP Testing Tool in the World"; + homepage = https://www.soapui.org/; + license = "SoapUI End User License Agreement"; + maintainers = with maintainers; [ gerschtli ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix new file mode 100644 index 000000000000..158e6c5dad15 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchFromGitHub, python27Packages, geoip }: + +with stdenv.lib; + +python27Packages.buildPythonApplication { + pname = "nicotine-plus"; + version = "1.4.1"; + + src = fetchFromGitHub { + owner = "Nicotine-Plus"; + repo = "nicotine-plus"; + rev = "4e057d64184885c63488d4213ade3233bd33e67b"; + sha256 = "11j2qm67sszfqq730czsr2zmpgkghsb50556ax1vlpm7rw3gm33c"; + }; + + propagatedBuildInputs = with python27Packages; [ + pygtk + miniupnpc + mutagen + notify + (GeoIP.override { inherit geoip; }) + ]; + + # Insert real docs directory. + # os.getcwd() is not needed + postPatch = '' + substituteInPlace ./pynicotine/gtkgui/frame.py \ + --replace "paths.append(os.getcwd())" "paths.append('"$out"/doc')" + ''; + + postFixup = '' + mkdir -p $out/doc/ + mv ./doc/NicotinePlusGuide $out/doc/ + mv $out/bin/nicotine $out/bin/nicotine-plus + ''; + + meta = { + description = "A graphical client for the SoulSeek peer-to-peer system"; + homepage = https://www.nicotine-plus.org; + license = licenses.gpl3; + maintainers = with maintainers; [ klntsky ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/spideroak/default.nix b/nixpkgs/pkgs/applications/networking/spideroak/default.nix new file mode 100644 index 000000000000..11c8af368b95 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/spideroak/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchurl, makeWrapper, patchelf +, fontconfig, freetype, glib, libICE, libSM +, libX11, libXext, libXrender, zlib +}: + +let + sha256 = "6d6ca2b383bcc81af1217c696eb77864a2b6db7428f4b5bde5b5913ce705eec5"; + + ldpath = stdenv.lib.makeLibraryPath [ + fontconfig freetype glib libICE libSM + libX11 libXext libXrender zlib + ]; + + version = "7.5.0"; + +in stdenv.mkDerivation { + pname = "spideroak"; + inherit version; + + src = fetchurl { + name = "SpiderOakONE-${version}-slack_tar_x64.tgz"; + url = "https://spideroak.com/release/spideroak/slack_tar_x64"; + inherit sha256; + }; + + sourceRoot = "."; + + unpackCmd = "tar -xzf $curSrc"; + + installPhase = '' + mkdir "$out" + cp -r "./"* "$out" + mkdir "$out/bin" + rm "$out/usr/bin/SpiderOakONE" + rmdir $out/usr/bin || true + mv $out/usr/share $out/ + + rm -f $out/opt/SpiderOakONE/lib/libz* + + patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 \ + "$out/opt/SpiderOakONE/lib/SpiderOakONE" + + RPATH=$out/opt/SpiderOakONE/lib:${ldpath} + makeWrapper $out/opt/SpiderOakONE/lib/SpiderOakONE $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \ + --set QT_PLUGIN_PATH $out/opt/SpiderOakONE/lib/plugins/ \ + --set SpiderOak_EXEC_SCRIPT $out/bin/spideroak + + sed -i 's/^Exec=.*/Exec=spideroak/' $out/share/applications/SpiderOakONE.desktop + ''; + + nativeBuildInputs = [ patchelf makeWrapper ]; + + meta = { + homepage = https://spideroak.com; + description = "Secure online backup and sychronization"; + license = stdenv.lib.licenses.unfree; + maintainers = with stdenv.lib.maintainers; [ amorsillo ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ssb/patchwork-classic/default.nix b/nixpkgs/pkgs/applications/networking/ssb/patchwork-classic/default.nix new file mode 100644 index 000000000000..74a02f47c3bf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ssb/patchwork-classic/default.nix @@ -0,0 +1,106 @@ +{ stdenv, fetchurl, lib, makeWrapper, + # build dependencies + alsaLib, atk, cairo, cups, dbus, expat, fontconfig, + freetype, gdk-pixbuf, glib, gnome2, nspr, nss, xorg, + glibc, systemd +}: + +stdenv.mkDerivation { + + version = "2.12.0"; + + pname = "patchwork-classic"; + + src = fetchurl { + url = "https://github.com/ssbc/patchwork-classic-electron/releases/download/v2.12.0/ssb-patchwork-electron_2.12.0_linux-amd64.deb"; + sha256 = "1rvp07cgqwv7ac319p0qwpfxd7l8f53m1rlvvig7qf7q23fnmbsj"; + }; + + sourceRoot = "."; + + unpackCmd = '' + ar p "$src" data.tar.xz | tar xJ + ''; + + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + cp -R usr/share opt $out/ + + # fix the path in the desktop file + substituteInPlace \ + $out/share/applications/ssb-patchwork-electron.desktop \ + --replace /opt/ $out/opt/ + + # symlink the binary to bin/ + ln -s $out/opt/ssb-patchwork-electron/ssb-patchwork-electron $out/bin/patchwork-classic + ''; + + + preFixup = let + packages = [ + alsaLib + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gnome2.gtk + gnome2.pango + nspr + nss + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + stdenv.cc.cc.lib + stdenv.cc.cc + glibc + ]; + libPathNative = lib.makeLibraryPath packages; + libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages; + libPath = "${libPathNative}:${libPath64}"; + in '' + # patch executable + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}:$out/opt/ssb-patchwork-electron" \ + $out/opt/ssb-patchwork-electron/ssb-patchwork-electron + + # patch libnode + patchelf \ + --set-rpath "${libPath}" \ + $out/opt/ssb-patchwork-electron/libnode.so + + # libffmpeg is for some reason not executable + chmod a+x $out/opt/ssb-patchwork-electron/libffmpeg.so + + # fix missing libudev + ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/ssb-patchwork-electron/libudev.so.1 + wrapProgram $out/opt/ssb-patchwork-electron/ssb-patchwork-electron \ + --prefix LD_LIBRARY_PATH : $out/opt/ssb-patchwork-electron + ''; + + meta = with stdenv.lib; { + description = "Electron wrapper for Patchwork Classic: run as a desktop app outside the browser"; + homepage = "https://github.com/ssbc/patchwork-classic-electron"; + license = licenses.gpl3; + maintainers = with maintainers; [ mrVanDalo ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ssb/patchwork/default.nix b/nixpkgs/pkgs/applications/networking/ssb/patchwork/default.nix new file mode 100644 index 000000000000..cf1159b83f8e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ssb/patchwork/default.nix @@ -0,0 +1,53 @@ +{ appimageTools, symlinkJoin, lib, fetchurl, makeDesktopItem }: + +let + pname = "ssb-patchwork"; + version = "3.17.2"; + name = "Patchwork-${version}"; + + src = fetchurl { + url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage"; + sha256 = "1pmy01jwdr461vsl4fsxi3jaqnjx9yl5dw4987y5g73qx21qc5d5"; + }; + + binary = appimageTools.wrapType2 { + name = pname; + inherit src; + }; + # we only use this to extract the icon + appimage-contents = appimageTools.extractType2 { + inherit name src; + }; + + desktopItem = makeDesktopItem { + name = "ssb-patchwork"; + exec = "${binary}/bin/ssb-patchwork"; + icon = "ssb-patchwork.png"; + comment = "Decentralized messaging and sharing app"; + desktopName = "Patchwork"; + genericName = "Patchwork"; + categories = "Network;"; + }; + +in + symlinkJoin { + inherit name; + paths = [ binary ]; + + postBuild = '' + mkdir -p $out/share/pixmaps/ $out/share/applications + cp ${appimage-contents}/ssb-patchwork.png $out/share/pixmaps + cp ${desktopItem}/share/applications/* $out/share/applications/ + ''; + + meta = with lib; { + description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)"; + longDescription = '' + sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship. + ''; + homepage = https://www.scuttlebutt.nz/; + license = licenses.agpl3; + maintainers = with maintainers; [ thedavidmeister ninjatrappeur flokli ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/station/default.nix b/nixpkgs/pkgs/applications/networking/station/default.nix new file mode 100644 index 000000000000..afc89fe78024 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/station/default.nix @@ -0,0 +1,30 @@ +{ appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, lib }: + +let + pname = "station"; + version = "1.52.2"; +in appimageTools.wrapType2 rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/getstation/desktop-app-releases/releases/download/${version}/Station-${version}-x86_64.AppImage"; + sha256 = "0lhiwvnf94is9klvzrqv2wri53gj8nms9lg2678bs4y58pvjxwid"; + }; + + profile = '' + export LC_ALL=C.UTF-8 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = "mv $out/bin/{${name},${pname}}"; + + meta = with lib; { + description = "A single place for all of your web applications"; + homepage = "https://getstation.com"; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ lattfein ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/super-productivity/default.nix b/nixpkgs/pkgs/applications/networking/super-productivity/default.nix new file mode 100644 index 000000000000..c5ff090a8076 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/super-productivity/default.nix @@ -0,0 +1,106 @@ +{ stdenv, fetchurl, dpkg, makeWrapper +, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib +, gnome2, gtk3, gdk-pixbuf, libnotify, libxcb, nspr, nss, pango +, systemd, xorg, xprintidle-ng }: + +let + + version = "1.10.45"; + + rpath = stdenv.lib.makeLibraryPath [ + alsaLib + atk + cairo + cups + curl + dbus + expat + fontconfig + freetype + glib + gnome2.GConf + gdk-pixbuf + gtk3 + pango + libnotify + libxcb + nspr + nss + stdenv.cc.cc + systemd + + xorg.libxkbfile + xorg.libX11 + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libXScrnSaver + ] + ":${stdenv.cc.cc.lib}/lib64"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity_${version}_amd64.deb"; + sha256 = "0jfi0lfijnhij9jvkhxgyvq8m1jzaym8n1c7707fv3hjh1h0vxn1"; + } + else + throw "super-productivity is not supported on ${stdenv.hostPlatform.system}"; + +in stdenv.mkDerivation { + pname = "super-productivity"; + inherit version; + + inherit src; + + buildInputs = [ + dpkg + gtk3 # needed for GSETTINGS_SCHEMAS_PATH + ]; + + nativeBuildInputs = [ makeWrapper ]; + + unpackPhase = "dpkg -x $src ."; + + installPhase = '' + runHook preInstall + + mkdir -p $out + + cp -R usr/share $out/share + cp -R opt $out/libexec + + # Otherwise it looks "suspicious" + chmod -R g-w $out + + # set linker and rpath + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/libexec/superProductivity/superproductivity" + patchelf --set-rpath ${rpath}:$out/libexec/superProductivity "$out/libexec/superProductivity/superproductivity" + + # wrapper for xdg_data_dirs and xprintidle path + makeWrapper $out/libexec/superProductivity/superproductivity $out/bin/superproductivity \ + --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \ + --prefix PATH : "${xprintidle-ng}/bin" + + # Fix the desktop link + substituteInPlace $out/share/applications/superproductivity.desktop \ + --replace /opt/superProductivity/ $out/bin/ + + runHook postInstall + ''; + + dontStrip = true; + + meta = with stdenv.lib; { + description = "To Do List / Time Tracker with Jira Integration."; + homepage = https://super-productivity.com; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ offline ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix new file mode 100644 index 000000000000..669ab4d1e3e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchFromGitHub, buildPythonApplication, fuse +, appdirs, colorama, dateutil, requests, requests_toolbelt +, fusepy, sqlalchemy }: + +buildPythonApplication rec { + pname = "acd_cli"; + version = "0.3.2"; + + doCheck = false; + + src = fetchFromGitHub { + owner = "yadayada"; + repo = pname; + rev = version; + sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp"; + }; + + propagatedBuildInputs = [ appdirs colorama dateutil fusepy requests + requests_toolbelt sqlalchemy ]; + + makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ]; + + postFixup = '' + function lnOverBin() { + rm -f $out/bin/{$2,.$2-wrapped} + ln -s $out/bin/$1 $out/bin/$2 + } + lnOverBin acd_cli.py acd-cli + lnOverBin acd_cli.py acd_cli + lnOverBin acd_cli.py acdcli + ''; + + meta = with stdenv.lib; { + description = "A command line interface and FUSE filesystem for Amazon Cloud Drive"; + homepage = https://github.com/yadayada/acd_cli; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ edwtjo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix new file mode 100644 index 000000000000..36c4dd46222e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix @@ -0,0 +1,46 @@ +{stdenv, fetchFromGitHub, makeWrapper, gettext, python3Packages, rsync, cron, openssh, sshfs-fuse, encfs }: + +let + inherit (python3Packages) python dbus-python keyring; +in stdenv.mkDerivation rec { + version = "1.1.24"; + + pname = "backintime-common"; + + src = fetchFromGitHub { + owner = "bit-team"; + repo = "backintime"; + rev = "v${version}"; + sha256 = "0g6gabnr60ns8854hijdddbanks7319q4n3fj5l6rc4xsq0qck18"; + }; + + buildInputs = [ makeWrapper gettext python dbus-python keyring openssh cron rsync sshfs-fuse encfs ]; + + installFlags = [ "DEST=$(out)" ]; + + preConfigure = "cd common"; + + dontAddPrefix = true; + + preFixup = + '' + substituteInPlace "$out/bin/backintime" \ + --replace "=\"/usr/share" "=\"$prefix/share" + wrapProgram "$out/bin/backintime" \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + --prefix PATH : "$prefix/bin:$PATH" + ''; + + meta = { + homepage = https://github.com/bit-team/backintime; + description = "Simple backup tool for Linux"; + license = stdenv.lib.licenses.gpl2; + maintainers = [ ]; + platforms = stdenv.lib.platforms.all; + longDescription = '' + Back In Time is a simple backup tool (on top of rsync) for Linux + inspired from “flyback project” and “TimeVault”. The backup is + done by taking snapshots of a specified set of directories. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix new file mode 100644 index 000000000000..b72ddc8bae63 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix @@ -0,0 +1,28 @@ +{stdenv, makeWrapper, gettext, backintime-common, python3, python3Packages }: + +stdenv.mkDerivation { + inherit (backintime-common) version src installFlags; + + pname = "backintime-qt4"; + + buildInputs = [ makeWrapper gettext python3 python3Packages.pyqt4 backintime-common python3 ]; + + preConfigure = "cd qt4"; + configureFlags = [ ]; + + dontAddPrefix = true; + + preFixup = + '' + substituteInPlace "$out/bin/backintime-qt4" \ + --replace "=\"/usr/share" "=\"$prefix/share" + + wrapProgram "$out/bin/backintime-qt4" \ + --prefix PYTHONPATH : "${backintime-common}/share/backintime/common:$PYTHONPATH" \ + --prefix PATH : "${backintime-common}/bin:$PATH" + ''; + + meta = with stdenv.lib; { + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix new file mode 100644 index 000000000000..82a99bf2df10 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchFromGitHub +, meson, ninja, pkgconfig, python3, sphinx +, acl, curl, fuse, libselinux, udev, xz, zstd +, fuseSupport ? true +, selinuxSupport ? true +, udevSupport ? true +, glibcLocales, rsync +}: + +stdenv.mkDerivation { + pname = "casync"; + version = "2-219-ga8f6c84"; + + src = fetchFromGitHub { + owner = "systemd"; + repo = "casync"; + rev = "a8f6c841ccfe59ca8c68aad64df170b64042dce8"; + sha256 = "1i3c9wmpabpmx2wfbcyabmwfa66vz92iq5dlbm89v5mvgavz7bws"; + }; + + buildInputs = [ acl curl xz zstd ] + ++ stdenv.lib.optionals (fuseSupport) [ fuse ] + ++ stdenv.lib.optionals (selinuxSupport) [ libselinux ] + ++ stdenv.lib.optionals (udevSupport) [ udev ]; + nativeBuildInputs = [ meson ninja pkgconfig python3 sphinx ]; + checkInputs = [ glibcLocales rsync ]; + + postPatch = '' + for f in test/test-*.sh.in; do + patchShebangs $f + done + patchShebangs test/http-server.py + ''; + + PKG_CONFIG_UDEV_UDEVDIR = "lib/udev"; + mesonFlags = stdenv.lib.optionals (!fuseSupport) [ "-Dfuse=false" ] + ++ stdenv.lib.optionals (!udevSupport) [ "-Dudev=false" ] + ++ stdenv.lib.optionals (!selinuxSupport) [ "-Dselinux=false" ]; + + doCheck = true; + preCheck = '' + export LC_ALL="en_US.utf-8" + ''; + + meta = with stdenv.lib; { + description = "Content-Addressable Data Synchronizer"; + homepage = https://github.com/systemd/casync; + license = licenses.lgpl21; + platforms = platforms.linux; + maintainers = with maintainers; [ flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/desync/default.nix b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix new file mode 100644 index 000000000000..d38f8b53dbbf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix @@ -0,0 +1,27 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "desync"; + version = "0.4.0"; + rev = "v${version}"; + + goPackagePath = "github.com/folbricht/desync"; + + src = fetchFromGitHub { + inherit rev; + owner = "folbricht"; + repo = "desync"; + sha256 = "17qh0g1paa7212j761q9z246k10a3xrwd8fgiizw3lr9adn50kdk"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "Content-addressed binary distribution system"; + longDescription = "An alternate implementation of the casync protocol and storage mechanism with a focus on production-readiness"; + homepage = https://github.com/folbricht/desync; + license = licenses.bsd3; + platforms = platforms.unix; # *may* work on Windows, but varies between releases. + maintainers = [ maintainers.chaduffy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix b/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix new file mode 100644 index 000000000000..7f5f3251d162 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix @@ -0,0 +1,312 @@ +[ + + { + goPackagePath = "github.com/datadog/zstd"; + fetch = { + type = "git"; + url = "https://github.com/datadog/zstd"; + rev = "v1.3.4"; + sha256 = "06wphl43ji23c0cmmm6fd3wszbwq36mdp1jarak2a6hmxl6yf0b8"; + }; + } + + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + + { + goPackagePath = "github.com/dchest/siphash"; + fetch = { + type = "git"; + url = "https://github.com/dchest/siphash"; + rev = "v1.2.0"; + sha256 = "01qhv9zd9l6p7pwf1fj022mp9s5496rk4lnm3yvpjsiwp6k4af8c"; + }; + } + + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "v1.7.0"; + sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv"; + }; + } + + { + goPackagePath = "github.com/folbricht/tempfile"; + fetch = { + type = "git"; + url = "https://github.com/folbricht/tempfile"; + rev = "v0.0.1"; + sha256 = "0vz08qvbniqxc24vhmcbq5ncnz97ncp4jbxgcf0hziazxfp114z3"; + }; + } + + { + goPackagePath = "github.com/go-ini/ini"; + fetch = { + type = "git"; + url = "https://github.com/go-ini/ini"; + rev = "v1.38.2"; + sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9"; + }; + } + + { + goPackagePath = "github.com/gopherjs/gopherjs"; + fetch = { + type = "git"; + url = "https://github.com/gopherjs/gopherjs"; + rev = "0210a2f0f73c"; + sha256 = "1n80xjfc1dkxs8h8mkpw83n89wi5n7hzc3rxhwjs76rkxpq3rc9j"; + }; + } + + { + goPackagePath = "github.com/hanwen/go-fuse"; + fetch = { + type = "git"; + url = "https://github.com/hanwen/go-fuse"; + rev = "1d35017e9701"; + sha256 = "11rggvkd6lc5lcpsfvc9iip4z9cingzpkpshaskv2cirbxdynyi8"; + }; + } + + { + goPackagePath = "github.com/inconshreveable/mousetrap"; + fetch = { + type = "git"; + url = "https://github.com/inconshreveable/mousetrap"; + rev = "v1.0.0"; + sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; + }; + } + + { + goPackagePath = "github.com/jtolds/gls"; + fetch = { + type = "git"; + url = "https://github.com/jtolds/gls"; + rev = "v4.2.1"; + sha256 = "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"; + }; + } + + { + goPackagePath = "github.com/kr/fs"; + fetch = { + type = "git"; + url = "https://github.com/kr/fs"; + rev = "v0.1.0"; + sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"; + }; + } + + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "v0.0.9"; + sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; + }; + } + + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "v0.0.4"; + sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"; + }; + } + + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "v0.0.3"; + sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g"; + }; + } + + { + goPackagePath = "github.com/minio/minio-go"; + fetch = { + type = "git"; + url = "https://github.com/minio/minio-go"; + rev = "v6.0.6"; + sha256 = "0bgivqw1n1189lksp85djw1rqcan2axyh4jv9q54iclrjkpbab37"; + }; + } + + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "v1.0.0"; + sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"; + }; + } + + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.8.0"; + sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5"; + }; + } + + { + goPackagePath = "github.com/pkg/sftp"; + fetch = { + type = "git"; + url = "https://github.com/pkg/sftp"; + rev = "v1.8.2"; + sha256 = "040flbir6sv213xzs75vkd5fd7bmm3fqxfcnsx8fr77zkn52hm4m"; + }; + } + + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + + { + goPackagePath = "github.com/smartystreets/assertions"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/assertions"; + rev = "7c9eb446e3cf"; + sha256 = "1dix6qgaj6kw38hicy3zs3lvacl1kn0n267b3xw0vvdkqf1v0395"; + }; + } + + { + goPackagePath = "github.com/smartystreets/goconvey"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/goconvey"; + rev = "ef6db91d284a"; + sha256 = "16znlpsms8z2qc3airawyhzvrzcp70p9bx375i19bg489hgchxb7"; + }; + } + + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "v0.0.3"; + sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd"; + }; + } + + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "v1.0.2"; + sha256 = "005598piihl3l83a71ahj10cpq9pbhjck4xishx1b4dzc02r9xr2"; + }; + } + + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.2.2"; + sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs"; + }; + } + + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "0709b304e793"; + sha256 = "0i05s09y5pavmfh71fgih7syxg58x7a4krgd8am6d3mnahnmab5c"; + }; + } + + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "161cd47e91fd"; + sha256 = "0254ld010iijygbzykib2vags1dc0wlmcmhgh4jl8iny159lhbcv"; + }; + } + + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "1d60e4601c6f"; + sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6"; + }; + } + + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "49385e6e1522"; + sha256 = "0spbldahns09fdxkxflb1x24f8k2awdlnr6k5i7ci4fqd19r1dv4"; + }; + } + + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + + { + goPackagePath = "gopkg.in/cheggaaa/pb.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/cheggaaa/pb.v1"; + rev = "v1.0.25"; + sha256 = "0vxqiw6f3xyv0zy3g4lksf8za0z8i0hvfpw92hqimsy84f79j3dp"; + }; + } + + { + goPackagePath = "gopkg.in/ini.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/ini.v1"; + rev = "v1.38.2"; + sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix new file mode 100644 index 000000000000..832f7c63f275 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, fetchpatch, cmake, lua, pkgconfig, rsync, + asciidoc, libxml2, docbook_xml_dtd_45, docbook_xsl, libxslt }: + +stdenv.mkDerivation rec { + pname = "lsyncd"; + version = "2.2.3"; + + src = fetchFromGitHub { + owner = "axkibe"; + repo = "lsyncd"; + rev = "release-${version}"; + sha256 = "1hbsih5hfq9lhgnxm0wb5mrj6xmlk2l0i9a79wzd5f6cnjil9l3x"; + }; + + patches = [ + (fetchpatch { + sha256 = "0b0h2qxh73l502p7phf6qgl8576nf6fvqqp2x5wy3nz7sc9qb1z8"; + name = "fix-non-versioned-lua-not-search-in-cmake.patch"; + url = "https://github.com/axkibe/lsyncd/pull/500/commits/0af99d8d5ba35118e8799684a2d4a8ea4b0c6957.patch"; + }) + ]; + + postPatch = '' + substituteInPlace default-rsync.lua \ + --replace "/usr/bin/rsync" "${rsync}/bin/rsync" + ''; + + dontUseCmakeBuildDir = true; + + buildInputs = [ + rsync + cmake lua pkgconfig + asciidoc libxml2 docbook_xml_dtd_45 docbook_xsl libxslt + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/axkibe/lsyncd; + description = "A utility that synchronizes local directories with remote targets"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ bobvanderlinden ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix new file mode 100644 index 000000000000..dc38debd3050 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix @@ -0,0 +1,35 @@ +{ stdenv +, fetchFromGitHub +, dmd +, pkgconfig +, curl +, sqlite +}: + +stdenv.mkDerivation rec { + pname = "onedrive"; + version = "2.3.12"; + + src = fetchFromGitHub { + owner = "abraunegg"; + repo = "onedrive"; + rev = "v${version}"; + sha256 = "0605nb3blvnncjx09frg2liarrd6pw8ph5jhnh764qcx0hyxcgs6"; + }; + + nativeBuildInputs = [ + dmd + pkgconfig + ]; + buildInputs = [ + curl + sqlite + ]; + meta = with stdenv.lib; { + description = "A complete tool to interact with OneDrive on Linux"; + homepage = "https://github.com/abraunegg/onedrive"; + license = licenses.gpl3; + maintainers = with maintainers; [ doronbehar srgom ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix new file mode 100644 index 000000000000..00edcd411fd5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, cmake, qtbase }: + +stdenv.mkDerivation rec { + pname = "rclone-browser"; + version = "1.2"; + + src = fetchFromGitHub { + owner = "mmozeiko"; + repo = "RcloneBrowser"; + rev = version; + sha256 = "1ldradd5c606mfkh46y4mhcvf9kbjhamw0gahksp9w43h5dh3ir7"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtbase ]; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "Graphical Frontend to Rclone written in Qt"; + license = licenses.unlicense; + platforms = platforms.linux; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix new file mode 100644 index 000000000000..71421eaf1e71 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix @@ -0,0 +1,31 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "rclone"; + version = "1.50.2"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "0yaspkh88q8i58i8g8mm6sqb75hczavz2lvzdd1iif1bqgi6b5fz"; + }; + + goPackagePath = "github.com/rclone/rclone"; + + subPackages = [ "." ]; + + outputs = [ "bin" "out" "man" ]; + + postInstall = '' + install -D -m644 $src/rclone.1 $man/share/man/man1/rclone.1 + ''; + + meta = with stdenv.lib; { + description = "Command line program to sync files and directories to and from major cloud storage"; + homepage = https://rclone.org; + license = licenses.mit; + maintainers = with maintainers; [ danielfullmer ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix new file mode 100644 index 000000000000..fc4bc6c0671e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl }: + +rec { + version = "3.1.3"; + src = fetchurl { + # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 + url = "mirror://samba/rsync/src/rsync-${version}.tar.gz"; + sha256 = "1h0011dj6jgqpgribir4anljjv7bbrdcs8g91pbsmzf5zr75bk2m"; + }; + upstreamPatchTarball = fetchurl { + # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 + url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz"; + sha256 = "167vk463bb3xl9c4gsbxms111dk1ip7pq8y361xc0xfa427q9hhd"; + }; + + meta = with stdenv.lib; { + description = "Fast incremental file transfer utility"; + homepage = https://rsync.samba.org/; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix new file mode 100644 index 000000000000..4045c1f0fc51 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, perl, libiconv, zlib, popt +, enableACLs ? !(stdenv.isDarwin || stdenv.isSunOS || stdenv.isFreeBSD), acl ? null +, enableCopyDevicesPatch ? false +}: + +assert enableACLs -> acl != null; + +let + base = import ./base.nix { inherit stdenv fetchurl; }; +in +stdenv.mkDerivation rec { + name = "rsync-${base.version}"; + + mainSrc = base.src; + + patchesSrc = base.upstreamPatchTarball; + + srcs = [mainSrc] ++ stdenv.lib.optional enableCopyDevicesPatch patchesSrc; + patches = stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff"; + + buildInputs = [libiconv zlib popt] ++ stdenv.lib.optional enableACLs acl; + nativeBuildInputs = [perl]; + + configureFlags = ["--with-nobody-group=nogroup"]; + + meta = base.meta // { + description = "A fast incremental file transfer utility"; + maintainers = with stdenv.lib.maintainers; [ peti ehmry kampfschlaefer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix new file mode 100644 index 000000000000..19be478b0f1e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, perl, rsync }: + +let + base = import ./base.nix { inherit stdenv fetchurl; }; +in +stdenv.mkDerivation { + name = "rrsync-${base.version}"; + + src = base.src; + + buildInputs = [ rsync perl ]; + + # Skip configure and build phases. + # We just want something from the support directory + dontConfigure = true; + dontBuild = true; + + postPatch = '' + substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync + ''; + + installPhase = '' + mkdir -p $out/bin + cp support/rrsync $out/bin + chmod a+x $out/bin/rrsync + ''; + + meta = base.meta // { + description = "A helper to run rsync-only environments from ssh-logins"; + maintainers = [ stdenv.lib.maintainers.kampfschlaefer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix new file mode 100644 index 000000000000..bc93b743f8b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix @@ -0,0 +1,47 @@ +{stdenv, fetchFromGitHub, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper, ncurses +, enableX11 ? true}: + +stdenv.mkDerivation (rec { + + pname = "unison"; + version = "2.51.2"; + src = fetchFromGitHub { + owner = "bcpierce00"; + repo = "unison"; + rev = "v${version}"; + sha256 = "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"; + }; + + buildInputs = [ ocaml makeWrapper ncurses ]; + + preBuild = (if enableX11 then '' + sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml + '' else "") + '' + echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile + ''; + + makeFlags = [ + "INSTALLDIR=$(out)/bin/" + "UISTYLE=${if enableX11 then "gtk2" else "text"}" + ] ++ stdenv.lib.optional (!ocaml.nativeCompilers) "NATIVE=false"; + + preInstall = "mkdir -p $out/bin"; + + postInstall = if enableX11 then '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + --run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")" + done + '' else ""; + + dontStrip = !ocaml.nativeCompilers; + + meta = { + homepage = http://www.cis.upenn.edu/~bcpierce/unison/; + description = "Bidirectional file synchronizer"; + license = stdenv.lib.licenses.gpl3Plus; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; unix; + }; + +}) diff --git a/nixpkgs/pkgs/applications/networking/syncplay/default.nix b/nixpkgs/pkgs/applications/networking/syncplay/default.nix new file mode 100644 index 000000000000..920a1c97539e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncplay/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, buildPythonApplication, pyside2, shiboken2, twisted, certifi, qt5 }: + +buildPythonApplication rec { + pname = "syncplay"; + version = "1.6.4a"; + + format = "other"; + + src = fetchFromGitHub { + owner = "Syncplay"; + repo = "syncplay"; + rev = "v${version}"; + sha256 = "0zz4a3vzfg808z1qkqz31z4818wzpfa2lika7wl0jgpmw4zi85ix"; + }; + + propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls; + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + + makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ]; + + postFixup = '' + wrapQtApp $out/bin/syncplay + ''; + + meta = with lib; { + homepage = https://syncplay.pl/; + description = "Free software that synchronises media players"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ enzime ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix new file mode 100644 index 000000000000..9317ccab4eab --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall +, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook +, gnome3, buildPythonApplication, dateutil, pyinotify, pygobject3 +, bcrypt, gobject-introspection, gsettings-desktop-schemas +, pango, gdk-pixbuf, atk }: + +buildPythonApplication rec { + version = "0.9.4"; + pname = "syncthing-gtk"; + + src = fetchFromGitHub { + owner = "syncthing"; + repo = "syncthing-gtk"; + rev = "v${version}"; + sha256 = "0d3rjd1xjd7zravks9a2ph7gv1cm8wxaxkkvl1fvcx15v7f3hff9"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + # For setup hook populating GI_TYPELIB_PATH + gobject-introspection + pango gdk-pixbuf atk libnotify + ]; + + buildInputs = [ + gtk3 librsvg libappindicator-gtk3 + libnotify gnome3.adwaita-icon-theme + # Schemas with proxy configuration + gsettings-desktop-schemas + ]; + + propagatedBuildInputs = [ + dateutil pyinotify pygobject3 bcrypt + ]; + + patches = [ + (fetchpatch { + url = https://github.com/syncthing/syncthing-gtk/commit/b2535e5a9cdb31c4987ab7af37f62d58d38255b7.patch; + sha256 = "047v79wz2a9334gbzywlqwpacrk53s26ksvfqaddk06avv8742w7"; + }) + (substituteAll { + src = ./paths.patch; + killall = "${killall}/bin/killall"; + syncthing = "${syncthing}/bin/syncthing"; + }) + ]; + + setupPyBuildFlags = [ "build_py" "--nofinddaemon" "--nostdownloader" ]; + + postPatch = '' + substituteInPlace setup.py --replace "version = get_version()" "version = '${version}'" + substituteInPlace scripts/syncthing-gtk --replace "/usr/share" "$out/share" + substituteInPlace syncthing_gtk/app.py --replace "/usr/share" "$out/share" + substituteInPlace syncthing_gtk/uisettingsdialog.py --replace "/usr/share" "$out/share" + substituteInPlace syncthing_gtk/wizard.py --replace "/usr/share" "$out/share" + substituteInPlace syncthing-gtk.desktop --replace "/usr/bin/syncthing-gtk" "$out/bin/syncthing-gtk" + ''; + + meta = with stdenv.lib; { + description = "GTK3 & python based GUI for Syncthing"; + homepage = https://github.com/syncthing/syncthing-gtk; + license = licenses.gpl2; + maintainers = with maintainers; [ ]; + platforms = syncthing.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch b/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch new file mode 100644 index 000000000000..0ba5a4f2db84 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch @@ -0,0 +1,22 @@ +--- a/syncthing_gtk/configuration.py ++++ b/syncthing_gtk/configuration.py +@@ -30,7 +30,7 @@ + "autokill_daemon" : (int, 2), # 0 - never kill, 1 - always kill, 2 - ask + "daemon_priority" : (int, 0), # uses nice values + "max_cpus" : (int, 0), # 0 for all cpus +- "syncthing_binary" : (str, "/usr/bin/syncthing"), ++ "syncthing_binary" : (str, "@syncthing@"), + "syncthing_arguments" : (str, ""), + "minimize_on_start" : (bool, False), + "folder_as_path" : (bool, True), +--- a/syncthing_gtk/tools.py ++++ b/syncthing_gtk/tools.py +@@ -303,7 +303,7 @@ + return False + # signal 0 doesn't kill anything, but killall exits with 1 if + # named process is not found +- p = Popen(["killall", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"]) ++ p = Popen(["@killall@", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"]) + p.communicate() + return p.returncode == 0 + else: diff --git a/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch b/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch new file mode 100644 index 000000000000..07b5e334b2c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch @@ -0,0 +1,17 @@ +diff --git a/build.go b/build.go +index c8a5c1cf..d75a8491 100644 +--- a/build.go ++++ b/build.go +@@ -202,6 +202,12 @@ var targets = map[string]target{ + {src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/AUTHORS.txt", perm: 0644}, + }, + }, ++ "stcli": { ++ name: "stcli", ++ description: "Syncthing CLI", ++ buildPkgs: []string{"github.com/syncthing/syncthing/cmd/stcli"}, ++ binaryName: "stcli", ++ }, + } + + // These are repos we need to clone to run "go generate" diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix new file mode 100644 index 000000000000..8a110c63929d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix @@ -0,0 +1,103 @@ +{ buildGoModule, stdenv, lib, procps, fetchFromGitHub }: + +let + common = { stname, target, postInstall ? "" }: + buildGoModule rec { + version = "1.3.3"; + name = "${stname}-${version}"; + + src = fetchFromGitHub { + owner = "syncthing"; + repo = "syncthing"; + rev = "v${version}"; + sha256 = "0bcp8kbj8xsnly2dfafnfvj6vl27mbgvj84pjk0wxdjfnr2my9ic"; + }; + + goPackagePath = "github.com/syncthing/syncthing"; + + modSha256 = "0kv24bi3w3pvjyjng7ly67brq8wkc1xnhsyha1h7v3jbmj5fgb12"; + + patches = [ + ./add-stcli-target.patch + ]; + BUILD_USER="nix"; + BUILD_HOST="nix"; + + buildPhase = '' + runHook preBuild + go run build.go -no-upgrade -version v${version} build ${target} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm755 ${target} $out/bin/${target} + runHook postInstall + ''; + + inherit postInstall; + + meta = with lib; { + homepage = https://www.syncthing.net/; + description = "Open Source Continuous File Synchronization"; + license = licenses.mpl20; + maintainers = with maintainers; [ pshendry joko peterhoeg andrew-d ]; + platforms = platforms.unix; + }; + }; + +in { + syncthing = common { + stname = "syncthing"; + target = "syncthing"; + + postInstall = '' + # This installs man pages in the correct directory according to the suffix + # on the filename + for mf in man/*.[1-9]; do + mantype="$(echo "$mf" | awk -F"." '{print $NF}')" + mandir="$out/share/man/man$mantype" + install -Dm644 "$mf" "$mandir/$(basename "$mf")" + done + + '' + lib.optionalString (stdenv.isLinux) '' + mkdir -p $out/lib/systemd/{system,user} + + substitute etc/linux-systemd/system/syncthing-resume.service \ + $out/lib/systemd/system/syncthing-resume.service \ + --replace /usr/bin/pkill ${procps}/bin/pkill + + substitute etc/linux-systemd/system/syncthing@.service \ + $out/lib/systemd/system/syncthing@.service \ + --replace /usr/bin/syncthing $out/bin/syncthing + + substitute etc/linux-systemd/user/syncthing.service \ + $out/lib/systemd/user/syncthing.service \ + --replace /usr/bin/syncthing $out/bin/syncthing + ''; + }; + + syncthing-cli = common { + stname = "syncthing-cli"; + + target = "stcli"; + }; + + syncthing-discovery = common { + stname = "syncthing-discovery"; + target = "stdiscosrv"; + }; + + syncthing-relay = common { + stname = "syncthing-relay"; + target = "strelaysrv"; + + postInstall = lib.optionalString (stdenv.isLinux) '' + mkdir -p $out/lib/systemd/system + + substitute cmd/strelaysrv/etc/linux-systemd/strelaysrv.service \ + $out/lib/systemd/system/strelaysrv.service \ + --replace /usr/bin/strelaysrv $out/bin/strelaysrv + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/tcpkali/default.nix b/nixpkgs/pkgs/applications/networking/tcpkali/default.nix new file mode 100644 index 000000000000..a71425422383 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/tcpkali/default.nix @@ -0,0 +1,23 @@ +{stdenv, autoreconfHook, fetchFromGitHub, bison}: + +let version = "1.1.1"; in + +stdenv.mkDerivation rec { + pname = "tcpkali"; + inherit version; + src = fetchFromGitHub { + owner = "machinezone"; + repo = "tcpkali"; + rev = "v${version}"; + sha256 = "09ky3cccaphcqc6nhfs00pps99lasmzc2pf5vk0gi8hlqbbhilxf"; + }; + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ bison]; + meta = { + description = "High performance TCP and WebSocket load generator and sink"; + license = stdenv.lib.licenses.bsd2; + inherit (src.meta) homepage; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ ethercrow ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/testssl/default.nix b/nixpkgs/pkgs/applications/networking/testssl/default.nix new file mode 100644 index 000000000000..e518502d6f37 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/testssl/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, makeWrapper, lib +, dnsutils, coreutils, openssl, nettools, utillinux, procps }: + +stdenv.mkDerivation rec { + pname = "testssl.sh"; + version = "3.0rc6"; + + src = fetchFromGitHub { + owner = "drwetter"; + repo = pname; + rev = version; + sha256 = "1ks7pqgrg382ry0a0jf1dwgcwv81snhkrhkjdbcpym6w5flmpjsv"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ + coreutils # for pwd and printf + dnsutils # for dig + nettools # for hostname + openssl # for openssl + procps # for ps + utillinux # for hexdump + ]; + + postPatch = '' + substituteInPlace testssl.sh \ + --replace /bin/pwd pwd \ + --replace TESTSSL_INSTALL_DIR:-\"\" TESTSSL_INSTALL_DIR:-\"$out\" \ + --replace PROG_NAME=\"\$\(basename\ \"\$0\"\)\" PROG_NAME=\"testssl.sh\" + ''; + + installPhase = '' + install -D testssl.sh $out/bin/testssl.sh + cp -r etc $out + + wrapProgram $out/bin/testssl.sh --prefix PATH ':' ${lib.makeBinPath buildInputs} + ''; + + meta = with stdenv.lib; { + description = "CLI tool to check a server's TLS/SSL capabilities"; + longDescription = '' + CLI tool which checks a server's service on any port for the support of + TLS/SSL ciphers, protocols as well as recent cryptographic flaws and more. + ''; + homepage = "https://testssl.sh/"; + license = licenses.gpl2; + maintainers = with maintainers; [ etu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/trebleshot/default.nix b/nixpkgs/pkgs/applications/networking/trebleshot/default.nix new file mode 100644 index 000000000000..1b049ff2dc7f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/trebleshot/default.nix @@ -0,0 +1,29 @@ +{ mkDerivation, lib, fetchFromGitHub +, cmake, qtbase, kdnssd +}: + +mkDerivation rec { + pname = "trebleshot"; + version = "0.1.0-alpha2-15-ga7ac23c"; + # name="${pname}-${version}"; + + src = fetchFromGitHub { + owner = "genonbeta"; + repo = "TrebleShot-Desktop"; + rev = "${version}"; + sha256 = "1k8wagw6arsi1lqkhn1nl6j11mb122vi1qs0q2np6nznwfy7pn1k"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtbase kdnssd ]; + + meta = with lib; { + description = "Android file transferring tool for desktop"; + homepage = https://github.com/genonbeta/TrebleShot-Desktop; + license = licenses.gpl2; + + platforms = platforms.linux; + maintainers = with maintainers; [ woffs ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/tsung/default.nix b/nixpkgs/pkgs/applications/networking/tsung/default.nix new file mode 100644 index 000000000000..6f5a3f3ec16f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/tsung/default.nix @@ -0,0 +1,50 @@ +{ fetchurl, stdenv, lib, makeWrapper, + erlang, + python2, python2Packages, + perlPackages, + gnuplot }: + +stdenv.mkDerivation rec { + pname = "tsung"; + version = "1.7.0"; + src = fetchurl { + url = "http://tsung.erlang-projects.org/dist/tsung-${version}.tar.gz"; + sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a"; + }; + + buildInputs = [ makeWrapper ]; + propagatedBuildInputs = [ + erlang + gnuplot + perlPackages.perl + perlPackages.TemplateToolkit + python2 + python2Packages.matplotlib + ]; + + + postFixup = '' + # Make tsung_stats.pl accessible + # Leaving .pl at the end since all of tsung documentation is refering to it + # as tsung_stats.pl + ln -s $out/lib/tsung/bin/tsung_stats.pl $out/bin/tsung_stats.pl + + # Add Template Toolkit and gnuplot to tsung_stats.pl + wrapProgram $out/bin/tsung_stats.pl \ + --prefix PATH : ${lib.makeBinPath [ gnuplot ]} \ + --set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.TemplateToolkit ]}" + ''; + + meta = with stdenv.lib; { + homepage = "http://tsung.erlang-projects.org/"; + description = "A high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc."; + longDescription = '' + Tsung is a distributed load testing tool. It is protocol-independent and + can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, + AMQP, MQTT, LDAP and Jabber/XMPP servers. + ''; + license = licenses.gpl2; + maintainers = [ maintainers.uskudnik ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/umurmur/default.nix b/nixpkgs/pkgs/applications/networking/umurmur/default.nix new file mode 100644 index 000000000000..1a19c8c96b33 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/umurmur/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, openssl, protobufc, libconfig }: + +stdenv.mkDerivation rec { + pname = "umurmur"; + version = "0.2.17"; + + src = fetchFromGitHub { + owner = "umurmur"; + repo = "umurmur"; + rev = version; + sha256 = "074px4ygmv4ydy2pqwxwnz17f0hfswqkz5kc9qfz0iby3h5i3fyl"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ openssl protobufc libconfig ]; + + configureFlags = [ + "--with-ssl=openssl" + "--enable-shmapi" + ]; + + meta = with stdenv.lib; { + description = "Minimalistic Murmur (Mumble server)"; + license = licenses.bsd3; + homepage = https://github.com/umurmur/umurmur; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/vnstat/default.nix b/nixpkgs/pkgs/applications/networking/vnstat/default.nix new file mode 100644 index 000000000000..acda73b0f091 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/vnstat/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, pkgconfig, gd, ncurses, sqlite, check }: + +stdenv.mkDerivation rec { + pname = "vnstat"; + version = "2.4"; + + src = fetchurl { + sha256 = "1amb8l97y6acp9j1xs2da3mdk6hykg6drzsps9im8vfmmfcmk5d0"; + url = "https://humdi.net/${pname}/${pname}-${version}.tar.gz"; + }; + + postPatch = '' + substituteInPlace src/cfg.c --replace /usr/local $out + ''; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gd ncurses sqlite ]; + + checkInputs = [ check ]; + + doCheck = true; + + meta = with stdenv.lib; { + description = "Console-based network statistics utility for Linux"; + longDescription = '' + vnStat is a console-based network traffic monitor for Linux and BSD that + keeps a log of network traffic for the selected interface(s). It uses the + network interface statistics provided by the kernel as information source. + This means that vnStat won't actually be sniffing any traffic and also + ensures light use of system resources. + ''; + homepage = https://humdi.net/vnstat/; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile new file mode 100644 index 000000000000..e519efbf5701 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source 'https://rubygems.org' do + gem 'wayback_machine_downloader' +end diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock new file mode 100644 index 000000000000..86e064347b65 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock @@ -0,0 +1,13 @@ +GEM + remote: https://rubygems.org/ + specs: + wayback_machine_downloader (2.2.1) + +PLATFORMS + ruby + +DEPENDENCIES + wayback_machine_downloader! + +BUNDLED WITH + 1.17.2 diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix new file mode 100644 index 000000000000..49471ebf7e39 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix @@ -0,0 +1,16 @@ +{ lib, bundlerApp, bundlerUpdateScript }: +bundlerApp { + pname = "wayback_machine_downloader"; + exes = [ "wayback_machine_downloader" ]; + gemdir = ./.; + + passthru.updateScript = bundlerUpdateScript "wayback_machine_downloader"; + + meta = with lib; { + description = "Download websites from the Internet Archive Wayback Machine"; + homepage = "https://github.com/hartator/wayback-machine-downloader"; + license = licenses.mit; + maintainers = [ maintainers.manveru ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix new file mode 100644 index 000000000000..615570f1f09f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix @@ -0,0 +1,12 @@ +{ + wayback_machine_downloader = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12kb1qmvmmsaihqab1prn6cmynkn6cgb4vf41mgv22wkcgv5wgk2"; + type = "gem"; + }; + version = "2.2.1"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix new file mode 100644 index 000000000000..64fef08ceefd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3 +, json-glib, libsoup, webkitgtk, geocode-glib +, libappindicator, desktop-file-utils, appstream, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "meteo"; + version = "0.9.8"; + + src = fetchFromGitLab { + owner = "bitseater"; + repo = pname; + rev = version; + sha256 = "1ll5fja0dqxcr6hrh2dk4hgw9gf8ms9bcp1ifznd21byxzyhdlr0"; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + geocode-glib + gtk3 + json-glib + libappindicator + libsoup + webkitgtk + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Know the forecast of the next hours & days"; + homepage = https://gitlab.com/bitseater/meteo; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ worldofpeace ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/websocketd/default.nix b/nixpkgs/pkgs/applications/networking/websocketd/default.nix new file mode 100644 index 000000000000..4160e70b9c44 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/websocketd/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "websocketd"; + version = "0.3.1"; + + src = fetchFromGitHub { + owner = "joewalnes"; + repo = pname; + rev = "v${version}"; + sha256 = "1qc4yi4kwy7bfi3fb17w58ff0i95yi6m4syldh8j79930syr5y8q"; + }; + + modSha256 = "18hamj557ln8k3vmvcrpvnydjr1dy7zi9490iacwdldw5vp870xs"; + + meta = with lib; { + description = "Turn any program that uses STDIN/STDOUT into a WebSocket server"; + homepage = "http://websocketd.com/"; + maintainers = [ maintainers.bjornfor ]; + license = licenses.bsd2; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/znc/default.nix b/nixpkgs/pkgs/applications/networking/znc/default.nix new file mode 100644 index 000000000000..bf36a6f2bbbd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/znc/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, openssl, pkgconfig +, withPerl ? false, perl +, withPython ? false, python3 +, withTcl ? false, tcl +, withCyrus ? true, cyrus_sasl +, withUnicode ? true, icu +, withZlib ? true, zlib +, withIPv6 ? true +, withDebug ? false +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "znc"; + version = "1.7.5"; + + src = fetchurl { + url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz"; + sha256 = "08a7yb2xs85hyyz8dpzfbsfjwj2r6kcii022lj3l4rf8hl9ix558"; + }; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ openssl ] + ++ optional withPerl perl + ++ optional withPython python3 + ++ optional withTcl tcl + ++ optional withCyrus cyrus_sasl + ++ optional withUnicode icu + ++ optional withZlib zlib; + + configureFlags = [ + (stdenv.lib.enableFeature withPerl "perl") + (stdenv.lib.enableFeature withPython "python") + (stdenv.lib.enableFeature withTcl "tcl") + (stdenv.lib.withFeatureAs withTcl "tcl" "${tcl}/lib") + (stdenv.lib.enableFeature withCyrus "cyrus") + ] ++ optional (!withIPv6) [ "--disable-ipv6" ] + ++ optional withDebug [ "--enable-debug" ]; + + meta = with stdenv.lib; { + description = "Advanced IRC bouncer"; + homepage = https://wiki.znc.in/ZNC; + maintainers = with maintainers; [ schneefux lnl7 ]; + license = licenses.asl20; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/znc/modules.nix b/nixpkgs/pkgs/applications/networking/znc/modules.nix new file mode 100644 index 000000000000..5e7bdd09b036 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/znc/modules.nix @@ -0,0 +1,198 @@ +{ stdenv, fetchFromGitHub, znc }: + +let + zncDerivation = a@{ + name, src, module_name, + buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp", + installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so", ... + } : stdenv.mkDerivation (a // { + inherit buildPhase; + inherit installPhase; + + buildInputs = znc.buildInputs; + + meta = a.meta // { platforms = stdenv.lib.platforms.unix; }; + passthru.module_name = module_name; + }); + +in { + + backlog = zncDerivation rec { + name = "znc-backlog-${version}"; + version = "git-2017-06-13"; + module_name = "backlog"; + + src = fetchFromGitHub { + owner = "FruitieX"; + repo = "znc-backlog"; + rev = "42e8f439808882d2dae60f2a161eabead14e4b0d"; + sha256 = "1k7ifpqqzzf2j7w795q4mx1nvmics2higzjqr3mid3lp43sqg5s6"; + }; + + meta = with stdenv.lib; { + description = "Request backlog for IRC channels."; + homepage = https://github.com/fruitiex/znc-backlog/; + license = licenses.asl20; + maintainers = with maintainers; [ infinisil ]; + }; + }; + + clientbuffer = zncDerivation rec { + name = "znc-clientbuffer-${version}"; + version = "git-2015-08-27"; + module_name = "clientbuffer"; + + src = fetchFromGitHub { + owner = "jpnurmi"; + repo = "znc-clientbuffer"; + rev = "fe0f368e1fcab2b89d5c94209822d9b616cea840"; + sha256 = "1s8bqqlwy9kmcpmavil558rd2b0wigjlzp2lpqpcqrd1cg25g4a7"; + }; + + meta = with stdenv.lib; { + description = "ZNC module for client specific buffers"; + homepage = https://github.com/jpnurmi/znc-clientbuffer; + license = licenses.asl20; + maintainers = with maintainers; [ hrdinka ]; + }; + }; + + clientaway = zncDerivation rec { + name = "znc-clientaway-${version}"; + version = "git-2017-04-28"; + module_name = "clientaway"; + + src = fetchFromGitHub { + owner = "kylef"; + repo = "znc-contrib"; + rev = "f6724a4a3b16b050088adde0cbeed74f189e5044"; + sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8"; + }; + + meta = with stdenv.lib; { + description = "ZNC clientaway module"; + homepage = https://github.com/kylef/znc-contrib; + license = licenses.gpl2; + maintainers = with maintainers; [ kiwi ]; + }; + }; + + fish = zncDerivation rec { + name = "znc-fish-${version}"; + version = "git-2017-06-26"; + module_name = "fish"; + + src = fetchFromGitHub { + # this fork works with ZNC 1.7 + owner = "oilslump"; + repo = "znc-fish"; + rev = "7d91467dbb195f7b591567911210523c6087662e"; + sha256 = "1ky5xg17k5f393whrv5iv8zsmdvdyk2f7z5qdsmxcwy3pdxy6vsm"; + }; + + meta = { + description = "ZNC FiSH module"; + homepage = https://github.com/dctrwatson/znc-fish; + maintainers = [ stdenv.lib.maintainers.offline ]; + }; + }; + + ignore = zncDerivation rec { + name = "znc-ignore-${version}"; + version = "git-2017-04-28"; + module_name = "ignore"; + + src = fetchFromGitHub { + owner = "kylef"; + repo = "znc-contrib"; + rev = "f6724a4a3b16b050088adde0cbeed74f189e5044"; + sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8"; + }; + + meta = with stdenv.lib; { + description = "ZNC ignore module"; + homepage = https://github.com/kylef/znc-contrib; + license = licenses.gpl2; + maintainers = with maintainers; [ kiwi ]; + }; + }; + + palaver = zncDerivation rec { + name = "znc-palaver-${version}"; + version = "2018-09-18"; + module_name = "palaver"; + + src = fetchFromGitHub { + owner = "cocodelabs"; + repo = "znc-palaver"; + rev = "c70e8112686f917d39197d582db36c3ea37a4cb6"; + sha256 = "1gjr8yqgpkpcc18rf0zfgil3rcd1ihqk0q9f8rwbfvs5381h3c58"; + }; + + meta = with stdenv.lib; { + description = "Palaver ZNC module"; + homepage = "https://github.com/cocodelabs/znc-palaver"; + license = licenses.mit; + maintainers = with maintainers; [ kiwi ]; + }; + }; + + playback = zncDerivation rec { + name = "znc-playback-${version}"; + version = "git-2015-08-04"; + module_name = "playback"; + + src = fetchFromGitHub { + owner = "jpnurmi"; + repo = "znc-playback"; + rev = "8691abf75becc1f3d7b5bb5ad68dad17cd21863b"; + sha256 = "0mgfajljy035051b2sx70i8xrb51zw9q2z64kf85zw1lynihzyh4"; + }; + + meta = with stdenv.lib; { + description = "An advanced playback module for ZNC"; + homepage = https://github.com/jpnurmi/znc-playback; + license = licenses.asl20; + maintainers = with maintainers; [ hrdinka ]; + }; + }; + + privmsg = zncDerivation rec { + name = "znc-privmsg-${version}"; + version = "git-2015-02-22"; + module_name = "privmsg"; + + src = fetchFromGitHub { + owner = "kylef"; + repo = "znc-contrib"; + rev = "9f1f98db56cbbea96d83e6628f657e0d62cd9517"; + sha256 = "0n82z87gdxxragcaixjc80z8bw4bmfwbk0jrf9zs8kk42phlkkc2"; + }; + + meta = { + description = "ZNC privmsg module"; + homepage = https://github.com/kylef/znc-contrib; + }; + }; + + push = zncDerivation rec { + name = "znc-push-${version}"; + version = "git-2016-10-12"; + module_name = "push"; + + src = fetchFromGitHub { + owner = "jreese"; + repo = "znc-push"; + rev = "cf08b9e0f483f03c28d72dd78df932cbef141f10"; + sha256 = "0xpwjw8csyrg736g1jc1n8d6804x6kbdkrvldzhk9ldj4iwqz7ay"; + }; + + meta = { + description = "Push notification service module for ZNC"; + homepage = https://github.com/jreese/znc-push; + license = stdenv.lib.licenses.mit; + maintainers = with stdenv.lib.maintainers; [ offline schneefux ]; + }; + }; + +} |