diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking')
587 files changed, 58712 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..64e0a9dcba27 --- /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.6.1"; +in + +appimageTools.wrapType2 rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage"; + hash = "sha256:0417qk925k7p3fiq1zha9al86jrz6mqspda7mi3h9blpbyvlcy7w"; + }; + + 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..66329b64eace --- /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..88ad2c609bfa --- /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..151ce5edc355 --- /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.7.92"; + + src = fetchurl { + url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; + sha256 = "1f262xh88c83m6ixqxc69z8kvkl3qbjc6jnv2g8n0flw8s70hs7z"; + }; + + 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 jefflabonte ]; + 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..3662c3badd3e --- /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"; + }; + + nativeBuildInputs = [ 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..3ce04842c6e4 --- /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.all; + 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..7c0609730c24 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix @@ -0,0 +1,94 @@ +{ 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" + + # Swiftshader + # See https://stackoverflow.com/a/4264351/263061 for the find invocation. + if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then + echo "Swiftshader files found; installing" + mkdir -p "$libExecPath/swiftshader" + cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/" + else + echo "Swiftshader files not found" + fi + + 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"; + longDescription = '' + Chromium is an open source web browser from Google that aims to build a + safer, faster, and more stable way for all Internet users to experience + the web. It has a minimalist user interface and provides the vast majority + of source code for Google Chrome (which has some additional features). + ''; + homepage = "https://www.chromium.org/"; + maintainers = with maintainers; [ bendlas thefloweringash primeos ]; + # Overview of the maintainer roles: + # nixos-unstable: + # - TODO: Need a new maintainer for x86_64 [0] + # - @thefloweringash: aarch64 + # - @primeos: Provisional maintainer (x86_64) + # Stable channel: + # - TODO (need someone to test backports [0]) + # [0]: https://github.com/NixOS/nixpkgs/issues/78450 + 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..fdb8584f08e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix @@ -0,0 +1,337 @@ +{ stdenv, llvmPackages, gnChromium, 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 +, libdrm ? null, wayland ? null, mesa_drivers ? null, libxkbcommon ? null # useOzone + +# package customization +, useOzone ? false +, useVaapi ? !(useOzone || stdenv.isAarch64) # Built if supported, but disabled in the wrapper +# VA-API TODOs: +# - Ozone: M81 fails to build due to "ozone_platform_gbm = false" +# - Possible solutions: Write a patch to fix the build (wrong gn dependencies) +# or build with minigbm +# - AArch64: Causes serious regressions (https://github.com/NixOS/nixpkgs/pull/85253#issuecomment-614405879) +, 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 + ] ++ optional (versionAtLeast version "83") python2Packages.setuptools; + + 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 useVaapi libva + ++ optional gnomeKeyringSupport libgnome-keyring3 + ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] + ++ optionals cupsSupport [ libgcrypt cups ] + ++ optional pulseSupport libpulseaudio + ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ]; + + 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) ([ # Fixes for the VA-API build: + ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi + ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium) + ] ++ optionals (versionRange "81" "82") [ + (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902") + (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064") + ]); + + 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; + 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; + } // optionalAttrs useOzone { + use_ozone = true; + ozone_platform_gbm = false; + use_xkbcommon = true; + use_glib = true; + use_gtk = true; + use_system_libwayland = true; + use_system_minigbm = true; + use_system_libdrm = true; + system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; + } // (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} + ${gnChromium}/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 + ''; + + # Don't spam warnings about unknown warning options. This is useful because + # our Clang is always older than Chromium's and the build logs have a size + # of approx. 25 MB without this option (and this saves e.g. 66 %). + NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option"; + + 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..25ef76f331ba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix @@ -0,0 +1,211 @@ +{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10 +, makeWrapper, ed +, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit +, libva ? null +, gcc, nspr, nss, patchelfUnstable, runCommand +, lib + +# package customization +# Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) +, channel ? "stable" +, gnomeSupport ? false, gnome ? null +, gnomeKeyringSupport ? false +, proprietaryCodecs ? true +, enablePepperFlash ? false +, enableWideVine ? false +, useVaapi ? false # Deprecated, use enableVaapi instead! +, enableVaapi ? false # Disabled by default due to unofficial support and issues on radeon +, useOzone ? false +, cupsSupport ? true +, pulseSupport ? config.pulseaudio or stdenv.isLinux +, commandLineArgs ? "" +}: + +let + llvmPackages = if channel != "stable" + then llvmPackages_10 + else llvmPackages_9; + stdenv = llvmPackages.stdenv; + + 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 useOzone; + gnChromium = gn; + } // lib.optionalAttrs (channel != "stable") { + # TODO: Remove after we can update gn for the stable channel (backward incompatible changes): + gnChromium = gn.overrideAttrs (oldAttrs: { + version = "2020-03-23"; + src = fetchgit { + url = "https://gn.googlesource.com/gn"; + rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9"; + sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy"; + }; + }); + }); + + 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; + + optionalVaapiFlags = if useVaapi # TODO: Remove after 20.09: + then throw '' + Chromium's useVaapi was replaced by enableVaapi and you don't need to pass + "--ignore-gpu-blacklist" anymore (also no rebuilds are required anymore). + '' else lib.optionalString + (!enableVaapi) + "--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode"; +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 [ libva ]; + + in with stdenv.lib; '' + mkdir -p "$out/bin" + + eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ + --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \ + ${optionalVaapiFlags} \ + ${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/enable-vdpau-support-for-nvidia.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch new file mode 100644 index 000000000000..b5372d1a2556 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch @@ -0,0 +1,74 @@ +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( + // |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, +@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( + PictureBuffer buffer = buffers[i]; + buffer.set_size(requested_pic_size_); + 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_, buffer); +@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() { + + VaapiVideoDecodeAccelerator::BufferAllocationMode + VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { ++ // NVIDIA blobs use VDPAU ++ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) { ++ 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) +@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { + // 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 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator + // Using |client_|s provided PictureBuffers and as many internally + // allocated. + kNormal, ++ kWrapVdpau, + }; + + // Decides the concrete buffer allocation mode, depending on the hardware +--- a/media/gpu/vaapi/vaapi_wrapper.cc ++++ b/media/gpu/vaapi/vaapi_wrapper.cc +@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType( + } else if (base::StartsWith(va_vendor_string, "Intel iHD driver", + base::CompareCase::SENSITIVE)) { + return media::VAImplementation::kIntelIHD; ++ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU", ++ base::CompareCase::SENSITIVE)) { ++ return media::VAImplementation::kNVIDIAVDPAU; + } + return media::VAImplementation::kOther; + } +--- a/media/gpu/vaapi/vaapi_wrapper.h ++++ b/media/gpu/vaapi/vaapi_wrapper.h +@@ -79,6 +79,7 @@ enum class VAImplementation { + kIntelIHD, + kOther, + kInvalid, ++ kNVIDIAVDPAU, + }; + + // This class handles VA-API calls and ensures proper locking of VA-API calls diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-video-acceleration-on-linux.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-video-acceleration-on-linux.patch new file mode 100644 index 000000000000..bd278633f67e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-video-acceleration-on-linux.patch @@ -0,0 +1,48 @@ +From b2144fd28e09cd52e7a88a62a9d9b54cf9922f9f Mon Sep 17 00:00:00 2001 +From: Michael Weiss <dev.primeos@gmail.com> +Date: Tue, 14 Apr 2020 14:16:10 +0200 +Subject: [PATCH] Enable accelerated video decode on Linux + +This will enable accelerated video decode on Linux by default (i.e. +without "--ignore-gpu-blacklist"), but on NixOS we'll provide +"--disable-accelerated-video-decode" and +"--disable-accelerated-video-encode" by default to avoid regressions +(e.g. VA-API doesn't work properly for some radeon drivers). + +Video acceleration can then be enabled via: +chromium.override { enableVaapi = true; } +without rebuilding Chromium. +--- + gpu/config/software_rendering_list.json | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 22712bdbf38f..a06dd19a50e4 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -336,22 +336,6 @@ + ] + }, + { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247, 1032907], +- "os": { +- "type": "linux" +- }, +- "exceptions": [ +- { +- "machine_model_name": ["Chromecast"] +- } +- ], +- "features": [ +- "accelerated_video_decode" +- ] +- }, +- { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", + "cr_bugs": [145531, 332596, 571899, 629434], +-- +2.11.0 + 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/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..1dd9baa628ab --- /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.363"; + + src = fetchzip { + url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; + sha256 = "0znk8an892mykgbz56hyv3gz65vc9mhb3vn96c6bsvicwl1fn460"; + 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..cf542faa8a1e --- /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 = "1s16wl101yabq0l7w0q50lxkr2gn090pcaj6l5sj6g5xvi9lhgbf"; + sha256bin64 = "0k6fsqlpiwp9vds83hb3cg9xf74hqgbfdm3ijyad2rmwc5rqk0ax"; + version = "83.0.4103.14"; + }; + dev = { + sha256 = "0djppzwzpfyyfjb1mhy5wws2379m3wpzyk2x3kw5nd0mdz35hbny"; + sha256bin64 = "1wg55qhfvd5zvigjl6496za81mh9b2c5da53zy07bk8wj91ly8pf"; + version = "84.0.4115.5"; + }; + stable = { + sha256 = "0hsxxw7fm1p8g53msqb644v8vr4cpvjmpln444c2268rm43yik17"; + sha256bin64 = "0ap7flrw3h885454fa2r7psa4sh8567ql7v7x96q11gh9gjrdvp3"; + version = "81.0.4044.113"; + }; +} 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..fa1fa76340c3 --- /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..985497a095cb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix @@ -0,0 +1,53 @@ +{ 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 + ./openssl-1.1.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/elinks/openssl-1.1.patch b/nixpkgs/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch new file mode 100644 index 000000000000..22792b6c0790 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch @@ -0,0 +1,51 @@ +diff --git a/src/network/ssl/socket.c b/src/network/ssl/socket.c +index 45b4b4a8..0385a431 100644 +--- a/src/network/ssl/socket.c ++++ b/src/network/ssl/socket.c +@@ -67,7 +67,9 @@ static void + ssl_set_no_tls(struct socket *socket) + { + #ifdef CONFIG_OPENSSL +- ((ssl_t *) socket->ssl)->options |= SSL_OP_NO_TLSv1; ++#ifdef SSL_OP_NO_TLSv1 ++ SSL_set_options((ssl_t *)socket->ssl, SSL_OP_NO_TLSv1); ++#endif + #elif defined(CONFIG_GNUTLS) + { + /* GnuTLS does not support SSLv2 because it is "insecure". +@@ -145,9 +147,11 @@ ssl_connect(struct socket *socket) + } + + if (client_cert) { +- SSL_CTX *ctx = ((SSL *) socket->ssl)->ctx; ++ SSL_CTX *ctx = SSL_get_SSL_CTX((SSL *) socket->ssl); + +- SSL_CTX_use_certificate_chain_file(ctx, client_cert); ++ SSL_CTX_use_certificate_chain_file( ++ (SSL *) socket->ssl, ++ client_cert); + SSL_CTX_use_PrivateKey_file(ctx, client_cert, + SSL_FILETYPE_PEM); + } +diff --git a/src/network/ssl/ssl.c b/src/network/ssl/ssl.c +index c008121d..c06a80a7 100644 +--- a/src/network/ssl/ssl.c ++++ b/src/network/ssl/ssl.c +@@ -50,11 +50,16 @@ init_openssl(struct module *module) + * cannot initialize the PRNG and so every attempt to use SSL fails. + * It's actually an OpenSSL FAQ, and according to them, it's up to the + * application coders to seed the RNG. -- William Yodlowsky */ +- if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) { ++ RAND_file_name(f_randfile, sizeof(f_randfile)); ++#ifdef HAVE_RAND_EGD ++ if (RAND_egd(f_randfile) < 0) { + /* Not an EGD, so read and write to it */ ++#endif + if (RAND_load_file(f_randfile, -1)) + RAND_write_file(f_randfile); ++#ifdef HAVE_RAND_EGD + } ++#endif + + SSLeay_add_ssl_algorithms(); + context = SSL_CTX_new(SSLv23_client_method()); 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..cfccacf1ae08 --- /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..53d0ffb4c193 --- /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.3.3"; + + src = fetchFromGitHub { + owner = "cassidyjames"; + repo = "ephemeral"; + rev = version; + sha256 = "093bqc40p4s8jc1s5rg49363x24vnwwjayvgzmi4xag28f1x6kn8"; + }; + + 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..954b45a2042b --- /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..0737bac48c79 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix @@ -0,0 +1,965 @@ +{ + version = "76.0b4"; + sources = [ + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ach/firefox-76.0b4.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha512 = "069dab2a91793ac9cdaa128473f706e194cf763df66ae448217cd7e5297857bb2d21ad198f9592bbe4831a2bbe9b76ec1ef96c288c4d8a85e35733ef0f75462f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/af/firefox-76.0b4.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha512 = "bf1c4da2b03f95f241497e646d77ce5675f09dd8947def93983814c5bad257e38acc5c918faf7b758bf7293c09594baeac43ffaad814a47d3cbebcd5a49b4f4f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/an/firefox-76.0b4.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha512 = "04bf37a16a65d453d1c9406196d095acd0087a0bfad0ffbb466afc2c99249f7a82899434a47343399db63c95d9c827a9a49b5c9eede2ad7bb7bcd91d82770fcf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ar/firefox-76.0b4.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "71bcef558731031d1e38b370494be88dcd82299918a98c45be7fbec61ba5122ffcf3bbf4f2705c2e81cc133a888289c118511d8713ed722d99638a530d5d4da2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ast/firefox-76.0b4.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "9f73a427c5a520fefd777d84aea6dfe50f2bd65f29e9acd16f0238ba5869e2c129872073c04769afab3ee973bfbcc6b50e204a53a8ca380a0e5d578557d59599"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/az/firefox-76.0b4.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha512 = "8717b342a6c49356017674c516b58415a21aa2a84fdf986c427f0dfc6af3944dae822728aca93184a10f5517202cf5e6ee49221485c64526edc0e083b0caae52"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/be/firefox-76.0b4.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "0bf61f3952c7b40e4950bfd294f5382da877eecc265bd9a1ea78135471b5802b69bc90361c6e286e2a2c7f5151a44c711c45f3d9b053324213ade49c79907b8b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/bg/firefox-76.0b4.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "de46cf916c7289f04590beab6ca3aecbcecb6ac65b7377206244e9cd41d0df8e68e6006ca49ae477ecabbb9b13c9b1df11c4cd732967b13aef3e9d0d708d2e3d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/bn/firefox-76.0b4.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha512 = "46ae6e3ef632317f2f449223d64ebdea050c21f72a37fb27e5cff10d60f87cdb5d8b58de0e0d63e1a6f55ed0559eb5ef40a0768615a52dd5e2f2dee1e0bcf08c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/br/firefox-76.0b4.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "f0652632fe303db805cc422ee010f968493377014865a3a80af13ea308c3eca7c9793172106064dc2f36ec2f8f3aa3e679f285975a431fc7de6aeca4373db67d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/bs/firefox-76.0b4.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha512 = "31efa7360e56508f2b249d2789387bb8130a3db14843b87463dfb600ba3f37328fb86113c263dca3ceb30c620e889810194bd408220941ce9700dddea908e1f5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ca-valencia/firefox-76.0b4.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha512 = "f6ddaa4f75bf434474da6f441c8caedaa77a53ecfef92532135a27c8e76f8acad7afc26b3549a2f753676533c0352227cdd875d952c1a720332cf9cf4dfbfbf4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ca/firefox-76.0b4.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "4d58cd473798b52dfaa5fb4424f9ec57eb4e667c884808dd4fdceb851161ef3f3f72354588ce25eec24ff7ee671e7bdc1dfa7ef18c262540549ba34d8471ca42"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/cak/firefox-76.0b4.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "5aa6d504cf97e0d446e8699bbc34b9e69632455b97c0427c1081d9083c200ef3a83472b95ee3804612e36d93f0d5992bcc4f8bade7eb132a30c313d2efd7a75a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/cs/firefox-76.0b4.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "c8ee077240afe3df4052f093e6a5f13ec2449f84863063483edd11b8c76ccd42a45cce2c627ef57d5b4e337f71a88e510efdea1fb1f0065fddc1390d4753ce12"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/cy/firefox-76.0b4.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "b0352034fcfc9e2acbb546343ec2e8103f08b3c802289486611d694c07bd154d9bab7509e8a09134b44929ffb54a806ea4cf44a8d4b1ea506c23b84adee123ef"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/da/firefox-76.0b4.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "57bfa4d27ab78cdf9da4d04a4bd6a38873918bb800ccc1e49259c5d6753e9fdee0620795c96193c84938c126a94423d21ae12a3c998274474ff7b71b3da9e701"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/de/firefox-76.0b4.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "61cfd12448a01a71c98ef855ea9c54d105bde516d97e8e1d70e5008a3633c0a45c194a751f2a7884e0632c56d7ee830bfd1a0d9a07bcfd54606f7c37bf2b4b92"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/dsb/firefox-76.0b4.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "d6d3f08595f1675f181b40cc55f03009ccc212bfa733c341e51151e24089372a357a3a2851806eee708cc143a75a1d1a8d8a078fffa5988683945183f927f801"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/el/firefox-76.0b4.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "559c34cd79cb820f674d0aff9aec9e9cccc51ff7b1fcbd17ef95b9066e35880c5c980155d2ec6913e1d9ad3f9e25ff8757ce84e0b22beb21e893ab0bf30ddd5b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/en-CA/firefox-76.0b4.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha512 = "9f850ab71ab61eff4d2c9630cedbe42773982e1a8086a59723db64a01852a9ebf5ec90be7e315b9b7e142bc040eb2523b805eeab13b47a01ccd0978786d77fa4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/en-GB/firefox-76.0b4.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "134740c2c4efb9f014f42eb5002a4eddf8da67c62798f8c733623ec3f28a2ce7c2caad0e3b0f05fc5474148714c7394c53ba77953d4f5c56d1ad4aa8fd35c19d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/en-US/firefox-76.0b4.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "4401f8e0efe0ff589ae496ea959dec86834c331af0108cdae4a4380fc48e989068d12d33faca0cedbc4e5fb78460b6495a29022c42bbbcc94731cccede9927d3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/eo/firefox-76.0b4.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "93a79dd6fc6acfc8829bd520139e6ba4075f67a091701c1a877212e495c4b530e35cc21bdf5d15526c27aacf2e25a87375f3a4aa555453677348f0442378ad37"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-AR/firefox-76.0b4.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "ac7d84178ac2b315007cd5a0ec632dad6172117378f3a4afe6ad0099b45ca6d50534230e93c3045d1d89a18e742541514f6600f1b581547931e75769d361954e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-CL/firefox-76.0b4.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "cba6f234b9e7f4612cffb24fb648dc715730b0128bcf070b3e4f44ff2026610be4f8e36c9ff122688d47930a2d22a96942df6cce8d2c40ed443a8fb7204f3e49"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-ES/firefox-76.0b4.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "e65aec8d339144b3acc24867da6e7832658bb625277934320ed428c21af537df3eaae6922102d43b8b4742e5e33b789836865e64f3ceba08e7a752781e2ad8fa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-MX/firefox-76.0b4.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "13c0a83ad36749003d96b8e56471d632cf7006cde3c4b89ce2ff98bc42ddfa76b1afa4f3437e87009182cf7677931c5a307a4a2ac0e0250346da3f12dc723f64"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/et/firefox-76.0b4.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "004eff52a5c6e4d8d60c488a52e894b0cfe8471f1c9258c319bf2e023c231c3bf282ef3d03d3a8045fcc8ef53e6e1173ea580dd71f73dd0bb2aea198f96eccb1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/eu/firefox-76.0b4.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "3633383291f77632882744592c09be7a808897ed02809f0fff84ee4f16a58bf0ca6a82c0efc82b6c7291bf8ed48b0fe8eded288affdae9b0b55137b4dbce40dd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fa/firefox-76.0b4.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "683984fd0b388d69206a5d9ac1cf174b513aec52ca19eb6644209818a0cbe54124428adccd15e1ad9e7d41c6016c34a70ad77b721440655b593ad95aa66290bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ff/firefox-76.0b4.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha512 = "7c12dc3450e511915494757ebcaa6b0a5a0f3ed1bd349ce1c28b4cce1b931844408daf59e27486eb044b669fd7bd1ca4cb9512eb2332e7a7d360e20dccdae260"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fi/firefox-76.0b4.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "ffb87a2702b7f3e8fc80038670a3cf45bf64b11442b129751e7e80cd0b328d6009190b2658b8a28562f8ecabed52a64f327fd263a0d93540f8f5f09250d4a882"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fr/firefox-76.0b4.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "aacb42dde2e18082ce80cf3e1201c73aa9985d711ccdb4b227efb6619a010fc108315a5dbfe23a666c9d851ba397f117dbaa53e5b4b3d0730c85a53ed4b0512d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fy-NL/firefox-76.0b4.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "ba06e4276fedbc7212bcbf62ee1b0a1dcb7005a449778de5e70d8b99e86d83ed48d9408fbf016bf33dde135ad049c80011d00b5c72b0965ec6be7f91b759471f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ga-IE/firefox-76.0b4.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "9318d21491ab5ab6f2ef1c437ac12f92bd755a4857d873231920f5d67a36b81b4bc415baa8da92aed1b060aebd31013aa58e8cf845bd7cdc7d0f778526875b80"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gd/firefox-76.0b4.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "7f323988df0077354e5c391138468af9a331fe4430a2e70b039fd599e92b7f0cca770fb1da21c192f96342d6a7430502ddacce7ed026bbdc2b2685c5baab64a9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gl/firefox-76.0b4.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "b68fc3c3323ac5683ab9c168e870917a93120a0fa94ee6d427b384031764018c055ddc3ef7b9de6a1803057db2eaeb5581c45d4c52d6c532b380144148270411"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gn/firefox-76.0b4.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha512 = "f326eff5f21e139e2e7f7f618997e4a9edf9b3fd0dbccd610eea731a5f7fc8e75711007c10b39a277cb1de353870bd0e0cf96b3239034be427422ab575d03e78"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gu-IN/firefox-76.0b4.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha512 = "49407bb72ff464ea85719b074b07c7495398d6a8900b64a4b5df267c9a51158248d416c8eff83984a3ff801769c069975500dd08b20abc2b6af461a2323bf9a8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/he/firefox-76.0b4.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "c5ae0b8b5f05770c7318a3b50ca4808ff4553521c10a1f71f385f25a133213aac84cc73eaa2016b3f9878bd890b4896b9814b9dc3624a26420e1596132682103"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hi-IN/firefox-76.0b4.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha512 = "7471dc2b1f24b6fb34d8af5bfd5043d80a6c1720d0a843d20911dbfec9dcf60f0a8aa9dd8cbb80b460325763dc3cb4334a451d39218e3c3d4190a69eb1122dc3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hr/firefox-76.0b4.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "f8e3d737b9563edcd3423851eedc401529fb67baa4f82b4dd4924e789b60144032c675c461350fc0fd86410accc89c3fb6324a3cc2524cc4fc74ddc24362f602"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hsb/firefox-76.0b4.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "8e36e7885f185d43c46abd2fbeb54dbbfc73ce2562874a6ecdf91dcaca9d6516884014e5b0640eed287ac578ab0283b045b6d2d5fb49cb6aa07a2ebafe620da8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hu/firefox-76.0b4.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "fbf5014981544ef8dc0301aa92a9e809d02a2e861b0f1890d227f980fdd8967db28d092ffec3d8e3d3eab70eea955c0d7cf6cff7aedad3ec73fb3c4d34c5d9c5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hy-AM/firefox-76.0b4.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "d3e4b26d3f6555041311c226aa3e6dceb18d7867075bcaa22469ff4f1a880ccd2d688eeff20bd2096aec8296327aa43757a2077f2d62eca9453ad5f5946fb54f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ia/firefox-76.0b4.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha512 = "34799d3a4b84f46df4ca28c62c57ccb131b43a4a7264b0c6ba1503a153534bb9b2bffed6ab581be3fa86df50cceb4103818b7a5baee8a3dc9af15b8205e85539"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/id/firefox-76.0b4.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "82758675bbba9d27115f3b9eee456f2559e81cefb8261d94966f2a65d17ca452c684112e5d4a1c4fde2366f797cd9bb3e98e4fca05a4f4929cf3cd0b5dfd1ead"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/is/firefox-76.0b4.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "e9dc6cff8cff9963c6bf9987a459c943d694c4dc672ad817c87cf5b1620bf6f9680d9154e36d34c36e21f76b19312ecc7f8e90992d55541fa00abc623eeddc19"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/it/firefox-76.0b4.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "0b341c669e25f728928425ce782af1e723631f4db4d76b628a79afcf239e8c6269f900a50c515b6e81a960de4408496b3d4217a544294712e4692146b0c52aa5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ja/firefox-76.0b4.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "86957c5b4a95b9fe948b6db1cc97d4ec0110852e921e3dc2819724afac89b5b7a237892669845a039a860d779cfb4116926eda6030d1627f6dd16821e2c81b5e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ka/firefox-76.0b4.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "bf412ae236b800497b528303cb3f1e34b051c3e3fe235b780700f044bf61e68a7c7f112b72347ab8c27ff3dacd6cf6209a3e0acde3a931b29be53dce2f580ab6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/kab/firefox-76.0b4.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "4bebea8af04166fc6dcf87c2f2ba96dc752adf9121e01e5edd9dfae25829fede3ea7bc1e5245ab4a4a98af78d4211e8f1600a25b52ce97537c809169f5c7602b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/kk/firefox-76.0b4.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "1c04e195889e0b1e936e3cd3d0829c06963270353f4ff4b4e7dbd494436107848c07c8c2753270f2db596d32140e90f28e17188266e97bd600212a6aec708cd9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/km/firefox-76.0b4.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha512 = "2b10e6d123c6158c250fbe3b5509c69937576d4b8db6e6c36fe44b25309c099e46bc807d7039608c5610bbcdba84d4e7a37f25371d741690c62308b26a6f3997"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/kn/firefox-76.0b4.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha512 = "10d9af4c6d6983c521db9fddeca2f8cf3b975e57772ebc7c6ef9af92a0436137ea277405bd1a2fefa1e8fea05cfd933582556d8f7cfc629fb21ae0336b7b7ba1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ko/firefox-76.0b4.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "00ad6c4a883e7de44eca52f1ff79b5c7fab992fdeac271dd341e18c9d2a9060efa33c5425a8cb81248e11377426888b66373eb35f2d8a5ffd7fb6d942f83b5c7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/lij/firefox-76.0b4.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha512 = "46b3475e7f24773799140517e53d14a02d00e2bb2e09543fbbed3797d0b098a93ba226b146864c83a3945815b859ee124b7e2b5cdd484ab6e72157787fc8d232"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/lt/firefox-76.0b4.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "f1088be15822fca949331c2977aed82c3db214a2d0c97bd2494890d427efa5fde0846d2ab552c254ef804f0cfc8623bb6fdf9275d396abe354c73dbd9d138eec"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/lv/firefox-76.0b4.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "3516bb6d83b565bc05afb340d35923e32265202c203f498519c632731fde4a6d1fa1d1189f79e50b315f8f135c383c4d07d5ff44861130146c3167e7d899a416"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/mk/firefox-76.0b4.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha512 = "7b217348ff5e7618f6907f2d434e55b0a3f7a442771bd4eeb00964563d601b73254274fdfe1280c86ab3fd397ead7ee7cdd0366cf12486dba208ae08225b38b6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/mr/firefox-76.0b4.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha512 = "fa059e39ea57570763a96c4732e4ecce3cdd7afb9486669a209f1bebe4b65a4fd22a179f893a05bfb20de97ec8f7c22b6106b5456e752ae7093fb37f36789750"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ms/firefox-76.0b4.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "0ceabb970350d20d5189dca2c57224f5c0e09ab7aaa90ddaee4289df038ad647f04a3476275582b3168f553998d452e8c5a04e099e34567dc03be1d62681c696"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/my/firefox-76.0b4.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "1540e1335b36c46574b1abb80900ba622d8f2e59b0ac5e91809fef3ec16c1dfacde14be967449a62ba2f2f2bbc65fd3fc750be121da6d2b6fe5de7e30eaa01dd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/nb-NO/firefox-76.0b4.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "02d16488ad3e575a87038143c77287216290e355c1fa274233099b15878ac10ae0ef4d95651145684fd2896c09399099ffcf329922f093803741efc8f028be65"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ne-NP/firefox-76.0b4.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha512 = "9fd9caa037156164fac2a9c1b4bc556a8d8bacda7fd2fd051cf71f8614e7a5a032b5e60168821c72f2b0c17b261f1ead1fc16218afeb022751ad39437686976d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/nl/firefox-76.0b4.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "ebee59e46e8a6982d939c8e20c7586e0c273b9c3febc51eb69ab95e36b47060a4c340d321e935b2812bc7431fabd586b7cd88d2bb4f03a3dae167cb2f9b382e3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/nn-NO/firefox-76.0b4.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "57c77cb4b877ecc1cc0cf37064c0c19aed334db2cb3d16460157941baea6d67c9459e68057f75f9108b227777e724caa7cf15e9eea5a9003544a864ff5a0f5e0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/oc/firefox-76.0b4.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha512 = "8b184fcee7e71be29ba02e615fbd9b050d8bcd2578639b08ff013a29e3240bd2f2be72ba9647edff2f80e23cf9723f14bcbf3d35b589d4f340f14888cb7daa06"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pa-IN/firefox-76.0b4.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha512 = "6a56a3ba86d28fe28d488ba2c5f3daa1e994b3b5f801e505ce5006cf78d40462d96ba4c9793c68cc23c687dee7aa936c5746a8838d54e80255e9aed9b244dc5a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pl/firefox-76.0b4.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "cecef84e1c88e19e4c5881d07b842b9d6ef77b1293e304df4eddc68a9533061929582df8d2842ca9594072c29e0d564122ceb1ce9670afa7ede0f33cdf32da62"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pt-BR/firefox-76.0b4.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "80dbe662dd616c6b1e5e10be423f906463dea4e6a7c894ed14a21ce26ce544c0fe258cb6a7c9227335d18f11284bf082988a746b66243b44cef6b34d10cb0f56"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pt-PT/firefox-76.0b4.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "5c30b271b67ff97687e833c083d789ac86a79da984b3ed7ca3f9330f2b4412797edf5dbea0601d6af9cb0775cd571a55451d4fe2f2ec48c1738c08c3c93feaf4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/rm/firefox-76.0b4.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "d7e06efb84135db959d28c59d6b258b658bbe2f0961b1b3e0da796d3dd8ce4f2e726c1d719a8b111c2388285ec88528e6ee2d11fbbd6fe07ea01606984ab25f9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ro/firefox-76.0b4.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "fe9aee440439e425a99780033da20ebd8a0928b30d862444ffa3d8d8a0cee012af0fb998de4eb20604e260d4d0b0726c20646d3bd3064131f32ee7b748e11562"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ru/firefox-76.0b4.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "dc89313d47f0ca64de20fdd81afe30d797852333040f72243d8ff7f6713333dea6264bbb81cd5082ad3184ae463348816737a327ee2de2f7c446b32fb6bc4e80"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/si/firefox-76.0b4.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "45719657f156ce045666b8f2b3a3809d37eb9175b8f4750ee97ff6a2196236de4af8d3d1b47c2b67bedaf0e053111487a5682ea04230fc566dd2ec28540c29c4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sk/firefox-76.0b4.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "af8f67818559137004954538f9b977516095abe7c2203ff0fcb3e942bcb14294e3e87db6a3b623b2f711eaa7c30fe98019f4c674fe6e735bee5c1d5341b05eb9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sl/firefox-76.0b4.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "2bf61fd712342493e47c134cb97cd7b174658551d22319face8e3d9df3c89081fa5326feac3d78604bed23f2a334000ce6e08967f36d4494fc98551bc2113754"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/son/firefox-76.0b4.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha512 = "33d57aa16bfa5851ae02887f845ea442ddfb78135f1af37f503503b3ef1057b74e631aea2fa8ba96629e5f13d3fb26df32626a11b78f589f39db5901e4a17623"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sq/firefox-76.0b4.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "813e08a3c6eb60b352ac4b62e7ebcfd9581650b911facfd301f6bf716ca8031283e7fcef9b9a10b2ef4ec52d19cfb2870b24fc0cfbe69fc87bb4457d8b696323"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sr/firefox-76.0b4.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "a7c93cdc4e45d826e4ee4dd62f6767192616f8b8efc5200137d8290d5bc6cd54cf391390e2ed831195187a0be14f539f8156548b86f4fbbca3c1951a3c1961eb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sv-SE/firefox-76.0b4.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "ae6ce8e076ccbfa89a653d7458fa395cb43c8bb4926eee153cef0f7b2eae0843d3c54358206d9dcdd2ab8deb4f5416f22641c71c7665ac66f9bd5559a1ce3bce"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ta/firefox-76.0b4.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha512 = "853517617c258d3c441cda468fb3d78a122cd75a369265ce2b290721e08daa1b681c8c84793339883bf701b0e7c5a24744c3382e2bcaa67de92b40162e420b9f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/te/firefox-76.0b4.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha512 = "e5e511d2c19a5c289d337e5630c1a1d3aeb8edc5c6c5192fa8ee36c041c5ba1a344cefd5331c605335325b34d68609c08ac57816d33590c6f9416f50d0a60a4d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/th/firefox-76.0b4.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "498f18339722286b024b968e0db485edd8d16cd944a1a84c95698695f4b0afda99faf5aa23e9dd893ffe0cf89fbd69f0ef34d9c7080cb3aea06178a38a1bb2c1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/tl/firefox-76.0b4.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "d04963a4247e8c53d748b9d32d0787beea159f1da8e31164a162de4090fa521d6a7c5a598a4874bf8b2be64733d922748a615d08871c90ba693bf4cd82d1398f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/tr/firefox-76.0b4.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "302a68064154f22e5bcff55da98dea6fc94abedb839f572db61e9542bda47021c740b51baf57741368a9e616e9a3620dcdba96f55f5010d783da1cf1e9acf37a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/trs/firefox-76.0b4.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha512 = "26ad41f597dc9addebdafa5632e0fe930e6b704e65b8b8058773de3954e1877f9b5be4856a53635417d7027364ce4c70025140caf53605c18ddac59447007099"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/uk/firefox-76.0b4.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "d5d63e51c3cc11ee58ee0ee2c9190a66d4cf136af6aff31e2db28107e8f3af5d492d92e5e869b3bca570f7ba9f4fb513df6b21d064d75d5d246671dadd050e59"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ur/firefox-76.0b4.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "e7a3492d0802acc3d3db2410fc57282334d16405ecc6ff3420c29c6eb35ba313f3e46dcb7f0fe830e0869b355138f07ef51b33caeccceada7ac7e95d69cc4304"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/uz/firefox-76.0b4.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "397adc911b685b261cfb38f50ef9f107db83c3e21c5d0f3435c47b345ea007c9f6cd98f8b0353c804071874e3d5bd715d5942c484f1062ad8341a9a781b1ce93"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/vi/firefox-76.0b4.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "049675506e157ec2d3b7af91a6bce93566c990eae6334620de4fc1c9aeeb9bca01cc16b00c79d0396ec49470759855b690fbbfcd3b4b1c5ee90df70efb9eacd9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/xh/firefox-76.0b4.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha512 = "08cae5e6d2b4a826e4e4c6485a793ba2a991c1759498641c63f4ffb8334c68efa6190bc7d33fc8ec83e8cad8299ca81825dfffa7e20cff6179e3fac023a9d3c9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/zh-CN/firefox-76.0b4.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "c989ef3602539795503af56d6ebbd426d4985db0c35be60eb911b1f46ac20b317ea15df3d915fcff361a22cc6ec654c5378c615e5b5271b3f436a2f4713af59c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/zh-TW/firefox-76.0b4.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "8c3479944dad80dc70ebb285731ee8df051fe63f8d0a5bdfccdce5315ed07e54bd66e4b2d0c7b75b575ff63dd2dd80117166382e389c21a581bd848570805c70"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ach/firefox-76.0b4.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha512 = "547a8dc40bea2ed9cd47acd06c1f6a0e12a0d4631adea0193d8f0ef8baa41bf4cac9e53b7954ade543ceb85cd22cf0798b7212b2a91d795782af5f2575b4c729"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/af/firefox-76.0b4.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha512 = "cb853435e91129651532055c5c5293dbfc758e806a316ade7023ed0f8e646594834ee18d470fec2372f954e1dfad3aa8ebe7f9457cb885ba8758d55e1027e8c0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/an/firefox-76.0b4.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha512 = "6be613e6d99cf74fe7f08c109805b8847fc8a4e6ef3c972baf6bf2ea730f4eb6666eaec2606560f2d14db649d2148b718d4882af9aad894becdf436b08f6112f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ar/firefox-76.0b4.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "28d5fb36ecc45d3ce09087ed2aa2da7431334f66a6b183187d36ac9309f9785d32e1d59f0bb14ae281f1a66795f546507269919fb001ebbb72fadeb79c26df69"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ast/firefox-76.0b4.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "8384154a51d40037a39cd4fb4bb21cd9c7174ec75c9ddd36d79f35bea00380b1ec74eba449b240bf0cd66ffebd014c9a948d60bdcde7efd67e5136d047b75bb0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/az/firefox-76.0b4.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha512 = "84d902069d997ea001efe7f836f25d78fe921f40ad1c383f3d510c34f12219c0ed372a1aabb27c5b43465dec2647babfbfcb3e3d4e2916fe4641063df4547f46"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/be/firefox-76.0b4.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "b973756f954d83a87e2bf9b114c5b5631b42819abb1f586c6ab9fe49b2599fb9dd5bffc995453113499db2bee449e2755db61cd4957bdc6f5be7514d62d7eb74"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/bg/firefox-76.0b4.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "a5ae19c797b3c32f20db99777cc8b35d586f9cf2e5714213cf4322df140c6fc87ff2cb03c0de88f9e48395d808196d54a1102b659f9d574f0c9698da5a7ca7a4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/bn/firefox-76.0b4.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha512 = "63d6f402dd97e0728fe77428b13a3532770e13d7f8099b853d370d0db45aa9c1c753b2523c25a764cf810cde0c50f1db932e26416b9ea38eac56dbe89e7ea697"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/br/firefox-76.0b4.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "7fbdeb3a3c1f5adb723dfbeba22390091483155b30fcfb3f80d58b47e181f7b88bb0870c5e2a82b638baa3771ba93f776c47f5e98f66dc40ae9ca58933ba311c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/bs/firefox-76.0b4.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha512 = "7fac00f114f2f792bcc4c42febd5b8a5a1a7952a7acf2d596c4ee4125e82e510d956a7de575405c98c0fc776eee4b27ab24291bb4f5db6d5a955be5c0d6c8dd0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ca-valencia/firefox-76.0b4.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha512 = "75b7d3222b5d3efba3d97ebe44b1b28e82cbfc441689776386516a84d42075f1ced4b80856c1a8c87d3cd8101376cf747a4a5eec0f442608fc303862b34a7193"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ca/firefox-76.0b4.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "23e050317e92745044a0a5af3b9455a8f112884fbdf9e9d701ae5e8c614cc3d97a4de06ab10e2ffe22344c38108e575eb8d8ae6a1f3095ac1ba15bc6a37b104f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/cak/firefox-76.0b4.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "58179bf33afda4d10fd6dbb9143f6724ca8ae5bb6122b292eb48773c84458cbcb85120c2ea87c6a3f4f4878004fdb997354b571223a35ef9cdee23902292296f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/cs/firefox-76.0b4.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "41557936332f5c966a1b51d8791699783a162eac46b14e22fd0f79abe6175a31fe0f6252270b51c816c88ec15f2982df17babec0101a0eecd6cb25a8ae900dbb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/cy/firefox-76.0b4.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "1603e2dd3cfd417b12c0a6c933708835505cc8f5e0e827fb5072af0f440a0dd0dab5d961d58fd712776d58e803d1ff3dab179c7ab45a30e08be6c895fa1c1c06"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/da/firefox-76.0b4.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "4ba2198d4224c3b2b609c8471a1b8d6bd47d51cb42caf81e7f1a4e7ee0220ba459b4d2a4d6270d5ad25806d8ab0b9012cfbd9e3b242b4f4be54f0c5f7885ff67"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/de/firefox-76.0b4.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "1a3e1997151a4a74a6e2a35037564c2189f4d0c90359084aa387212177ac3df08e8114b514bccbeb9b7b63dee5eb8028614c08d680cae0529784cb471864b380"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/dsb/firefox-76.0b4.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "6e40f39108d5f00faf81793852de22623574fb3f201080a2f9d8e3c31de80373eccda582cc0d63adf6e86c67748ece5b5405e880e6db8636428c3139aafe156b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/el/firefox-76.0b4.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "f08984d8fbe3b5c585e7e361c1f21b7d6374ee3e58a12aee599444788f89bb570d277fb178a76e773917ae4445904e3d3cdae99096d8e1b8a188720a161d436b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/en-CA/firefox-76.0b4.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha512 = "6fecccf3fef10d99fcdbec8674ebca50b4d2a5708bf423778266a440fcd5f7fd4ea0255808d86567fa26542c229bd4ba06448e40ee0faa3a5dcb2b36d694f1ee"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/en-GB/firefox-76.0b4.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "d9336c9eeb6678923c53a21873760ecea096262bf4b3cab6afe69c1cf30d57fa95c8cd496508a80bf1538dff3cfd4e68ca864ba8bc9d58906b4155011c5adc38"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/en-US/firefox-76.0b4.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "fb405ed1f6c6429c98a7be7046e8a4e39b594febf7ef11fa163c863c3daacc887142cc77d7da30f709ffc6384c2092896f8ad4dc69665701b0c83013374f8a8c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/eo/firefox-76.0b4.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha512 = "804001240e8a6809312634de4afc2b8a055051e9c8d399dd25cb96f9bfeefdf6b9526c8cbee670616a63420ff848873b6d8d1cedd8496fee38752408bdae21e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-AR/firefox-76.0b4.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "b98d387cc62b3c87acde8336843c2111f67f2ec425ad78ad1033a150efc253561d9f12a42a61c8b2db5a926e9ec18dd466ab81df93fd12cf8342de2f2baca21c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-CL/firefox-76.0b4.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha512 = "cb5b8275ef7d62647b623506ac73b87e4552ab7d946838a4bfb7e690c8976d4acf7862a7bcd6642994d0c42c510e6aee5f3177a6a7d3c566678d5f0897b53368"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-ES/firefox-76.0b4.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "8c0bd3e0901696be921b440b03c919bd77cbd15f22e3022e0ac077db4b8bd9df34ca8f321f8bc27d459b71f89e19ca5549b140a7cba27014f4b6fd68cff5d214"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-MX/firefox-76.0b4.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha512 = "a580888df34b1062e6dcfd55112a61de1f6c031eb9dedfa4e8150f3b02f907b222e8f8ec570ffe1f21cba29a561f2ffe51701a509249ea3ccd6f2b01b6c00563"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/et/firefox-76.0b4.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "03ce56316a24ff43f9070205eb154254f139d1791c46dc7d37879208ac59234494cf0e584f43e2c483d1a1516de5c3d8b8d0debe551f377df2ef9d7ef382e6c0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/eu/firefox-76.0b4.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "eeca8dafce55e70b17ae42e8f3c807207ebfc2eabec44934f0f2984214426230fc498f3a683d2e4841787352ba8e52e37f5c70a0e5e78217e9a5516371a35a9d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fa/firefox-76.0b4.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha512 = "d16ae96bf3c7f4f31861814194f348737f4b02746de6acf0eb377eba8c3d66e36cc53b0cd1a0606d88d9604989bfa984d1897b504c38b06ee562a326224216aa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ff/firefox-76.0b4.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha512 = "9aca0543d152c6886d706e759b174a490a52ff897d0a4a455b40c7eb9f9e6cad72c720fce6f63991e995e3b50f4517a5c3640aca81f12ad6e0d4e55c84d78773"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fi/firefox-76.0b4.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "40cf4a38094db6df21bd188e7ddd008488af74d502d2a151e0761c37ec8c31040863f152419902b38ce28b3e70033795b7499374e38ec354f690489a18e45316"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fr/firefox-76.0b4.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "b0bdfc5be5c95338b235eea81d9de384268d05af2d501735fe4de3a8b525b6a08f98a40dfbbe60a6adbfcd92e806072a5baec8f2692a0823e686c124bc308b61"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fy-NL/firefox-76.0b4.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "0952e195b01c4a42db08b1ea6afdc4eaa4806f3fa98a35a7f7e55789de6902a255a2a5ea6bacb47c5e3b9439b83548ee81b85fe5c6520629ae8cf2e9b803eead"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ga-IE/firefox-76.0b4.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "02d735bc251be237efc86ff7642af066819b59c0c890b9a8c8525306537d52a603301fb81e4f2628a9f8d2af062425022b01db35b19fcc705b8de6d888c2bb6f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gd/firefox-76.0b4.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "404d9aaa382f9d641486dc1339b55f113c6c67f5b7523fb7b2c07c8114b4732e6e4882538d5dc2c57ec871b41bcd2e7248326db84baf4970a0ca451b785c711d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gl/firefox-76.0b4.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "fca768b0d97af4c14d71ee0963da7861bebf77d6c67378091842b184360f2ed7a54cb5e9d80918ba21fc34a77f36e2e1402c773b5e551f20b9ab9cd92e4f91b1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gn/firefox-76.0b4.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha512 = "e8925de0b33c779c0f26974a1f7f4f1586b7ff7ed969eab7e2721307aec67ac447dd85ac9c838d5cb9c799fd3f85e0f4e7236fc94111cad341aeb2b8a616c45d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gu-IN/firefox-76.0b4.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha512 = "11e8e2d7c434861e4119e5e2a6db9e1dbebcbfb318a9f707f3a09418889c4998faf280a63aa54f1a4d7f970ac657950e558004a019148e77ef539fea38072f54"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/he/firefox-76.0b4.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "a72b2da8c97f0517c8a1410114adbaaf8d3cb6ad76ad96cea967f6e73e934280e9af3a25b5c4457ba929b91db9f07b6ab740dcd19b0b4eb8093ce943a889e354"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hi-IN/firefox-76.0b4.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha512 = "07f298aa7f1ea9a484dfd918b61c2373b7114e0440759c91ff77d2f1f9712294a55bcd941f689431496fca05aed17d4e8a167e7e9b2afda6da2d5896e49c7818"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hr/firefox-76.0b4.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "02f1a630873af11a48fb4a2e56653a4e13b363dcbe49979b56f7049f14f6154b26cda2ac2311940a88be97e055e3e19b54db02044b8829ab833fdf76c2e6156e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hsb/firefox-76.0b4.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "0983f9e86b860b3070092d2a6f6478ea5d3e73ae46d3c0b2da20c03290d24fdc7dbdf14f0df78ec0d187c37410319c0c7e4ff1a1e8152646780fff0015e33ae9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hu/firefox-76.0b4.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "ec77cede3cd23c70f0a8ac5e3ea46c3cf8771df271e91df5e2d0e35edd1c08e0e3151282e9a14c82df18cb907393428f38f58619dd198bbf57ff8f062222317a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hy-AM/firefox-76.0b4.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "590562000f4aa0a8a6a4ebcb95ac01f38f8bd1f42e3dbadeeb8f03c4f6fcf62d5dd81fd8841ebbd8716a702526276bad17a6e767d4b6c483102ce0c9ba686ca0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ia/firefox-76.0b4.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha512 = "098497d2dbb70a702b0c804a22734b2dfaecec0cdc325ed8f63f2a4d03b295442363c6d9214d21a3b96d63221123b43a3ad27f1335b38eb4198e7cc1c5eff5ff"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/id/firefox-76.0b4.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "38ecd79e96d54887ab8358d848cabfcc638d2f6e66e73349f92f3ef2f4f7f5ed3f6be00e84b4062cf7cca082ebd851fccdb7c398f10c7a56b2f2587d5da7a9c7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/is/firefox-76.0b4.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "18def001b8dbf3e70f424990cb78b54e9700dbe4ac6285acc402c1c28e4ad2c5e4fdd74d703bffa296381d89798bbbc12b9cb929cc26137dfebee683bf4a692e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/it/firefox-76.0b4.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "06084de26c5266892d6da49ee126aa53a96b515ff66669d369334d02cf8c25b553bd3d00899f655f8ac09aa9c1891c247021241bf7ce8600f5e9d4d1bf9304de"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ja/firefox-76.0b4.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "5e2742f4030a941ea741bff0d363ce39c115a83988149ef682c30554ddabd3b94a7d72d9bbb4172ad1faae893fce35efa30b01b9cabf1eefa89c69199ddee7ac"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ka/firefox-76.0b4.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "f8f2d3b22d4fddbf25348eef1527c7e9bf0733572093c1fed1831feaa2c53b2559380bac3198fd79a51fddf5ebdcbaccf09e27c4d69317081aef52f37abacb7e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/kab/firefox-76.0b4.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "1600fa39c920554bb733009cfd6de7c0cd2ccfe53e91e8f3c770fcce29843dd89c488d733fb0beb81c868d26a74fa7b770fd64ec92459ff9f6a8ff9d98d42d02"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/kk/firefox-76.0b4.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "a2701ef2fa5f2127808c17a4136e4ec291225f613318ec04c0ad812d75356fe90b0ce94c0de5fedb17e16462f46c480e89e1a0ce92ad113430dff04756675b59"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/km/firefox-76.0b4.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha512 = "373caab422978dfa5629f4f6152a72e6e8f16f5add1f341528b98a617672c9dec3db41bc3021c561808b2c65124bebc0b2dd39163f3961e46204f9bd1aafe04a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/kn/firefox-76.0b4.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha512 = "203b7f9ea3ef8520cd9e614451275bad69b477deba0a26956b633545ba203a9a2ca88743c619aa311ea3f4f3acabfe96c2ea9463e2cd5b988951738073766c60"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ko/firefox-76.0b4.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "0dbe6bdee022274aca34cf8f480b7733f62bb38486c3c449805f636f9bb7439435e9e9af0442b4c4fa6c266cb97ab678eb46ac3a1b42376cc025ce5131c32c54"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/lij/firefox-76.0b4.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha512 = "e98b22e33ce330a8f3da068d13086a48740e4c8de43f0fc0851cfad3cf519e5fb29eae3c30fc93e9c8d341842079655a921dad762c1014d408763de695300876"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/lt/firefox-76.0b4.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "b9205df8b26104adb8f7c699317d972ba8f1e7de95580e916cd7ff9c019745ee5b60bb6650aadee54c48da773c65679b9427a3d8b3efaeb70a345e71ff8de837"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/lv/firefox-76.0b4.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha512 = "52df48db54bf4c2029366836708324940890d6387cf0ad21b918c420e9388b8f6cd29ed88e4eb230d162df0702fa5c6ad3d674a56d6d4c0b8e273f1776b2f6c8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/mk/firefox-76.0b4.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha512 = "610086ca01b542ac23e6b162aad833931354729df4b90949f2db3a22ee6fe6193cb3bce1472a859bdf5d0e718c4c72d06b0427df2001a984cfa2ac6d275c3e51"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/mr/firefox-76.0b4.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha512 = "725e696800f68a6ef7c9af9542d830a38872b4ca0aa864d1d415ee05f1d287d88d7dc19346f472fcab8f64094ff592575787dfbe2c62e14c97d69e82b8205bfd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ms/firefox-76.0b4.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "d6cee082a677b0f97f9f2792a4bbdb1b50d96b09693ce72b9de855eed006b6da6e89f9c6e671aef06ee9b7c166d1136ca86b9c977ba4eaf57790537917b0f0dd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/my/firefox-76.0b4.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha512 = "af5c543a13b1deb82fbe7596349a883c61bfff3fbbf029a117e8194e27d16d587b721c317d96f6c76eeb54a9a4483fbbb416a5f46290de64d7048245c0d000c0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/nb-NO/firefox-76.0b4.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "e4e6e9d1bf9eb930fee48b2ffb29da791fec545a835e034799bd88423c7cb207d3a24d68e8da2bfd18a20529b1d03d818fd0d4331ab91099d7c01ccce44a289c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ne-NP/firefox-76.0b4.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha512 = "ea5b7bcb45fb54509f2d11d261c1c1672e1a2664e310f291c7022bd11e69e0686c2a1da9f8b42d7c6c152b3e1213fee221ce44576d7c370bb09cb128c62a04e9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/nl/firefox-76.0b4.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "bb0c66623c439b0a274d98498dfbb9aa9ee620bd02fa0f4f41556a020975522799800f23872cbcdf47fbd8592afffd578d10da87d0469ec43c4f28564f8d93ed"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/nn-NO/firefox-76.0b4.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "e58160d3ca153065e82216d3773c15947d66ed7cc9c646d1990c66fdad869a8717cfb1cef9a2239996b625894cf4214712c36b54852eb955848da270a269982e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/oc/firefox-76.0b4.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha512 = "d2174ee3a3288bc424d41f0e51626a217dff28f1f8b8f153e9ff5d51f867f2bfbd9c81bfb6ab004053f5bffffa390264c72a9af522ed13523e04e74f03d7c6c5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pa-IN/firefox-76.0b4.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha512 = "ef26bdbf4c4e602dbfd84c64ac4c91960d648123ceda5039aee40e40c9df360d690d0490c18362f3d29b355578eb56b05fd5e2c8cb10304ca368db6b2133b414"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pl/firefox-76.0b4.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "35c8c303987fc6226678c02ed5eca9e36377f20c44a22513aaabbc1a86a661a4ef295a393d86e65707e714df13a877cdb2b1d52819c12382bf063f14e32044f0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pt-BR/firefox-76.0b4.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "9c04bd4dfcb38b887fef24a784fd3c7aec9a76b52675023f89c9d2cd9e83a0bff7a8c00fd91c7ba309112ffdbad1e2e9776ee2eeba9736438dffe0bd7f7a07a9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pt-PT/firefox-76.0b4.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "a056d933c16581e0b78df43c419fb6eb0fddbd970ad00ad13ace6076a19f21289722b6cecbe859761dbce0c3042a6d00cff4d04de7c4d594619a14cdf8daf5d2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/rm/firefox-76.0b4.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "6c808501f9bf72bee900665a689ca27fa0017ee23e08ddaf3fc969fd37bf113e189f57aa5ba8cbe3073e08993515120cf9907ef3981a2f18ad3bb4b5a8ac99c2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ro/firefox-76.0b4.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "e21c30b888b9a5cd8a1276abadf1cb7b61ef16aea1a2d14570649b887e6d4130e0e4d42bcbdb0e9f48760338c0cb2a8f52081cf6ed5163a4b7339923e5e13acf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ru/firefox-76.0b4.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "6e8ebb45f4d0dc3b73c692db8e07032c62948d5a8ca6799d09087206a071db61c98cb883c85db0dfe1423f99383ef7efb613d5092fb0b295b9c3a24d29b60f6a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/si/firefox-76.0b4.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "0d588d2befab1e7b23591f373b76083bfedca1ecc269c72f8d63a35e30d71db2a98c6b1ea18ed298909628800acd274ebc281c4d5e5399bec3f359f1f66e9bcd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sk/firefox-76.0b4.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "f4fd28a6f9397290f7db17ad30078b51e743f7093351493eaa117b526893f5a8f8ef36f255b50503d2b48c4bb3fbb3071ed0b25ea687cab01b01379b6ad64e6d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sl/firefox-76.0b4.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "8d6218ee90b9a767e03acb9f6bce4602bb948377cf91cc81b0dbe2020b5dac0750f1e283913940c59e0ee1cc14a0ce1928338ea90695948e5ddc854244b62c47"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/son/firefox-76.0b4.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha512 = "4818470e713cb9b7209cf9b6b73fd2682ec9b017516f56570b83d1123e69921f7bf2f8c2ff8de36d622f0f93e1191e8671b00357864e1aa862ffeb7b88a90dc5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sq/firefox-76.0b4.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "0ef59e995790814ca0ed50c2b510a1971ae802a1f362d2bb5a90e35687fae26aed9ba925c8e08bb68a7a0279a832132e2d66adb5dc1471a4a8e426cd4731d7aa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sr/firefox-76.0b4.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "5387f446bb9a4e3edb89a3aa8f19bff7972c932cfba97b386bc07875354ed6585fe39873a3e9f74aa68ae13ca4d7a1e765e3185517c5a266072167069b037786"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sv-SE/firefox-76.0b4.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "067f132d49fedf4e8dcc1401b39445b88a11aa5a7796ee24a06233540dd2b1ace5042dc06218f28bb6472716747dafedfa183b1db1e87d22ca5b865fa6f972eb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ta/firefox-76.0b4.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha512 = "4016a1677a62dc4877dad75c0ec2f4d8dd5ed3aaaf625c73175fadae527d54f628bd29db2044f90c8be36e72b89422280e8030a231cda9db0f98c18d3fc037da"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/te/firefox-76.0b4.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha512 = "bd4a683f30e92fe9631506bfb2aaf726c6765044db65adb8d85795e60365684c7a9d2d351b7ae5b02125546dea8ffea6ec637a39e417bcd61acc57b8560068ee"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/th/firefox-76.0b4.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha512 = "1b10aa327fdb46c322af0848a66ca03ecff38fc29ada50fce6e44e9056a874275407bcc3959cc7668493a6de599e71644e6c4f57f83e031b18d4a88505b35f9f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/tl/firefox-76.0b4.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha512 = "febcf3fc454d7079bece7a9da0a9d158c15d0cd7a61058befb411d921e35f7d180773b2063c2084552cb6f7fda552430778f75875b474312878f72014ae9913a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/tr/firefox-76.0b4.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "a23a443245eadeb943858bde3cb5d824277b47365cab047904268f783ffe3e0f42c0809b0b083a428b1d16038ae24cfc873b545d9513e1449661b511d17313d2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/trs/firefox-76.0b4.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha512 = "c614aae0b803329d05aec5f60aec633d31353bed9822d9b8b7c5dff5d08fcbbc551aae480c02021abf0bdad1059b665e4ef627dc00ac5cab0380fa30111cb15d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/uk/firefox-76.0b4.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "80bce7f860ed4d8921e9826d25f6d877879c3e4e3e3bf7bd8bf9ed4de4cc10cf72e42cb6323240f799a53ac6fc366ee7e1e6deb4b1c697f2444e97ab090ab9db"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ur/firefox-76.0b4.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha512 = "ac2d7c2ab3d26157feb78283a16e8d2195f78eabeeecb4ded60352fd423d8ff57f5e8a5fde72feaf32c3fece3a4e90c49d18d672ccff5775bc497e1c89b3fbea"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/uz/firefox-76.0b4.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "a3cde7db978a3876b3ea596ae5b3e1aa1e77064f49686eb39bb083e4344cdda8366f01d37ceee4a007c1a36b4fd18499b2c46b2233f58b7efa8be4e59cc9e347"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/vi/firefox-76.0b4.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "b76c01da5b4be1e39a3080ed2088bf6cad5e6f08364edae08a74c6b5ec07c35a214c47ef80b8bf5e3f4c53db6789e8eff1d6be22a1a75d408570fd9a9bf5140c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/xh/firefox-76.0b4.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha512 = "9175fe7659d000ed22cbbd8968146e57e0d8b39a112ce22f1bc18f553bca36c94c374f0f89d7b4743a521f654f2689e50ea4a4cf13ff320752c498e038abdbdf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/zh-CN/firefox-76.0b4.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "0ffaffd4a316c36aeb75242902cf05bfd99143b6bbd67eed7bc6070ca4eb4328dcc7903f706fcf7e93e980d916b24d2041ecd5f7324b0bbe5e7ca2fb7b755574"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/zh-TW/firefox-76.0b4.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "ca46afa28f7e756718aa45e7d84fc5a14773671aa18edcc33b4c3e5ca68017a14a6f0d7b737ccfd098875c333c6d65b271a3521eecd3d4c64f535620f8c66346"; + } + ]; +} 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..71940c1b33ae --- /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..f10bd8e9f39d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix @@ -0,0 +1,965 @@ +{ + version = "76.0b4"; + sources = [ + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ach/firefox-76.0b4.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha512 = "9d76b71a20b9079513af70a082d6ab7373378e01b126cac5111437a040b08aaf3c78ad6d944cb27943043917be5d00ad90dd428ac3f2107754e2c96d5ec5c7cc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/af/firefox-76.0b4.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha512 = "b498c1f6b56a65b66765173ac6c4568066facbf67b945d8e863a0d046cfdfda5e792acffaaffd1e7e5e5e5753b4a85ece8d19aa97d743340028346686a65cc7a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/an/firefox-76.0b4.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha512 = "115e952394389af064117dc837d1f2ec157ced9aa35affc1d490e0a4860f36309c445a0e4781d0020420e2f4f3bdad18d078321b6bb760aaf2900273f5601e5b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ar/firefox-76.0b4.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "cdebc4f71f304c930ee06c2048a142a1b610965059a3c2167882f6859446eb8af661c5d64011de3639144702b3b1936c1ef6af7eccaf7944fbbd7eda7161f569"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ast/firefox-76.0b4.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "6a96535466e06326f0577f045bdaf310d05a7f3878db940521bef58f60abef196cca038912145f25bd6879b55a693b6c98933d0045bfd5da58ff436cdcd1de6d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/az/firefox-76.0b4.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha512 = "327cf4ba8de32044426d6ced1e250e03972e9a24705373a0c15e46c2f6c4994fc83cd1c67aacf09c2d11d9b665e63dba6176e845ef8c037241c55e9c536caa8a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/be/firefox-76.0b4.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "9fa7311bf0425d7314298751553b49597b6eee71f9d251e52318f13e1d38d86adbfe1a1b6d599319d6f61de47652a5cfd33ef3f3ae9a2ee3f16af53629f0b85a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/bg/firefox-76.0b4.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "084fffbd48bad4fd38c649dd7ef5aaacfd5c86be4482a87f25c8e19ac6469e28897cf1ceeaed14cda55f40c77b08425a75ae3679d9866c255eaa8927a3c4e7e1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/bn/firefox-76.0b4.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha512 = "bd6d179e2ebc392bd8a2b5fc2b67d486150b00a4d881aa23c4d49ec2bbb7e8b8e9d70247bd704f608972af5ea3ffc5f53f949096a33455bb1fcb018acd4a0987"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/br/firefox-76.0b4.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "55d293e4f510229cc6545e41631db06987779f094020edf70093a38d1612d755334b59fc492f6b77ad3bb5e9996883231c0896d99ab83ffa418ea55b61cb76ee"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/bs/firefox-76.0b4.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha512 = "b69e81c5b10411e7b391de4f9a3d3df4d183e4870b81ee3963bb663b85da2b955d2ea71ffa6246790a77cd2f512a1797bbe90f35d9da75b5d4bfe0c4e4209621"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ca-valencia/firefox-76.0b4.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha512 = "047cb7e2135ad93aa4d1378e9d48e8baaeac711aed823ae603f6d9431b90a8e46096948712f4fbaa6a80ae519ae7d75dcc5704305323c7eaa9c307cc688194fb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ca/firefox-76.0b4.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "417dfb9a91902fd3bf7245accf6c48ce0dc1b9944376d5c73d38816e5b8c05ce214c1327f31773d5a72470a4b565b17f2469ed2f9d3fd6a7739699e19ac9bbd9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/cak/firefox-76.0b4.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "823f2cb33b41a6a4ad870515f5f443213df254bc6306cda23ce2b2b8a435f6a6bfa0884ea504645791a15c76934bdb92460674fb628b517f9d4e1f2263347fdd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/cs/firefox-76.0b4.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "618e4e48246192c6103757ef151ec192e41ac1011786478d631169d934569610d2e280cf20de2db54a57e1e794fd66c685427d69d2a6cf185508234066f71d34"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/cy/firefox-76.0b4.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "000d6c8434ef716a63fe4885d2b4ee2f6d025b58ec0de6ae2957a9d8807d9ed1c740fe37b679a66a1ca63a7f5690aa9a3ceb3aca6011dbb13071a66d329caab8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/da/firefox-76.0b4.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "b49a8f64bb4a5625bd7b4d8046fb819296ea56aac468d4ea3220a73730c8d512a5ecc0d3798cffdb27afdc13b584830ce2c800a912976467a4b7851712fae481"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/de/firefox-76.0b4.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "fb82402e6e65bb87878b036f54518cd04b078564a14ebd8ef25dd60a006fe9f12c5e34b7f4bc10858228982dd0eaf05ada0a9f099059a9d71fe3933b49b3b2ca"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/dsb/firefox-76.0b4.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "c447e017eb5df8ba8ece0ff51a62b3ec7b8c7cd12f55b1b41cfcfccb1a7f936e8efb12792b9075c8eb6995802dc24d17d43b395805b03476196103fcbc1a2faf"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/el/firefox-76.0b4.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "d3e17c8c3a6f6f1290c64b19f6f2184f0cfc80c087ef3c02684c16c6e9b1b1e311feb9a134bfb7bf577d6995c8fd45365154935a25aa5f40e37ad198e41de62d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/en-CA/firefox-76.0b4.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha512 = "7175f58d6d81c34647e6c021cb0cf7c9d3a30c4a3d732d931821219c649e89f693529177d4bf037c56b37c330f8b29d3dce9038a7d2cb24590445b387b64801d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/en-GB/firefox-76.0b4.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "0a003523e3e254f631834dba70784af7fdde9d0e912e17e2a92e8e0cb9d6973ada3670f1f83927d53afbe4b90be9de6e456cbe8b32c7bfbf2aba54bfa6c3dad0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/en-US/firefox-76.0b4.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "4ea639262102238e209a7164d5be46bb88d38e275f265340b109a7477ad8d5c3833772c44cf37ac9dda96dd859b3b07a86ed0942ba0e1c4a4b58b767c218c8a1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/eo/firefox-76.0b4.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "083063dcf61db9d69ca39756c9fe697af133dbf87f455ce3590b2d336e629c67566ec1f3a8973f2d28122e283a8e718ef84bdadbbae3844b00e7e6aac2978454"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-AR/firefox-76.0b4.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "c43aed8aab29941423a292734525a2f5c8594ce3ae62cec91fe4f5ad6f04908e14a13c409b4ffc47ab9049c4c9194c388097bff307edf632fcfd06d363619085"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-CL/firefox-76.0b4.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "b7ae67f8943841f254650820b4d36b164e95dee1bf8c425cfb9c878f4efcf4c4f0892a84ec5ed7ee2ccc7f03ec43a5f67374f3e1e268ccb753db4bb2f5b6474a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-ES/firefox-76.0b4.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "b298d239fcef24f2e34e5672329779db55032f500a08e2b2e8e0663bddfdf3925a1eb16eb08a1729898a8cc122d2ca923d26c0be3e147172e4b869305df05b31"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-MX/firefox-76.0b4.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "e9a107d459a4a7eb90b38edbb33a67c6f03d7851fca8be00c5f981849cdf9c88b92e283d094d3a13ff1b3f37da417c09e0d0379828eddebcb984e9684b000385"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/et/firefox-76.0b4.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "3f859bfcd75718abf816668a1fd15b26bff4b70fcbddd330e69180476d7ad40be13447c533e49ba24bbfe5667dede1fd0024b7aa976df5e4c739ffe75b0ed31d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/eu/firefox-76.0b4.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "6081be920d434127391e4946429e677f421b381f371fc0539ebc92e29963aeabe07116dc9c81d2430ca0cbbdd52bea69157ade801f076cc8b192e3eaa2f5e427"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fa/firefox-76.0b4.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "abc53c13aae0ced9217532e92a9e9b4a9f9d95d76ec8ae0395d77447804d24aa503caf644a030acc29e69feb6f89569b53b9036589f454a1e9e72eb900403ef7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ff/firefox-76.0b4.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha512 = "ba30dc08436d48280298efcf85f509a56c903e5bff1909332b792449032178764bdd7ca77ae81d02047f439da93cac45486a2a8fcce0d1dc1c876c01b3468066"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fi/firefox-76.0b4.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "5e6833e0d4cc404a9224ecf5ae6cd1e5efb4a5776cefc19f7b1eca9aafde6b3b6a3eac8a34b2cf33b16c60b68f2940fa206ee8f34b3a1acbb13aa468dd5f1457"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fr/firefox-76.0b4.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "c33412dce69592c1b92b42e982a7a7392f46142036a250ad39f4e1a0de741017081b6730fe1ef93a3b8015abee13a8e4f3ffab652d1b7a86be04d469b910fd85"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fy-NL/firefox-76.0b4.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "f1dacff746fc0695c9e3576da48a6d1dc485398b5468659fadc03f7ec24a2b9ca1e530f4c1c8a8556d80f682d36fc977438cdb8bb2397a01dab54f8e09ff41fd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ga-IE/firefox-76.0b4.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "423ccf14bc5a31a332428c023784f33ae35106fb282591d161194504f9c3b4f647dedc6af919720b718925250d1bf2a4c3595aaeaee0502d0bff85025bcaa441"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gd/firefox-76.0b4.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "004b52581644e3263aa8212048c48e163e48bac6172cbf17da9de686a6265299f96f72ebb7b2d3e8aa60fb1e71e1459b4ee717a8d74557c576edd79cd5c581dc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gl/firefox-76.0b4.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "206fe47aaf14c3c054d1371d84a1adfba8853ed0e5622c871566bc4540f6f099530ad62d0e719f1731816a014fc9310db5dff5881a8bf48ef3807b143d42a2ff"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gn/firefox-76.0b4.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha512 = "f5089e9300d10b3e51f29d90821c6e9117bacec194d37c89d9c26d28a00f1bf694b5399f51bb7a314dc42e30b2693e8507af8eb5edab6d9edbd509e0c0e11761"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gu-IN/firefox-76.0b4.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha512 = "38756c6000aa8032a6f182f3267e738cb100ceb7762900d718e996a9b538a92bee3acc9d2368cae1a675647031c4f05218745111828031587e0d29195f56eb04"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/he/firefox-76.0b4.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "bba86d7a1fc6746b1f14e1df5720d5cfd688140779ed0117eb0b7966d3d1500537a3caac19968c7c272f9061bb6d57dd068543456cf87d939ce567c99974a014"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hi-IN/firefox-76.0b4.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha512 = "90ad90dae1a6864e1df05b174105e145d0a2395e465f5e517e6a4b240e157bd3710b6a44c6c016fd49fec3756d9f59e2122d1ec6279fd7717881f40f17eeca13"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hr/firefox-76.0b4.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "b0ff873b157d62f227a0855cea5a14651a42533c6eacfd4a278a3c28ee9cc87aef79c459dcb28c90f2554c65f5974b03378cfb764b54a0d1d89fe45d6572147f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hsb/firefox-76.0b4.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "742a1ade2fb13ede18024c8d24268012ff00cd9dec283a7ca93dca80d6f3ad4eb0835cc151cdbc70327a2da0d53b34c366239a9da625d4b6a6b19951a32168af"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hu/firefox-76.0b4.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "d8635bffa34c824f15b8328ffc5a3334321470a9f2f4a9d16a534fe2548f4e438a612ccea108ad5165b6e87b9cd837c478e8fbe42c89fbba36202dcf49896ca8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hy-AM/firefox-76.0b4.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "ff885e94eadc4734a640b97c85e540a662737bc68ba26ac6dc4a467b30c96a5d29a08a635542981d60e38754123d843c5f9722a9e94928a7b408ca252823089d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ia/firefox-76.0b4.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha512 = "65e62703b9ea3b10d3134956c56e3ea6c44a1ea4c4d36c1a6c1cdff46fccd25baf43500108ff34a8a8c5b8328c478600b3cf7d33ce865884302aad407b46e89c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/id/firefox-76.0b4.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "02656928185eab47e08787fc1ff267447c3b5cd4997b4a1d954d31c26c36fc78445f28e85250c3d0bd94244900e7bd9a962e3a93e8eb4046ae8979e407b07ce3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/is/firefox-76.0b4.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "597a29fdefc3ac3746eb1b898a51f1294cdce2fc7edfb958a8967c624291275d46b382e103fb3f3e39c08684b1bc4a90235e62256b16c37bdd230e4eb2b65e7e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/it/firefox-76.0b4.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "6eb5658a073a1ee84803ed669794bf307cbd615c220d8e95596f4c27811f20afa4f2b67bfaed94553dfb2cf3c4f5a09f0a5b4ab61f517794200a8ac11e00262f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ja/firefox-76.0b4.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "0292e5eb4fe8a11f13a8a824cc1f996133abf49968956887847a9556f2f418fd4146629d806a8364e103ab62542abac4c405e32800567b140a51036b5a99eede"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ka/firefox-76.0b4.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "19d98eeca2ad2198b928f9c28c2ccf27328b3fa47b56a9f6aa1878299d582d1a18209625dca3e00285219b2fa8c08ae6e4ef581db80611af699304b8072a56f4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/kab/firefox-76.0b4.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "f47d60eec573dfe2234cd166270c078aa649e0af0b5c85b6a439ed83535b497185bce6be633a923a557a845f6a66f441c42b7a8e8b76118eab5a545f6dafd512"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/kk/firefox-76.0b4.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "d25c996f6255d6df234504f7a0cd6de5e231ad00ee1baad4d09ca15543bb7fdca6ee94c9e06a61090360377245d367dcbb8686fc94997722cf3d2b75ddbe2e1e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/km/firefox-76.0b4.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha512 = "24b64f1d5f8b5f26d213390559f1cf3145a845d0bc5d27bd53fd9311a3110f0bfdb54f03962daeed0c456fd59e9db26c400af67df783e9f76546e3a9bc689615"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/kn/firefox-76.0b4.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha512 = "6305fc10709819a454b475a6828fa309aa23634de6704a2edc46ff41e05cb899c96189ec8698b72d375a3d33da47eab654d26e4987ba86c97edda4184fe33e96"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ko/firefox-76.0b4.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "2359b56d7262c17689f5c1b1609f08c36312b5f01a1aeba482b8e2f274d3bfa6142d936867c01656abdb9502d688a94d39924c422883918e74bb55f365decee6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/lij/firefox-76.0b4.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha512 = "d0e6bafc119c5e5d466420b5713ba0720871cd2f51c19c7c71c60cc5676c21bbde865d94d118747377dd0ea73a572dd50fa43c853ca5df13523549f4b6979be4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/lt/firefox-76.0b4.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "95c0ccfbf994ca172eb1e69edaf896b2c471f6eb1da2884e28273f91b8ee7617b29e0f713228f5c6f4a39a13baac39e6ec760ed33961264bbf915cdb4641cba1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/lv/firefox-76.0b4.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "7c4951a58394c510499d8d0350cb5ae5124f26c926129471ec2b3067cfa69416855f49cab8cd32b86d1b003f2ed13e672635cfb46389b45fc59c0308a638c6e5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/mk/firefox-76.0b4.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha512 = "7694100e1894b91632393c9662e376a9884cb5c69298dab112daf47123f16509ff020c3f52f790c2173b5bf8b1316e893def1c9fa8b2d4643e0db6c5da7ab475"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/mr/firefox-76.0b4.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha512 = "ff15aeed5144f65978b28e7fdf3679ebb3de83f696b7bc7ec3a390dbd9375c85e7d793a157ebffd958eea271a69ae054b4bf7112488ef42cdbee5b7a72d16783"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ms/firefox-76.0b4.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "1c0b206705a8fe0dd4b7adf155feb4ba1e8dabd176f891754f5b3ff7cc2279d17cf5ca3b23e85fc6033092cc0bce4cfb62d433a4905d42940028c4075704cdc0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/my/firefox-76.0b4.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "a3fb6b26e2ef26b681240d3bc3b9e46ee164260e0d3b14d9541a041a8c0c3e8129e6b2f6c7995825462b3f9c423611fc3c7327725aee8aa3dccf571d5f178be2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/nb-NO/firefox-76.0b4.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "8f0a43f17490354a6f3a800e069dcaccdf3c8acd99a2133e5cc65c0fd8ee62637967ab528dc0fe7b992e35a69e508db95b30c42375c5b8d5268de153169caa81"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ne-NP/firefox-76.0b4.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha512 = "c7379020b8800e44e18a3beb98729a716159d8a4e9b19556aaee935bce39a99ec629056c5a9fc40deced93d2947a1d360498c87fb6e9060545ac359774589912"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/nl/firefox-76.0b4.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "88b24713707ab9991dc189973a9077dba86833580edab2ef5c40641a55a34306fc27c68dc56baa0d84b30051f170aab2db89a4433daf5b14a3dc29d58c01f691"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/nn-NO/firefox-76.0b4.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "55c9b1ad3b7f452de4357b423240ccffdeeb37ed8c1bf5b428f36e12337ce81de9c53f3a3fc7c5db1171080d07d8b62dd8cbc3c984730dfb39d7deef70dba46a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/oc/firefox-76.0b4.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha512 = "fda67181ce402948b53b37975e85803d34be4269e8668bd1446f814f644c2c6adaa1c01f097efaa68f6c1ed90e183fef85a838248102c5b2858039575363eff0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pa-IN/firefox-76.0b4.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha512 = "dc29b7e1d0fe74cf8d5ddcee4b201e34e538e7ed0e9b1a6271957183c40aa07a978cc02dcd71eae546c4894f7d869938c312e896d84b9c966bbd8765bf407567"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pl/firefox-76.0b4.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "e6730cd1d34b13a26f6e6e7ecd6c893ae49d3158a9173b4870a913a35c8ac743f26e7220a4c4b3a7e10209e2bf3593416da74b9b07ef27e91bd46ac9df833010"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pt-BR/firefox-76.0b4.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "4d7f7598095164a8784157f7fbf5e9a7e08be8cc66492dd2bb083002546675c725819281b1d46f3095b9d5735ad8375b083b90936b301c2b90bbd2db0f7ccf35"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pt-PT/firefox-76.0b4.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "6c929036a8acaa3bcc0e7fe824b6d899abe06cfcfecc0a382db722ec139969f78789dda53432d14640d538648237fe3c93e532c035d81c3ca72023a6800f0ede"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/rm/firefox-76.0b4.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "f21aefb4ca321533b46c550421db84094a5df593f6d77a6e036d25284dde0394c317bca12ac1ec45f04b6d16cd94cf12e0c5a3f6f43b3336e16f6ec0f6317e2b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ro/firefox-76.0b4.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "598376640d64d6a882653adb0a77164267ca694dcdb1a87024591393e209df516df891e5fc548edb2cb045901846f898c203bc6d08e56792341498fdae64a0a7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ru/firefox-76.0b4.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "d3d45abfe074d85c992bd74b622387d738d8d19bb4e994669aef9b63b15e9de0a9ffdd0349ff9684380a8797dc23934e2ddfd7d54438b5fbd9c310a1a421ac6d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/si/firefox-76.0b4.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "c7cdd65c9f7404146101c265e79ccd33554b398595506acea531beaa022e8f64a8ab62feca77c94a355cc86ade99d6d470818b84c9dac80ca143390ec3617873"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sk/firefox-76.0b4.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "6e7040a36cccebee23671247a150fe3be0a0b7c831615c7c65d5aa615ddf740c94cc2c27418e7aac8eee136c9e829b3724c767e7be1c88d001d44dcc7ad9ba06"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sl/firefox-76.0b4.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "bac64f281f57da938e1acfecdfcfa69dbcca2b1b5f923e92a5a01aa0f706a40db34dd563dfc19b2f2cf4eb3d3216c78eb1af9001beac4d3f387401f442bbe6a3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/son/firefox-76.0b4.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha512 = "1f0a557c16baef46717b448e84b5e5cc249e706a8ab9f4fdfc1b0ead85334beed931fcb19484f0eb796946638c09342bad52b8c0b93c8a9f6eeb71e7d96d0a2f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sq/firefox-76.0b4.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "7e996dccbaf10e76939b018c1fb656a42691d2f9b70bd8d018b2767cad55bd34c1241e0dd4a738b7ab503efebbb17b8ae9353a70fae296f0fbe3549b4071a9e8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sr/firefox-76.0b4.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "6cfb8e0e55a61bbf5b74153503ee71fb2851bff5905c68e61adbe2501d7898f45014e7b20073beffd2b02c0f51d861b5be8473522a42acedcac463e55998c959"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sv-SE/firefox-76.0b4.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "88aeb01a8983a482a0e984d95c40d737f1fa89e39d37f7d5feb5e246c25a39f42e0cb99a8d3b8f7da001854d60cc370cc3f62ade04498e6d2f9817ccb869f312"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ta/firefox-76.0b4.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha512 = "8e8dfd8a3a0fab2528ffd237d6ca83c3fa41551be79e2d85fbee9766731ff53345f912af6689b336db7dc8467a57b92664c0981f5c660217a8deacdb2b350408"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/te/firefox-76.0b4.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha512 = "43af76e66b26af3736c373a54b2bd03571257aa819e33b7ba40659dd7e5f9e7815116ccb80bad66ce5a2bcea4d9130a07830cb72b70624e567d1b9650dd31c4c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/th/firefox-76.0b4.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "c8ff860ceb0176dead8663f5043ff68865a38ff008a8a110bb37212afecc57042afd150c35c0b39a56fadc04479b95494e95f966c79a789adefb295269420222"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/tl/firefox-76.0b4.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "b6d313bae860d3d7449eec5527be23a8cd148a580b416bdb2bb8760c2c5996863a31b175291cc4682d574635d3dfd35e70230cd0fc7933be78a217092ebc0c64"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/tr/firefox-76.0b4.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "42b3895f52de7c7f332f337ed0dd3ad108c3d41cbce8a6c3bfc64d4041266bcdb240d0960519e6157a5ee1537f3fb50fac8aec3bbf89aff0cf1a4d99fde9ccf8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/trs/firefox-76.0b4.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha512 = "f4982e28dbe0f5ffb9cdb5038d230f7401c77c368e6a1427018ea4e085bce534c8deee81b30a8b4f1b93d48baa0298d6d74720cfc0667f0c9555eb18a6746e26"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/uk/firefox-76.0b4.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "d82258a4aa12e64e13e5e22948f9a80be1482fb59585e31ac5caffa80d0886af98cf14c122394f0978b5706e66e34b1158a0e19da213c49037b3f65683a39984"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ur/firefox-76.0b4.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "527296db4c495f09b66b4898e6b04f496ae202ad23243de7259715043ac026863ce8a1c849493226e935dc04d04f528ba9a7bd4e9498ac36b2215eba118dace7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/uz/firefox-76.0b4.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "4a211cd2c988c7bfaa0ee28b2703d084ac17331263231847c23e210630162e8347539c5103fad19638a8abfc2bd2c4d0b08dd3d81be24d248d685dc80831f761"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/vi/firefox-76.0b4.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "1d445fb767d74fe9d242722346e0475e6ed18c0d7110cab12596265e68916dc7f09017da7a2fca79b249c3da7eb140a13377ae4fb6c69a7f2f0f55198f705f23"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/xh/firefox-76.0b4.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha512 = "2bd07a9e4e4f4bc17765a06616f0c5449968c111430d82f2b506c316305b1ad417d17c9812642f0651cba5f32b4b3ea4330254ddfa2ea9b08f2e980348f4bc39"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/zh-CN/firefox-76.0b4.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "f0274b0bddf3ab7b69071482aa3be4b7ab712ed78c3f5f4aa51b64f1ba8c93408b64223c73139a4c4fe186d7bc0b69169d98c9ebd859c1c8881aeaf8050a1eb2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/zh-TW/firefox-76.0b4.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "973c4d852d71cbae5430afedf33adb1cd143d2e333e06cbe697400c1ee2ae30c6e8361f78c99e131917150152b2fc30acc2b5cb274147ec5badc466c7d3ad67e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ach/firefox-76.0b4.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha512 = "7ce4970144e5f1d09daf747629b737567bf9fdacc21f5477ecd176dce714a7b9a8a22e195d772f47ea9bfe97c4c8b1bfb515aa785786c47c2c070f58ab02376c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/af/firefox-76.0b4.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha512 = "33d364d036646bcac7e6ab694fe180a548bfe6de420fe1a7ca684177da8086d70e1264720e508251163819e9bb59a54e2027431056e4c75688a0b587ca5fc010"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/an/firefox-76.0b4.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha512 = "46b8645a1148b0a8d2c8c2dd5baa36459fc9ba4504b875c2f0252cff8202dd0a1c45cbc13422a2d36650db3e07e5f8ecb214d74b14dea728f76d721c53bf1486"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ar/firefox-76.0b4.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "cee1cd38ea9fbb4151ef7a2f5df2f67a6feac721ae6bc2ca580f933685f71cc25062c9f00a9d25402ba63249170c1357047248488d0aaf65acd685715f97c011"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ast/firefox-76.0b4.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "4d34d3f28d1ac26e940b8f335469aee541358c19ada123dca3b87d420d7bcef8ba430d02b2445834cf495660faa4dae3bd66e0330f15c43170bdadb63c87be13"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/az/firefox-76.0b4.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha512 = "ceba1c862b0610e67053c1671907d1a1f80eb381648349340c18169c0ef6d7d6d4f65a7476dda42329f7a681b1d3b3924d0cd9addb7c5117a414e492392c208b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/be/firefox-76.0b4.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "7a6fb8b6ad17fb89796d93164c39e8e446af972dfe14153a75495dd9aaff329dac58d708ff4f7c85ddf8a65cc441b71d07482e0eb0e240552c7b50f03f3ad463"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/bg/firefox-76.0b4.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "d846ed4044aaacf02e02078d00f5ecefa59f4f91ff174526e96597aa73a46f4ea4d2595f39e5ea17583ffbe9ebc046265c73a5dca7155ea72814ae4ca7c697ce"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/bn/firefox-76.0b4.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha512 = "1deeb8bd99d8e3c86ea16b08583dd6467cdc8b255f99c0782268d5319e9013910eecd121f0ec770b53189c488a239966eb5850790e5c0264351fad8ba9a587b1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/br/firefox-76.0b4.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "8f8553f1eac30e497f124e5407b1658691e8456ca0d2307e4e8244024c6ec6ef4695644e169d840f832b4bbfe2ffa7dd0b178bb2b9500ceb7a7b515dc8d68af8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/bs/firefox-76.0b4.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha512 = "129207de0d362fccb2dcb82ec62c0802fd8fcdc5fbda638c7f8c2d3bcf38c43a25640b20bd118efaa9dde93a2b305eb8b194b38da5c97b42bb272b732a1b1597"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ca-valencia/firefox-76.0b4.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha512 = "08e733d738d1e4a48eb8493d7fbfeb14a4fcd3db41bc0d39d7440a3751b9bfa9ef2b1c517efa88af649902464fbb04a77375d8eb1cedf325aa781710c704a1bd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ca/firefox-76.0b4.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "f9ebb1e5c03bf7a2e51e5f4228df588ef17f5d3aa406a1d1d307e49235a2b45100fa62d183878db4c217593f4d92dba3454be89cc80bd615bb3b8fc6dd471cfe"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/cak/firefox-76.0b4.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "1d8aedf181de567499aa9455a819d31e657da1d5d437f67df0eafb02d7f846a79bbd7e030c59a3f2c1c5766f668149f97881d0bfe3a98394796fe21b628df374"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/cs/firefox-76.0b4.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "748901b2df6a1ab54dec6f5236fb4fcc2f762b5522dabc87b0e59890cfa895c9ad4e8d81662a9fbcf720549c88d4b792200ba1ae2a2f2e0819e9f183fb83a8e4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/cy/firefox-76.0b4.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "8143fe0b4fa7a26296b77eee23015df6eadc48bdae8ecd69fa1f731fed9ea7d2d544093c928641b55628c54e72ac48b974f6d2002bb56a613c745992297b577a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/da/firefox-76.0b4.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "2f9edd32302639e730ea4e28749ead3aedfee8716ec06ba4283e4401e1f6608870e26886b957aa758efc1fff52ac92087e95230fdfc024a062a0813c2a941e63"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/de/firefox-76.0b4.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "a725ad54dc31276d7f58d122218d381fbbc3642853958315c04abdb4ed5eab917a81c903b6a72f324896442c87608296e98a12892c81774e53d674862ebb380d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/dsb/firefox-76.0b4.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "a5d06b692b11f42da8465f787eace49d2ab1c5c9b575f3471042f2db1c499cebe1b3929cf131a6451cfa388cba4cb995fc51f3a30059a76879db9f78e8e1bde7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/el/firefox-76.0b4.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "92fbea5af2bdb838af9c13d6938eb4f977fbe867dd90dfd5328f947917503feaeaef63d66cb7297aa049f486056481cc2525e47d7e5fd994908041924b1d88df"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/en-CA/firefox-76.0b4.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha512 = "03ee4474802ee0971d4d1bad6814be66a5e0bd8adb0f9fd1c7fcf748915cfc0f2b14694135db6011216a114b388cdffa3c7109e66b834bacc7e28aafc0d79a2c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/en-GB/firefox-76.0b4.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "e62f4de36b5ff1ec5d934d514c5257b2614e890efcc8e6e924116494a029c2fdc40ad90924920dfebdf286a63cb61d0bb64ba5fca3e45b4852b0633f3f74bd67"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/en-US/firefox-76.0b4.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "bcf2a75d906ad5e42cb2a77c210cc78afd4c722ecb686fe256dc14daeaf9794e7ecae9668171c6d028aeab0e34ddd41fc65648d87e796e57a9b3ecfd33397361"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/eo/firefox-76.0b4.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha512 = "64093337bf69f005ed5db33d1e06e0c65011c53e1f392026990744e9393f6cfed0a602004eaec16b3e5841f87614a7323ac64b12f0099177f793c2fa9e1fe53c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-AR/firefox-76.0b4.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "820e8ca43a53d5224b8f61e47725b775cc2ad4c15d816802bf16609ddba1374d15f1826d67872db16ce071454589b1dfa224a9cfdbaf44722baa5c8fb4c7c07a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-CL/firefox-76.0b4.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha512 = "93cdf71a41b7c7d615199d4111892a467afdb861ff9bb374cafaa7f802a026d7b2618beaed80e5f078a0751a1ba0716bd866c683d8720f243228e976c816b865"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-ES/firefox-76.0b4.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "d06a02148f2f87cb3f4b961a9d3389b2ae3cc6efd1d78a7132e8258dc4c86ffcad47055950768322a85dda62baced3516666330ce584be89e9562d1b306736da"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-MX/firefox-76.0b4.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha512 = "d7dd2306ff4b79910f1aa09bbd28e7b7e37e64d7e99fd1293e37a76ad6135edeb247fcb57102cf002bdd43361451327d576a1b58def5c99fd09a6e68a26e369e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/et/firefox-76.0b4.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "4258156d27a720cd68bc74b70618e88014faa00360e055ea6a254154b5929860f27223b89c460674feeb1e1542dc4baae1b81369e9382c455d8bffee8bbe0585"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/eu/firefox-76.0b4.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "822401e47e96a232a411655367299a9b64aeca133c0eaf18a0d9771a0a8f5f15c761c7889b815339cba391027a807a490f2eb8866e8f81883935249fe1907d36"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fa/firefox-76.0b4.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha512 = "fb498b47f79337f55835a343a6141556ae3119095aded17611b315e0ac4206d92774737d0a149b71c62c1e0712110a8eccd18b23e024d9aeda4a2540a0dbf9d4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ff/firefox-76.0b4.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha512 = "d03acc6ef34f1476fbfc5f398a21cabbd47c5c5d17c4d2ad83e0efaf2262deefe413032d6780303ce908b7707cb4f3053480c1f880a28cf15f105e7bec89f552"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fi/firefox-76.0b4.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "9a4f97c1d41b256e5dcda088de88066c3f2db91c5d2c5bbd676c3f1081ef87873d68aa4cdaaf55f12b7fcfab85649aded56fad65a7a05322be794f463da152a2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fr/firefox-76.0b4.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "e8eb90ad95e9fbea466d448abc4454bc6ab68b5f60d84cc74d1a7a8da8f6bb9a8837b2542194722ac85589f81bd6da43f683416b9bcf78fcd8511f9274a88e10"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fy-NL/firefox-76.0b4.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "7eadae35b7f45d91031a7c2984fa0f9e6dfc72ea3a5e53d6c0b2481106ff095c4fcc3e9398a06fe5c2f1a036074b03bdeefef57df32393a39209cd9aff8d5ebd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ga-IE/firefox-76.0b4.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "c9ab2805f65cdfbf5ef5ad441c675f3ab6eb7bdcbfb7575b3ca374a6e9409f35be63ceadf495557e29bac58fe368d4410b8ea2ad5d5a26c21a60bfe1f69b9f60"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gd/firefox-76.0b4.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "7111c65eb5904a33128b6046c76b7936d11c09842b288f234203973c5f129e110fc58d1271482d719afc57479c8283010a285b890d80795cce2ea969272283db"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gl/firefox-76.0b4.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "0e19ad36251623f60f5d6bb8cd745339cff6231f2bda3f8ac5d87fb0de6b27b4da5fdaa727c34c058d93bc06b3ea335de6dafaf247cbb7bcafa2f483acb7a337"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gn/firefox-76.0b4.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha512 = "9328e140e98f3e24057436e6e14eddb0d50dcd55aa1713d22f7ea4f9c8384ce077a61bb2fc9191c948a78cc38e9e8b08188bcc792e9725ecfcc91a5651fac290"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gu-IN/firefox-76.0b4.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha512 = "64cbdd669d1641ec365d4c1aced98d067cbd3a21124ec10472b3db2105db2774c283919652e5fa6c35c5548d8b8c1db055dbb7ec1c83ff05ad369923a37d45da"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/he/firefox-76.0b4.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "16c90f8125882063f4b6429ec810d23375632be9a34a5ec4a3f7d95866ea79d5c59f454a294a4ec78da2eb1a4d8a9dd9c34fcf17f0407aefc9cb8f25a2c8204c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hi-IN/firefox-76.0b4.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha512 = "31084eac35a7d579efad4ccd8b269c04990065a4a93686d7acaa65d6d3733183229598c173a8372ad6f78907c57a7b65f63a27187817bb9144483c237cb06de5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hr/firefox-76.0b4.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "de1b69cd8b3fcc52275f6ae8a1b2fe85cab48c940ec62c8b667ff9c6ce4d4f32ff51d2aa46d3769a421355832e165b88f3abb4ef89329ae797c0abef4fed130f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hsb/firefox-76.0b4.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "7ecaa9b96d492165a155821b34401e218a507fa91ca3e9f72ebdb6fabcaaeeaade4c4ea2e0cc2e0f59a217575d63931a9290c03644cc89fc7c217262e13a1935"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hu/firefox-76.0b4.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "4f80a18eef58ab3acea954a48f48575b9a152f6204db85bb30e423a0b73013f1a10c71a76b2f3add3c03fcbbd87beac7fa510fc6075e23a5ec773db67e8358e3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hy-AM/firefox-76.0b4.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "7c09f13f31226705f63cbac2fd15d00d87dc16ad43839e0593d19ea7d69a40b22abf0d7297576b5574a7844d390c35af951fde2e33d80caec626b5370dff7300"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ia/firefox-76.0b4.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha512 = "b7af42a5925188a25c5f3e77991c7cad73e36a01e5948d02666cae405a7ba1c30fc59fc62bd5e799725584a7714b4cae97a335bed677ce957bbf6fa92c8f5864"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/id/firefox-76.0b4.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "2dcf6f549b08b4e705c4f7048225e1ca9c8b1ff8869a42482e78bbc58b0bf58bc7df8207d93229dbc8fcd5864a1d84c10af244f3d49a6651c514adfd30f933c6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/is/firefox-76.0b4.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "9500b5068ae3f72f21765cb1cb8ba35bc07d813fa6301bccdee917c00daa9f5cf2be70eb3cb2faa3d363ad3fddcefbaecbce1b7118251a9e06abe80bf9a30cf5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/it/firefox-76.0b4.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "fb8e9abf309a8396edb81ae87ca4cdf2d84f5a9370b565f1b509ee64740f7f6fa1afc1a0eece273131ced6bc22996ff1a72e84a7d5aa09d2f607398cf03bfd39"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ja/firefox-76.0b4.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "35be6d50c17780ac8174302c9b400ade8e7f7ff9e08d8d716ee9d879593c39c2aada3f49dac898d5004d7e5d9538b2e545db265011b1a11c06e1bbfa756badcd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ka/firefox-76.0b4.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "c3ff5e7047c0eaa90ba765f75bde2e7594ca8e63ad8e3688f61573740bad234906b1e20137308be05f5173b4c01d42564c1d3a70609f012593406986fd7e5bba"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/kab/firefox-76.0b4.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "3feaafc92c9f4760e1c87f2733127d46eed4a5986862b4b4aae8557cec6b21a95838bc5f768791a2406d8651430efacfead9ccce13ddb3e3b97529a4d17072f0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/kk/firefox-76.0b4.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "96ed2598748c08571bdb79df888e5a3cd3ae0bab46e039e79b75531d8e23a9cf3dd2445ff51d1718e69d80dc54d9249c142c61640e2c202655183de4f87f63a2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/km/firefox-76.0b4.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha512 = "8c6a66f77a6996b12498411edbf53d27b9a16c74eb74b586f5d1658edbecc18b427309b3e1e75e66db5a6f58821b5272f81fc01703f7d9e326318fbd4bc32bd5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/kn/firefox-76.0b4.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha512 = "3c3c30b44487af9bc0ceed9d200b5d6a9692c6574c29eb93cb163a0205f4833801bae94d565b1853d1186ce6709f3f10043079b802af485ce19d6614a7e7ea2e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ko/firefox-76.0b4.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "833627797838baf083b46f93705ba5e9d1e25a562034efa9b72406b703b77fbd986ba443fe19b2204424a586e361bfecbd7af5bb25d656d34c13c31f007a6501"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/lij/firefox-76.0b4.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha512 = "21b18f367619c42f637fd6705a73d41f70a64b3f129293b7af7c92f3a97c05536a2d79a23edf8d96e0ffb02715fdf6816be5dbc4c67b658202ba22a53a9c75ca"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/lt/firefox-76.0b4.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "89063af404f2d0a4c182625c387ff2455ca987c15b824f88c3a7463befa4b65b487e9da3e0d0b1b7499975d5ac1c8104e64c03f1fbe6236b6f1c429e68d4b6bc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/lv/firefox-76.0b4.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha512 = "b4647fb4c7ee30bf3a1c4249779e46031681cde4ea457869bbb474aae05fef56dcf190b6e6f70399430563c000d41b6919884bc3cc44c212d12b7f763b411157"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/mk/firefox-76.0b4.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha512 = "d2dc5d9b2a2fb97ebc9fa1e96a0fe878f5a9dc7795e702d19e93b8af7a48a33230516fa348097b1715503c30ecd1b9f372fe24c5f3cd335d2d83f9ce4962cb53"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/mr/firefox-76.0b4.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha512 = "6ae482acb98e30a89e4cedb2b763f8931e1b2b2f5afc98b686a24eb3fab42e4731b46dcea4428adfae08a72d1eb442058e4c297958f93b6c7ee1435090ef828e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ms/firefox-76.0b4.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "aa18474baeb710c4322df1e1bd04e6bed566a8f53e8932ccf9abdca3b74fd33b1127e006d9997550b31e1db7d4d6bb86087208d2589a14b47614a9b49ff3002a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/my/firefox-76.0b4.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha512 = "8041f361adc88462f3d1f63ad4789081f6750d2d78e063be13f770174fca48c18424422a8954ec2b1fda4d7be14cba964d5d2138ddb6a85d18c0b1e47d274e85"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/nb-NO/firefox-76.0b4.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "9136a922d582db8871f72deaf308d6da711b931b20a491f139e4d7b4fa95de0b028814765b84632d485727fd6bb40732ae716582a38bac59d30f709a02070cb2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ne-NP/firefox-76.0b4.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha512 = "41c6d2f49c1e08f7ea647203f6d5b94f6b8b8c12edd181b5865e13234fcc47275dff9a553a2609fb107e5b0f3edf0a1fbb5cbede97716ecf48b7a83a51b5d4f0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/nl/firefox-76.0b4.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "3ca94e9cec360529bbde7cc8c713ce129e8cab654d2551babb91192485b04233932cac5e0256e2bcaa55fa34949116d1d207eb73acc41b1cb86a1231d939e880"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/nn-NO/firefox-76.0b4.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "2914d4488a847bccd7aa008d43a659d46cb06e377032c8d3496da32a2c13387b8dc33f21ca6345abe874a9c6c65464262ee4bbddc83dfaf6532ddbfd554e2b50"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/oc/firefox-76.0b4.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha512 = "08e5e5b775b90684b6c275eeaf556eb4dc3e331db3f2807dca313273c4fddff37e31fa2ad36ed2dd7bd76e3ce5e7dac97a4bba85e7c4f07fce2d35bbb63e5759"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pa-IN/firefox-76.0b4.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha512 = "10dcdcb6268a32b84ecdeaf4bed76ee78b9358e9e84f4fc8cf868f080a4425adf228116d03b440a48fd82d0808335c9632b0dc967a417bc44a5bea3edd79bbf6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pl/firefox-76.0b4.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "7057c8e9a2b0b988d275041dcee47d0c6a2d23d765340e68846c66ca545ba6ee735d8d167ccbc57d8054f46bb4c074ccc22f88d51ade9492d6f904671be88367"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pt-BR/firefox-76.0b4.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "e4f71f9cfcae8afb55757fb1873b5561bbfd110e9deb52b65244d5c7db48467ce035b663cf972f4fa976b52da1b945e551ced73366fb859c17beabc54b0f20c7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pt-PT/firefox-76.0b4.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "d48c432d4c84a1288f7a98654a95731978aadfb32dbef7e3464cd468abdb4153fc929edad4d4dab9b19bce7cdb8545d5987c7ded1b600fe181f044b3675c6b5e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/rm/firefox-76.0b4.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "b6231ff9e8cc373328210dcf5389590a2608c60fed17fde5a880412614213feb5066dd9c05cc0ae813f6af1701f4469586b255930449a11cd5bdae1c5ace54b9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ro/firefox-76.0b4.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "919afe9f6850f39a61d825e2e7fb7ce109b3b942fbbfffcb8a9626b67dd9b5c7fbd6f43267c0b58b5fdd1f645366897ec15116eb21ddac93a48f7e3800bf0403"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ru/firefox-76.0b4.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "75612a4126aa52560e2cdc29b7c2fa1bd35fec34c9033f0ca276fb1239fe4dd50c1c4b024895c7aa8abb28435e58961adce4bf968922669dfd1abfbccddf40eb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/si/firefox-76.0b4.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "e5f4c69e7656a198f831d693465ae2780d33f0692907ac4ae9781c0a307e8f7a654377af0d76eb9d63d120ac65bd147a858485b4e211f5c119bc92798bd917c6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sk/firefox-76.0b4.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "547ee4c8ec75ad4ce583abde35a604c1b607dc7ce71cce1a955e4269fbb18dc20af756a07facb56fb194c2afda8170f4114511228dbe058c1126f932d6c94793"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sl/firefox-76.0b4.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "468cff45ebf0706887b01890431b7cbdcea6eca30fe86a2911de19160b8b068ab45a49801e28ea6413ece5fb6cad4c8bdd3601da2e237b8946bdacbd4e51b764"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/son/firefox-76.0b4.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha512 = "7daf5b95990a2a4386b04b0d11459e64cd3b101c57e18c514a28b28d1d62d797256b049f94809e423a8102269f7934b0074b2522109b2005c7bf317a705f5763"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sq/firefox-76.0b4.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "91b0e82ca4de76a5efe2a759f8325f784441c1fc118bca51b9ccf832f4866732dfa00b40c64c3cf767787ee5fbb11b9b09bc838c933c4ccf2d8472533cc1d07c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sr/firefox-76.0b4.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "b41cbce7747ad6937c471f7f54d88e506a415dd6fa145979cdb88c07e1e929922b54ae9e61a674e47c120c9b53e2062d9b8c75b2cb84825fbb52dec2f2ef2751"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sv-SE/firefox-76.0b4.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "902273fe8c9057b7d7778ac3b21b3230735d60ed3de6b48c9bb9554825c0e8f8131e7dd4a53aa4170f44220c25d64f23bf5f464402db9797a0d30c8bd3e388f0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ta/firefox-76.0b4.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha512 = "4fac2fc24242045e01bb7fcff75238d2cf4ad85da11efadc0b4a180a402deeeab4f4eaf39f32118a5668c872569e67dcd2b86793bbaa57391cf8c860a7bee345"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/te/firefox-76.0b4.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha512 = "9c6eda370b7fffab80d3a4dc76f19a660f17ddd845251f99fa6bfa79ed5bd8bba601ba4bf07c108186423ade57358461756e82427e1f5db77807336d4eef62a2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/th/firefox-76.0b4.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha512 = "38b01f7e48cee6ed453b48bf0924beff15755ff1b4870b625120bb82eb4a36825295b5f314ebac977b4ec1fc0be2f475ca8d288293526c856563829cfb5b52e3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/tl/firefox-76.0b4.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha512 = "a949c67154859aceacd77a2d090f1ef9e585eb11ec817f8b0ad19a5e661391fe24d33c4a996137ac5ed2c312bad833d07dd140aa8bb0cfc0d223dca8ed4b84bc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/tr/firefox-76.0b4.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "460430a84436bbafb814c722a66e228e3a9e6fb4b1e250a8cb5955ae43e7de604bdbf374db7788b6bd26e3f6e038d1fe88f250fe37b5a4798d5d8a03f85cd3d6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/trs/firefox-76.0b4.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha512 = "0ba10c70b32ec847e497d20cc8e872ea1b867a8d5c608df1568edbd15475d9eb4e53ce6e7a96e249a9e0835fbd18137d4fc69a5f29e81abd9c154acfdd0db398"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/uk/firefox-76.0b4.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "f6fa0f31ac6007420f9e6ba01db67d98e380375aa3fd0cf12ebf94db157dc35d905b76f5ab6e0087fde825cddd8031da860a15c59f6747268b6547546f08e796"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ur/firefox-76.0b4.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha512 = "b723e0c609705f4ddb29e3d3349b0195520b842af7ca0a1ccc427da5d0a9dfeeb1b71f2570c5c877b1351886bec5d810ae8ce38525dd771b10f9923fc076de83"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/uz/firefox-76.0b4.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "d0c085a5bb75e5f6d9e1950aba926d5e3b31af7ee96503fc8716091382ce9f85c9e9c6bde4c693034517299ed2a3c650026b0c811d969974de6b79db8f5e74d5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/vi/firefox-76.0b4.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "b5bb0ef8535422d83c24103e72a3fe619347f537230aa2f03b24ea8f29b726cd4fd5c94312466918a166ab8166df22403e3eb1c74a8aeea4bb3c71d4a378f755"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/xh/firefox-76.0b4.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha512 = "3b8b91d953a1f62402d5c8d709ba7ae9d873acdc7a49604453bf862a223453f02b34bc2857e0e3744b608c41fcc906ec2f3771fe4510c9dc0cd5b6d0763e50bc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/zh-CN/firefox-76.0b4.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "4446989a2531865b5266c7a5e4066a94399faba26f2349f92797bfad5fafccd658d0af57e2af4f62222b03818a8a57e7f2709d6f87dd97f9db419221c72199ef"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/zh-TW/firefox-76.0b4.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "a77c23a6bc0844a43569e91b2725b580c8f542804f20d81164328e7bf84332513bca2ebf3b60f0d87f64c450e7dfc34e81d0147a449738c7b6754e0cd134790e"; + } + ]; +} 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..997d6d984050 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix @@ -0,0 +1,965 @@ +{ + version = "75.0"; + sources = [ + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ach/firefox-75.0.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha512 = "654ce2cccf5b123e25509f71f4526f42052b3cd6eb79694de47f94363af4ab2b98b60d73020bf45c11d5aee9d0b3e246f72a7795cdf770f34a34f8c097d3cb5b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/af/firefox-75.0.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha512 = "615b948a59066bf7503d66a3fd574fa6523f85765f7e7f84d3929a78ef82b4833be6e810eeb95e266e3609e943703e1c84a0f7a26a542fb5e8a8bb0fcf379065"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/an/firefox-75.0.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha512 = "070d250a2a22ae6b97efc618fb65fe93efe209b82aab53f9c13d20c3c8bf3fb9b84e209661d0322759a0dbed68e17c69ce6ef24a53d9dfd3186f1fd987e7c60c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ar/firefox-75.0.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "36f7e51b0a1b7eb1c5df858cd0e90c301c162bb0413882dc3e64ed1240b4c81fde26eb0d9f7d813ce92c8bbae1e87a98e97d4a6360d765fb32ffdd84298f7f37"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ast/firefox-75.0.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "693cc4eedc5ec9a058ecb618ef70b322bc55b5a6159f480b219807940061ec22c92843fd288252ef30341dc1e42d0ad63586f5b9f438011726dc5fe88ad6037e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/az/firefox-75.0.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha512 = "9d78aa451a95f5c26685b6065c93c77c7b3f14db6cbc57ceb0b868a30ce2a023d28063d4a14b5617f65c2ebcb6eab7d2ec6ba2eab0909e44ab3f25b2b69471df"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/be/firefox-75.0.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "6b898118e72cb2311d6230a2a151505c1927a35060bf703da6ce97a5d0735b06e56b163d5e5d4542931453923cf5e0afb9b527d2392e324a509da5185f2a2720"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/bg/firefox-75.0.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "b9a12097e8312c099622c3f506c09507a9f3cb25e36f25967001c37f3840916f58c6693f272725ef3a35b22be916c3f4eea78b3bd0ea4a110647a0db53484cfd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/bn/firefox-75.0.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha512 = "b396e1e57c0e1cb7d554eb32ff4cd92db5458c5c232855bce42765aa2ab0d387ccd817f8a06624f84122f74dc1d5818992e9ca18138085a2f164ae3095485e14"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/br/firefox-75.0.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "3aa6fb9dc3300b38038873e5fb06e40f4e9adbf30aa6fc4f3cfa7ebc399bd94d3464081f304843e83d4478989874283a8ae1be5704d34f4e43b2a699aab31466"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/bs/firefox-75.0.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha512 = "baf9e2909320fa15c70fc4a37e4e15a89726079d49d2a7edb72dcc4908b59cd8a8ae4917c1f4338063f5b85b119dfdd9c8d0480d71dd4fc45cca77ce465a3170"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ca-valencia/firefox-75.0.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha512 = "a3e16f4ef89e8ffa65981cee1ed53817dc2ed235f2f3f7b9ba035db92ccc58893b10f5719fa7c37a400bfb9da07309f788c142e36e5f7a91e286d7f0d9ec3092"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ca/firefox-75.0.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "a68a75844cf22ecccd407f0478bd38b3ed6f19cf8e6b32cef2c9e5e6d03eaa621b60be924a649c729b6cca3dbdeaf518f56676cb0bc295cb50ebb1038571e31b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/cak/firefox-75.0.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "5759039f87134d0a1653d8175c53a0aa8a71379cc4aad75831282956711e4fe485e62040c3325f24684e2d676fe4208ec4319aa959cb29c9682847b35906589d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/cs/firefox-75.0.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "dcb7a5c9b89c524e61f7a99a2926099cb7ba088c7fbce82f3e8450b00554efc587dd7c4b757b6567519f0ec928edf50fcfd438367c37b48a3bff7d1ef66b4d51"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/cy/firefox-75.0.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "e788954f6ce821cc68afe9428c02823870533164b36123d7f7a9bce7a4d82392606d397713e8cf28b5360dc5897ca35bd3ff6aaaafbabb7fe5106462e8f687f2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/da/firefox-75.0.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "4a2da0b04a3f6cd6a5dff9c4d575d83b8ac195d815d4bc64e1bf59f5993c4b7e26fd56b81d7f0c5f6e5d084365b4d21477f7d554ab06a4f73400b8c484ad0fcc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/de/firefox-75.0.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "6dd27ff5b7eab20c2548cb0dded8e677334b58040ee4e15a0d1095cafaa209bdde069d03b87ea7133899093375d425621bce7a9a3816f62aa603e20304be56af"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/dsb/firefox-75.0.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "abff1c0ab591a1c2572e88c25c785f218bfb7b9d86c415f4390830f4d0e2ae97f9ba44d2f0a552356fcdc2d6ef9a238b6d00f1287132df60348728b63fa322bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/el/firefox-75.0.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "9bfa5257fbefdc079f5d372d7feb3f52f52a33137367676e141a3aa57b5fde64a1e6d218a6cf9d81941a89fb3917edb5f1c4883796148fc63a32c55554538796"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/en-CA/firefox-75.0.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha512 = "5b6ff6a0b422bd399a5ac2893e187e4f46c6afc106aed7177d3f3a6a9f72c5cf283a589ec589625deed0ce4e3d7d1d45cd9d8a6c7015c48b7187edeb1c07b129"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/en-GB/firefox-75.0.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "03e20bb7811ba53b2ae3f051279c478b4a240ad9ce0381e9a15daa8d04f15b11446456b05c84f41c3f628e3c7166ab2d19b8074c77b7f3190795cc4219be9be6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/en-US/firefox-75.0.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "7cbe8df35f61d82115ca1e4db4dd2e17cc96ba74cdf4e5e48aa4c1f5bdadf4e8b612b6ab58a09ce1352129ccfa68043ae92836b175fc5c328c3696f1f3426107"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/eo/firefox-75.0.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "933a872f25c6377abe21e33fe56a3184e605e299369cf11b84c0fcf420336f119abdc9568eb81b1e51bb58228616cab4c7171cfb8f8e40329bffb377a455c832"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-AR/firefox-75.0.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "5da5004a2985fce3a6dff5461f2c0fe174d3ad58e3dd37c4535edcd0883fad6f5a449f9f898c5bde5de3aebd9911e87e82c99bd48a06e9d953e38666e3f8fdee"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-CL/firefox-75.0.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "c2acae33bbf335d871ef14e27d197f4378e8ad1a94b9ba2df28497e4a72fd554a1d9428692cbd7cd5e3147f575d7517dbca07b3edb5eaa66c390000e7cbf5a7d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-ES/firefox-75.0.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "ce8ca7ce217bde7b42c9ce6d64874d37306754ccfd61f0b61c898e22f84feba6e30a33468b9766ad96f5ae8e6e674eab93881f36ded52f010216d8efa5f77907"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-MX/firefox-75.0.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "fe32f01fcc01ccefaf7207fdc56da4450fd17928185382cd738d7a22425b5c3761ef60d0a9f7d35d314d0b7884859d614f08903eb20fb0a679f27dd1f4b136b2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/et/firefox-75.0.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "fc1855e6c7bc19f181c7e87909a79e1a5d08ce1fd38f52d65e20331daec8af8b54c1bb7f90eb1c3e53c900f141ae264f55895f6fdd3690a83945a26707eec27d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/eu/firefox-75.0.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "a285ac60590113e41f04a85183038ad02f0d7e24fb42fe1a7b313eb6d3fb5b747ac5f90364278f7c8cc3f35d0ddc86c0bfbc7f7fa7ed2adc56ef6c77c5b25ad8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fa/firefox-75.0.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "84ee3198ca0cd8a3b20f4c696f6c08b94d35f9346e4443e1d6d6ef447d94a20fa1d58488a12124440290c4ae00ae827ee59c0cbdb7905210bdfca0c012f7e01c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ff/firefox-75.0.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha512 = "f3b615fc63b12ade11fad5b5532d81741147156ae84d08b1bc3c0f43f2c204993601e1bb363ce7e3ed7ed3a5d790428ca51e3cb5decf56f159bf7a25e2e43a83"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fi/firefox-75.0.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "b629b55fe05c53ef814b091ff5222704afb3802630a5f44047bcaa17f8140c834725eff9e51786e55336910c462ac07b956878b551a5a48190b1ccd2904e57dd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fr/firefox-75.0.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "1794f58a31e91916492319091437ad9e5bbed95b3925854f744e6e635e9fb4c06abe73f9fed429fd04027c12cc29b63363e60a0c099640226a5a626a428b3002"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fy-NL/firefox-75.0.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "3aa9f95eeeadd81d0ecfa93b1df9b1b455425f430968395bfe65e60a65c6aed3d9316f842673c2638acffedfbf1d93940086f6b7a113496c7d8e580aecd8f25d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ga-IE/firefox-75.0.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "43bb9830e38dddcc59480a7e162214e37ca3516cfa0d773c4851ec60f098837ea2849917eb460ae7e388612619b13cf29d26d9b1908a8734b6fde1add36c65bc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gd/firefox-75.0.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "8cf151995af5ebfaf9f713dc7373b9ff3d12ce582c4fd062741eb99e291aec68fe636d871709ee0a0bd628af0e9f1a412a12289c539334783c7a5d6b6b0d4822"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gl/firefox-75.0.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "da133c0af8546ab62c335faded8b35f917af2cc7fafac8cd22db1e3a867b390de60a2bc15adc7687044702907a675eee42b049cde335d41a55894537dd137fd0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gn/firefox-75.0.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha512 = "a1f6063560d70f81cab8d40f1f0e28ea866f284ec94a0093fe874c96795ad3e823c202e82dee2de7578f3ffc1231ac0e8bdcc1a21c44107cb1d4ab56cb56effe"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gu-IN/firefox-75.0.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha512 = "60123058d668641a6c48a7a6a4247337515493267b3489a16e9f7fa2d0ab1ed8a5382974705a156fc041501560b8f6a2be3a97b47ebfdb5f6f527e63ac5acbcd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/he/firefox-75.0.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "7693bad7f6505cfd1718e8268611133d26826adc49003eeb6d30bf38ddc1908c39ec270b80e20463c016e4b367ea8035dc8c9707b410299581e1b09df7a08df0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hi-IN/firefox-75.0.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha512 = "f5b58f3507852cb2d900d1398c934bb8de725b3578d1037d424f5b81d7cf2e0a247e6be50037e027649dece8cae55c579f81205259c93f22eefb2d67af8b0d57"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hr/firefox-75.0.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "6504e82cb541bcc9a893c5adcc063a8de3b85e68329d3e5dee0a461a0c614b330d7b59b6f3fa0195a01d69ee011017bdf999f95fbb19ad25136b291feef1ccb3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hsb/firefox-75.0.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "6d0828ce7c721aecdc66a1df441cd7ad43a1e96487797a414a5a9843bbee6edc1ad2aa23d82edac7b2bb1264a0880b1852bf2cbab184ac1f5f91da99fb4bb06d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hu/firefox-75.0.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "a252051af8e299e6b21e9d601e54cbb0413d73eebce693403b522354cb0b6ceb240ef70b50c99ab55379d2a99a0f268483e2b0a02da3f9684a5b7a958b732cd1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hy-AM/firefox-75.0.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "aca7eb55987d98d69f024ac41414fc9394c8f05949bde1880d191c3b09bdea4798baedb4a92119faf923e5a36c760360d87ecfadc771a57f6425302483b6dd08"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ia/firefox-75.0.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha512 = "e23d26cd4f7cd40610ca841fd2b8be72f199eb2102560002c419fb6f00b1f2fffcf5fad6fd06c6e7a0146d2b7525c006e6dc696271f4bd4f5bb3bcefb8980e9a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/id/firefox-75.0.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "f8ecfe334dbcf6598cc2241c56d6496ccf0755494d11c26e2624803d3f1a6001944d8c9b78c62bd8bdac85fc3d1e60b90212b8bd8b2842e0faf6824a1651a31d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/is/firefox-75.0.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "9ce50d9746bcf6384627a83538a0e023091b7f264c6364e88de2bd8ebed0e081e1d31681ae0679d2a88f462bf9e04d7e9cd07826822cff3db1a1d338816875ac"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/it/firefox-75.0.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "9284d8657a4097696523cc07217908449102f46dba9564f98b2e4889707082be4cf285f889f650ceaa92e06f564daa19691dfcfe95b0b4a865987b767665b837"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ja/firefox-75.0.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "68bfe86b27d5d5d71121735a627e29964b2c3dd70e33e12f8ce3a9d380d253c33bede8d33eb7f0185acc68deb388b731ae6b40c7d71ac49c6fb5ee60e44e787c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ka/firefox-75.0.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "b784f5fcc063c98481ee3eae767eb3df60c9ba4464fbb612cd10bbdf1abf54f5b2098700345f2494358de1ced339f1fade979ab6603f036e4a2f76b25c46a33e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/kab/firefox-75.0.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "ac26df50c827efe7fecac013ae417a4b68d2a49062ec9fd443f5ff6d47646333ccbf6a98e92e0c8c2d5aa293b170336752c92d33999e41e3ed163292a6bf3d0b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/kk/firefox-75.0.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "47e516fc9fbba8e5b57fa3172df29fccf8d318fe1431233c2d70c5c657d40f2a8af1b20daf5e3d6b3978ee093b1d100dbf7ef8838385791b58ce5463d6899946"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/km/firefox-75.0.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha512 = "ae0baee8e59fc4d44ebf57d7f708d3f30126989e4bd32309d8daa4478facfa4a929a96972acfb248eab0a1e04597b2dd521a4fee40f748fb0a4f6108220464de"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/kn/firefox-75.0.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha512 = "c0c37e1b36408b0d8a4d34fbba254a6d6b37c80287ddc4abce88a623ba3fd5b92108509bee27bbee500abfc08d364886ce8ed5b816b9450aacd127aeba39df94"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ko/firefox-75.0.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "8867aa119becc3e88c63096c5ebfb2bea3a396cbbbc18f35725d5983df098543827bf6c069292322507b871263f744ffb411a59437687780a9dcafd276d04410"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/lij/firefox-75.0.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha512 = "c10c9dbcbd911c3ce324aef23629f37df959797128fcea7373f3d77fb8b3d538850aed797e754bd15edf59e666412158bcee2c1a9ce8d040d1b457de9ee007f1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/lt/firefox-75.0.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "58517b58ac3c51c5aa2fddc0b5a458d100d3eec44e51c6d188a85c2e7538caf37cabb1440f4ebdc97d54d3677697a5fe07235d67ddc5c4287bcef10f9b7dc3bc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/lv/firefox-75.0.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "9e07357febaa5b67eafa435d30a2a8f75f2ad25d1e87968cf71b8a265a647ea0020169d6f2cd77c4779dff905774664f84ad26fbcc8b9d4c986dfad52000e175"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/mk/firefox-75.0.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha512 = "249c45bf3f1b22e355bcfb4f5afa829163d8d1d72a8f192111eff2158b10585152c9c2dcb2fbc9ce66d8351d83d83236a04b42da4607fad92d2b4e25acdd39a4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/mr/firefox-75.0.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha512 = "b5860b41a310cddc4dc81074f01deffdbd10ec3f682aaf3d27881f8c190cf5ba39c428b7bae688301f8fb40ca12b3cfdd9377501a3e750ce8995e1331fc015ed"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ms/firefox-75.0.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "a1b88f527ce9e4d9f69d4b727313a68432db2d989d360fe5716f896d61e7dc098667720a2c60e33612b43157566f95abe6f1b149f7aa507a9738753e6c3213bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/my/firefox-75.0.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "74efc375475884fb9bfa9fa4d944dde0f6c734d1c73676d37b80a909618773147f12faa94ed6570a6aab6652c4c5c32cf386ac096acc025ba6c8440d8d345026"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/nb-NO/firefox-75.0.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "c1d4eafece0ba52022c96fd939651ad047e942fd9128dd8c6bada79f2d0eba01311b4829c805eafbbcc53ec4dee34d14e015742a86ec67de07d84d6950fff41e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ne-NP/firefox-75.0.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha512 = "a97b467bd40e1564973b18ad6acb10412da67184daaad25c34b84ec2a8f3a840f01fe4b9720f4774a546a7e035338d9ce297eeb882a3df2b50f6a9cffa2bee13"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/nl/firefox-75.0.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "2d84393b851618e1742616ab6f3b1fb21b7f00cd65a98438cf3a1250275b7b184f6eb0cdb1d1425293d1ecbcf4591fba392283596146a5b18f29166111cd8844"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/nn-NO/firefox-75.0.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "c5782ddf73e00481ed338ccc989b2c2760f15e2b2960457cd3cf6403d6d3ad5d1b5d34cc6194b3a1ddc83df8d376796802d4e945b8ab47b7b7e1a4d5a4387a6e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/oc/firefox-75.0.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha512 = "cd3a3fde21ab21e08467ebbb45d0a2d32cb901c2b6807edd6298eb75bc089684f9fd26c0741295f2ea82c2e25cb375bcd1e45e26c267c59d12d285a00f0d0b74"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pa-IN/firefox-75.0.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha512 = "546e36c717f8a0c216c32f53cb56d2fb709702052bd52ac1184860c7cd755f9f0d657b8955c3f6347c37d382600ff9cf5add261dd066e8881e6a3e410fea151d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pl/firefox-75.0.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "837bde42f6b9c1aaca794be4fcf819fcee3e3456a883743882ed6983e71f98ba25e02292bb01811958a9f21cedac55586deb8066f52939971c348e21ef5ab75d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pt-BR/firefox-75.0.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "81a2620aee0f210782aba431e7e9e15ab2a0db49489aa61cf7a6af5944e59c62f38b65aafb198355d5d49aa5c52e1052ba60c03b1772916a972ed06aad616f25"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pt-PT/firefox-75.0.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "c6b317d17a14c5d5d428410f7e86c7b9089442bcbefdf1a44875373390d649b2f7eff26c09c5cb32fd2f8f42293d289044a7007dae4b075bb1fc522b63f4b18a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/rm/firefox-75.0.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "12e6c10fcc9419a66aef11e50969fc6adc7084db46d2cc6202a08e1a7225b797fdcdebbfb9dff6a441e3fcc782cb33753361ef37767e5ccff35af2efefd82256"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ro/firefox-75.0.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "c03df00b865bec9765d28bf0171a5eb6a57e3c8cd64a9002f17bf67d4d0c118414d6b25a782aa3eaca50d5997203c40e376562f64a252aac4b26fd8419872feb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ru/firefox-75.0.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "418b70ec07a966a51c101e9ae341b0c949476452b75ed00677ee87b032d592fef65e6ce746004deb0d89b94cf9e2d18ffaf1d388026bb5024dff0994dc2fb058"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/si/firefox-75.0.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "5adc26e616a8116fcd5b9579acccbb402fc5c88ac334cbbaca2da48e246c7e44868b6454c75bea355f5cbf6a182346efeb50f7a49b2c3f92c8fa988d50e19e52"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sk/firefox-75.0.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "d173c26b5ba44a98070fff9996efc5a35a3ad90de128c5345a996c83d4a68ca7d09e588bd75530c31abedd9f20f38561e22484a45e20fdf66f1cce682dfbc31a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sl/firefox-75.0.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "1b16278f2f6e4df7cd437a7bb6a17b950540dfed646e948585cf0bdeba45630b4d5bdfc249d4fb49bf37dcde8a415053ef4ac3384c2534592ba189264bcf4e0b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/son/firefox-75.0.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha512 = "7e9c5c578d9669f47f3871a4d47e211d2ec9215633163605239603c0fc51cce1d1d4b5c3c5a06a9c29c16f82c3ff2583fef1b78652c8afbf093557375e912430"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sq/firefox-75.0.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "09dd8df3e07b2bcc59e77c55ff4f9b607c5c2cd343d784a3bfe172cc09fe0fa31ea519bdf671206a16ae73fa9550f08b77cfda0e030dac455de4be16750ce431"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sr/firefox-75.0.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "5a4dc12d716185ea86a8f31018198dc4eae0f791b04a247d2f2807d88747fd52fa39904bcd440c9da2e0225e64445c20da7cd7df75198c173a39aba59326e613"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sv-SE/firefox-75.0.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "7082fcd2db01626e90e6850230b0a2b51c0eb394d47604a76de5d03e30997366f7331a7247e7610dbddb16f50c2a3259a842be248614fd3725f0063138e18d49"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ta/firefox-75.0.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha512 = "a85ff07912d369b915d543f9d06cf383a180bd14fd9355fce6d918506d8191da6f89c32fade5a9146700a95dbaa4a181fb513df1b8f28aeb7a09641baeece0ec"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/te/firefox-75.0.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha512 = "5313549c22fba2a3bad6550a000e59c15595dc0bd684a14ba025fe2c4de9097a1dd47566b8f256f569b74a21d20538ae89182d5278af01c674f50e00d49c873a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/th/firefox-75.0.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "3f2b038b17553c962d2d964d342bb0884dc4acb4204fddfa90f8ed3dceba1aac40d537745aa32629402a7077a97cb01efd1225009ccef5412e14fd08d2aefeee"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/tl/firefox-75.0.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "1bd4ac5a59a06a71fc5bdf976e76da9535d0adb74da0aad922ce5ff6101bc48a7e6727c3f2d37161e1ae48be2ec47c2b7f6cb614a883739a8fa843fc5a5602b4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/tr/firefox-75.0.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "817d6e54c256d72469f5e1c6f6ffd8d95669193c3506a36d9cf06756847e074be018ad6dac9ff8e91c7720cc70811df2768124e4df85f34f2963a6a64e9f7d26"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/trs/firefox-75.0.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha512 = "f3d691e6f04658aa09b4f864f0adabc9c8dd6a2fc135065126ef124f025a5ce6768ac9792470d60fb436f8d21229a92e1acb6abc848b3b84a2026179c15ae1cd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/uk/firefox-75.0.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "679b75df8c1d2d84a7cf9950a65869484cdd20b0a1c016007280d08782c2ae2ef393bc553fa5c3c85177bbf922e62158fd57bab43b222327048753934aff5bfa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ur/firefox-75.0.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "e4408eb34923ec1f668b7313ade263d1cdfacf1a748b32a6aa54c3c38886c8e1ea750179b0fb6dd41dc92fb419c9307aa2f32a7acce7248e460fe136af7f175b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/uz/firefox-75.0.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "30a9c63cab66e47ba4b7f8bad3b798e720d3668f44f230581c564e8887b6674d2df90b8534a1d9b28684b07f1b928585a4c4b46edf1e740e3541b60b5607758c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/vi/firefox-75.0.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "dea4cc3161f0d1a79f91b8eaa426a6fd8ee045d843261e7a2191bbe7addc9fa131b2d9455925381957f90e91145711be13fdc3957ec4bd8fddb8252b6f8bba3e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/xh/firefox-75.0.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha512 = "d1fa435a17e23f3228a767733e54d24ba000599822fdb507d3a6dc35d92485bb87a3a398c12750080f79ea7e81dcf74dc73cc1747f923c0015f4875bdf3e75c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/zh-CN/firefox-75.0.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "5e236fd89a0c099da13c65c00526e93d152258049f9b7c8ff0387ce0ed6b843504163ef82cc205b01e0a0f265602b2d6ca64aa04c811cc0a6e94d1a8dc952e9b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/zh-TW/firefox-75.0.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "5b6b876f3dc8c2bd22ebb183cd4ee16a9157e14d93951e840d14a11a4067f85975c72873b82e49d797f7e67c00df6898e423a70360558838e8a18d95377af4ce"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ach/firefox-75.0.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha512 = "33ab7bae767308f01bb5d0a5bf7ad73fee8eec71d8393246b704702b81b46240cdbf02c041753e1910bd8171e36f380c77a21afa2f71926f25dcadcb2d6c2b2b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/af/firefox-75.0.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha512 = "83842f5ca120205597b6eaa5f03e2f1d720a91cf3323fd44723c79c9aa3bb73e2c31054665fb32300f6ce707363a32d5d34859d7407015d3b4456c831b290ecc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/an/firefox-75.0.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha512 = "2d53551b4918ce86842645492072db26fdc50fd4eaa4edffaecf04fbd83bc597c469a5d795c62aaffba4abfd3d130752d96739fdeeb82970c35826d005af16cd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ar/firefox-75.0.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "1e42d930aa9903adf8385b695bd1a3aa051d51ad494d1dffc5d2bc04ba95574472daba608c182332195d7d60069b045f2a5c5762b7505e14ed7a639086fef264"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ast/firefox-75.0.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "d52c316d21089535252ca626b6774b65e5994a62732203200a39605d7a5bace9c681d1f120e1425936be212a9ac871c24f739dd7d91c0f371029083e3d3afde8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/az/firefox-75.0.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha512 = "121c1e51d5b58f9ac912d0737c23ec34471a4c8fe99287606a350e70890edf23b28c9c145d8aa0d29d567753d047d484a0156c1f004228682a347145c1bd85af"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/be/firefox-75.0.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "f7c3039db50db23a43575e5ecda63643214731703179a42007b2ae44ea20649dc9629bce1f9738f35a882841666b1c3a0ff4bcfc38ed0e5005bb2b6b058b44a5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/bg/firefox-75.0.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "d9853f385468a9644684f3accd7572f081395071ab62b4bb8adaebc9213cb8bad8772ba613a404f9a2f0e75469a6d224264ce5d00ea97fe2f16f8d0a044b3104"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/bn/firefox-75.0.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha512 = "1bff545fa7dfc083f07c8546b5d2c18d1bab3ce4844fb1bb667d151c081c639b3fdbc2122e45230ab45bd5251364b45d937d24a7b285b69139f4dc544e525c7f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/br/firefox-75.0.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "cd724a5c402333792e5d739ba274c87cef983d3c29f6371cc1788a6b285031c5150b21cab235b603b240da3551c044abbc283f8313c8dd8b0082677b65406fd8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/bs/firefox-75.0.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha512 = "47770c4421d2ec0035b0b3c6158462042f792f4ac87887c6704be2f3d34c8409c3e0570c6827f87e72c4697f89e5f0e0c574b9e90704798e9fbeb80c20968aa8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ca-valencia/firefox-75.0.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha512 = "9d23f45405e98eb5d6534d19e09237f7488cd9a6310acf85935c0f40132a91ba2f355a15a46742796d1f397d65e4f17d599aa81ccba57f2acb76da80c2d95af1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ca/firefox-75.0.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "4f27d129114a4db3f597fc253447c6f27bcfb566fb197dc4dc26a984f1abbd868242b1c0d077e6d514efe1e2e083378304ff490eaba26f669ccfb5a744d3899d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/cak/firefox-75.0.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "522852f4ced9302068b6251a33735846cbec73bbbe9ab0371e8456d3665bcddfc81bc4c258ecf4f0e5bc8f6f15ed27d3e4f88ffe471e9e8af4beeae85aabc949"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/cs/firefox-75.0.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "1192630fffc7bbc3232c8328e066f8392f967da5a2254ba726243ed7a681c321747a39397dec8b11c5ddc4d725445712ffbb238677856b2ad2ddea41c8db090f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/cy/firefox-75.0.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "3a327e31faf8eae17c60f7787bd53249957e5177d38ac2138cade1454ec4bd870c429215f1e0a5b9cd124aa660cf4d77a091ee579d865470c5cdae0703086b02"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/da/firefox-75.0.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "297291ed06c290fbd9ad6172afb790e8f8a619ff0330337f5e777d1e4ef17ef52ff1cb94b2966161639a28221dbc9ce2eb28bd9ad14029ebcb878f79053386f0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/de/firefox-75.0.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "7dec33f42715250c9a765c7f3f4f177101c69f7150661fc844c4742434a8d063fe1bc9149adf81c2729e848584fd6f68d1cd3d697159a1d5b4ed46d8dd9ae9ed"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/dsb/firefox-75.0.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "b5d8c78df21e8f8f1d96ddb042dcbae44b4d622d6d39a0a3d7967e89004e5e229aee84842b6fbacc90ae3c65bbc252a9a879b552a2546ae168d7f07cc312d207"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/el/firefox-75.0.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "8888a897dec9005edb469d27f40ce9ba3446c4ba713401f40955483f329114271c34a832afb93b48e0e41adfc1910e4813f79fd619a085ea15443743a72eeba6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/en-CA/firefox-75.0.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha512 = "713522e5c5305d111bd1eb55bba42cf201da74641593506b191ed1ab3eace55c1ac9c9a86182d667d7eae2bb4cf6fc9ddfa1ce4c8d31dcfdb0f2fab587fa6a8f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/en-GB/firefox-75.0.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "021b66ac6720deb68e45b1bdca86d8aa7db2e74cfa7391daee108cd002dbabc3f6302f380e6c029c7b56781dfd9bd34f8cdc1135851297e4dac9dc56f762eb69"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/en-US/firefox-75.0.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "feef8046d08aba827f6dd2510cadea53a89983a4889c9c2baad3d88123639b90c8052b552e2bcfb03b6e9fb43ebda29815825ef7fd4d9ca867f238cfaa0ad1da"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/eo/firefox-75.0.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha512 = "49b0adb7c5dc8e1b7ecc121f65e8a6853f497a9cc151b4eb9ff6631af33b12f7b00186ac2d13390cfcadd9fbd1b361a597ec1d9da62b1a0466d85d8e313be4fa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-AR/firefox-75.0.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "a74988338fec99d50f5a16ab6c59630ec1e535338da3f23f05c7967bdeff41cb058c238ab2e873f96cab93db821ab066e6222397761578a12fa73b42c0ffe3e9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-CL/firefox-75.0.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha512 = "b4abd3f7abf1869bf360f5987e13c37b142b4c8afde51c790feb2563351a4754f385e0880ed51a1cd7aa3a5ed907e3cc22ff3c707d2923c47459c977cfedeb08"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-ES/firefox-75.0.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "8a9c61dd9329c983c394c33c97c962c703fcf51a283dce09bb781d96879450adae5d8d78ca9d0d1892380fcac7ab95651e37133a0f836865a13946e2cb8a7e39"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-MX/firefox-75.0.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha512 = "a1b7dc0eab0d4a8c713e27620235617a244ecadd62a125de8b1b60de7811a4d7e65051569ad4391b2a312107cb750c74d4c541c580f3af86b88b2fb84d93ce67"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/et/firefox-75.0.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "181aaa954ff9024a4efc211bba348461c28b892b1cc04eb50989cc8da78d88a350341de520b4a60da096ae399c28ad05802aeb73cf133171e8a4ea2693cce5f9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/eu/firefox-75.0.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "893fa9700ca874b2a460d830f2e10f7999a6b521a351a88bf480232ca0270581f4ab334ac2d4721e3f5fbaec0105497afd5ef09b13f3b96a1e84556db79d0ef9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fa/firefox-75.0.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha512 = "fbe8cefe9e626d07f360b1ab30fd04c8628669f5164d5dbfd12cca72e17e6454de367e170565e0d7f1c30e300d315f54d7c6cc06c8367e6d0c428a994e9ba067"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ff/firefox-75.0.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha512 = "7ea337b8f3cf536749cca253e063ab326e66a0a33ee0bb7863ba7c46d7d9ceef443bfec0551770346701f23f5adc2750225e8961d6fbbb48492afe7ec39a1272"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fi/firefox-75.0.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "c97d9ceb5a98acf54bf37c1397973c2872a039812bc591979b44497e7f2db1cf7bb5fab75b4a0cb70df2d48eee4cf5fc55def69c22da9a0b5964e2af81bd0457"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fr/firefox-75.0.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "15081d21ed77c376257e23cec42ba26023792cceb634b0d0b928471e1abeba17d9245ba5454452b17e786e576e19e8e47f20478002a3df2e15c56e8cb19faaf0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fy-NL/firefox-75.0.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "c352989e6ed3eeda8ce724ff110bb09c2ad3ce4a5b1f45bd9335c1186dcc1c310efdd24c9a2adf7a0f31278b3989d79a683f7f770670c8b1419967ccc2e0704a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ga-IE/firefox-75.0.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "ba27396ca8f76533033bc78066074c3aebcd687f1621b14db92a4952b226bebec0bd399f697dac92b71e14e91fefedfa6d4188dc067bbd575e07317182408510"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gd/firefox-75.0.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "f18b4acc47fcb9135ac28206011b6fb3fef5dd6640fab3e88d8e8f9dc23b19d427fcd461f70a00750c1739b3e3f6874c171dacd9c54b213eb9076dbb9a511b5b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gl/firefox-75.0.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "e4bec63583908fd225b903e45007e29f357e00fe7901524d5fa15bfea04211f55d2557c1ccc1fba28eff1f2dfc5b364cb7c52d438428c26f09aed3592f817c50"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gn/firefox-75.0.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha512 = "dca1a1062e47b8644a7e1a772f6abec1ff615d8857d74d576baf9a515fbef814f6d2e89878a3ea2aa4a7efb6931caecb3845f6eefec91c70299c463c2141689c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gu-IN/firefox-75.0.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha512 = "efa6f443a092585defac47cb75d8ce85faec76c2624ecbf4cec3b4e8ffe4e582de0fb55f4901bcebedb0d991d709338bba212117fe59b3c6496fc5f35c1a7694"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/he/firefox-75.0.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "ea76707fa795234f36088749cdc5a139482577d4488d476856cba926e40ce24d020f76a526efeebfd8a5840b9ebb2a93d71ce9be9fa8cd9255e6940074f22a8b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hi-IN/firefox-75.0.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha512 = "73bde105b324df05adbc581e59c1b723b1dc0ecd2b35b9029ececdb83acbd5cb9946382f78c9bd02a480635c58c9578ec982d61793ae7e64e5cf940c09c5a508"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hr/firefox-75.0.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "e237486d9cc6418d213a006e07c23ecaa3732496d169f7a24a568866e1ec1276aa9096c16aa696baffe689096b8321c83e9d47a119257effd77c3b1b938323bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hsb/firefox-75.0.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "be2a1bd69573ae49b011f266402a5f185a4eb8eb3e9b506a606b1444ef54091b36023e6d2dea2d118fa4ca5cc58dcd1afdf2e5dcbc3d38a7ceb776e6e06756b3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hu/firefox-75.0.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "405ce0eb8c7694ed2d9bb5548f8e56d63c14e59025cda561bd49f0deda1bf0b280c344138d154510ac8ed124e4ec95528f84212fe1634bf16477615971148f17"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hy-AM/firefox-75.0.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "21d7c5343f62cb8a841872470013d9b836eecb0f780794108f56120c4bf26ddfe923400e630f6d981913d06875e7473dedaa3d4cbc2f9173db80ef34c3a6e0f4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ia/firefox-75.0.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha512 = "a8c070f164ebda582055628b324e03971602f15741314ce26024eec0539a92341020b7fee16cfd849189c5c106a0b3dc1fcb04d3177d7a4b06bd0cd2db74b614"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/id/firefox-75.0.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "4bc7b360f3fb9a8115541da54f867c693e7c8c98bf24685ae9ac1c052c4cf54126ccfaa3aa2c714a0450ffee0b6198370b1092ac99ba13c289bc46a202ac1189"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/is/firefox-75.0.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "c9a1c9b03d3e7089a12f2ccceaa525b5c9ce62dc1e602a3899914e8adae571bfe12dfe7b2b5e54a4b2de01c869c33fa1f7478d1bc6d54e4dcb284ce1da7b32bc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/it/firefox-75.0.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "0adc5cb03da1e36650c90de0cd82065a014bd944da4ba29f80f2fe74eee91fbff13378011c938bd79c110bacd0e04fcb5ad6ee7995fd76bd5ee98cacf32c2c98"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ja/firefox-75.0.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "fe743972968881f327812dd0a81ffb8564e0fa7a6f739a3a59dd039f560078827ddd36ba057b80792347b1cb19e262f34c276f6ce788453089ca0d8cf8d69a55"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ka/firefox-75.0.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "0715da694820f26550e0becaa151c19d366954fcfc2af7084b880cd12b2f031b6508e69b3ff687941f71c0b3467f5d118ec3f79be2cea6cdff22d2b5e4f050ff"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/kab/firefox-75.0.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "2de6d3cea7077ddc896cdb95104a122b85f001013c0f59902b049423fdb370d5090a8630501009803592935fd5f90ade7625ef64b3b0bfecc712141b10f2366f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/kk/firefox-75.0.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "a0a1a9e7c2fda1bc92bce084472d432d4007fdc96707d7a926e884521c4ba8993374ef55179b7da7267d14699f079f5722974edf2713d449a59b76f01fb897cf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/km/firefox-75.0.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha512 = "4008860591482c70b0194e565f3f1fbb30b1607b486c8a3afc3e3d9465e24c3cc0da2c889905a7cad349484a386d7a2082e86e29f41fba84073cabcd75c5e358"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/kn/firefox-75.0.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha512 = "2628e52d65223c5a1941d94435398041cdbc7d5588a2227a9f17227800576a56975d5db2283d295e82e63e10c4ce6d3bc7999329fa26dd3c8d44dea025f96640"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ko/firefox-75.0.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "9b78d17bec3f243154cca1ae1d955282e8700dac9bd93890be6fe92852af67a1f81eaa5dc2465e2881398508af90f67fcb2c90d54edb1fe874f9717bd25dbe2b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/lij/firefox-75.0.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha512 = "01e4dbb561a962b4332cde78df74a229d6aae4cfe56bd471262fedd9fc16a948415e6f993724ed53eb878a999020b22f761f4ee3e6f006ae8447513201ed27d1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/lt/firefox-75.0.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "c17fff73a4f72378dc3173ea0ecde0492937a6fcee4108935126256f0ab085eb934be830907f1f4464205673023ed3cb21794cd540533f4e8defb42325b3bc93"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/lv/firefox-75.0.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha512 = "22c90601b8162512ac045ffcc3d186dcf4e0d9d2330885e07f7df72224a840073415de0100419b981c08b73ba4c92da01edb49d1dcc9efb1abc0ce47b94da012"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/mk/firefox-75.0.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha512 = "a185e91441e302b9111d558c3ea0d7601347e843393e00adda74a903ad0f93a23ded2c8e61c5eb628996c0ef5b0fd63209fa9fd98f3a0040a9a8d419214e5df6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/mr/firefox-75.0.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha512 = "e8d5066dcaa0c7168f804d1f1047435bb188c6daaf3f8aa472654b617c7d4471f7469ac2560782b6463c315ccd9ad60efacc8582110bec9279cdd16dc7da7d09"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ms/firefox-75.0.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "dcdb08020fca5a43581b1900316cf7acba285a87b9cc0532ecaca8f85d1ac3b188eeb9d65ba68557d4350b7f2e0fee478dd5a9ababfd3c40ef1f7b4c57f08a39"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/my/firefox-75.0.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha512 = "d7005ab40feaa6053af8624130ba4e5d60e54978452b6e63a658afc8321c9f4a7eed5406f07a16961f6051e794943c6ac6582e1723cb8a518332557a94dedcc4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/nb-NO/firefox-75.0.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "b6e0894cae9d257ce4d0becdcb65f9fe3693a947cfadfc88eb51ee93a4ade9924895a7f252317d145304d5bdc866294c437a5f03c15982fef8a970145678aa0e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ne-NP/firefox-75.0.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha512 = "fc7a97902679402185813d666ea65cfa059e4121c126a4b82f2fc70ac04790b7e73441c4a3e7c49ea6292e049792368f7abb9924c74b52ca342d832231e80c51"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/nl/firefox-75.0.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "c96cfd08d2b3bcfc3380cfa4e7945c92ad6c1a1ca1f47db6977769792752a4f64ee99f90f6f904811ff3f1b7b2d07ba570ad1b80337d22e34c6bbb6ed0e511cd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/nn-NO/firefox-75.0.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "7e10f521aa2ea9900d03a2874861f079171a62860f3508edd7dc51c39db88cef7a603ba0c6ca69469c2593182b027d354b6a8c13209beabd51a8690717d11eb4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/oc/firefox-75.0.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha512 = "43413c027b618cd5ddd36fa42fa26f99a294ce2f6f33937a299b55d698b64b6e85d04954101ef27e7a739c00407d7457322e3b32d38a90df87529372c19e1b67"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pa-IN/firefox-75.0.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha512 = "fb59faad43d729eeff12e1eeab15c0712f2429892574c526c1f59326518c9c652475177c9aba14aa591e4c449b133a6a8fcbef7bbc8d0c89b2b4d5dffd053abe"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pl/firefox-75.0.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "406097bb810d60a16a88b675f6a893af84e0de905c222534b0e09802ae5b57912d000188920b06c4ffba198af0d096e42f9984222a94f53d45db64f41a4f3f9b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pt-BR/firefox-75.0.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "519f9777303a5dc6eca8933406ff0ffbf7654c75305c16e13f1600550d924569ded9dc6ba606050c9bacc31ecbc0d6e43dd91dbe8cb3b587ab71d20467564cd5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pt-PT/firefox-75.0.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "92500d0b49090382e261baa0fdd4620e5d9e4a047c9c7098ad3f7ce34a5e97bde419a87019517125239144d21589b428c11138aec691328530fd41d5a78cc5db"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/rm/firefox-75.0.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "6b8f3655d962612a047bb7d961ba74b362da0bcf740362e8f31a2263b0898da90e051951cf5894bd8a493f40d2d89fd50d6060eecc78908518f8611218a27eb3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ro/firefox-75.0.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "4f2e2012136c9821792241f2189550843320b52c44905d9902c7ef3f2be21f26dd79f930b719f752d3d4b5e7ab6ca8429d12ba6120f6bc365bf9e2f496ea85e2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ru/firefox-75.0.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "7ce2ab97b3483b9632d24a979bbe051d8db539329359f91dc9df4446db0b4c1201dcbc6422e1406400dd3df007e5c3af6bcc8279966cf7448671608cc05a4231"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/si/firefox-75.0.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "65edb310b0c94dbaa2f5ece2eb6593a4fa7d89b2fc9e4d3bd8c77bd43dd4517d09895a7a325b9d6a1b5fda965e9d6e3c10f7e4b889b582ad4aacc2061db6a443"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sk/firefox-75.0.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "4e29357906cafb6df7dfddb4c668479d8e52722a4771e043a1d9e0c254e434251768a716f7791c6969e34c5004f276d1b3ae8b8c77176bb1ba76409295126671"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sl/firefox-75.0.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "c84cdabcb498c6a387a08b7ead1cdadfb68c173a955e34f4118a4d56417918649b7ffab2eeb88ddfa276656367f8429e17ddad4b909b1f39e120e41d1caca56c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/son/firefox-75.0.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha512 = "3fdf243217a00baef75aa36b9bcc257e1741fadc8070f5e50a4573c3c4b6b86eeb4405fab327b057e5d92543a0643429fc1159d3b77fe30ad918d8757d8970b1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sq/firefox-75.0.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "f8c32ef45297c86935bc8b99a9d6b8e4804320f76e085e70f988def0ec003f221666e8f7e34e1866c52c38dc45a3b6a39397ac1e81a7033a74652a1d42d32355"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sr/firefox-75.0.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "10dfc0655723a00be5b5e32a280ffc660cf464df0be0686601b2bb502730ea5ee6f7c23c3f40616e9df3c5eb17638b841cc70e8b2271b442cc8b95927191dd62"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sv-SE/firefox-75.0.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "57e77414cd484560716ef659271e28c14a8f02f7189bc858b4293a72ac07cb0acc77a6e719c25b7a9b76cd4da6b3b56df8a75236b6ddef0ace9f87113f4f8d72"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ta/firefox-75.0.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha512 = "396fe91815427866908619b33df4fcc503e0b30f03c567a9d4baa51bfae19d91de816cfbca4bd94a48447c7abdfb56d52a294ad0b8fff8134d935db9d6a81221"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/te/firefox-75.0.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha512 = "87237a320372b1c34c583335335b5b8e85eaf0dd774883b0b0c74e883854c1cd14d459cc8b84db2dade7dc92b36d176c8f30bd17658f6e5660660b0f167fc715"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/th/firefox-75.0.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha512 = "ca5ca4be8242e1fe9a9714b117965b67ebe86b578381ea4339f378dfe74e08f268b63346b5d3bcf30cf1c108a933609d8cbb393caa7f7646557d265c2b40decb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/tl/firefox-75.0.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha512 = "99322a06d7122438715b92f176b07203246c1e15a0a42dae4349f424232778f3d2b9bcd17a7b239b8eb6273a6ada8e259480601258275f16c567d9cee51fd16f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/tr/firefox-75.0.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "95a86989879b65c85032e9b8ffa9290d9a6fa1be409786b9782b284e4c0fb894719fc464ef7e6b96554e2cb852a3276a8e042bbff02a17bdb44aaf9ddc170361"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/trs/firefox-75.0.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha512 = "aae0652f74e82b0cdd752cb8f0747fd4f36f04fcdc50c3cd9d084c6418694cd3015e8de87d851605f5cac0b0159ddd8f9521755d81adbee0e561926b2ea1d393"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/uk/firefox-75.0.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "df038e62ba6284245212f23c5458b2df14547ed532ba66adfed2297041ae7acf693a6e01a6af9c16f4a2e141806d9baf3c4fce91bf3316e635da7211ba9b057f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ur/firefox-75.0.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha512 = "1bcc2f2e8f5e389c29fd0e7f4a5a376d91268e326758b396c9d829e59d1315a52df0449fe49e81170713f1161946c2ed224560dc96329f30a5d13c8413f26823"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/uz/firefox-75.0.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "d957e4942ead1634d792555f57c6dbe54972fd9a97071e63901b422ed6b723426b27fe85afc8c33d75087a502112a4b4b2e0dc3f3a04a9d44a48ec867dc78cb2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/vi/firefox-75.0.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "e3209382cf01d827f3e68230c46c6eda837798f92812c93ac19e81a77a0d72f3a5b53681320b71d886d8d4339fb2eb51d056bb4bc41466116aa51ffd50ff05d1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/xh/firefox-75.0.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha512 = "8719acd4bca1136668c6a90b3f7caaf29bd773acaab2776f2b7daca3c9028c33e73dc2c15c82d44064e92b61def23ca889a2ad09043c5bc5ad91db3214af1919"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/zh-CN/firefox-75.0.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "681e276d7ff6a6f91be59994e53f9f6f082e16f9d22ec7e1d1b65813e91c6c2661f28989b0331100b6f0d4cdbbb0589204b0ed80bf5f0bc0d18016e905a71148"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/zh-TW/firefox-75.0.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "71ee272a7d02758187a9ef2d0a722760d04d9bf0fe11c90e841e15dc9019f44ba22483b6698e3f8eba9620e34d2678db2dbc2974c1ab5c7f0f79934aa4142432"; + } + ]; +} 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..3a1ae0b7cea0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix @@ -0,0 +1,315 @@ +{ pname, ffversion, meta, updateScript ? null +, src, unpackPhase ? null, patches ? [] +, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] }: + +{ 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, libvpx_1_8 +, 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 ? false + +# 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 +, 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 = "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"; +in + +stdenv.mkDerivation ({ + name = "${pname}-unwrapped-${ffversion}"; + version = ffversion; + + inherit src unpackPhase meta; + + patches = [ + ./env_var_for_system_dir.patch + ] + ++ patches; + + + # 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 unzip makeWrapper + libevent libstartup_notification /* cairo */ + icu libpng jemalloc glib + nasm + # >= 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 + nspr nss + ] + ++ lib.optionals (lib.versionOlder ffversion "75") [ libvpx sqlite ] + ++ lib.optional (lib.versionAtLeast ffversion "75.0") libvpx_1_8 + ++ 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" + "-I${nss.dev}/include/nss" + ] + ++ lib.optional (pname == "firefox-esr" && lib.versionOlder ffversion "69") + "-Wno-error=format-security"); + + postPatch = '' + substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h' + rm -rf obj-x86_64-pc-linux-gnu + ''; + + nativeBuildInputs = + [ + autoconf213 + cargo + gnused + llvmPackages.llvm # llvm-objdump + nodejs + perl + pkgconfig + python2 + python3 + rust-cbindgen + rustc + which + ] + ++ lib.optional gtk3Support wrapGAppsHook + ++ lib.optionals stdenv.isDarwin [ xcbuild rsync ] + ++ extraNativeBuildInputs; + + preConfigure = '' + # remove distributed configuration files + rm -f configure + rm -f js/src/configure + rm -f .mozconfig* + # this will run autoconf213 + configureScript="$(realpath ./mach) configure" + 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}/${stdenv.hostPlatform.config}"} \ + $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 + configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/ga") + configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/ga") + '') + '' + # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286 + 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-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}" + "--with-libclang-path=${llvmPackages.libclang}/lib" + "--with-clang-path=${llvmPackages.clang}/bin/clang" + "--with-system-nspr" + "--with-system-nss" + ] + ++ lib.optional (lib.versionOlder ffversion "75") "--enable-system-sqlite" + ++ lib.optional (stdenv.isDarwin) "--disable-xcode-checks" + ++ lib.optionals (lib.versionOlder ffversion "69") [ + "--enable-webrender=build" + ] + + ++ flag alsaSupport "alsa" + ++ flag pulseaudioSupport "pulseaudio" + ++ flag ffmpegSupport "ffmpeg" + ++ flag gssSupport "negotiateauth" + ++ flag webrtcSupport "webrtc" + ++ flag crashreporterSupport "crashreporter" + ++ lib.optional (!drmSupport) "--disable-eme" + + ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] + else [ "--disable-debug" "--enable-release" + "--enable-optimize" + "--enable-strip" ]) + ++ lib.optional enableOfficialBranding "--enable-official-branding" + ++ extraConfigureFlags; + + postConfigure = '' + cd obj-* + ''; + + makeFlags = lib.optionals enableOfficialBranding [ + "MOZILLA_OFFICIAL=1" + "BUILD_OFFICIAL=1" + ] + ++ extraMakeFlags; + + 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 updateScript; + version = ffversion; + isFirefox3Like = true; + gtk = gtk2; + inherit nspr; + inherit ffmpegSupport; + inherit gssSupport; + inherit execdir; + inherit browserName; + } // lib.optionalAttrs gtk3Support { inherit gtk3; }; +} // +lib.optionalAttrs (lib.versionAtLeast ffversion "74") { + hardeningDisable = [ "format" ]; # -Werror=format-security +} // +# 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/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-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..3d435c9394af --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix @@ -0,0 +1,94 @@ +{ config, stdenv, lib, callPackage, fetchurl, firefoxCommon }: + +rec { + firefox = firefoxCommon rec { + pname = "firefox"; + ffversion = "75.0"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "0m3ibm6dy9cpvsxkzkzwj7na5rm5qz7sm3bpx604ibay9pccvgv59jxapisvmswzmlz2nv02l6p2gxlz3b0lbcg7rd5zasia92y7j99"; + }; + + 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; + broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory". + # not in `badPlatforms` because cross-compilation on 64-bit machine might work. + license = lib.licenses.mpl20; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-unwrapped"; + versionKey = "ffversion"; + }; + }; + + firefox-esr-68 = firefoxCommon rec { + pname = "firefox-esr"; + ffversion = "68.7.0esr"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "29qbcc78hz1rsnz735a5miwfj0c3r1c5qm2043vyd9qz879vsh4ab82k7wncm3xa04kqdff26zh1rpbbjmdr7gwn4q8nmjzzs7wzpd3"; + }; + + 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"; + }; + }; + +} // lib.optionalAttrs (config.allowAliases or true) { + #### ALIASES + #### remove after 20.03 branchoff + + firefox-esr-52 = throw '' + firefoxPackages.firefox-esr-52 was removed as it's an unsupported ESR with + open security issues. If you need it because you need to run some plugins + not having been ported to WebExtensions API, import it from an older + nixpkgs checkout still containing it. + ''; + firefox-esr-60 = throw "firefoxPackages.firefox-esr-60 was removed as it's an unsupported ESR with open security issues."; + + icecat = throw "firefoxPackages.icecat was removed as even its latest upstream version is based on an unsupported ESR release with open security issues."; + icecat-52 = throw "firefoxPackages.icecat was removed as even its latest upstream version is based on an unsupported ESR release with open security issues."; + + tor-browser-7-5 = throw "firefoxPackages.tor-browser-7-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452."; + tor-browser-8-5 = throw "firefoxPackages.tor-browser-8-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452."; + tor-browser = throw "firefoxPackages.tor-browser was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452."; + +} 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..0afa8ca7b834 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -0,0 +1,182 @@ +{ stdenv, lib, makeDesktopItem, makeWrapper, lndir, config + +## various stuff that can be plugged in +, flashplayer, hal-flash +, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd +, gnome3/*.gnome-shell*/ +, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow +, tridactyl-native +, fx_cast_bridge +, 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 + , 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; + + plugins = + let + removed = lib.filter (a: builtins.hasAttr a cfg) [ + "enableVLC" + "enableDjvu" + "enableMPlayer" + "jre" + "icedtea" + "enableGoogleTalkPlugin" + "enableFriBIDPlugin" + "enableBluejeans" + "enableAdobeReader" + ]; + in if removed != [] + then throw "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) removed}. All plugin related options, except for the adobe flash player, have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)." + else lib.optional enableAdobeFlash flashplayer; + + 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 + ++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge + ++ 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/native-messaging-hosts + for ext in ${toString nativeMessagingHosts}; do + ln -sLt $out/lib/mozilla/native-messaging-hosts $ext/lib/mozilla/native-messaging-hosts/* + 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..e5cd08f7df7f --- /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, libdrm, mesa + +# 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 libdrm mesa + ] ++ 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/$appname/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..d58fc8fd19bf --- /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..bf10043e942e --- /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..8aeee45b9e54 --- /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..66f6384643ad --- /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/flashplayer/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix new file mode 100644 index 000000000000..6672a75d574d --- /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.363"; + + 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 + "06711k4vbn6mqfd8gvx2snsxyalhw15hn5b64sja8726z5rxvzy7" + else + "0v584aqhy4xk08afi3ypkq4mqjq57y136z82i5ixyim88dqbaf4f" + else + if arch == "x86_64" then + "1g1ijxypm8a8mfc1x58gksmaakqpp7xmf277wiir8zqjn3vd6c64" + else + "13nbxmqmbxqvdhdwdqimim2f9fz3y2vrsx6b3pck6352m4i4wzh8"; + }; + + 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..3661f6edb530 --- /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.363"; + + 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 + "03zhza8lvc1nvz3racwfsajfd6rnbw3g56dp5wvr1qmaps8xaaqg" + else + "0bhp7jv2l2agfzr8m564k749a5g75dw1390phlwvf49n1h8ldap2"; + }; + + 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/next/default.nix b/nixpkgs/pkgs/applications/networking/browsers/next/default.nix new file mode 100644 index 000000000000..e03f918a587c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/next/default.nix @@ -0,0 +1,95 @@ +{ 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.5.0"; + + src = fetchFromGitHub { + owner = "atlas-engineer"; + repo = "next"; + rev = version; + sha256 = "1gqkp185wcwaxr8py90hqk44nqjblrrdwvig19gizrbzr2gx2zhy"; + }; + + nativeBuildInputs = [ + sbcl + ] ++ (with lispPackages; [ + prove-asdf + trivial-features + ]); + + buildInputs = with lispPackages; [ + alexandria + bordeaux-threads + cl-annot + cl-ansi-text + cl-css + cl-json + cl-markup + cl-ppcre + cl-ppcre-unicode + cl-prevalence + closer-mop + dbus + dexador + ironclad + local-time + log4cl + lparallel + mk-string-metrics + parenscript + plump + quri + serapeum + sqlite + str + swank + trivia + trivial-clipboard + trivial-types + 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..8039c5492408 --- /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..686ffee91488 --- /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 = "67.0.3575.31"; + + src = fetchurl { + url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb"; + sha256 = "1ghygin7xf5lwd77s8f6bag339di4alwlkqwjzlq20wzwx4lns4w"; + }; + + 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/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix new file mode 100644 index 000000000000..7c010b91a1e6 --- /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.4"; + + src = fetchFromGitHub { + owner = "MoonchildProductions"; + repo = "UXP"; + rev = "PM${version}_Release"; + sha256 = "1k2j4rlgjwkns3a592pbiwwhrpja3fachvzby1his3d1mhdvyc6f"; + }; + + 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..537bb0ebf2ec --- /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.10.1"; + + # 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 = "06bcnsfb4kz92bh8xjxwaghhy9x2mmcb76wk3fv868jb1ga75vd8"; + }; + + # 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..d54a37fe71fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch @@ -0,0 +1,19 @@ +diff --git a/quitter.py b/quitterb.py +index a42b9d0..f544ccb 100644 +--- a/qutebrowser/misc/quitter.py ++++ b/qutebrowser/misc/quitter.py +@@ -112,13 +112,7 @@ class Quitter(QObject): + Return: + The commandline as a list of strings. + """ +- if os.path.basename(sys.argv[0]) == 'qutebrowser': +- # Launched via launcher script +- args = [sys.argv[0]] +- elif hasattr(sys, 'frozen'): +- args = [sys.executable] +- else: +- args = [sys.executable, '-m', 'qutebrowser'] ++ args = ['@qutebrowser@'] + + # Add all open pages so they get reopened. + page_args = [] # type: typing.MutableSequence[str] 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..03571469da1f --- /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..97a03ccbab5b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix @@ -0,0 +1,412 @@ +{ 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 ? true +, 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 ? "" +}: + +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.9"; + + lang = "en-US"; + + srcs = { + x86_64-linux = fetchurl { + url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; + sha256 = "0ws4s0jn559j1ih60wqspxvr5wpqww29kzk0xzzbr56wfyahp4fg"; + }; + + i686-linux = fetchurl { + url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; + sha256 = "0sv73jlv0qwlkxgqkmqg1flsa9lbkxa4yahny5wrfgsbw74xibkl"; + }; + }; +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 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`. + ''; + 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/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..099d81c99f80 --- /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..776ed8f4471b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -0,0 +1,94 @@ +{ 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.11.1811.52-1"; + + src = fetchurl { + url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; + sha256 = "0bq9ggk75xzka2nbrnc7vghq8s7jjy9nbfmyrf51kf0nni1zg1fp"; + }; + + 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 '' + ln -s ${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so opt/${vivaldiName}/libffmpeg.so.''${version%\.*\.*} + '' + '' + 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}/share/google/chrome/WidevineCdm $out/opt/${vivaldiName}/WidevineCdm + ''; + + 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..2643bd3e58d9 --- /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 = "78.0.3904.70"; + + src = fetchurl { + url = "https://launchpadlibrarian.net/449403909/${name}-extra_${version}-0ubuntu0.16.04.2_amd64.deb"; + sha256 = "00j604nm49z6hbyw7xsxcvmdjf7117kb478plkpizzvmm3w72b9v"; + }; + + 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..6e807aac5df6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl +, unzip +}: + +stdenv.mkDerivation rec { + name = "widevine"; + version = "4.10.1582.1"; + + src = fetchurl { + url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip"; + sha256 = "0l743f2yyaq1vvc3iicajgnfpjxjsfvjcqvanndbxs23skgjcv6r"; + }; + + buildInputs = [ unzip ]; + + unpackPhase = '' + unzip $src + ''; + + installPhase = '' + install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json + install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt + install -vD libwidevinecdm.so $out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/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..a15d6844f56d --- /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..7dbb6a3c5388 --- /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..98d2f4aa81d6 --- /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..18a9bc0f4225 --- /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.4"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = "calls"; + rev = "v${version}"; + sha256 = "0715cap3w8gppxlfaynhiqvc2ss512xgykjcpqq8f5syz2776skh"; + }; + + 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..c9e6b6f6de09 --- /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.5"; + pname = "cawbird"; + + src = fetchFromGitHub { + owner = "IBBoard"; + repo = "cawbird"; + rev = "v${version}"; + sha256 = "sha256:0prrrkgmnm78sq2c6yvy86qb3lcl51d250q7gvmqili2ffnjmamf"; + }; + + 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..11eb24ff7031 --- /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..d441e539aaa6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "cloudflared"; + version = "2020.2.1"; + + src = fetchFromGitHub { + owner = "cloudflare"; + repo = "cloudflared"; + rev = version; + sha256 = "1wyvf4bilhiwabqgdwmnhifwc845m4g17pz7xmndzvqwmfd7riw5"; + }; + + modSha256 = "1y5vh8g967rrm9b9hjlr70bs2rm09cpik673brgk3nzqxka10w7p"; + + 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/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix new file mode 100644 index 000000000000..891d153a09e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix @@ -0,0 +1,49 @@ +{ lib, buildGoModule, buildGoPackage, fetchFromGitHub }: + +let + # Argo can package a static server in the CLI using the `staticfiles` go module. + # We build the CLI without the static server for simplicity, but the tool is still required for + # compilation to succeed. + # See: https://github.com/argoproj/argo/blob/d7690e32faf2ac5842468831daf1443283703c25/Makefile#L117 + staticfiles = buildGoPackage rec { + name = "staticfiles"; + src = fetchFromGitHub { + owner = "bouk"; + repo = "staticfiles"; + rev = "827d7f6389cd410d0aa3f3d472a4838557bf53dd"; + sha256 = "0xarhmsqypl8036w96ssdzjv3k098p2d4mkmw5f6hkp1m3j67j61"; + }; + + goPackagePath = "bou.ke/staticfiles"; + }; +in +buildGoModule rec { + pname = "argo"; + version = "2.6.1"; + + src = fetchFromGitHub { + owner = "argoproj"; + repo = "argo"; + rev = "v${version}"; + sha256 = "12wq79h4m8wlzf18r66965mbbjjb62kvnxdj50ra7nxa8jjxpsmf"; + }; + + modSha256 = "1394bav1k1xv9n1rvji0j9a09mibk97xpha24640jkgmy9bnmg45"; + + subPackages = [ "cmd/argo" ]; + + preBuild = '' + mkdir -p ui/dist/app + echo "Built without static files" > ui/dist/app/index.html + + ${staticfiles}/bin/staticfiles -o server/static/files.go ui/dist/app + ''; + + 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/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix new file mode 100644 index 000000000000..7f9ebda93c0a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix @@ -0,0 +1,40 @@ +{ lib, buildGoModule, fetchFromGitHub, packr }: + +buildGoModule rec { + pname = "argocd"; + version = "1.4.2"; + commit = "48cced9d925b5bc94f6aa9fa4a8a19b2a59e128a"; + + src = fetchFromGitHub { + owner = "argoproj"; + repo = "argo-cd"; + rev = "v${version}"; + sha256 = "01vsyrks1k5yfvrarv8ia0isr7snilr21b7lfiy860si82r2r8hj"; + }; + + modSha256 = "1qivg7yy7ymmgkrvl365x29d8jnsphbz18j1ykgwwysyw3n4jkdg"; + + nativeBuildInputs = [ packr ]; + + patches = [ ./use-go-module.patch ]; + + buildFlagsArray = '' + -ldflags= + -X github.com/argoproj/argo-cd/common.version=${version} + -X github.com/argoproj/argo-cd/common.buildDate=unknown + -X github.com/argoproj/argo-cd/common.gitCommit=${commit} + -X github.com/argoproj/argo-cd/common.gitTreeState=clean + ''; + + # run packr to embed assets + preBuild = '' + packr + ''; + + meta = with lib; { + description = "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes"; + homepage = "https://github.com/argoproj/argo"; + license = licenses.asl20; + maintainers = with maintainers; [ shahrukh330 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/use-go-module.patch b/nixpkgs/pkgs/applications/networking/cluster/argocd/use-go-module.patch new file mode 100644 index 000000000000..ac597f4187e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/use-go-module.patch @@ -0,0 +1,3058 @@ +diff --git a/Gopkg.lock b/Gopkg.lock +deleted file mode 100644 +index 03737a95..00000000 +--- a/Gopkg.lock ++++ /dev/null +@@ -1,2103 +0,0 @@ +-# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. +- +- +-[[projects]] +- digest = "1:6d5a057da97a9dbdb10e7beedd2f43452b6bf7691001c0c8886e8dacf5610349" +- name = "bou.ke/monkey" +- packages = ["."] +- pruneopts = "" +- revision = "bdf6dea004c6fd1cdf4b25da8ad45a606c09409a" +- version = "v1.0.1" +- +-[[projects]] +- digest = "1:9702dc153c9bb6ee7ee0587c248b7024700e89e4a7be284faaeeab9da32e1c6b" +- name = "cloud.google.com/go" +- packages = ["compute/metadata"] +- pruneopts = "" +- revision = "767c40d6a2e058483c25fa193e963a22da17236d" +- version = "v0.18.0" +- +-[[projects]] +- digest = "1:8ec1618fc3ee146af104d6c13be250f25e5976e34557d4afbfe4b28035ce6c05" +- name = "github.com/Knetic/govaluate" +- packages = ["."] +- pruneopts = "" +- revision = "d216395917cc49052c7c7094cf57f09657ca08a8" +- version = "v3.0.0" +- +-[[projects]] +- digest = "1:63e57618d792cccb87ad7cb8a0602e6205732beb3b01b0ea858fc4a5fd3ce8f1" +- name = "github.com/MakeNowJust/heredoc" +- packages = ["."] +- pruneopts = "" +- revision = "efb6ca8de9d5385c3963279701760e37637cf238" +- version = "v2.0.1" +- +-[[projects]] +- digest = "1:b856d8248663c39265a764561c1a1a149783f6cc815feb54a1f3a591b91f6eca" +- name = "github.com/Masterminds/semver" +- packages = ["."] +- pruneopts = "" +- revision = "c7af12943936e8c39859482e61f0574c2fd7fc75" +- version = "v1.4.2" +- +-[[projects]] +- digest = "1:71c0dfb843260bfb9b03357cae8eac261b8d82e149ad8f76938b87a23aa47c43" +- name = "github.com/PuerkitoBio/purell" +- packages = ["."] +- pruneopts = "" +- revision = "b938d81255b5473c57635324295cb0fe398c7a58" +- +-[[projects]] +- branch = "master" +- digest = "1:331a419049c2be691e5ba1d24342fc77c7e767a80c666a18fd8a9f7b82419c1c" +- name = "github.com/PuerkitoBio/urlesc" +- packages = ["."] +- pruneopts = "" +- revision = "de5bf2ad457846296e2031421a34e2568e304e35" +- +-[[projects]] +- branch = "master" +- digest = "1:a1b56af5e69569454f55ef4842485a0da5616e240a610d77c987e17a73b0e265" +- name = "github.com/TomOnTime/utfutil" +- packages = ["."] +- pruneopts = "" +- revision = "09c41003ee1d5015b75f331e52215512e7145b8d" +- +-[[projects]] +- branch = "master" +- digest = "1:52905b00a73cda93a2ce8c5fa35185daed673d59e39576e81ad6ab6fb7076b3c" +- name = "github.com/argoproj/pkg" +- packages = [ +- "errors", +- "exec", +- "rand", +- "time", +- ] +- pruneopts = "" +- revision = "02a6aac40ac4cd23de448afe7a1ec0ba4b6d2b96" +- +-[[projects]] +- digest = "1:d8a2bb36a048d1571bcc1aee208b61f39dc16c6c53823feffd37449dde162507" +- name = "github.com/asaskevich/govalidator" +- packages = ["."] +- pruneopts = "" +- revision = "ccb8e960c48f04d6935e72476ae4a51028f9e22f" +- version = "v9" +- +-[[projects]] +- branch = "master" +- digest = "1:c0bec5f9b98d0bc872ff5e834fac186b807b656683bd29cb82fb207a1513fabb" +- name = "github.com/beorn7/perks" +- packages = ["quantile"] +- pruneopts = "" +- revision = "3a771d992973f24aa725d07868b467d1ddfceafb" +- +-[[projects]] +- digest = "1:6e2b0748ea11cffebe87b4a671a44ecfb243141cdd5df54cb44b7e8e93cb7ea3" +- name = "github.com/casbin/casbin" +- packages = [ +- ".", +- "config", +- "effect", +- "errors", +- "log", +- "model", +- "persist", +- "persist/file-adapter", +- "rbac", +- "rbac/default-role-manager", +- "util", +- ] +- pruneopts = "" +- revision = "aaed1b7a7eac65d37ec4e15e308429fdf0bd6a9e" +- version = "v1.9.1" +- +-[[projects]] +- branch = "master" +- digest = "1:9c19f8c33e635e0439c8afc167d6d02e3aa6eea5b69d64880244fd354a99edc4" +- name = "github.com/chai2010/gettext-go" +- packages = [ +- "gettext", +- "gettext/mo", +- "gettext/plural", +- "gettext/po", +- ] +- pruneopts = "" +- revision = "bf70f2a70fb1b1f36d90d671a72795984eab0fcb" +- +-[[projects]] +- branch = "v2" +- digest = "1:d8ee1b165eb7f4fd9ada718e1e7eeb0bc1fd462592d0bd823df694443f448681" +- name = "github.com/coreos/go-oidc" +- packages = ["."] +- pruneopts = "" +- revision = "1180514eaf4d9f38d0d19eef639a1d695e066e72" +- +-[[projects]] +- digest = "1:56c130d885a4aacae1dd9c7b71cfe39912c7ebc1ff7d2b46083c8812996dc43b" +- name = "github.com/davecgh/go-spew" +- packages = ["spew"] +- pruneopts = "" +- revision = "346938d642f2ec3594ed81d874461961cd0faa76" +- version = "v1.1.0" +- +-[[projects]] +- digest = "1:6098222470fe0172157ce9bbef5d2200df4edde17ee649c5d6e48330e4afa4c6" +- name = "github.com/dgrijalva/jwt-go" +- packages = ["."] +- pruneopts = "" +- revision = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e" +- version = "v3.2.0" +- +-[[projects]] +- digest = "1:c05f1899f086e3b4613d94d9e6f7ba6f4b6587498a1aa6037c5c294b22f5a743" +- name = "github.com/docker/distribution" +- packages = [ +- "digestset", +- "reference", +- ] +- pruneopts = "" +- revision = "2461543d988979529609e8cb6fca9ca190dc48da" +- version = "v2.7.1" +- +-[[projects]] +- digest = "1:b021ef379356343bdc13ec101e546b756fcef4b1186d08163bef7d3bc8c1e07f" +- name = "github.com/docker/docker" +- packages = [ +- "pkg/term", +- "pkg/term/winconsole", +- ] +- pruneopts = "" +- revision = "fc4825d5ef5e0e1af74904208f9b925c22f0b6f8" +- version = "v1.6.0-rc5" +- +-[[projects]] +- branch = "master" +- digest = "1:d6c13a378213e3de60445e49084b8a0a9ce582776dfc77927775dbeb3ff72a35" +- name = "github.com/docker/spdystream" +- packages = [ +- ".", +- "spdy", +- ] +- pruneopts = "" +- revision = "6480d4af844c189cf5dd913db24ddd339d3a4f85" +- +-[[projects]] +- branch = "master" +- digest = "1:f1a75a8e00244e5ea77ff274baa9559eb877437b240ee7b278f3fc560d9f08bf" +- name = "github.com/dustin/go-humanize" +- packages = ["."] +- pruneopts = "" +- revision = "9f541cc9db5d55bce703bd99987c9d5cb8eea45e" +- +-[[projects]] +- digest = "1:971e9ba63a417c5f1f83ab358677bc59e96ff04285f26c6646ff089fb60b15e8" +- name = "github.com/emicklei/go-restful" +- packages = [ +- ".", +- "log", +- ] +- pruneopts = "" +- revision = "3658237ded108b4134956c1b3050349d93e7b895" +- version = "v2.7.1" +- +-[[projects]] +- digest = "1:ba7c75e38d81b9cf3e8601c081567be3b71bccca8c11aee5de98871360aa4d7b" +- name = "github.com/emirpasic/gods" +- packages = [ +- "containers", +- "lists", +- "lists/arraylist", +- "trees", +- "trees/binaryheap", +- "utils", +- ] +- pruneopts = "" +- revision = "f6c17b524822278a87e3b3bd809fec33b51f5b46" +- version = "v1.9.0" +- +-[[projects]] +- digest = "1:46ddeb9dd35d875ac7568c4dc1fc96ce424e034bdbb984239d8ffc151398ec01" +- name = "github.com/evanphx/json-patch" +- packages = ["."] +- pruneopts = "" +- revision = "026c730a0dcc5d11f93f1cf1cc65b01247ea7b6f" +- version = "v4.5.0" +- +-[[projects]] +- branch = "master" +- digest = "1:549f95037fea25e00a5341ac6a169a5b3e5306be107f45260440107b779b74f9" +- name = "github.com/exponent-io/jsonpath" +- packages = ["."] +- pruneopts = "" +- revision = "d6023ce2651d8eafb5c75bb0c7167536102ec9f5" +- +-[[projects]] +- digest = "1:23a5efa4b272df86a8ebffc942f5e0c1aac4b750836037394cc450b6d91e241a" +- name = "github.com/fatih/camelcase" +- packages = ["."] +- pruneopts = "" +- revision = "44e46d280b43ec1531bb25252440e34f1b800b65" +- version = "v1.0.0" +- +-[[projects]] +- digest = "1:b13707423743d41665fd23f0c36b2f37bb49c30e94adb813319c44188a51ba22" +- name = "github.com/ghodss/yaml" +- packages = ["."] +- pruneopts = "" +- revision = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7" +- version = "v1.0.0" +- +-[[projects]] +- branch = "master" +- digest = "1:eb77b66abaf9649747230eb973350bd1c311a0d0362213192efbdd222082b072" +- name = "github.com/go-openapi/analysis" +- packages = ["."] +- pruneopts = "" +- revision = "5957818e100395077187fb7ef3b8a28227af06c6" +- +-[[projects]] +- branch = "master" +- digest = "1:ee273c95c1414ef11bd4da259b40e83f41c1d5a6bee7d1b54a05ef5f3565fd92" +- name = "github.com/go-openapi/errors" +- packages = ["."] +- pruneopts = "" +- revision = "b2b2befaf267d082d779bcef52d682a47c779517" +- +-[[projects]] +- branch = "master" +- digest = "1:1287439f7765209116509fffff2b8f853845e4b35572b41a1aadda42cbcffcc2" +- name = "github.com/go-openapi/jsonpointer" +- packages = ["."] +- pruneopts = "" +- revision = "779f45308c19820f1a69e9a4cd965f496e0da10f" +- +-[[projects]] +- branch = "master" +- digest = "1:07ac8ac445f68b0bc063d11845d479fb7e09c906ead7a8c4165b59777df09d74" +- name = "github.com/go-openapi/jsonreference" +- packages = ["."] +- pruneopts = "" +- revision = "36d33bfe519efae5632669801b180bf1a245da3b" +- +-[[projects]] +- branch = "master" +- digest = "1:c4a8c916364abeda1c5cf36684320298bbf4d87718b0b2bd9c4ca663157fdc75" +- name = "github.com/go-openapi/loads" +- packages = ["."] +- pruneopts = "" +- revision = "2a2b323bab96e6b1fdee110e57d959322446e9c9" +- +-[[projects]] +- branch = "master" +- digest = "1:1d9c762f6695e6e7ed0b4c055fa0eab7d20c2b36c935943282273d37f114e302" +- name = "github.com/go-openapi/runtime" +- packages = [ +- ".", +- "logger", +- "middleware", +- "middleware/denco", +- "middleware/header", +- "middleware/untyped", +- "security", +- ] +- pruneopts = "" +- revision = "cd9d8ed52e4b4665463cbc655500e4faa09c3c16" +- +-[[projects]] +- branch = "master" +- digest = "1:fd4008f8283b993180f0626d0c7b2f48880e9dbb6bd92a91cac7ded30dc66777" +- name = "github.com/go-openapi/spec" +- packages = ["."] +- pruneopts = "" +- revision = "1de3e0542de65ad8d75452a595886fdd0befb363" +- +-[[projects]] +- branch = "master" +- digest = "1:4ddc424130bcfbf6f782f433192ca2502a02a09e4ac55dcbecf91f22ed4e3138" +- name = "github.com/go-openapi/strfmt" +- packages = ["."] +- pruneopts = "" +- revision = "481808443b00a14745fada967cb5eeff0f9b1df2" +- +-[[projects]] +- branch = "master" +- digest = "1:366052ef634d344217d6720719c9f8e95de13a94d211f09785b0ba3c4c181b06" +- name = "github.com/go-openapi/swag" +- packages = ["."] +- pruneopts = "" +- revision = "84f4bee7c0a6db40e3166044c7983c1c32125429" +- +-[[projects]] +- branch = "master" +- digest = "1:671e25496d550c80a9d6e7e588d32b380c6b4877f113750724f69acc6ce6790f" +- name = "github.com/go-openapi/validate" +- packages = ["."] +- pruneopts = "" +- revision = "b0a3ed684d0fdd3e1eda00433382188ce8aa7169" +- +-[[projects]] +- digest = "1:024c9473f363a12918e87e7efc778091839beab514b01309a6ecd8aa336c8065" +- name = "github.com/go-redis/cache" +- packages = [ +- ".", +- "internal/lrucache", +- "internal/singleflight", +- ] +- pruneopts = "" +- revision = "c58ada1e23a3b66593f81c70572c20a0bb805a90" +- version = "v6.3.5" +- +-[[projects]] +- digest = "1:b73fabc1ff8f2417bc5cc51d3f7274d6af5300b5ad9b8606967213134c1700dc" +- name = "github.com/go-redis/redis" +- packages = [ +- ".", +- "internal", +- "internal/consistenthash", +- "internal/hashtag", +- "internal/pool", +- "internal/proto", +- "internal/util", +- ] +- pruneopts = "" +- revision = "22be8a3eaf992c828cecb69dc07348313bf08d2e" +- version = "v6.15.1" +- +-[[projects]] +- digest = "1:842c1acbacc80da775cfc0c412c4fe322c2d1b86c260db632987730d0d67a6bd" +- name = "github.com/gobuffalo/packr" +- packages = ["."] +- pruneopts = "" +- revision = "7f4074995d431987caaa35088199f13c44b24440" +- version = "v1.11.0" +- +-[[projects]] +- digest = "1:9ab1b1c637d7c8f49e39d8538a650d7eb2137b076790cff69d160823b505964c" +- name = "github.com/gobwas/glob" +- packages = [ +- ".", +- "compiler", +- "match", +- "syntax", +- "syntax/ast", +- "syntax/lexer", +- "util/runes", +- "util/strings", +- ] +- pruneopts = "" +- revision = "5ccd90ef52e1e632236f7326478d4faa74f99438" +- version = "v0.2.3" +- +-[[projects]] +- branch = "master" +- digest = "1:9a06e7365c6039daf4db9bbf79650e2933a2880982cbab8106cb74a36617f40d" +- name = "github.com/gogits/go-gogs-client" +- packages = ["."] +- pruneopts = "" +- revision = "5a05380e4bc2440e0ec12f54f6f45648dbdd5e55" +- +-[[projects]] +- digest = "1:d69d2ba23955582a64e367ff2b0808cdbd048458c178cea48f11ab8c40bd7aea" +- name = "github.com/gogo/protobuf" +- packages = [ +- "gogoproto", +- "plugin/compare", +- "plugin/defaultcheck", +- "plugin/description", +- "plugin/embedcheck", +- "plugin/enumstringer", +- "plugin/equal", +- "plugin/face", +- "plugin/gostring", +- "plugin/marshalto", +- "plugin/oneofcheck", +- "plugin/populate", +- "plugin/size", +- "plugin/stringer", +- "plugin/testgen", +- "plugin/union", +- "plugin/unmarshal", +- "proto", +- "protoc-gen-gofast", +- "protoc-gen-gogo/descriptor", +- "protoc-gen-gogo/generator", +- "protoc-gen-gogo/generator/internal/remap", +- "protoc-gen-gogo/grpc", +- "protoc-gen-gogo/plugin", +- "protoc-gen-gogofast", +- "sortkeys", +- "vanity", +- "vanity/command", +- ] +- pruneopts = "" +- revision = "5628607bb4c51c3157aacc3a50f0ab707582b805" +- version = "v1.3.1" +- +-[[projects]] +- branch = "master" +- digest = "1:107b233e45174dbab5b1324201d092ea9448e58243ab9f039e4c0f332e121e3a" +- name = "github.com/golang/glog" +- packages = ["."] +- pruneopts = "" +- revision = "23def4e6c14b4da8ac2ed8007337bc5eb5007998" +- +-[[projects]] +- digest = "1:3dd078fda7500c341bc26cfbc6c6a34614f295a2457149fc1045cab767cbcf18" +- name = "github.com/golang/protobuf" +- packages = [ +- "jsonpb", +- "proto", +- "protoc-gen-go", +- "protoc-gen-go/descriptor", +- "protoc-gen-go/generator", +- "protoc-gen-go/generator/internal/remap", +- "protoc-gen-go/grpc", +- "protoc-gen-go/plugin", +- "ptypes", +- "ptypes/any", +- "ptypes/duration", +- "ptypes/empty", +- "ptypes/struct", +- "ptypes/timestamp", +- ] +- pruneopts = "" +- revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5" +- version = "v1.2.0" +- +-[[projects]] +- digest = "1:1e5b1e14524ed08301977b7b8e10c719ed853cbf3f24ecb66fae783a46f207a6" +- name = "github.com/google/btree" +- packages = ["."] +- pruneopts = "" +- revision = "4030bb1f1f0c35b30ca7009e9ebd06849dd45306" +- version = "v1.0.0" +- +-[[projects]] +- digest = "1:9fcb267c272bc5054564b392e3ff7e65e35400fd9914afb1d169f92b95e7dbc9" +- name = "github.com/google/go-cmp" +- packages = [ +- "cmp", +- "cmp/internal/diff", +- "cmp/internal/flags", +- "cmp/internal/function", +- "cmp/internal/value", +- ] +- pruneopts = "" +- revision = "2d0692c2e9617365a95b295612ac0d4415ba4627" +- version = "v0.3.1" +- +-[[projects]] +- digest = "1:14d826ee25139b4674e9768ac287a135f4e7c14e1134a5b15e4e152edfd49f41" +- name = "github.com/google/go-jsonnet" +- packages = [ +- ".", +- "ast", +- "parser", +- ] +- pruneopts = "" +- revision = "dfddf2b4e3aec377b0dcdf247ff92e7d078b8179" +- +-[[projects]] +- branch = "master" +- digest = "1:754f77e9c839b24778a4b64422236d38515301d2baeb63113aa3edc42e6af692" +- name = "github.com/google/gofuzz" +- packages = ["."] +- pruneopts = "" +- revision = "24818f796faf91cd76ec7bddd72458fbced7a6c1" +- +-[[projects]] +- branch = "master" +- digest = "1:d0899ec7c2f61fd5e4ccba7dbefe72e366a3ecce23ecdb982c768fa1d38812fb" +- name = "github.com/google/shlex" +- packages = ["."] +- pruneopts = "" +- revision = "c34317bd91bf98fab745d77b03933cf8769299fe" +- +-[[projects]] +- digest = "1:2a131706ff80636629ab6373f2944569b8252ecc018cda8040931b05d32e3c16" +- name = "github.com/googleapis/gnostic" +- packages = [ +- "OpenAPIv2", +- "compiler", +- "extensions", +- ] +- pruneopts = "" +- revision = "ee43cbb60db7bd22502942cccbc39059117352ab" +- version = "v0.1.0" +- +-[[projects]] +- digest = "1:09aa5dd1332b93c96bde671bafb053249dc813febf7d5ca84e8f382ba255d67d" +- name = "github.com/gorilla/websocket" +- packages = ["."] +- pruneopts = "" +- revision = "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d" +- version = "v1.4.0" +- +-[[projects]] +- branch = "master" +- digest = "1:e1fd67b5695fb12f54f979606c5d650a5aa72ef242f8e71072bfd4f7b5a141a0" +- name = "github.com/gregjones/httpcache" +- packages = [ +- ".", +- "diskcache", +- ] +- pruneopts = "" +- revision = "901d90724c7919163f472a9812253fb26761123d" +- +-[[projects]] +- branch = "master" +- digest = "1:9dca8c981b8aed7448d94e78bc68a76784867a38b3036d5aabc0b32d92ffd1f4" +- name = "github.com/grpc-ecosystem/go-grpc-middleware" +- packages = [ +- ".", +- "auth", +- "logging", +- "logging/logrus", +- "logging/logrus/ctxlogrus", +- "retry", +- "tags", +- "tags/logrus", +- "util/backoffutils", +- "util/metautils", +- ] +- pruneopts = "" +- revision = "bc372cc64f55abd91995ba3f219b380ffbc59e9d" +- +-[[projects]] +- digest = "1:e24dc5ef44694848785de507f439a24e9e6d96d7b43b8cf3d6cfa857aa1e2186" +- name = "github.com/grpc-ecosystem/go-grpc-prometheus" +- packages = ["."] +- pruneopts = "" +- revision = "c225b8c3b01faf2899099b768856a9e916e5087b" +- version = "v1.2.0" +- +-[[projects]] +- digest = "1:9feb7485bc57adbcbc1e1037ca05588e9d8b0a3a1875fbf730021fc118859b75" +- name = "github.com/grpc-ecosystem/grpc-gateway" +- packages = [ +- "protoc-gen-grpc-gateway", +- "protoc-gen-grpc-gateway/descriptor", +- "protoc-gen-grpc-gateway/generator", +- "protoc-gen-grpc-gateway/gengateway", +- "protoc-gen-grpc-gateway/httprule", +- "protoc-gen-swagger", +- "protoc-gen-swagger/genswagger", +- "protoc-gen-swagger/options", +- "runtime", +- "runtime/internal", +- "utilities", +- ] +- pruneopts = "" +- revision = "07f5e79768022f9a3265235f0db4ac8c3f675fec" +- version = "v1.3.1" +- +-[[projects]] +- branch = "master" +- digest = "1:9c776d7d9c54b7ed89f119e449983c3f24c0023e75001d6092442412ebca6b94" +- name = "github.com/hashicorp/golang-lru" +- packages = [ +- ".", +- "simplelru", +- ] +- pruneopts = "" +- revision = "0fb14efe8c47ae851c0034ed7a448854d3d34cf3" +- +-[[projects]] +- digest = "1:23bc0b496ba341c6e3ba24d6358ff4a40a704d9eb5f9a3bd8e8fbd57ad869013" +- name = "github.com/imdario/mergo" +- packages = ["."] +- pruneopts = "" +- revision = "163f41321a19dd09362d4c63cc2489db2015f1f4" +- version = "0.3.2" +- +-[[projects]] +- digest = "1:6f7a8f1f3e04174c426eea1c8661ef49a6b4c63bd2e40c0ad74b5ba9051f4812" +- name = "github.com/improbable-eng/grpc-web" +- packages = ["go/grpcweb"] +- pruneopts = "" +- revision = "16092bd1d58ae1b3c2d8be1cb67e65956f945dea" +- version = "0.7.0" +- +-[[projects]] +- digest = "1:870d441fe217b8e689d7949fef6e43efbc787e50f200cb1e70dbca9204a1d6be" +- name = "github.com/inconshreveable/mousetrap" +- packages = ["."] +- pruneopts = "" +- revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" +- version = "v1.0" +- +-[[projects]] +- branch = "master" +- digest = "1:95abc4eba158a39873bd4fabdee576d0ae13826b550f8b710881d80ae4093a0f" +- name = "github.com/jbenet/go-context" +- packages = ["io"] +- pruneopts = "" +- revision = "d14ea06fba99483203c19d92cfcd13ebe73135f4" +- +-[[projects]] +- digest = "1:302ad9379eb146668760df4d779a95379acab43ce5f9a28f27f3273f98232020" +- name = "github.com/jonboulle/clockwork" +- packages = ["."] +- pruneopts = "" +- revision = "2eee05ed794112d45db504eb05aa693efd2b8b09" +- version = "v0.1.0" +- +-[[projects]] +- digest = "1:31c6f3c4f1e15fcc24fcfc9f5f24603ff3963c56d6fa162116493b4025fb6acc" +- name = "github.com/json-iterator/go" +- packages = ["."] +- pruneopts = "" +- revision = "f2b4162afba35581b6d4a50d3b8f34e33c144682" +- +-[[projects]] +- branch = "master" +- digest = "1:63e7368fcf6b54804076eaec26fd9cf0c4466166b272393db4b93102e1e962df" +- name = "github.com/kballard/go-shellquote" +- packages = ["."] +- pruneopts = "" +- revision = "95032a82bc518f77982ea72343cc1ade730072f0" +- +-[[projects]] +- digest = "1:41e0bed5df4f9fd04c418bf9b6b7179b3671e416ad6175332601ca1c8dc74606" +- name = "github.com/kevinburke/ssh_config" +- packages = ["."] +- pruneopts = "" +- revision = "81db2a75821ed34e682567d48be488a1c3121088" +- version = "0.5" +- +-[[projects]] +- branch = "master" +- digest = "1:448b4a6e39e46d8740b00dc871f26d58dc39341b160e01267b7917132831a136" +- name = "github.com/konsorten/go-windows-terminal-sequences" +- packages = ["."] +- pruneopts = "" +- revision = "b729f2633dfe35f4d1d8a32385f6685610ce1cb5" +- +-[[projects]] +- branch = "master" +- digest = "1:93018a4331df9925058905133cb997aec8f54d5303f4536a23e49b5648632d06" +- name = "github.com/liggitt/tabwriter" +- packages = ["."] +- pruneopts = "" +- revision = "89fcab3d43de07060e4fd4c1547430ed57e87f24" +- +-[[projects]] +- branch = "master" +- digest = "1:ccc20cacf54eb16464dad02efa1c14fa7c0b9e124639b0d2a51dcc87b0154e4c" +- name = "github.com/mailru/easyjson" +- packages = [ +- "buffer", +- "jlexer", +- "jwriter", +- ] +- pruneopts = "" +- revision = "32fa128f234d041f196a9f3e0fea5ac9772c08e1" +- +-[[projects]] +- digest = "1:63722a4b1e1717be7b98fc686e0b30d5e7f734b9e93d7dee86293b6deab7ea28" +- name = "github.com/matttproud/golang_protobuf_extensions" +- packages = ["pbutil"] +- pruneopts = "" +- revision = "c12348ce28de40eed0136aa2b644d0ee0650e56c" +- version = "v1.0.1" +- +-[[projects]] +- digest = "1:096a8a9182648da3d00ff243b88407838902b6703fc12657f76890e08d1899bf" +- name = "github.com/mitchellh/go-homedir" +- packages = ["."] +- pruneopts = "" +- revision = "ae18d6b8b3205b561c79e8e5f69bff09736185f4" +- version = "v1.0.0" +- +-[[projects]] +- digest = "1:713b341855f1480e4baca1e7c5434e1d266441340685ecbde32d59bdc065fb3f" +- name = "github.com/mitchellh/go-wordwrap" +- packages = ["."] +- pruneopts = "" +- revision = "9e67c67572bc5dd02aef930e2b0ae3c02a4b5a5c" +- version = "v1.0.0" +- +-[[projects]] +- branch = "master" +- digest = "1:eb9117392ee8e7aa44f78e0db603f70b1050ee0ebda4bd40040befb5b218c546" +- name = "github.com/mitchellh/mapstructure" +- packages = ["."] +- pruneopts = "" +- revision = "bb74f1db0675b241733089d5a1faa5dd8b0ef57b" +- +-[[projects]] +- digest = "1:0c0ff2a89c1bb0d01887e1dac043ad7efbf3ec77482ef058ac423d13497e16fd" +- name = "github.com/modern-go/concurrent" +- packages = ["."] +- pruneopts = "" +- revision = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94" +- version = "1.0.3" +- +-[[projects]] +- digest = "1:e32bdbdb7c377a07a9a46378290059822efdce5c8d96fe71940d87cb4f918855" +- name = "github.com/modern-go/reflect2" +- packages = ["."] +- pruneopts = "" +- revision = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd" +- version = "1.0.1" +- +-[[projects]] +- digest = "1:5d9b668b0b4581a978f07e7d2e3314af18eb27b3fb5d19b70185b7c575723d11" +- name = "github.com/opencontainers/go-digest" +- packages = ["."] +- pruneopts = "" +- revision = "279bed98673dd5bef374d3b6e4b09e2af76183bf" +- version = "v1.0.0-rc1" +- +-[[projects]] +- digest = "1:4c0404dc03d974acd5fcd8b8d3ce687b13bd169db032b89275e8b9d77b98ce8c" +- name = "github.com/patrickmn/go-cache" +- packages = ["."] +- pruneopts = "" +- revision = "a3647f8e31d79543b2d0f0ae2fe5c379d72cedc0" +- version = "v2.1.0" +- +-[[projects]] +- digest = "1:049b5bee78dfdc9628ee0e557219c41f683e5b06c5a5f20eaba0105ccc586689" +- name = "github.com/pelletier/go-buffruneio" +- packages = ["."] +- pruneopts = "" +- revision = "c37440a7cf42ac63b919c752ca73a85067e05992" +- version = "v0.2.0" +- +-[[projects]] +- branch = "master" +- digest = "1:5f0faa008e8ff4221b55a1a5057c8b02cb2fd68da6a65c9e31c82b72cbc836d0" +- name = "github.com/petar/GoLLRB" +- packages = ["llrb"] +- pruneopts = "" +- revision = "33fb24c13b99c46c93183c291836c573ac382536" +- +-[[projects]] +- digest = "1:4709c61d984ef9ba99b037b047546d8a576ae984fb49486e48d99658aa750cd5" +- name = "github.com/peterbourgon/diskv" +- packages = ["."] +- pruneopts = "" +- revision = "0be1b92a6df0e4f5cb0a5d15fb7f643d0ad93ce6" +- version = "v3.0.0" +- +-[[projects]] +- digest = "1:7365acd48986e205ccb8652cc746f09c8b7876030d53710ea6ef7d0bd0dcd7ca" +- name = "github.com/pkg/errors" +- packages = ["."] +- pruneopts = "" +- revision = "645ef00459ed84a119197bfb8d8205042c6df63d" +- version = "v0.8.0" +- +-[[projects]] +- digest = "1:256484dbbcd271f9ecebc6795b2df8cad4c458dd0f5fd82a8c2fa0c29f233411" +- name = "github.com/pmezard/go-difflib" +- packages = ["difflib"] +- pruneopts = "" +- revision = "792786c7400a136282c1664665ae0a8db921c6c2" +- version = "v1.0.0" +- +-[[projects]] +- branch = "master" +- digest = "1:90daff4630a8cf2fa207dbd3ccaed0e860936ead1851a473019674e6b5993a13" +- name = "github.com/pquerna/cachecontrol" +- packages = [ +- ".", +- "cacheobject", +- ] +- pruneopts = "" +- revision = "525d0eb5f91d30e3b1548de401b7ef9ea6898520" +- +-[[projects]] +- digest = "1:9d34d575593e3dd27bbd119138ba009ef1535a0df2aad7259e1dd5aed7405eea" +- name = "github.com/prometheus/client_golang" +- packages = [ +- "prometheus", +- "prometheus/internal", +- "prometheus/promhttp", +- ] +- pruneopts = "" +- revision = "7858729281ec582767b20e0d696b6041d995d5e0" +- +-[[projects]] +- branch = "master" +- digest = "1:185cf55b1f44a1bf243558901c3f06efa5c64ba62cfdcbb1bf7bbe8c3fb68561" +- name = "github.com/prometheus/client_model" +- packages = ["go"] +- pruneopts = "" +- revision = "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f" +- +-[[projects]] +- branch = "master" +- digest = "1:f477ef7b65d94fb17574fc6548cef0c99a69c1634ea3b6da248b63a61ebe0498" +- name = "github.com/prometheus/common" +- packages = [ +- "expfmt", +- "internal/bitbucket.org/ww/goautoneg", +- "model", +- ] +- pruneopts = "" +- revision = "c7de2306084e37d54b8be01f3541a8464345e9a5" +- +-[[projects]] +- branch = "master" +- digest = "1:e04aaa0e8f8da0ed3d6c0700bd77eda52a47f38510063209d72d62f0ef807d5e" +- name = "github.com/prometheus/procfs" +- packages = [ +- ".", +- "internal/util", +- "nfs", +- "xfs", +- ] +- pruneopts = "" +- revision = "05ee40e3a273f7245e8777337fc7b46e533a9a92" +- +-[[projects]] +- digest = "1:6bb048133650d1fb7fbff9fb3c35bd5c7e8653fc95c3bae6df94cd17d1580278" +- name = "github.com/robfig/cron" +- packages = ["."] +- pruneopts = "" +- revision = "45fbe1491cdd47d74d1bf1396286d67faee8b8b5" +- version = "v3.0.0" +- +-[[projects]] +- digest = "1:5f47c69f85311c4dc292be6cc995a0a3fe8337a6ce38ef4f71e5b7efd5ad42e0" +- name = "github.com/rs/cors" +- packages = ["."] +- pruneopts = "" +- revision = "9a47f48565a795472d43519dd49aac781f3034fb" +- version = "v1.6.0" +- +-[[projects]] +- digest = "1:2761e287c811d0948d47d0252b82281eca3801eb3c9d5f9530956643d5b9f430" +- name = "github.com/russross/blackfriday" +- packages = ["."] +- pruneopts = "" +- revision = "05f3235734ad95d0016f6a23902f06461fcf567a" +- version = "v1.5.2" +- +-[[projects]] +- digest = "1:3962f553b77bf6c03fc07cd687a22dd3b00fe11aa14d31194f5505f5bb65cdc8" +- name = "github.com/sergi/go-diff" +- packages = ["diffmatchpatch"] +- pruneopts = "" +- revision = "1744e2970ca51c86172c8190fadad617561ed6e7" +- version = "v1.0.0" +- +-[[projects]] +- digest = "1:01d968ff6535945510c944983eee024e81f1c949043e9bbfe5ab206ebc3588a4" +- name = "github.com/sirupsen/logrus" +- packages = [ +- ".", +- "hooks/test", +- ] +- pruneopts = "" +- revision = "a67f783a3814b8729bd2dac5780b5f78f8dbd64d" +- version = "v1.1.0" +- +-[[projects]] +- branch = "master" +- digest = "1:50b5be512f924d289f20e8b2aef8951d98b9bd8c44666cf169514906df597a4c" +- name = "github.com/skratchdot/open-golang" +- packages = ["open"] +- pruneopts = "" +- revision = "75fb7ed4208cf72d323d7d02fd1a5964a7a9073c" +- +-[[projects]] +- digest = "1:022a4e2a8c327eb46a99088a51c0dda5d5be86928ace2afd72145dc1d746a323" +- name = "github.com/soheilhy/cmux" +- packages = ["."] +- pruneopts = "" +- revision = "e09e9389d85d8492d313d73d1469c029e710623f" +- version = "v0.1.4" +- +-[[projects]] +- digest = "1:0c63b3c7ad6d825a898f28cb854252a3b29d37700c68a117a977263f5ec94efe" +- name = "github.com/spf13/cobra" +- packages = ["."] +- pruneopts = "" +- revision = "0.0.5" +- +-[[projects]] +- digest = "1:8e243c568f36b09031ec18dff5f7d2769dcf5ca4d624ea511c8e3197dc3d352d" +- name = "github.com/spf13/pflag" +- packages = ["."] +- pruneopts = "" +- revision = "583c0c0531f06d5278b7d917446061adc344b5cd" +- version = "v1.0.1" +- +-[[projects]] +- digest = "1:b1861b9a1aa0801b0b62945ed7477c1ab61a4bd03b55dfbc27f6d4f378110c8c" +- name = "github.com/src-d/gcfg" +- packages = [ +- ".", +- "scanner", +- "token", +- "types", +- ] +- pruneopts = "" +- revision = "f187355171c936ac84a82793659ebb4936bc1c23" +- version = "v1.3.0" +- +-[[projects]] +- digest = "1:306417ea2f31ea733df356a2b895de63776b6a5107085b33458e5cd6eb1d584d" +- name = "github.com/stretchr/objx" +- packages = ["."] +- pruneopts = "" +- revision = "facf9a85c22f48d2f52f2380e4efce1768749a89" +- version = "v0.1" +- +-[[projects]] +- digest = "1:c587772fb8ad29ad4db67575dad25ba17a51f072ff18a22b4f0257a4d9c24f75" +- name = "github.com/stretchr/testify" +- packages = [ +- "assert", +- "mock", +- ] +- pruneopts = "" +- revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686" +- version = "v1.2.2" +- +-[[projects]] +- digest = "1:51cf0fca93f4866709ceaf01b750e51d997c299a7bd2edf7ccd79e3b428754ae" +- name = "github.com/vmihailenco/msgpack" +- packages = [ +- ".", +- "codes", +- ] +- pruneopts = "" +- revision = "a053f3dac71df214bfe8b367f34220f0029c9c02" +- version = "v3.3.1" +- +-[[projects]] +- digest = "1:afc0b8068986a01e2d8f449917829753a54f6bd4d1265c2b4ad9cba75560020f" +- name = "github.com/xanzy/ssh-agent" +- packages = ["."] +- pruneopts = "" +- revision = "640f0ab560aeb89d523bb6ac322b1244d5c3796c" +- version = "v0.2.0" +- +-[[projects]] +- branch = "master" +- digest = "1:3cf699a0df65293cc8fd2339606950d3e2f6d02a435703951d1da411a23f7cef" +- name = "github.com/yudai/gojsondiff" +- packages = [ +- ".", +- "formatter", +- ] +- pruneopts = "" +- revision = "0525c875b75ca60b9e67ddc44496aa16f21066b0" +- +-[[projects]] +- branch = "master" +- digest = "1:9857bb2293f372b2181004d8b62179bbdb4ab0982ec6f762abe6cf2bfedaff85" +- name = "github.com/yudai/golcs" +- packages = ["."] +- pruneopts = "" +- revision = "ecda9a501e8220fae3b4b600c3db4b0ba22cfc68" +- +-[[projects]] +- branch = "master" +- digest = "1:525776d99293affd2c61dfb573007ff9f22863068c20c220ef3f58620758c341" +- name = "github.com/yuin/gopher-lua" +- packages = [ +- ".", +- "ast", +- "parse", +- "pm", +- ] +- pruneopts = "" +- revision = "732aa6820ec4fb93d60c4057dd574c33db8ad4e7" +- +-[[projects]] +- branch = "master" +- digest = "1:2ea6df0f542cc95a5e374e9cdd81eaa599ed0d55366eef92d2f6b9efa2795c07" +- name = "golang.org/x/crypto" +- packages = [ +- "bcrypt", +- "blowfish", +- "cast5", +- "curve25519", +- "ed25519", +- "ed25519/internal/edwards25519", +- "internal/chacha20", +- "openpgp", +- "openpgp/armor", +- "openpgp/elgamal", +- "openpgp/errors", +- "openpgp/packet", +- "openpgp/s2k", +- "poly1305", +- "ssh", +- "ssh/agent", +- "ssh/knownhosts", +- "ssh/terminal", +- ] +- pruneopts = "" +- revision = "432090b8f568c018896cd8a0fb0345872bbac6ce" +- +-[[projects]] +- branch = "master" +- digest = "1:b4ba046df563f56fe42b6270b20039107a37e1ab47c97aa47a16f848aa5b6d9a" +- name = "golang.org/x/net" +- packages = [ +- "context", +- "context/ctxhttp", +- "http2", +- "http2/hpack", +- "idna", +- "internal/timeseries", +- "lex/httplex", +- "trace", +- ] +- pruneopts = "" +- revision = "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb" +- +-[[projects]] +- digest = "1:8a58c605e58272e3d280181a24749b07499cf98968da6f7c1d19c8d5649c6b1b" +- name = "golang.org/x/oauth2" +- packages = [ +- ".", +- "google", +- "internal", +- "jws", +- "jwt", +- ] +- pruneopts = "" +- revision = "cce311a261e6fcf29de72ca96827bdb0b7d9c9e6" +- +-[[projects]] +- branch = "master" +- digest = "1:b2ea75de0ccb2db2ac79356407f8a4cd8f798fe15d41b381c00abf3ae8e55ed1" +- name = "golang.org/x/sync" +- packages = [ +- "errgroup", +- "semaphore", +- ] +- pruneopts = "" +- revision = "1d60e4601c6fd243af51cc01ddf169918a5407ca" +- +-[[projects]] +- branch = "master" +- digest = "1:ed900376500543ca05f2a2383e1f541b4606f19cd22f34acb81b17a0b90c7f3e" +- name = "golang.org/x/sys" +- packages = [ +- "unix", +- "windows", +- ] +- pruneopts = "" +- revision = "d0be0721c37eeb5299f245a996a483160fc36940" +- +-[[projects]] +- branch = "master" +- digest = "1:31985a0ed491dba5ba7fe92e18be008acd92ca9435ed9b35b06f3e6c00fd82cb" +- name = "golang.org/x/text" +- packages = [ +- "collate", +- "collate/build", +- "encoding", +- "encoding/internal", +- "encoding/internal/identifier", +- "encoding/unicode", +- "internal/colltab", +- "internal/gen", +- "internal/tag", +- "internal/triegen", +- "internal/ucd", +- "internal/utf8internal", +- "language", +- "runes", +- "secure/bidirule", +- "transform", +- "unicode/bidi", +- "unicode/cldr", +- "unicode/norm", +- "unicode/rangetable", +- "width", +- ] +- pruneopts = "" +- revision = "4e4a3210bb54bb31f6ab2cdca2edcc0b50c420c1" +- +-[[projects]] +- branch = "master" +- digest = "1:55a681cb66f28755765fa5fa5104cbd8dc85c55c02d206f9f89566451e3fe1aa" +- name = "golang.org/x/time" +- packages = ["rate"] +- pruneopts = "" +- revision = "fbb02b2291d28baffd63558aa44b4b56f178d650" +- +-[[projects]] +- branch = "master" +- digest = "1:77e1d6ed91936b206979806b0aacbf817ec54b840803d8f8cd7a1de5bfbf92a4" +- name = "golang.org/x/tools" +- packages = [ +- "go/ast/astutil", +- "imports", +- ] +- pruneopts = "" +- revision = "5e776fee60db37e560cee3fb46db699d2f095386" +- +-[[projects]] +- branch = "master" +- digest = "1:e9e4b928898842a138bc345d42aae33741baa6d64f3ca69b0931f9c7a4fd0437" +- name = "gonum.org/v1/gonum" +- packages = [ +- "blas", +- "blas/blas64", +- "blas/cblas128", +- "blas/gonum", +- "floats", +- "graph", +- "graph/internal/linear", +- "graph/internal/ordered", +- "graph/internal/set", +- "graph/internal/uid", +- "graph/iterator", +- "graph/simple", +- "graph/topo", +- "graph/traverse", +- "internal/asm/c128", +- "internal/asm/c64", +- "internal/asm/f32", +- "internal/asm/f64", +- "internal/cmplx64", +- "internal/math32", +- "lapack", +- "lapack/gonum", +- "lapack/lapack64", +- "mat", +- ] +- pruneopts = "" +- revision = "90b7154515874cee6c33cf56b29e257403a09a69" +- +-[[projects]] +- digest = "1:934fb8966f303ede63aa405e2c8d7f0a427a05ea8df335dfdc1833dd4d40756f" +- name = "google.golang.org/appengine" +- packages = [ +- ".", +- "datastore", +- "internal", +- "internal/app_identity", +- "internal/base", +- "internal/datastore", +- "internal/log", +- "internal/modules", +- "internal/remote_api", +- "internal/urlfetch", +- "urlfetch", +- ] +- pruneopts = "" +- revision = "150dc57a1b433e64154302bdc40b6bb8aefa313a" +- version = "v1.0.0" +- +-[[projects]] +- branch = "master" +- digest = "1:2d833b53e432cd69645da559b822661ebc5c0a13c571dee1c1f80fb1a0241330" +- name = "google.golang.org/genproto" +- packages = [ +- "googleapis/api/annotations", +- "googleapis/rpc/status", +- ] +- pruneopts = "" +- revision = "2b5a72b8730b0b16380010cfe5286c42108d88e7" +- +-[[projects]] +- digest = "1:15656947b87a6a240e61dcfae9e71a55a8d5677f240d12ab48f02cdbabf1e309" +- name = "google.golang.org/grpc" +- packages = [ +- ".", +- "balancer", +- "balancer/base", +- "balancer/roundrobin", +- "codes", +- "connectivity", +- "credentials", +- "encoding", +- "encoding/proto", +- "grpclog", +- "internal", +- "internal/backoff", +- "internal/channelz", +- "internal/envconfig", +- "internal/grpcrand", +- "internal/transport", +- "keepalive", +- "metadata", +- "naming", +- "peer", +- "reflection", +- "reflection/grpc_reflection_v1alpha", +- "resolver", +- "resolver/dns", +- "resolver/passthrough", +- "stats", +- "status", +- "tap", +- ] +- pruneopts = "" +- revision = "8dea3dc473e90c8179e519d91302d0597c0ca1d1" +- version = "v1.15.0" +- +-[[projects]] +- digest = "1:adf5b0ae3467c3182757ecb86fbfe819939473bb870a42789dc1a3e7729397cd" +- name = "gopkg.in/go-playground/webhooks.v5" +- packages = [ +- "bitbucket", +- "bitbucket-server", +- "github", +- "gitlab", +- "gogs", +- ] +- pruneopts = "" +- revision = "175186584584a83966dc9a7b8ec6c3d3a4ce6110" +- version = "v5.11.0" +- +-[[projects]] +- digest = "1:e5d1fb981765b6f7513f793a3fcaac7158408cca77f75f7311ac82cc88e9c445" +- name = "gopkg.in/inf.v0" +- packages = ["."] +- pruneopts = "" +- revision = "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4" +- version = "v0.9.0" +- +-[[projects]] +- branch = "v2" +- digest = "1:c80894778314c7fb90d94a5ab925214900e1341afeddc953cda7398b8cdcd006" +- name = "gopkg.in/mgo.v2" +- packages = [ +- "bson", +- "internal/json", +- ] +- pruneopts = "" +- revision = "3f83fa5005286a7fe593b055f0d7771a7dce4655" +- +-[[projects]] +- digest = "1:de0ec5755ee1a5e61f079c8855cf2073b5a5f614ae3b51db65f2c4e1044455fd" +- name = "gopkg.in/square/go-jose.v2" +- packages = [ +- ".", +- "cipher", +- "json", +- ] +- pruneopts = "" +- revision = "76dd09796242edb5b897103a75df2645c028c960" +- version = "v2.1.6" +- +-[[projects]] +- digest = "1:c8f3ff1edaf7208bf7633e5952ffb8d697552343f8010aee12427400b434ae63" +- name = "gopkg.in/src-d/go-billy.v4" +- packages = [ +- ".", +- "helper/chroot", +- "helper/polyfill", +- "osfs", +- "util", +- ] +- pruneopts = "" +- revision = "59952543636f55de3f860b477b615093d5c2c3e4" +- version = "v4.2.1" +- +-[[projects]] +- digest = "1:a72d911e18578e34367f4b849340501c7e6a2787a3a05651b3d53c6cb96990f4" +- name = "gopkg.in/src-d/go-git.v4" +- packages = [ +- ".", +- "config", +- "internal/revision", +- "plumbing", +- "plumbing/cache", +- "plumbing/filemode", +- "plumbing/format/config", +- "plumbing/format/diff", +- "plumbing/format/gitignore", +- "plumbing/format/idxfile", +- "plumbing/format/index", +- "plumbing/format/objfile", +- "plumbing/format/packfile", +- "plumbing/format/pktline", +- "plumbing/object", +- "plumbing/protocol/packp", +- "plumbing/protocol/packp/capability", +- "plumbing/protocol/packp/sideband", +- "plumbing/revlist", +- "plumbing/storer", +- "plumbing/transport", +- "plumbing/transport/client", +- "plumbing/transport/file", +- "plumbing/transport/git", +- "plumbing/transport/http", +- "plumbing/transport/internal/common", +- "plumbing/transport/server", +- "plumbing/transport/ssh", +- "storage", +- "storage/filesystem", +- "storage/filesystem/dotgit", +- "storage/memory", +- "utils/binary", +- "utils/diff", +- "utils/ioutil", +- "utils/merkletrie", +- "utils/merkletrie/filesystem", +- "utils/merkletrie/index", +- "utils/merkletrie/internal/frame", +- "utils/merkletrie/noder", +- ] +- pruneopts = "" +- revision = "a1f6ef44dfed1253ef7f3bc049f66b15f8fc2ab2" +- version = "v4.9.1" +- +-[[projects]] +- digest = "1:ceec7e96590fb8168f36df4795fefe17051d4b0c2acc7ec4e260d8138c4dafac" +- name = "gopkg.in/warnings.v0" +- packages = ["."] +- pruneopts = "" +- revision = "ec4a0fea49c7b46c2aeb0b51aac55779c607e52b" +- version = "v0.1.2" +- +-[[projects]] +- digest = "1:cedccf16b71e86db87a24f8d4c70b0a855872eb967cb906a66b95de56aefbd0d" +- name = "gopkg.in/yaml.v2" +- packages = ["."] +- pruneopts = "" +- revision = "51d6538a90f86fe93ac480b35f37b2be17fef232" +- version = "v2.2.2" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:5e5cfbab57ea5444c1eb295a39fdc403f097f5ace592c829db7b3e0e3ea66903" +- name = "k8s.io/api" +- packages = [ +- "admission/v1", +- "admission/v1beta1", +- "admissionregistration/v1", +- "admissionregistration/v1beta1", +- "apps/v1", +- "apps/v1beta1", +- "apps/v1beta2", +- "auditregistration/v1alpha1", +- "authentication/v1", +- "authentication/v1beta1", +- "authorization/v1", +- "authorization/v1beta1", +- "autoscaling/v1", +- "autoscaling/v2beta1", +- "autoscaling/v2beta2", +- "batch/v1", +- "batch/v1beta1", +- "batch/v2alpha1", +- "certificates/v1beta1", +- "coordination/v1", +- "coordination/v1beta1", +- "core/v1", +- "discovery/v1alpha1", +- "events/v1beta1", +- "extensions/v1beta1", +- "imagepolicy/v1alpha1", +- "networking/v1", +- "networking/v1beta1", +- "node/v1alpha1", +- "node/v1beta1", +- "policy/v1beta1", +- "rbac/v1", +- "rbac/v1alpha1", +- "rbac/v1beta1", +- "scheduling/v1", +- "scheduling/v1alpha1", +- "scheduling/v1beta1", +- "settings/v1alpha1", +- "storage/v1", +- "storage/v1alpha1", +- "storage/v1beta1", +- ] +- pruneopts = "" +- revision = "195af9ec35214c6d98662c5791364285bf2e2cf2" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:7f29d62c07c68767171cf2ed8598e0cb862b99584bb8beb93189e2ed00ac520e" +- name = "k8s.io/apiextensions-apiserver" +- packages = [ +- "pkg/apis/apiextensions", +- "pkg/apis/apiextensions/v1", +- "pkg/apis/apiextensions/v1beta1", +- "pkg/client/clientset/clientset", +- "pkg/client/clientset/clientset/scheme", +- "pkg/client/clientset/clientset/typed/apiextensions/v1", +- "pkg/client/clientset/clientset/typed/apiextensions/v1beta1", +- "pkg/features", +- ] +- pruneopts = "" +- revision = "07afe84a85e43cf2503133660c424a0b594b21db" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:36db89a45a8cb3d565f7ebfd67dafd42c9c0bbb80d6bbd4991629b39b02a4c64" +- name = "k8s.io/apimachinery" +- packages = [ +- "pkg/api/equality", +- "pkg/api/errors", +- "pkg/api/meta", +- "pkg/api/resource", +- "pkg/api/validation", +- "pkg/api/validation/path", +- "pkg/apis/meta/internalversion", +- "pkg/apis/meta/v1", +- "pkg/apis/meta/v1/unstructured", +- "pkg/apis/meta/v1/unstructured/unstructuredscheme", +- "pkg/apis/meta/v1/validation", +- "pkg/apis/meta/v1beta1", +- "pkg/conversion", +- "pkg/conversion/queryparams", +- "pkg/fields", +- "pkg/labels", +- "pkg/runtime", +- "pkg/runtime/schema", +- "pkg/runtime/serializer", +- "pkg/runtime/serializer/json", +- "pkg/runtime/serializer/protobuf", +- "pkg/runtime/serializer/recognizer", +- "pkg/runtime/serializer/streaming", +- "pkg/runtime/serializer/versioning", +- "pkg/selection", +- "pkg/types", +- "pkg/util/cache", +- "pkg/util/clock", +- "pkg/util/diff", +- "pkg/util/duration", +- "pkg/util/errors", +- "pkg/util/framer", +- "pkg/util/httpstream", +- "pkg/util/httpstream/spdy", +- "pkg/util/intstr", +- "pkg/util/json", +- "pkg/util/jsonmergepatch", +- "pkg/util/mergepatch", +- "pkg/util/naming", +- "pkg/util/net", +- "pkg/util/remotecommand", +- "pkg/util/runtime", +- "pkg/util/sets", +- "pkg/util/strategicpatch", +- "pkg/util/validation", +- "pkg/util/validation/field", +- "pkg/util/wait", +- "pkg/util/yaml", +- "pkg/version", +- "pkg/watch", +- "third_party/forked/golang/json", +- "third_party/forked/golang/netutil", +- "third_party/forked/golang/reflect", +- ] +- pruneopts = "" +- revision = "72ed19daf4bb788ae595ae4103c404cb0fa09c84" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:4e236f3f94cfc5f005ceb143948ad39a4b2ad10373f394b232838f797bddd6ef" +- name = "k8s.io/apiserver" +- packages = [ +- "pkg/apis/audit", +- "pkg/authentication/serviceaccount", +- "pkg/authentication/user", +- "pkg/endpoints/request", +- "pkg/features", +- "pkg/util/feature", +- ] +- pruneopts = "" +- revision = "ebfe712c1fff40c4800d779470515e6025eda218" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:b46a88b317c3187b6fa7c5351eca48b35aad182eee371168677747430ff955bb" +- name = "k8s.io/cli-runtime" +- packages = [ +- "pkg/genericclioptions", +- "pkg/kustomize", +- "pkg/kustomize/k8sdeps", +- "pkg/kustomize/k8sdeps/configmapandsecret", +- "pkg/kustomize/k8sdeps/kunstruct", +- "pkg/kustomize/k8sdeps/kv", +- "pkg/kustomize/k8sdeps/transformer", +- "pkg/kustomize/k8sdeps/transformer/hash", +- "pkg/kustomize/k8sdeps/transformer/patch", +- "pkg/kustomize/k8sdeps/validator", +- "pkg/printers", +- "pkg/resource", +- ] +- pruneopts = "" +- revision = "6bff60de437070d7e8644b7a930837d5de512240" +- +-[[projects]] +- branch = "release-13.0" +- digest = "1:84f90f6a3b5b16f2c57164c5281d302b2647da8f77aa9cb14d5ebeb17fccc25e" +- name = "k8s.io/client-go" +- packages = [ +- "discovery", +- "discovery/cached/disk", +- "discovery/fake", +- "dynamic", +- "dynamic/fake", +- "informers/core/v1", +- "informers/internalinterfaces", +- "kubernetes", +- "kubernetes/fake", +- "kubernetes/scheme", +- "kubernetes/typed/admissionregistration/v1", +- "kubernetes/typed/admissionregistration/v1/fake", +- "kubernetes/typed/admissionregistration/v1beta1", +- "kubernetes/typed/admissionregistration/v1beta1/fake", +- "kubernetes/typed/apps/v1", +- "kubernetes/typed/apps/v1/fake", +- "kubernetes/typed/apps/v1beta1", +- "kubernetes/typed/apps/v1beta1/fake", +- "kubernetes/typed/apps/v1beta2", +- "kubernetes/typed/apps/v1beta2/fake", +- "kubernetes/typed/auditregistration/v1alpha1", +- "kubernetes/typed/auditregistration/v1alpha1/fake", +- "kubernetes/typed/authentication/v1", +- "kubernetes/typed/authentication/v1/fake", +- "kubernetes/typed/authentication/v1beta1", +- "kubernetes/typed/authentication/v1beta1/fake", +- "kubernetes/typed/authorization/v1", +- "kubernetes/typed/authorization/v1/fake", +- "kubernetes/typed/authorization/v1beta1", +- "kubernetes/typed/authorization/v1beta1/fake", +- "kubernetes/typed/autoscaling/v1", +- "kubernetes/typed/autoscaling/v1/fake", +- "kubernetes/typed/autoscaling/v2beta1", +- "kubernetes/typed/autoscaling/v2beta1/fake", +- "kubernetes/typed/autoscaling/v2beta2", +- "kubernetes/typed/autoscaling/v2beta2/fake", +- "kubernetes/typed/batch/v1", +- "kubernetes/typed/batch/v1/fake", +- "kubernetes/typed/batch/v1beta1", +- "kubernetes/typed/batch/v1beta1/fake", +- "kubernetes/typed/batch/v2alpha1", +- "kubernetes/typed/batch/v2alpha1/fake", +- "kubernetes/typed/certificates/v1beta1", +- "kubernetes/typed/certificates/v1beta1/fake", +- "kubernetes/typed/coordination/v1", +- "kubernetes/typed/coordination/v1/fake", +- "kubernetes/typed/coordination/v1beta1", +- "kubernetes/typed/coordination/v1beta1/fake", +- "kubernetes/typed/core/v1", +- "kubernetes/typed/core/v1/fake", +- "kubernetes/typed/discovery/v1alpha1", +- "kubernetes/typed/discovery/v1alpha1/fake", +- "kubernetes/typed/events/v1beta1", +- "kubernetes/typed/events/v1beta1/fake", +- "kubernetes/typed/extensions/v1beta1", +- "kubernetes/typed/extensions/v1beta1/fake", +- "kubernetes/typed/networking/v1", +- "kubernetes/typed/networking/v1/fake", +- "kubernetes/typed/networking/v1beta1", +- "kubernetes/typed/networking/v1beta1/fake", +- "kubernetes/typed/node/v1alpha1", +- "kubernetes/typed/node/v1alpha1/fake", +- "kubernetes/typed/node/v1beta1", +- "kubernetes/typed/node/v1beta1/fake", +- "kubernetes/typed/policy/v1beta1", +- "kubernetes/typed/policy/v1beta1/fake", +- "kubernetes/typed/rbac/v1", +- "kubernetes/typed/rbac/v1/fake", +- "kubernetes/typed/rbac/v1alpha1", +- "kubernetes/typed/rbac/v1alpha1/fake", +- "kubernetes/typed/rbac/v1beta1", +- "kubernetes/typed/rbac/v1beta1/fake", +- "kubernetes/typed/scheduling/v1", +- "kubernetes/typed/scheduling/v1/fake", +- "kubernetes/typed/scheduling/v1alpha1", +- "kubernetes/typed/scheduling/v1alpha1/fake", +- "kubernetes/typed/scheduling/v1beta1", +- "kubernetes/typed/scheduling/v1beta1/fake", +- "kubernetes/typed/settings/v1alpha1", +- "kubernetes/typed/settings/v1alpha1/fake", +- "kubernetes/typed/storage/v1", +- "kubernetes/typed/storage/v1/fake", +- "kubernetes/typed/storage/v1alpha1", +- "kubernetes/typed/storage/v1alpha1/fake", +- "kubernetes/typed/storage/v1beta1", +- "kubernetes/typed/storage/v1beta1/fake", +- "listers/core/v1", +- "pkg/apis/clientauthentication", +- "pkg/apis/clientauthentication/v1alpha1", +- "pkg/apis/clientauthentication/v1beta1", +- "pkg/version", +- "plugin/pkg/client/auth/exec", +- "plugin/pkg/client/auth/gcp", +- "plugin/pkg/client/auth/oidc", +- "rest", +- "rest/watch", +- "restmapper", +- "scale", +- "scale/scheme", +- "scale/scheme/appsint", +- "scale/scheme/appsv1beta1", +- "scale/scheme/appsv1beta2", +- "scale/scheme/autoscalingv1", +- "scale/scheme/extensionsint", +- "scale/scheme/extensionsv1beta1", +- "testing", +- "third_party/forked/golang/template", +- "tools/auth", +- "tools/cache", +- "tools/clientcmd", +- "tools/clientcmd/api", +- "tools/clientcmd/api/latest", +- "tools/clientcmd/api/v1", +- "tools/metrics", +- "tools/pager", +- "tools/portforward", +- "tools/reference", +- "tools/remotecommand", +- "tools/watch", +- "transport", +- "transport/spdy", +- "util/cert", +- "util/connrotation", +- "util/exec", +- "util/flowcontrol", +- "util/homedir", +- "util/jsonpath", +- "util/keyutil", +- "util/retry", +- "util/workqueue", +- ] +- pruneopts = "" +- revision = "85029d69edeae82e97dd1a0de3b24668cee9a15d" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:254da4cb69b3776686b730a206e081e6f8898bb64760619d1895c25c407e718f" +- name = "k8s.io/code-generator" +- packages = [ +- "cmd/go-to-protobuf", +- "cmd/go-to-protobuf/protobuf", +- "pkg/util", +- "third_party/forked/golang/reflect", +- ] +- pruneopts = "" +- revision = "8e001e5d18949be7e823ccb9cfe9b60026e7bda0" +- +-[[projects]] +- branch = "master" +- digest = "1:06c18e328063f3612dfda3c4c5e5b8becda1eabceca689335c8d98704dffe70a" +- name = "k8s.io/component-base" +- packages = ["featuregate"] +- pruneopts = "" +- revision = "435ce712a6949916fa293dc4d3d49429962043d8" +- +-[[projects]] +- branch = "master" +- digest = "1:6a2a63e09a59caff3fd2d36d69b7b92c2fe7cf783390f0b7349fb330820f9a8e" +- name = "k8s.io/gengo" +- packages = [ +- "args", +- "examples/set-gen/sets", +- "generator", +- "namer", +- "parser", +- "types", +- ] +- pruneopts = "" +- revision = "e17681d19d3ac4837a019ece36c2a0ec31ffe985" +- +-[[projects]] +- digest = "1:9eaf86f4f6fb4a8f177220d488ef1e3255d06a691cca95f14ef085d4cd1cef3c" +- name = "k8s.io/klog" +- packages = ["."] +- pruneopts = "" +- revision = "d98d8acdac006fb39831f1b25640813fef9c314f" +- version = "v0.3.3" +- +-[[projects]] +- branch = "master" +- digest = "1:0d737d598e9db0a38d6ef6cba514c358b9fe7e1bc6b1128d02b2622700c75f2a" +- name = "k8s.io/kube-aggregator" +- packages = [ +- "pkg/apis/apiregistration", +- "pkg/apis/apiregistration/v1", +- "pkg/apis/apiregistration/v1beta1", +- ] +- pruneopts = "" +- revision = "e80910364765199a4baebd4dec54c885fe52b680" +- +-[[projects]] +- digest = "1:16a343bd9d820ae320de4d1eaa8acc7a214aac4b38fb21d03255d3a457d861df" +- name = "k8s.io/kube-openapi" +- packages = [ +- "cmd/openapi-gen", +- "cmd/openapi-gen/args", +- "pkg/common", +- "pkg/generators", +- "pkg/generators/rules", +- "pkg/util/proto", +- "pkg/util/proto/validation", +- "pkg/util/sets", +- ] +- pruneopts = "" +- revision = "30be4d16710ac61bce31eb28a01054596fe6a9f1" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:687af22932f9b53ff2e6755b2eefe160f076d522794abb980f0ddb187bcefacd" +- name = "k8s.io/kubectl" +- packages = [ +- "pkg/cmd/apply", +- "pkg/cmd/delete", +- "pkg/cmd/util", +- "pkg/cmd/util/editor", +- "pkg/cmd/util/editor/crlf", +- "pkg/cmd/wait", +- "pkg/describe", +- "pkg/describe/versioned", +- "pkg/generated", +- "pkg/rawhttp", +- "pkg/scheme", +- "pkg/util", +- "pkg/util/certificate", +- "pkg/util/deployment", +- "pkg/util/event", +- "pkg/util/fieldpath", +- "pkg/util/i18n", +- "pkg/util/interrupt", +- "pkg/util/openapi", +- "pkg/util/openapi/validation", +- "pkg/util/printers", +- "pkg/util/qos", +- "pkg/util/rbac", +- "pkg/util/resource", +- "pkg/util/slice", +- "pkg/util/storage", +- "pkg/util/templates", +- "pkg/util/term", +- "pkg/validation", +- "pkg/version", +- ] +- pruneopts = "" +- revision = "14647fd13a8b4cffc5a8f327b0018e037f72e4e8" +- +-[[projects]] +- branch = "release-1.16" +- digest = "1:02241e5570c239d31e52955b1a8e6d603a35fd6542d14e98882fb6c3c4ef3d56" +- name = "k8s.io/kubernetes" +- packages = [ +- "pkg/api/legacyscheme", +- "pkg/api/v1/pod", +- "pkg/apis/apps", +- "pkg/apis/apps/install", +- "pkg/apis/apps/v1", +- "pkg/apis/apps/v1beta1", +- "pkg/apis/apps/v1beta2", +- "pkg/apis/authentication", +- "pkg/apis/authentication/install", +- "pkg/apis/authentication/v1", +- "pkg/apis/authentication/v1beta1", +- "pkg/apis/authorization", +- "pkg/apis/authorization/install", +- "pkg/apis/authorization/v1", +- "pkg/apis/authorization/v1beta1", +- "pkg/apis/autoscaling", +- "pkg/apis/autoscaling/install", +- "pkg/apis/autoscaling/v1", +- "pkg/apis/autoscaling/v2beta1", +- "pkg/apis/autoscaling/v2beta2", +- "pkg/apis/batch", +- "pkg/apis/batch/install", +- "pkg/apis/batch/v1", +- "pkg/apis/batch/v1beta1", +- "pkg/apis/batch/v2alpha1", +- "pkg/apis/certificates", +- "pkg/apis/certificates/install", +- "pkg/apis/certificates/v1beta1", +- "pkg/apis/coordination", +- "pkg/apis/coordination/install", +- "pkg/apis/coordination/v1", +- "pkg/apis/coordination/v1beta1", +- "pkg/apis/core", +- "pkg/apis/core/install", +- "pkg/apis/core/v1", +- "pkg/apis/events", +- "pkg/apis/events/install", +- "pkg/apis/events/v1beta1", +- "pkg/apis/extensions", +- "pkg/apis/extensions/install", +- "pkg/apis/extensions/v1beta1", +- "pkg/apis/networking", +- "pkg/apis/policy", +- "pkg/apis/policy/install", +- "pkg/apis/policy/v1beta1", +- "pkg/apis/rbac", +- "pkg/apis/rbac/install", +- "pkg/apis/rbac/v1", +- "pkg/apis/rbac/v1alpha1", +- "pkg/apis/rbac/v1beta1", +- "pkg/apis/scheduling", +- "pkg/apis/scheduling/install", +- "pkg/apis/scheduling/v1", +- "pkg/apis/scheduling/v1alpha1", +- "pkg/apis/scheduling/v1beta1", +- "pkg/apis/settings", +- "pkg/apis/settings/install", +- "pkg/apis/settings/v1alpha1", +- "pkg/apis/storage", +- "pkg/apis/storage/install", +- "pkg/apis/storage/v1", +- "pkg/apis/storage/v1alpha1", +- "pkg/apis/storage/v1beta1", +- "pkg/features", +- "pkg/kubectl/cmd/auth", +- "pkg/registry/rbac/reconciliation", +- "pkg/registry/rbac/validation", +- "pkg/util/node", +- "pkg/util/parsers", +- "pkg/util/slice", +- "pkg/util/workqueue/prometheus", +- ] +- pruneopts = "" +- revision = "bfafae8f1c2fdf3c3cfef04674db028531a7c098" +- +-[[projects]] +- branch = "master" +- digest = "1:a8a2e6bbef691323b833d0eb11bb0e570e7eb9619ac76f7b11265530e1cac922" +- name = "k8s.io/utils" +- packages = [ +- "buffer", +- "exec", +- "integer", +- "net", +- "pointer", +- "trace", +- ] +- pruneopts = "" +- revision = "6ca3b61696b65b0e81f1a39b4937fc2d2994ed6a" +- +-[[projects]] +- branch = "master" +- digest = "1:9b9f12f4c13ca4a4f4b4554c00ba46cb2910ff4079825d96d520b03c447e6da5" +- name = "layeh.com/gopher-json" +- packages = ["."] +- pruneopts = "" +- revision = "97fed8db84274c421dbfffbb28ec859901556b97" +- +-[[projects]] +- digest = "1:0b2daace3dcced8712072529b621360cf520f3c2ead92d755f35a0ec8dca2714" +- name = "sigs.k8s.io/kustomize" +- packages = [ +- "pkg/commands/build", +- "pkg/constants", +- "pkg/expansion", +- "pkg/factory", +- "pkg/fs", +- "pkg/git", +- "pkg/gvk", +- "pkg/ifc", +- "pkg/ifc/transformer", +- "pkg/image", +- "pkg/internal/error", +- "pkg/loader", +- "pkg/patch", +- "pkg/patch/transformer", +- "pkg/resid", +- "pkg/resmap", +- "pkg/resource", +- "pkg/target", +- "pkg/transformers", +- "pkg/transformers/config", +- "pkg/transformers/config/defaultconfig", +- "pkg/types", +- ] +- pruneopts = "" +- revision = "a6f65144121d1955266b0cd836ce954c04122dc8" +- version = "v2.0.3" +- +-[[projects]] +- digest = "1:321081b4a44256715f2b68411d8eda9a17f17ebfe6f0cc61d2cc52d11c08acfa" +- name = "sigs.k8s.io/yaml" +- packages = ["."] +- pruneopts = "" +- revision = "fd68e9863619f6ec2fdd8625fe1f02e7c877e480" +- version = "v1.1.0" +- +-[solve-meta] +- analyzer-name = "dep" +- analyzer-version = 1 +- input-imports = [ +- "bou.ke/monkey", +- "github.com/Masterminds/semver", +- "github.com/TomOnTime/utfutil", +- "github.com/argoproj/pkg/errors", +- "github.com/argoproj/pkg/exec", +- "github.com/argoproj/pkg/time", +- "github.com/casbin/casbin", +- "github.com/casbin/casbin/model", +- "github.com/coreos/go-oidc", +- "github.com/dgrijalva/jwt-go", +- "github.com/dustin/go-humanize", +- "github.com/evanphx/json-patch", +- "github.com/ghodss/yaml", +- "github.com/go-openapi/loads", +- "github.com/go-openapi/runtime/middleware", +- "github.com/go-openapi/spec", +- "github.com/go-redis/cache", +- "github.com/go-redis/redis", +- "github.com/gobuffalo/packr", +- "github.com/gobwas/glob", +- "github.com/gogits/go-gogs-client", +- "github.com/gogo/protobuf/gogoproto", +- "github.com/gogo/protobuf/proto", +- "github.com/gogo/protobuf/protoc-gen-gofast", +- "github.com/gogo/protobuf/protoc-gen-gogofast", +- "github.com/gogo/protobuf/sortkeys", +- "github.com/golang/protobuf/proto", +- "github.com/golang/protobuf/protoc-gen-go", +- "github.com/golang/protobuf/ptypes/empty", +- "github.com/google/go-jsonnet", +- "github.com/google/shlex", +- "github.com/grpc-ecosystem/go-grpc-middleware", +- "github.com/grpc-ecosystem/go-grpc-middleware/auth", +- "github.com/grpc-ecosystem/go-grpc-middleware/logging", +- "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus", +- "github.com/grpc-ecosystem/go-grpc-middleware/retry", +- "github.com/grpc-ecosystem/go-grpc-middleware/tags/logrus", +- "github.com/grpc-ecosystem/go-grpc-prometheus", +- "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway", +- "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger", +- "github.com/grpc-ecosystem/grpc-gateway/runtime", +- "github.com/grpc-ecosystem/grpc-gateway/utilities", +- "github.com/improbable-eng/grpc-web/go/grpcweb", +- "github.com/kballard/go-shellquote", +- "github.com/patrickmn/go-cache", +- "github.com/pkg/errors", +- "github.com/prometheus/client_golang/prometheus", +- "github.com/prometheus/client_golang/prometheus/promhttp", +- "github.com/robfig/cron", +- "github.com/sirupsen/logrus", +- "github.com/sirupsen/logrus/hooks/test", +- "github.com/skratchdot/open-golang/open", +- "github.com/soheilhy/cmux", +- "github.com/spf13/cobra", +- "github.com/spf13/pflag", +- "github.com/stretchr/testify/assert", +- "github.com/stretchr/testify/mock", +- "github.com/vmihailenco/msgpack", +- "github.com/yudai/gojsondiff", +- "github.com/yudai/gojsondiff/formatter", +- "github.com/yuin/gopher-lua", +- "golang.org/x/crypto/bcrypt", +- "golang.org/x/crypto/ssh", +- "golang.org/x/crypto/ssh/knownhosts", +- "golang.org/x/crypto/ssh/terminal", +- "golang.org/x/net/context", +- "golang.org/x/oauth2", +- "golang.org/x/sync/errgroup", +- "golang.org/x/sync/semaphore", +- "google.golang.org/genproto/googleapis/api/annotations", +- "google.golang.org/grpc", +- "google.golang.org/grpc/codes", +- "google.golang.org/grpc/credentials", +- "google.golang.org/grpc/grpclog", +- "google.golang.org/grpc/metadata", +- "google.golang.org/grpc/reflection", +- "google.golang.org/grpc/status", +- "gopkg.in/go-playground/webhooks.v5/bitbucket", +- "gopkg.in/go-playground/webhooks.v5/bitbucket-server", +- "gopkg.in/go-playground/webhooks.v5/github", +- "gopkg.in/go-playground/webhooks.v5/gitlab", +- "gopkg.in/go-playground/webhooks.v5/gogs", +- "gopkg.in/src-d/go-git.v4", +- "gopkg.in/src-d/go-git.v4/config", +- "gopkg.in/src-d/go-git.v4/plumbing", +- "gopkg.in/src-d/go-git.v4/plumbing/transport", +- "gopkg.in/src-d/go-git.v4/plumbing/transport/client", +- "gopkg.in/src-d/go-git.v4/plumbing/transport/http", +- "gopkg.in/src-d/go-git.v4/plumbing/transport/ssh", +- "gopkg.in/src-d/go-git.v4/storage/memory", +- "gopkg.in/src-d/go-git.v4/utils/ioutil", +- "gopkg.in/yaml.v2", +- "k8s.io/api/apps/v1", +- "k8s.io/api/batch/v1", +- "k8s.io/api/core/v1", +- "k8s.io/api/extensions/v1beta1", +- "k8s.io/api/networking/v1beta1", +- "k8s.io/api/rbac/v1", +- "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1", +- "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset", +- "k8s.io/apimachinery/pkg/api/equality", +- "k8s.io/apimachinery/pkg/api/errors", +- "k8s.io/apimachinery/pkg/apis/meta/v1", +- "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", +- "k8s.io/apimachinery/pkg/fields", +- "k8s.io/apimachinery/pkg/labels", +- "k8s.io/apimachinery/pkg/runtime", +- "k8s.io/apimachinery/pkg/runtime/schema", +- "k8s.io/apimachinery/pkg/runtime/serializer", +- "k8s.io/apimachinery/pkg/selection", +- "k8s.io/apimachinery/pkg/types", +- "k8s.io/apimachinery/pkg/util/intstr", +- "k8s.io/apimachinery/pkg/util/jsonmergepatch", +- "k8s.io/apimachinery/pkg/util/runtime", +- "k8s.io/apimachinery/pkg/util/strategicpatch", +- "k8s.io/apimachinery/pkg/util/wait", +- "k8s.io/apimachinery/pkg/watch", +- "k8s.io/cli-runtime/pkg/genericclioptions", +- "k8s.io/cli-runtime/pkg/printers", +- "k8s.io/client-go/discovery", +- "k8s.io/client-go/discovery/fake", +- "k8s.io/client-go/dynamic", +- "k8s.io/client-go/dynamic/fake", +- "k8s.io/client-go/informers/core/v1", +- "k8s.io/client-go/kubernetes", +- "k8s.io/client-go/kubernetes/fake", +- "k8s.io/client-go/kubernetes/scheme", +- "k8s.io/client-go/listers/core/v1", +- "k8s.io/client-go/plugin/pkg/client/auth/gcp", +- "k8s.io/client-go/plugin/pkg/client/auth/oidc", +- "k8s.io/client-go/rest", +- "k8s.io/client-go/testing", +- "k8s.io/client-go/tools/cache", +- "k8s.io/client-go/tools/clientcmd", +- "k8s.io/client-go/tools/clientcmd/api", +- "k8s.io/client-go/tools/portforward", +- "k8s.io/client-go/transport/spdy", +- "k8s.io/client-go/util/flowcontrol", +- "k8s.io/client-go/util/workqueue", +- "k8s.io/code-generator/cmd/go-to-protobuf", +- "k8s.io/klog", +- "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1", +- "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1", +- "k8s.io/kube-openapi/cmd/openapi-gen", +- "k8s.io/kube-openapi/pkg/common", +- "k8s.io/kubectl/pkg/cmd/apply", +- "k8s.io/kubectl/pkg/cmd/util", +- "k8s.io/kubectl/pkg/scheme", +- "k8s.io/kubectl/pkg/util/term", +- "k8s.io/kubernetes/pkg/api/legacyscheme", +- "k8s.io/kubernetes/pkg/api/v1/pod", +- "k8s.io/kubernetes/pkg/apis/apps/install", +- "k8s.io/kubernetes/pkg/apis/authentication/install", +- "k8s.io/kubernetes/pkg/apis/authorization/install", +- "k8s.io/kubernetes/pkg/apis/autoscaling/install", +- "k8s.io/kubernetes/pkg/apis/batch/install", +- "k8s.io/kubernetes/pkg/apis/certificates/install", +- "k8s.io/kubernetes/pkg/apis/coordination/install", +- "k8s.io/kubernetes/pkg/apis/core", +- "k8s.io/kubernetes/pkg/apis/core/install", +- "k8s.io/kubernetes/pkg/apis/events/install", +- "k8s.io/kubernetes/pkg/apis/extensions/install", +- "k8s.io/kubernetes/pkg/apis/policy/install", +- "k8s.io/kubernetes/pkg/apis/rbac/install", +- "k8s.io/kubernetes/pkg/apis/scheduling/install", +- "k8s.io/kubernetes/pkg/apis/settings/install", +- "k8s.io/kubernetes/pkg/apis/storage/install", +- "k8s.io/kubernetes/pkg/kubectl/cmd/auth", +- "k8s.io/kubernetes/pkg/util/node", +- "k8s.io/kubernetes/pkg/util/slice", +- "k8s.io/kubernetes/pkg/util/workqueue/prometheus", +- "k8s.io/utils/pointer", +- "layeh.com/gopher-json", +- ] +- solver-name = "gps-cdcl" +- solver-version = 1 +diff --git a/Gopkg.toml b/Gopkg.toml +deleted file mode 100644 +index 2fa04ee4..00000000 +--- a/Gopkg.toml ++++ /dev/null +@@ -1,117 +0,0 @@ +-# Packages should only be added to the following list when we use them *outside* of our go code. +-# (e.g. we want to build the binary to invoke as part of the build process, such as in +-# generate-proto.sh). Normal use of golang packages should be added via `dep ensure`, and pinned +-# with a [[constraint]] or [[override]] when version is important. +-required = [ +- "github.com/golang/protobuf/protoc-gen-go", +- "github.com/gogo/protobuf/protoc-gen-gofast", +- "github.com/gogo/protobuf/protoc-gen-gogofast", +- "k8s.io/code-generator/cmd/go-to-protobuf", +- "k8s.io/kube-openapi/cmd/openapi-gen", +- "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway", +- "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger", +- "golang.org/x/sync/errgroup", +-] +- +-[[constraint]] +- name = "google.golang.org/grpc" +- version = "1.15.0" +- +-[[constraint]] +- name = "github.com/gogo/protobuf" +- version = "1.3.1" +- +-# override github.com/grpc-ecosystem/go-grpc-middleware's constraint on master +-[[override]] +- name = "github.com/golang/protobuf" +- version = "1.2.0" +- +-[[constraint]] +- name = "github.com/grpc-ecosystem/grpc-gateway" +- version = "v1.3.1" +- +-# prometheus does not believe in semversioning yet +-[[constraint]] +- name = "github.com/prometheus/client_golang" +- revision = "7858729281ec582767b20e0d696b6041d995d5e0" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/api" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/kubernetes" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/code-generator" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/apimachinery" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/apiextensions-apiserver" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/apiserver" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/kubectl" +- +-[[override]] +- branch = "release-1.16" +- name = "k8s.io/cli-runtime" +- +-[[override]] +- version = "2.0.3" +- name = "sigs.k8s.io/kustomize" +- +-# ASCIIRenderer does not implement blackfriday.Renderer +-[[override]] +- name = "github.com/russross/blackfriday" +- version = "1.5.2" +- +-[[override]] +- branch = "release-13.0" +- name = "k8s.io/client-go" +- +-[[override]] +- name = "github.com/casbin/casbin" +- version = "1.9.1" +- +-[[constraint]] +- name = "github.com/stretchr/testify" +- version = "1.2.2" +- +-[[constraint]] +- name = "github.com/gobuffalo/packr" +- version = "v1.11.0" +- +-[[constraint]] +- branch = "master" +- name = "github.com/argoproj/pkg" +- +-[[constraint]] +- branch = "master" +- name = "github.com/yudai/gojsondiff" +- +-# Fixes: Could not introduce sigs.k8s.io/kustomize@v2.0.3, as it has a dependency on github.com/spf13/cobra with constraint ^0.0.2, which has no overlap with existing constraint 0.0.5 from (root) +-[[override]] +- name = "github.com/spf13/cobra" +- revision = "0.0.5" +- +-# TODO: move off of k8s.io/kube-openapi and use controller-tools for CRD spec generation +-# (override argoproj/argo contraint on master) +-[[override]] +- revision = "30be4d16710ac61bce31eb28a01054596fe6a9f1" +- name = "k8s.io/kube-openapi" +- +-# jsonpatch replace operation does not apply: doc is missing key: /metadata/annotations +-[[override]] +- name = "github.com/evanphx/json-patch" +- version = "v4.1.0" +diff --git a/go.mod b/go.mod +new file mode 100644 +index 00000000..2e741ab3 +--- /dev/null ++++ b/go.mod +@@ -0,0 +1,114 @@ ++module github.com/argoproj/argo-cd ++ ++go 1.12 ++ ++require ( ++ bou.ke/monkey v1.0.1 ++ github.com/Masterminds/semver v1.4.2 ++ github.com/TomOnTime/utfutil v0.0.0-20180511104225-09c41003ee1d ++ github.com/argoproj/pkg v0.0.0-20191031223000-02a6aac40ac4 ++ github.com/casbin/casbin v1.9.1 ++ github.com/chai2010/gettext-go v0.0.0-20170215093142-bf70f2a70fb1 // indirect ++ github.com/coreos/go-oidc v2.1.0+incompatible ++ github.com/dgrijalva/jwt-go v3.2.0+incompatible ++ github.com/docker/docker v1.6.0-rc5 // indirect ++ github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c // indirect ++ github.com/dustin/go-humanize v1.0.0 ++ github.com/evanphx/json-patch v4.5.0+incompatible ++ github.com/ghodss/yaml v1.0.0 ++ github.com/go-openapi/loads v0.19.2 ++ github.com/go-openapi/runtime v0.19.0 ++ github.com/go-openapi/spec v0.19.2 ++ github.com/go-redis/cache v6.3.5+incompatible ++ github.com/go-redis/redis v6.15.1+incompatible ++ github.com/gobuffalo/packr v1.11.0 ++ github.com/gobwas/glob v0.2.3 ++ github.com/gogits/go-gogs-client v0.0.0-20190616193657-5a05380e4bc2 ++ github.com/gogo/protobuf v1.3.1 ++ github.com/golang/protobuf v1.3.1 ++ github.com/google/btree v1.0.0 // indirect ++ github.com/google/go-cmp v0.3.1 // indirect ++ github.com/google/go-jsonnet v0.10.0 ++ github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf ++ github.com/googleapis/gnostic v0.1.0 // indirect ++ github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect ++ github.com/grpc-ecosystem/go-grpc-middleware v0.0.0-20190222133341-cfaf5686ec79 ++ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 ++ github.com/grpc-ecosystem/grpc-gateway v1.3.1 ++ github.com/improbable-eng/grpc-web v0.0.0-20181111100011-16092bd1d58a ++ github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 // indirect ++ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 ++ github.com/malexdev/utfutil v0.0.0-20180510171754-00c8d4a8e7a8 // indirect ++ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect ++ github.com/patrickmn/go-cache v2.1.0+incompatible ++ github.com/pkg/errors v0.8.1 ++ github.com/pquerna/cachecontrol v0.0.0-20180306154005-525d0eb5f91d // indirect ++ github.com/prometheus/client_golang v0.9.2 ++ github.com/robfig/cron v1.1.0 ++ github.com/rs/cors v1.6.0 // indirect ++ github.com/sirupsen/logrus v1.4.2 ++ github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c ++ github.com/soheilhy/cmux v0.1.4 ++ github.com/spf13/cobra v0.0.5 ++ github.com/spf13/pflag v1.0.5 ++ github.com/stretchr/testify v1.3.0 ++ github.com/vmihailenco/msgpack v3.3.1+incompatible ++ github.com/yudai/gojsondiff v0.0.0-20180504020246-0525c875b75c ++ github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect ++ github.com/yudai/pp v2.0.1+incompatible // indirect ++ github.com/yuin/gopher-lua v0.0.0-20190115140932-732aa6820ec4 ++ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 ++ golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 ++ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 ++ golang.org/x/sync v0.0.0-20190423024810-112230192c58 ++ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873 ++ google.golang.org/grpc v1.23.0 ++ gopkg.in/go-playground/webhooks.v5 v5.11.0 ++ gopkg.in/src-d/go-git.v4 v4.9.1 ++ gopkg.in/yaml.v2 v2.2.8 ++ k8s.io/api v0.0.0 ++ k8s.io/apiextensions-apiserver v0.0.0 ++ k8s.io/apimachinery v0.16.5-beta.1 ++ k8s.io/cli-runtime v0.0.0 ++ k8s.io/client-go v0.0.0 ++ k8s.io/klog v1.0.0 ++ k8s.io/kube-aggregator v0.0.0 ++ k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a ++ k8s.io/kubectl v0.0.0 ++ k8s.io/kubernetes v0.0.0-20191207011953-bfafae8f1c2f ++ k8s.io/utils v0.0.0-20191114200735-6ca3b61696b6 ++ layeh.com/gopher-json v0.0.0-20190114024228-97fed8db8427 ++) ++ ++replace ( ++ k8s.io/api => k8s.io/api v0.0.0-20200131112707-d64dbec685a4 ++ k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.0.0-20200208193839-84fe3c0be50e ++ k8s.io/apimachinery => k8s.io/apimachinery v0.16.7-beta.0.0.20200131112342-0c9ec93240c9 ++ k8s.io/apiserver => k8s.io/apiserver v0.0.0-20200208192130-2d005a048922 ++ k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20200131120220-9674fbb91442 ++ k8s.io/client-go => k8s.io/client-go v0.0.0-20191016111102-bec269661e48 ++ k8s.io/cloud-provider => k8s.io/cloud-provider v0.0.0-20200131203752-f498d522efeb ++ k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.0.0-20200131121422-fc6110069b18 ++ k8s.io/code-generator => k8s.io/code-generator v0.16.7-beta.0.0.20200131112027-a3045e5e55c0 ++ k8s.io/component-base => k8s.io/component-base v0.0.0-20200131113804-409d4deb41dd ++ k8s.io/cri-api => k8s.io/cri-api v0.16.8-beta.0 ++ k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.0.0-20200131121824-f033562d74c3 ++ k8s.io/gengo => k8s.io/gengo v0.0.0-20190822140433-26a664648505 ++ k8s.io/heapster => k8s.io/heapster v1.2.0-beta.1 ++ k8s.io/klog => k8s.io/klog v0.4.0 ++ k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.0.0-20200208192621-0eeb50407007 ++ k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.0.0-20200131121224-13b3f231e47d ++ k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf ++ k8s.io/kube-proxy => k8s.io/kube-proxy v0.0.0-20200131120626-5b8ba5e54e1f ++ k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.0.0-20200131121024-5f0ba0866863 ++ k8s.io/kubectl => k8s.io/kubectl v0.0.0-20200131122652-b28c9fbca10f ++ k8s.io/kubelet => k8s.io/kubelet v0.0.0-20200131120825-905bd8eea4c4 ++ k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.0.0-20200208200602-3a1c7effd2b3 ++ k8s.io/metrics => k8s.io/metrics v0.0.0-20200131120008-5c623d74062d ++ k8s.io/node-api => k8s.io/node-api v0.0.0-20200131122255-04077c800298 ++ k8s.io/repo-infra => k8s.io/repo-infra v0.0.0-20181204233714-00fe14e3d1a3 ++ k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.0.0-20200208192953-f8dc80bbc173 ++ k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.0.0-20200131120425-dca0863cb511 ++ k8s.io/sample-controller => k8s.io/sample-controller v0.0.0-20200131115407-2b45fb79af22 ++ k8s.io/utils => k8s.io/utils v0.0.0-20190801114015-581e00157fb1 ++) +diff --git a/go.sum b/go.sum +new file mode 100644 +index 00000000..3d39244f +--- /dev/null ++++ b/go.sum +@@ -0,0 +1,700 @@ ++bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= ++bou.ke/monkey v1.0.1 h1:zEMLInw9xvNakzUUPjfS4Ds6jYPqCFx3m7bRmG5NH2U= ++bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg= ++cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= ++cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= ++cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo= ++cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= ++github.com/Azure/azure-sdk-for-go v32.5.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= ++github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= ++github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= ++github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= ++github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= ++github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= ++github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= ++github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= ++github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= ++github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= ++github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= ++github.com/BurntSushi/toml v0.3.0/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= ++github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= ++github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= ++github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20190822182118-27a4ced34534/go.mod h1:iroGtC8B3tQiqtds1l+mgk/BBOrxbqjH+eUfFQYRc14= ++github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= ++github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= ++github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= ++github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU= ++github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= ++github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc= ++github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= ++github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= ++github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= ++github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= ++github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= ++github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= ++github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= ++github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= ++github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= ++github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= ++github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= ++github.com/Rican7/retry v0.1.0/go.mod h1:FgOROf8P5bebcC1DS0PdOQiqGUridaZvikzUmkFW6gg= ++github.com/TomOnTime/utfutil v0.0.0-20180511104225-09c41003ee1d h1:WtAMR0fPCOfK7TPGZ8ZpLLY18HRvL7XJ3xcs0wnREgo= ++github.com/TomOnTime/utfutil v0.0.0-20180511104225-09c41003ee1d/go.mod h1:WML6KOYjeU8N6YyusMjj2qRvaPNUEvrQvaxuFcMRFJY= ++github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= ++github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= ++github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= ++github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= ++github.com/argoproj/pkg v0.0.0-20191031223000-02a6aac40ac4 h1:ykGEoo3WuCNoqO+rnaa0j/RdYfXZFp5Aqim+CjzdBaQ= ++github.com/argoproj/pkg v0.0.0-20191031223000-02a6aac40ac4/go.mod h1:2EZ44RG/CcgtPTwrRR0apOc7oU6UIw8GjCUJWZ8X3bM= ++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/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= ++github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= ++github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= ++github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= ++github.com/aws/aws-sdk-go v1.16.26/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= ++github.com/bazelbuild/bazel-gazelle v0.0.0-20181012220611-c728ce9f663e/go.mod h1:uHBSeeATKpVazAACZBDPL/Nk/UhQDDsJWDlqYJo8/Us= ++github.com/bazelbuild/buildtools v0.0.0-20180226164855-80c7f0d45d7e/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= ++github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= ++github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= ++github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= ++github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= ++github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= ++github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= ++github.com/casbin/casbin v1.9.1 h1:ucjbS5zTrmSLtH4XogqOG920Poe6QatdXtz1FEbApeM= ++github.com/casbin/casbin v1.9.1/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog= ++github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= ++github.com/cespare/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod h1:Xe6ZsFhtM8HrDku0pxJ3/Lr51rwykrzgFwpmTzleatY= ++github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= ++github.com/chai2010/gettext-go v0.0.0-20170215093142-bf70f2a70fb1 h1:HD4PLRzjuCVW79mQ0/pdsalOLHJ+FaEoqJLxfltpb2U= ++github.com/chai2010/gettext-go v0.0.0-20170215093142-bf70f2a70fb1/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= ++github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b/go.mod h1:TrMrLQfeENAPYPRsJuq3jsqdlRh3lvi6trTZJG8+tho= ++github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= ++github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= ++github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= ++github.com/cloudflare/cfssl v0.0.0-20180726162950-56268a613adf/go.mod h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA= ++github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= ++github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= ++github.com/container-storage-interface/spec v1.1.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= ++github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= ++github.com/containerd/containerd v1.0.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= ++github.com/containerd/typeurl v0.0.0-20190228175220-2a93cfde8c20/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= ++github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= ++github.com/coredns/corefile-migration v1.0.2/go.mod h1:OFwBp/Wc9dJt5cAZzHWMNhK1r5L0p0jDwIBc6j8NC8E= ++github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= ++github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= ++github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= ++github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= ++github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= ++github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= ++github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= ++github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= ++github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= ++github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= ++github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= ++github.com/coreos/rkt v1.30.0/go.mod h1:O634mlH6U7qk87poQifK6M2rsFNt+FyUTWNMnP1hF1U= ++github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= ++github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= ++github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= ++github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= ++github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= ++github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= ++github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= ++github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= ++github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= ++github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= ++github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= ++github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= ++github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= ++github.com/docker/docker v1.6.0-rc5 h1:8dnqiCOcZf2QXwR4LNnG7AK9hXeeT6adGmtjicsVswc= ++github.com/docker/docker v1.6.0-rc5/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= ++github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= ++github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= ++github.com/docker/libnetwork v0.0.0-20180830151422-a9cd636e3789/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= ++github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= ++github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c h1:ZfSZ3P3BedhKGUhzj7BQlPSU4OvT6tfOKe3DVHzOA7s= ++github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= ++github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= ++github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= ++github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e h1:p1yVGRW3nmb85p1Sh1ZJSDm4A4iKLS5QNbvUHMgGu/M= ++github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= ++github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= ++github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= ++github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= ++github.com/emirpasic/gods v1.9.0 h1:rUF4PuzEjMChMiNsVjdI+SyLu7rEqpQ5reNFnhC7oFo= ++github.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= ++github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= ++github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= ++github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M= ++github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= ++github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= ++github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= ++github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= ++github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= ++github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= ++github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= ++github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= ++github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= ++github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= ++github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= ++github.com/ghodss/yaml v0.0.0-20180820084758-c7ce16629ff4/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= ++github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= ++github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= ++github.com/gliderlabs/ssh v0.1.1 h1:j3L6gSLQalDETeEg/Jg0mGY0/y/N6zI2xX1978P0Uqw= ++github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= ++github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= ++github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is= ++github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= ++github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= ++github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= ++github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= ++github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= ++github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= ++github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= ++github.com/go-openapi/analysis v0.19.2 h1:ophLETFestFZHk3ji7niPEL4d466QjW+0Tdg5VyDq7E= ++github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= ++github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= ++github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= ++github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= ++github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= ++github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= ++github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= ++github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= ++github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= ++github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= ++github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= ++github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= ++github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= ++github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= ++github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= ++github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= ++github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= ++github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= ++github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= ++github.com/go-openapi/loads v0.19.2 h1:rf5ArTHmIJxyV5Oiks+Su0mUens1+AjpkPoWr5xFRcI= ++github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= ++github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= ++github.com/go-openapi/runtime v0.19.0 h1:sU6pp4dSV2sGlNKKyHxZzi1m1kG4WnYtWcJ+HYbygjE= ++github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= ++github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= ++github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= ++github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= ++github.com/go-openapi/spec v0.19.2 h1:SStNd1jRcYtfKCN7R0laGNs80WYYvn5CbBjM2sOmCrE= ++github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= ++github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= ++github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= ++github.com/go-openapi/strfmt v0.19.0 h1:0Dn9qy1G9+UJfRU7TR8bmdGxb4uifB7HNrJjOnV0yPk= ++github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= ++github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= ++github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= ++github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= ++github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= ++github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= ++github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= ++github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= ++github.com/go-openapi/validate v0.19.2 h1:ky5l57HjyVRrsJfd2+Ro5Z9PjGuKbsmftwyMtk8H7js= ++github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= ++github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= ++github.com/go-redis/cache v6.3.5+incompatible h1:4OUyoXXYRRQ6tKA4ue3TlPUkBzk3occzjtXBZBxCzgs= ++github.com/go-redis/cache v6.3.5+incompatible/go.mod h1:XNnMdvlNjcZvHjsscEozHAeOeSE5riG9Fj54meG4WT4= ++github.com/go-redis/redis v6.15.1+incompatible h1:BZ9s4/vHrIqwOb0OPtTQ5uABxETJ3NRuUNoSUurnkew= ++github.com/go-redis/redis v6.15.1+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= ++github.com/gobuffalo/packr v1.11.0 h1:lxysfHcxVCWGNMHzKABP7ZEL3A7iIVYfkev/D7AR0aM= ++github.com/gobuffalo/packr v1.11.0/go.mod h1:rYwMLC6NXbAbkKb+9j3NTKbxSswkKLlelZYccr4HYVw= ++github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= ++github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= ++github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= ++github.com/gogits/go-gogs-client v0.0.0-20190616193657-5a05380e4bc2 h1:BbwX8wsMRDZRdNYxAna+4ls3wvMKJyn4PT6Zk1CPxP4= ++github.com/gogits/go-gogs-client v0.0.0-20190616193657-5a05380e4bc2/go.mod h1:cY2AIrMgHm6oOHmR7jY+9TtjzSjQ3iG7tURJG3Y6XH0= ++github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= ++github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= ++github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= ++github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= ++github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= ++github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8= ++github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= ++github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= ++github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= ++github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= ++github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= ++github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= ++github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= ++github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= ++github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= ++github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= ++github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= ++github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= ++github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= ++github.com/google/cadvisor v0.34.0/go.mod h1:1nql6U13uTHaLYB8rLS5x9IJc2qT6Xd/Tr1sTX6NE48= ++github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= ++github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= ++github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= ++github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= ++github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= ++github.com/google/go-jsonnet v0.10.0 h1:NzmG/5DRTYDjNnsL/OmX6wT+ByeKbSoRoV6VxOy+QdM= ++github.com/google/go-jsonnet v0.10.0/go.mod h1:gVu3UVSfOt5fRFq+dh9duBqXa5905QY8S1QvMNcEIVs= ++github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= ++github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= ++github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= ++github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= ++github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= ++github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= ++github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf h1:7+FW5aGwISbqUtkfmIpZJGRgNFg2ioYPvFaUxdqpDsg= ++github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE= ++github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= ++github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= ++github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= ++github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= ++github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= ++github.com/googleapis/gnostic v0.1.0 h1:rVsPeBmXbYv4If/cumu1AzZPwV58q433hvONV1UEZoI= ++github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= ++github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= ++github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= ++github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= ++github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= ++github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= ++github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= ++github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= ++github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= ++github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= ++github.com/grpc-ecosystem/go-grpc-middleware v0.0.0-20190222133341-cfaf5686ec79 h1:lR9ssWAqp9qL0bALxqEEkuudiP1eweOdv9jsRK3e7lE= ++github.com/grpc-ecosystem/go-grpc-middleware v0.0.0-20190222133341-cfaf5686ec79/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= ++github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= ++github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= ++github.com/grpc-ecosystem/grpc-gateway v1.3.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= ++github.com/grpc-ecosystem/grpc-gateway v1.3.1 h1:k2neygAEBYavP90THffKBVlkASdxu4XiI8cAWuL3MG0= ++github.com/grpc-ecosystem/grpc-gateway v1.3.1/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= ++github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= ++github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= ++github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= ++github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= ++github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= ++github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= ++github.com/heketi/heketi v9.0.0+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= ++github.com/heketi/rest v0.0.0-20180404230133-aa6a65207413/go.mod h1:BeS3M108VzVlmAue3lv2WcGuPAX94/KN63MUURzbYSI= ++github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= ++github.com/heketi/utils v0.0.0-20170317161834-435bc5bdfa64/go.mod h1:RYlF4ghFZPPmk2TC5REt5OFwvfb6lzxFWrTWB+qs28s= ++github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= ++github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= ++github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= ++github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= ++github.com/improbable-eng/grpc-web v0.0.0-20181111100011-16092bd1d58a h1:RweVA0vnEyStwtAelyGmnU8ENDnwd1Q7pQr7U3J/rXo= ++github.com/improbable-eng/grpc-web v0.0.0-20181111100011-16092bd1d58a/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= ++github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= ++github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= ++github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= ++github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= ++github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= ++github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= ++github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= ++github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= ++github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= ++github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= ++github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= ++github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= ++github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= ++github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= ++github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= ++github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= ++github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= ++github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= ++github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= ++github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= ++github.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e h1:RgQk53JHp/Cjunrr1WlsXSZpqXn+uREuHvUVcK82CV8= ++github.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= ++github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= ++github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= ++github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= ++github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= ++github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= ++github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= ++github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= ++github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= ++github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= ++github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= ++github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= ++github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= ++github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= ++github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= ++github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= ++github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= ++github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= ++github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= ++github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= ++github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= ++github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= ++github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= ++github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= ++github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= ++github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= ++github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= ++github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= ++github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= ++github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= ++github.com/malexdev/utfutil v0.0.0-20180510171754-00c8d4a8e7a8 h1:A6SLdFpRzUUF5v9F/7T1fu3DERmOCgTwwP6x54eyFfU= ++github.com/malexdev/utfutil v0.0.0-20180510171754-00c8d4a8e7a8/go.mod h1:UtpLyb/EupVKXF/N0b4NRe1DNg+QYJsnsHQ038romhM= ++github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= ++github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= ++github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= ++github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= ++github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= ++github.com/mattn/go-shellwords v1.0.5/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= ++github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= ++github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= ++github.com/mesos/mesos-go v0.0.9/go.mod h1:kPYCMQ9gsOXVAle1OsoY4I1+9kPu8GHkf88aV59fDr4= ++github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= ++github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= ++github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= ++github.com/mindprince/gonvml v0.0.0-20171110221305-fee913ce8fb2/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= ++github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= ++github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= ++github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= ++github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= ++github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= ++github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= ++github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= ++github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= ++github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= ++github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= ++github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= ++github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= ++github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= ++github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= ++github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= ++github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= ++github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= ++github.com/mrunalp/fileutils v0.0.0-20160930181131-4ee1cc9a8058/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= ++github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= ++github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= ++github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= ++github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= ++github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= ++github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= ++github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= ++github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= ++github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= ++github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w= ++github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= ++github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= ++github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= ++github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= ++github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= ++github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= ++github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= ++github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= ++github.com/opencontainers/runc v1.0.0-rc2.0.20190611121236-6cc515888830/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= ++github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= ++github.com/opencontainers/selinux v1.2.2/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= ++github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= ++github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= ++github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= ++github.com/pelletier/go-buffruneio v0.2.0 h1:U4t4R6YkofJ5xHm3dJzuRpPZ0mr5MMCoAWooScCR7aA= ++github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= ++github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= ++github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= ++github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= ++github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= ++github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= ++github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= ++github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= ++github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= ++github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= ++github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= ++github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= ++github.com/pquerna/cachecontrol v0.0.0-20180306154005-525d0eb5f91d h1:7gXyC293Lsm2YWgQ+0uaAFFFDO82ruiQSwc3ua+Vtlc= ++github.com/pquerna/cachecontrol v0.0.0-20180306154005-525d0eb5f91d/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= ++github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= ++github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= ++github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= ++github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= ++github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= ++github.com/prometheus/common v0.0.0-20181126121408-4724e9255275 h1:PnBWHBf+6L0jOqq0gIVUe6Yk0/QMZ640k6NvkxcBf+8= ++github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= ++github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a h1:9a8MnZMP0X2nLJdBg+pBmGgkJlSaKC2KaQmTCk1XDtE= ++github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= ++github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= ++github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= ++github.com/robfig/cron v1.1.0 h1:jk4/Hud3TTdcrJgUOBgsqrZBarcxl6ADIjSC2iniwLY= ++github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= ++github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= ++github.com/rs/cors v1.6.0 h1:G9tHG9lebljV9mfp9SNPDL36nCDxmo3zTlAf1YgvzmI= ++github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= ++github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= ++github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= ++github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= ++github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= ++github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= ++github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= ++github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= ++github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= ++github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= ++github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= ++github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= ++github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c h1:fyKiXKO1/I/B6Y2U8T7WdQGWzwehOuGIrljPtt7YTTI= ++github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= ++github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= ++github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= ++github.com/soheilhy/cmux v0.1.3/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= ++github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= ++github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= ++github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= ++github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= ++github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= ++github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= ++github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= ++github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= ++github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= ++github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= ++github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= ++github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= ++github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= ++github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= ++github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= ++github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= ++github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= ++github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= ++github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= ++github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= ++github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= ++github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= ++github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= ++github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= ++github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= ++github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= ++github.com/syndtr/gocapability v0.0.0-20160928074757-e7cb7fa329f4/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= ++github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= ++github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= ++github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= ++github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= ++github.com/vishvananda/netlink v0.0.0-20171020171820-b2de5d10e38e/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= ++github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= ++github.com/vmihailenco/msgpack v3.3.1+incompatible h1:ibe+d1lqocBmxbJ+gwcDO8LpAHFr3PGDYovoURuTVGk= ++github.com/vmihailenco/msgpack v3.3.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= ++github.com/vmware/govmomi v0.20.1/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= ++github.com/xanzy/ssh-agent v0.2.0 h1:Adglfbi5p9Z0BmK2oKU9nTG+zKfniSfnaMYB+ULd+Ro= ++github.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8= ++github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= ++github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= ++github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= ++github.com/yudai/gojsondiff v0.0.0-20180504020246-0525c875b75c h1:/8Xb/f8s2/ZZpzMzBkFwW2Jvj7Pglk+AW8m8FFqOoIQ= ++github.com/yudai/gojsondiff v0.0.0-20180504020246-0525c875b75c/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= ++github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 h1:BHyfKlQyqbsFN5p3IfnEUduWvb9is428/nNb5L3U01M= ++github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= ++github.com/yudai/pp v2.0.1+incompatible h1:Q4//iY4pNF6yPLZIigmvcl7k/bPgrcTPIFIcmawg5bI= ++github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= ++github.com/yuin/gopher-lua v0.0.0-20190115140932-732aa6820ec4 h1:1yOVVSFiradDwXpgdkDjlGOcGJqcohH/W49Zn8Ywgco= ++github.com/yuin/gopher-lua v0.0.0-20190115140932-732aa6820ec4/go.mod h1:fFiAh+CowNFr0NK5VASokuwKwkbacRmHsVA7Yb1Tqac= ++go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= ++go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= ++go.uber.org/atomic v0.0.0-20181018215023-8dc6146f7569/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= ++go.uber.org/multierr v0.0.0-20180122172545-ddea229ff1df/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= ++go.uber.org/zap v0.0.0-20180814183419-67bc79d13d15/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= ++golang.org/x/crypto v0.0.0-20180426230345-b49d69b5da94/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= ++golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= ++golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= ++golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= ++golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= ++golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= ++golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= ++golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= ++golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= ++golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= ++golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0= ++golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= ++golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= ++golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= ++golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= ++golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= ++golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= ++golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= ++golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= ++golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= ++golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= ++golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= ++golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= ++golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= ++golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= ++golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 h1:rjwSpXsdiK0dV8/Naq3kAw9ymfAeJIyd0upUIElB+lI= ++golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= ++golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= ++golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= ++golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= ++golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= ++golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= ++golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20180903190138-2b024373dcd9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20181004145325-8469e314837c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ= ++golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= ++golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= ++golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= ++golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= ++golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= ++golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= ++golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= ++golang.org/x/tools v0.0.0-20170824195420-5d2fd3ccab98/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= ++golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= ++golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= ++golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= ++golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= ++golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= ++golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= ++golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= ++golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= ++golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= ++golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= ++gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= ++gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= ++gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= ++google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= ++google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= ++google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= ++google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= ++google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= ++google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= ++google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= ++google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= ++google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= ++google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873 h1:nfPFGzJkUDX6uBmpN/pSw7MbOAWegH5QDQuoXFHedLg= ++google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= ++google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= ++google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= ++google.golang.org/grpc v1.23.0 h1:AzbTB6ux+okLTzP8Ru1Xs41C303zdcfEht7MQnYJt5A= ++google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= ++gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= ++gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= ++gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= ++gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= ++gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= ++gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= ++gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= ++gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= ++gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= ++gopkg.in/go-playground/webhooks.v5 v5.11.0 h1:V3vej+ZXrVvO2EmBTKlhClEbpTqXH44K5OyLUMOkHMg= ++gopkg.in/go-playground/webhooks.v5 v5.11.0/go.mod h1:LZbya/qLVdbqDR1aKrGuWV6qbia2zCYSR5dpom2SInQ= ++gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= ++gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= ++gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= ++gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= ++gopkg.in/square/go-jose.v2 v2.2.2 h1:orlkJ3myw8CN1nVQHBFfloD+L3egixIa4FvUP6RosSA= ++gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= ++gopkg.in/src-d/go-billy.v4 v4.2.1 h1:omN5CrMrMcQ+4I8bJ0wEhOBPanIRWzFC953IiXKdYzo= ++gopkg.in/src-d/go-billy.v4 v4.2.1/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk= ++gopkg.in/src-d/go-git-fixtures.v3 v3.1.1 h1:XWW/s5W18RaJpmo1l0IYGqXKuJITWRFuA45iOf1dKJs= ++gopkg.in/src-d/go-git-fixtures.v3 v3.1.1/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= ++gopkg.in/src-d/go-git.v4 v4.9.1 h1:0oKHJZY8tM7B71378cfTg2c5jmWyNlXvestTT6WfY+4= ++gopkg.in/src-d/go-git.v4 v4.9.1/go.mod h1:Vtut8izDyrM8BUVQnzJ+YvmNcem2J89EmfZYCkLokZk= ++gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= ++gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= ++gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= ++gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= ++gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= ++gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= ++gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= ++gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= ++gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= ++gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= ++gotest.tools v2.1.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= ++gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= ++gotest.tools/gotestsum v0.3.5/go.mod h1:Mnf3e5FUzXbkCfynWBGOwLssY7gTQgCHObK9tMpAriY= ++honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= ++honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= ++honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= ++honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= ++honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= ++k8s.io/api v0.0.0-20200131112707-d64dbec685a4 h1:7kA/ATNKWB1TVM0pwxzl/JONybbBVROCxqndoCd57fU= ++k8s.io/api v0.0.0-20200131112707-d64dbec685a4/go.mod h1:SGkmWEIoDg63In+t6yMJLEXQSkK5XxTNDcVydoy58dc= ++k8s.io/apiextensions-apiserver v0.0.0-20200208193839-84fe3c0be50e h1:L/XqOouONrybm+3jyUJZPo5JIMARb5qFNfmmUqy81Eg= ++k8s.io/apiextensions-apiserver v0.0.0-20200208193839-84fe3c0be50e/go.mod h1:YzEcimsSKeVDDQnLTI9Qf8uws94WpMl4qut8Rbx4dVk= ++k8s.io/apimachinery v0.16.7-beta.0.0.20200131112342-0c9ec93240c9 h1:pusQlPC9d40F13jjdYyJDFDwnUjCTDN5P/y5WteLVkA= ++k8s.io/apimachinery v0.16.7-beta.0.0.20200131112342-0c9ec93240c9/go.mod h1:Xk2vD2TRRpuWYLQNM6lT9R7DSFZUYG03SarNkbGrnKE= ++k8s.io/apiserver v0.0.0-20200208192130-2d005a048922 h1:kgU/Yr5/GsGK3GAaFgmSp+y0IMLu+FoZK+wnKlgzIrQ= ++k8s.io/apiserver v0.0.0-20200208192130-2d005a048922/go.mod h1:kcWyL8/bV2c1b/FeWrxbO08zraTaYuhR7leZ4l9iOmo= ++k8s.io/cli-runtime v0.0.0-20200131120220-9674fbb91442 h1:gHF/ZIm6hTWAuN/rKdH1IO/iJfKPjn0d1kdeIMbPiDg= ++k8s.io/cli-runtime v0.0.0-20200131120220-9674fbb91442/go.mod h1:sL3otDuOz8AlMrzsrBeB/ektmi6qYAE4a9Gid/pxtSo= ++k8s.io/client-go v0.0.0-20191016111102-bec269661e48 h1:C2XVy2z0dV94q9hSSoCuTPp1KOG7IegvbdXuz9VGxoU= ++k8s.io/client-go v0.0.0-20191016111102-bec269661e48/go.mod h1:hrwktSwYGI4JK+TJA3dMaFyyvHVi/aLarVHpbs8bgCU= ++k8s.io/cloud-provider v0.0.0-20200131203752-f498d522efeb/go.mod h1:hb9XI7OCOFjqueeUaUYHbEuGG/nSq0UZtydmOu83p6M= ++k8s.io/cluster-bootstrap v0.0.0-20200131121422-fc6110069b18/go.mod h1:2U3dLDmef+EIuACENgQ1f8jQV//Z+aX/bp9DsglDXK0= ++k8s.io/code-generator v0.16.7-beta.0.0.20200131112027-a3045e5e55c0/go.mod h1:wFdrXdVi/UC+xIfLi+4l9elsTT/uEF61IfcN2wOLULQ= ++k8s.io/component-base v0.0.0-20200131113804-409d4deb41dd h1:W0AuOSSgValfdhcR68oayHewqFJh/nMA+JDPQbXGrkg= ++k8s.io/component-base v0.0.0-20200131113804-409d4deb41dd/go.mod h1:55xG5ozAlA2bbjfmFYC2LPf4cQqp4nOJT5e4+cXUDnY= ++k8s.io/cri-api v0.16.8-beta.0/go.mod h1:W6aMMPN5fmxcRGaHnb6BEfoTeS82OsJcsUJyKf+EWYc= ++k8s.io/csi-translation-lib v0.0.0-20200131121824-f033562d74c3/go.mod h1:2NVc4Xw5CEBgQj3/GtHOKPs5M68nhbszaFFuoB+xGUE= ++k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= ++k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= ++k8s.io/klog v0.4.0 h1:lCJCxf/LIowc2IGS9TPjWDyXY4nOmdGdfcwwDQCOURQ= ++k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= ++k8s.io/kube-aggregator v0.0.0-20200208192621-0eeb50407007 h1:PqWgdqcu7/ZAno0sqGoqo3eC/qhwnz+XTotZfG+84ic= ++k8s.io/kube-aggregator v0.0.0-20200208192621-0eeb50407007/go.mod h1:u6psj4FzpmwlJuQKReXypLOIhIF2UxzZRBThWtnjIDU= ++k8s.io/kube-controller-manager v0.0.0-20200131121224-13b3f231e47d/go.mod h1:rlvqwtZiupLrqd54U19Th2a0sMf0PNbGA1J3zPTwFAc= ++k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf h1:EYm5AW/UUDbnmnI+gK0TJDVK9qPLhM+sRHYanNKw0EQ= ++k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= ++k8s.io/kube-proxy v0.0.0-20200131120626-5b8ba5e54e1f/go.mod h1:3/a8cJm4V50vBnkRwRhpgdIdsTH+4cj/kV66oxybGxc= ++k8s.io/kube-scheduler v0.0.0-20200131121024-5f0ba0866863/go.mod h1:1xme9q7fNwDPtgIELmyOFGQErlOzFlQ1XHjTPUz1GYc= ++k8s.io/kubectl v0.0.0-20200131122652-b28c9fbca10f h1:7764TWFJ+UYY6TX1Vq3jCo/3BkORLtywarY8SEdQh18= ++k8s.io/kubectl v0.0.0-20200131122652-b28c9fbca10f/go.mod h1:d78MZ7MR2Q5xMwSrGvbJARH13CsOo5mSoDZWfjIe1TQ= ++k8s.io/kubelet v0.0.0-20200131120825-905bd8eea4c4/go.mod h1:VkwV80jJy9GciSRBPFduby5qJxI5v5lV3D6WMMCveek= ++k8s.io/kubernetes v0.0.0-20191207011953-bfafae8f1c2f h1:bGmDtZ96ysKXeBFw0+9cw9twoCQjrPRkkpSQqhxEXVs= ++k8s.io/kubernetes v0.0.0-20191207011953-bfafae8f1c2f/go.mod h1:OdJXH1Q9L+NDVj158Zo8f6R3NSaOx1ewLUcaJv8hSRE= ++k8s.io/legacy-cloud-providers v0.0.0-20200208200602-3a1c7effd2b3/go.mod h1:Egd+aHCesdnzDDtUaaWnAhnyt5/dgQIfM4UL5z2WJxg= ++k8s.io/metrics v0.0.0-20200131120008-5c623d74062d/go.mod h1:18pR44uxuhPU05LZpHhJiPPzQvGoFmCf2UlTp2EhSM8= ++k8s.io/repo-infra v0.0.0-20181204233714-00fe14e3d1a3/go.mod h1:+G1xBfZDfVFsm1Tj/HNCvg4QqWx8rJ2Fxpqr1rqp/gQ= ++k8s.io/sample-apiserver v0.0.0-20200208192953-f8dc80bbc173/go.mod h1:Bnw1dM0HuYH49aVse0I8cV6KeyOFPBaWxnhsU7uR2UA= ++k8s.io/utils v0.0.0-20190801114015-581e00157fb1 h1:+ySTxfHnfzZb9ys375PXNlLhkJPLKgHajBU0N62BDvE= ++k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= ++layeh.com/gopher-json v0.0.0-20190114024228-97fed8db8427 h1:RZkKxMR3jbQxdCEcglq3j7wY3PRJIopAwBlx1RE71X0= ++layeh.com/gopher-json v0.0.0-20190114024228-97fed8db8427/go.mod h1:ivKkcY8Zxw5ba0jldhZCYYQfGdb2K6u9tbYK1AwMIBc= ++modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= ++modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= ++modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= ++modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= ++modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= ++sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0= ++sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= ++sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= ++sigs.k8s.io/structured-merge-diff v1.0.2/go.mod h1:IIgPezJWb76P0hotTxzDbWsMYB8APh18qZnxkomBpxA= ++sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= ++sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= ++vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= 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..cb846060a3de --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "atlantis"; + version = "0.11.1"; + + src = fetchFromGitHub { + owner = "runatlantis"; + repo = "atlantis"; + rev = "v${version}"; + sha256 = "1ylk6n13ln6yaq4nc4n7fm00wfiyqi2x33sca5avzsvd1b387kk6"; + }; + + modSha256 = "1bhplk3p780llpj9l0fwcyli74879968d6j582mvjwvf2winbqzq"; + + 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..e2452b2b4411 --- /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..2c0e73fb30db --- /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 = "1f9yn4pvp58laylngdrfdkwygisnzkhkm7pndf6l33k3aqxhz5mm"; + + 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..49d3aaa298de --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix @@ -0,0 +1,23 @@ +{ lib, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + pname = "cni"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "containernetworking"; + repo = pname; + rev = "v${version}"; + sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz"; + }; + + goPackagePath = "github.com/containernetworking/cni"; + + meta = with 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.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix new file mode 100644 index 000000000000..9c6eec1a3363 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix @@ -0,0 +1,42 @@ +{ lib, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + pname = "cni-plugins"; + version = "0.8.5"; + + src = fetchFromGitHub { + owner = "containernetworking"; + repo = "plugins"; + rev = "v${version}"; + sha256 = "17c8pvpn0dpda6ah7irr9hhd8sk7mnm32zv72nc5pxg1xvfpaipi"; + }; + + goPackagePath = "github.com/containernetworking/plugins"; + + subPackages = [ + "plugins/ipam/dhcp" + "plugins/ipam/host-local" + "plugins/ipam/static" + "plugins/main/bridge" + "plugins/main/host-device" + "plugins/main/ipvlan" + "plugins/main/loopback" + "plugins/main/macvlan" + "plugins/main/ptp" + "plugins/main/vlan" + "plugins/meta/bandwidth" + "plugins/meta/firewall" + "plugins/meta/flannel" + "plugins/meta/portmap" + "plugins/meta/sbr" + "plugins/meta/tuning" + ]; + + 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..321084260320 --- /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/hyperkit.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix new file mode 100644 index 000000000000..ba3b1e4d889b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, minikube }: + +buildGoModule rec { + inherit (minikube) version src nativeBuildInputs buildInputs goPackagePath preBuild; + + pname = "docker-machine-hyperkit"; + subPackages = [ "cmd/drivers/hyperkit" ]; + + modSha256 = minikube.go-modules.outputHash; + + postInstall = '' + mv $out/bin/hyperkit $out/bin/docker-machine-driver-hyperkit + ''; + + meta = with lib; { + homepage = "https://github.com/kubernetes/minikube/blob/master/docs/drivers.md"; + description = "HyperKit driver for docker-machine."; + license = licenses.asl20; + maintainers = with maintainers; [ atkinschang ]; + platforms = platforms.darwin; + }; +} 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..9352ba69da88 --- /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..6659b18b1bd2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, minikube }: + +buildGoModule rec { + inherit (minikube) version src nativeBuildInputs buildInputs goPackagePath preBuild; + + pname = "docker-machine-kvm2"; + subPackages = [ "cmd/drivers/kvm" ]; + + modSha256 = minikube.go-modules.outputHash; + + postInstall = '' + mv $out/bin/kvm $out/bin/docker-machine-driver-kvm2 + ''; + + meta = with 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 atkinschang ]; + platforms = platforms.unix; + }; +} 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..8c63a70b6d6e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix @@ -0,0 +1,39 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch, pkgconfig, cctools, Hypervisor, vmnet }: + +buildGoPackage rec { + pname = "docker-machine-xhyve"; + version = "0.4.0"; + + goPackagePath = "github.com/zchee/docker-machine-driver-xhyve"; + + # https://github.com/machine-drivers/docker-machine-driver-xhyve/pull/225 + patches = fetchpatch { + url = "https://github.com/machine-drivers/docker-machine-driver-xhyve/commit/546256494bf2ccc33e4125bf45f504b0e3027d5a.patch"; + sha256 = "1i8wxqccqkxvqrbsyd0g9s0kdskd8xi2jv0c1bji9aj4rq0a8cgz"; + }; + + preBuild = '' + make -C go/src/${goPackagePath} CC=${stdenv.cc}/bin/cc LIBTOOL=${cctools}/bin/libtool GIT_CMD=: lib9p + export CGO_CFLAGS=-I$(pwd)/go/src/${goPackagePath}/vendor/github.com/jceel/lib9p + export CGO_LDFLAGS=$(pwd)/go/src/${goPackagePath}/vendor/build/lib9p/lib9p.a + ''; + buildFlags = "--tags lib9p"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "machine-drivers"; + repo = "docker-machine-driver-xhyve"; + sha256 = "0000v97fr8xc5b39v44hsa87wrbk4bcwyaaivxv4hxlf4vlgg863"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ Hypervisor vmnet ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/machine-drivers/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..3d418f9a47fb --- /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..10991d47cca9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix @@ -0,0 +1,26 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "fluxctl"; + version = "1.19.0"; + + src = fetchFromGitHub { + owner = "weaveworks"; + repo = "flux"; + rev = version; + sha256 = "1w6ndp0nrpps6pkxnq38hikbnzwahi6j9gn8l0bxd0qkf7cjc5w0"; + }; + + modSha256 = "0zwq7n1lggj27j5yxgfplbaccw5fhbm7vm0sja839r1jamrn3ips"; + + subPackages = [ "cmd/fluxctl" ]; + + buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; + + 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..f2f3925fbe4d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig +, libsodium, libarchive, openssl, zeromq }: + +rustPlatform.buildRustPackage rec { + pname = "habitat"; + # Newer versions required protobuf, which requires some finesse to get to + # compile with the vendored protobuf crate. + version = "0.90.6"; + + src = fetchFromGitHub { + owner = "habitat-sh"; + repo = "habitat"; + rev = version; + sha256 = "0rwi0lkmhlq4i8fba3s9nd9ajhz2dqxzkgfp5i8y0rvbfmhmfd6b"; + }; + + cargoSha256 = "08sncz0jgsr2s821j3s4bk7d54xqwmnld7m57avavym1xqvsnbmy"; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libsodium libarchive openssl zeromq ]; + + cargoBuildFlags = ["--package hab"]; + + checkPhase = '' + runHook preCheck + echo "Running cargo test" + cargo test --package hab + runHook postCheck + ''; + + meta = with stdenv.lib; { + description = "An application automation framework"; + homepage = "https://www.habitat.sh"; + license = licenses.asl20; + maintainers = with maintainers; [ rushmorem ]; + platforms = [ "x86_64-linux" ]; + }; +} 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..aee162ba6f22 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix @@ -0,0 +1,31 @@ +{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "helm"; + version = "3.1.2"; + + src = fetchFromGitHub { + owner = "helm"; + repo = "helm"; + rev = "v${version}"; + sha256 = "0pg5cwgyfb4isy2fn233kj3bdn0i8qqp90yzix0khs5maalpnrk1"; + }; + modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8"; + + subPackages = [ "cmd/helm" ]; + buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=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 Frostman ]; + }; +} 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..1318ff003de3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix @@ -0,0 +1,39 @@ +{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm, ... }: + +let version = "0.106.3"; in + +buildGoModule { + pname = "helmfile"; + inherit version; + + src = fetchFromGitHub { + owner = "roboll"; + repo = "helmfile"; + rev = "v${version}"; + sha256 = "0pwkkgdcj9vx6nk574iaqwn074qfpgqd1c44d3kr3xdbac89yfyf"; + }; + + goPackagePath = "github.com/roboll/helmfile"; + + modSha256 = "1yv2b44qac0rms66v0qg13wsga0di6hwxa4dh2l0b1xvaf75ysay"; + + 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..21f4011f0706 --- /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..1d9940c8f318 --- /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.5.1"; + + src = fetchFromGitHub { + owner = "xetys"; + repo = "hetzner-kube"; + rev = version; + sha256 = "1iqgpmljqx6rhmvsir2675waj78amcfiw08knwvlmavjgpxx2ysw"; + }; + + modSha256 = "0jjrk93wdi13wrb5gchhqk7rgwm74kcizrbqsibgkgs2dszwfazh"; + + 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..e2c0b663befa --- /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/k3s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix new file mode 100644 index 000000000000..b18e1f08dd43 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix @@ -0,0 +1,235 @@ +{ stdenv, lib, makeWrapper, socat, iptables, iproute, bridge-utils +, conntrack-tools, buildGoPackage, git, runc, libseccomp, pkgconfig +, ethtool, utillinux, ipset, fetchFromGitHub, fetchurl, fetchzip +, fetchgit +}: + +with lib; + +# k3s is a kinda weird derivation. One of the main points of k3s is the +# simplicity of it being one binary that can perform several tasks. +# However, when you have a good package manager (like nix), that doesn't +# actually make much of a difference; you don't really care if it's one binary +# or 10 since with a good package manager, installing and running it is +# identical. +# Since upstream k3s packages itself as one large binary with several +# "personalities" (in the form of subcommands like 'k3s agent' and 'k3s +# kubectl'), it ends up being easiest to mostly mimic upstream packaging, with +# some exceptions. +# K3s also carries patches to some packages (such as containerd and cni +# plugins), so we intentionally use the k3s versions of those binaries for k3s, +# even if the upstream version of those binaries exist in nixpkgs already. In +# the end, that means we have a thick k3s binary that behaves like the upstream +# one for the most part. +# However, k3s also bundles several pieces of unpatched software, from the +# strongswan vpn software, to iptables, to socat, conntrack, busybox, etc. +# Those pieces of software we entirely ignore upstream's handling of, and just +# make sure they're in the path if desired. +let + k3sVersion = "1.17.3+k3s1"; # k3s git tag + traefikChartVersion = "1.81.0"; # taken from ./scripts/version.sh at the above k3s tag + k3sRootVersion = "0.3.0"; # taken from .s/cripts/version.sh at the above k3s tag + # bundled into the k3s binary + traefikChart = fetchurl { + url = "https://kubernetes-charts.storage.googleapis.com/traefik-${traefikChartVersion}.tgz"; + sha256 = "1aqpzgjlvqhil0g3angz94zd4xbl4iq0qmpjcy5aq1xv9qciwdi9"; + }; + # so, k3s is a complicated thing to package + # This derivation attempts to avoid including any random binaries from the + # internet. k3s-root is _mostly_ binaries built to be bundled in k3s (which + # we don't care about doing, we can add those as build or runtime + # dependencies using a real package manager). + # In addition to those binaries, it's also configuration though (right now + # mostly strongswan configuration), and k3s does use those files. + # As such, we download it in order to grab 'etc' and bundle it into the final + # k3s binary. + k3sRoot = fetchzip { + # Note: marked as apache 2.0 license + url = "https://github.com/rancher/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar"; + sha256 = "12xafn5jivl8lqdcs25b28xrc4mf7yf1xif5np169nvvxgvmpdxp"; + stripRoot=false; + }; + k3sPlugins = buildGoPackage rec { + name = "k3s-cni-plugins"; + version = "0.7.6-k3s1"; # from ./scripts/version.sh 'VERSION_CNIPLUGINS'; update when k3s's repo is updated. + + goPackagePath = "github.com/containernetworking/plugins"; + subPackages = [ "." ]; + + src = fetchFromGitHub { + owner = "rancher"; + repo = "plugins"; + rev = "v${version}"; + sha256 = "0ax72z1ziann352bp6khfds8vlf3bbkqckrkpx4l4jxgqks45izs"; + }; + + meta = { + description = "CNI plugins, as patched by rancher for k3s"; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; + # Grab this separately from a build because it's used by both stages of the + # k3s build. + k3sRepo = fetchgit { + url = "https://github.com/rancher/k3s"; + rev = "v${k3sVersion}"; + leaveDotGit = true; # ./scripts/version.sh depends on git + sha256 = "0qahyc0mf9glxj49va6d20mcncqg4svfic2iz8b1lqid5c4g68mm"; + }; + # Stage 1 of the k3s build: + # Let's talk about how k3s is structured. + # One of the ideas of k3s is that there's the single "k3s" binary which can + # do everything you need, from running a k3s server, to being a worker node, + # to running kubectl. + # The way that actually works is that k3s is a single go binary that contains + # a bunch of bindata that it unpacks at runtime into directories (either the + # user's home directory or /var/lib/rancher if run as root). + # This bindata includes both binaries and configuration. + # In order to let nixpkgs do all its autostripping/patching/etc, we split this into two derivations. + # First, we build all the binaries that get packed into the thick k3s binary + # (and output them from one derivation so they'll all be suitably patched up). + # Then, we bundle those binaries into our thick k3s binary and use that as + # the final single output. + # This approach was chosen because it ensures the bundled binaries all are + # correctly built to run with nix (we can lean on the existing buildGoPackage + # stuff), and we can again lean on that tooling for the final k3s binary too. + # Other alternatives would be to manually run the + # strip/patchelf/remove-references step ourselves in the installPhase of the + # derivation when we've built all the binaries, but haven't bundled them in + # with generated bindata yet. + k3sBuildStage1 = buildGoPackage rec { + name = "k3s-build-1"; + version = "${k3sVersion}"; + + goPackagePath = "github.com/rancher/k3s"; + + src = k3sRepo; + + patches = [ ./patches/00-k3s.patch ]; + + nativeBuildInputs = [ git pkgconfig ]; + buildInputs = [ libseccomp ]; + + buildPhase = '' + pushd go/src/${goPackagePath} + + patchShebangs ./scripts/build ./scripts/version.sh + mkdir -p bin + ./scripts/build + + popd + ''; + + installPhase = '' + pushd go/src/${goPackagePath} + + mkdir -p "$bin/bin" + install -m 0755 -t "$bin/bin" ./bin/* + + popd + ''; + + meta = { + description = "The various binaries that get packaged into the final k3s binary."; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; + k3sBuild = buildGoPackage rec { + name = "k3s-build"; + version = "${k3sVersion}"; + + goPackagePath = "github.com/rancher/k3s"; + + src = k3sRepo; + + patches = [ ./patches/00-k3s.patch ]; + + nativeBuildInputs = [ git pkgconfig ]; + buildInputs = [ k3sBuildStage1 k3sPlugins runc ]; + + # In order to build the thick k3s binary (which is what + # ./scripts/package-cli does), we need to get all the binaries that script + # expects in place. + buildPhase = '' + pushd go/src/${goPackagePath} + + patchShebangs ./scripts/build ./scripts/version.sh ./scripts/package-cli + + mkdir -p bin + + install -m 0755 -t ./bin ${k3sBuildStage1}/bin/* + install -m 0755 -T "${k3sPlugins}/bin/plugins" ./bin/cni + # Note: use the already-nixpkgs-bundled k3s rather than the one bundled + # in k3s because the k3s one is completely unmodified from upstream + # (unlike containerd, cni, etc) + install -m 0755 -T "${runc}/bin/runc" ./bin/runc + cp -R "${k3sRoot}/etc" ./etc + mkdir -p "build/static/charts" + cp "${traefikChart}" "build/static/charts/traefik-${traefikChartVersion}.tgz" + + ./scripts/package-cli + + popd + ''; + + installPhase = '' + pushd go/src/${goPackagePath} + + mkdir -p "$bin/bin" + install -m 0755 -t "$bin/bin" ./dist/artifacts/k3s + + popd + ''; + + meta = { + description = "The k3s go binary which is used by the final wrapped output below."; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; +in +stdenv.mkDerivation rec { + name = "k3s"; + + # Important utilities used by the kubelet, see + # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494 + # Note the list in that issue is stale and some aren't relevant for k3s. + k3sRuntimeDeps = [ + socat iptables iproute bridge-utils ethtool utillinux ipset conntrack-tools + ]; + + buildInputs = [ + k3sBuild makeWrapper + ] ++ k3sRuntimeDeps; + + unpackPhase = "true"; + + # And, one final derivation (you thought the last one was it, right?) + # We got the binary we wanted above, but it doesn't have all the runtime + # dependencies k8s wants, including mount utilities for kubelet, networking + # tools for cni/kubelet stuff, etc + # Use a wrapper script to reference all the binaries that k3s tries to + # execute, but that we didn't bundle with it. + installPhase = '' + mkdir -p "$out/bin" + makeWrapper ${k3sBuild}/bin/k3s "$out/bin/k3s" \ + --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \ + --prefix PATH : "$out/bin" + ''; + + meta = { + description = "A lightweight Kubernetes distribution."; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch b/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch new file mode 100644 index 000000000000..afe2c356aa4d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch @@ -0,0 +1,74 @@ +diff --git a/main.go b/main.go +index 62908bb7bb..0527222887 100644 +--- a/main.go ++++ b/main.go +@@ -1,5 +1,5 @@ + //go:generate go run pkg/codegen/cleanup/main.go +-//go:generate /bin/rm -rf pkg/generated ++//go:generate rm -rf pkg/generated + //go:generate go run pkg/codegen/main.go + //go:generate go fmt pkg/deploy/zz_generated_bindata.go + //go:generate go fmt pkg/static/zz_generated_bindata.go +diff --git a/scripts/build b/scripts/build +index 72d3c07ece..3e5455b262 100755 +--- a/scripts/build ++++ b/scripts/build +@@ -10,7 +10,8 @@ PKG_CONTAINERD="github.com/containerd/containerd" + PKG_RANCHER_CONTAINERD="github.com/rancher/containerd" + PKG_CRICTL="github.com/kubernetes-sigs/cri-tools" + +-buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ') ++# Deterministic build date ++buildDate="$(date -d "$(git log -1 --format=%ai)" -u "+%Y-%m-%dT%H:%M:%SZ")" + + VENDOR_PREFIX="${PKG}/vendor/" + VERSIONFLAGS=" +@@ -82,17 +83,7 @@ cleanup() { + } + + INSTALLBIN=$(pwd)/bin +-if [ ! -x ${INSTALLBIN}/cni ]; then +-( +- echo Building cni +- TMPDIR=$(mktemp -d) +- trap cleanup EXIT +- WORKDIR=$TMPDIR/src/github.com/containernetworking/plugins +- git clone -b $VERSION_CNIPLUGINS https://github.com/rancher/plugins.git $WORKDIR +- cd $WORKDIR +- GOPATH=$TMPDIR CGO_ENABLED=0 go build -tags "$TAGS" -ldflags "$LDFLAGS $STATIC" -o $INSTALLBIN/cni +-) +-fi ++# skip building cni, use our separately built one + # echo Building agent + # CGO_ENABLED=1 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/k3s-agent ./cmd/agent/main.go + echo Building server +@@ -108,9 +99,8 @@ ln -s containerd ./bin/ctr + #CGO_ENABLED=1 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC_SQLITE" -o bin/ctr ./cmd/ctr/main.go + # echo Building containerd + # CGO_ENABLED=0 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd/ +-echo Building runc +-make EXTRA_LDFLAGS="-w -s" BUILDTAGS="apparmor seccomp" -C ./vendor/github.com/opencontainers/runc static +-cp -f ./vendor/github.com/opencontainers/runc/runc ./bin/runc ++ ++# skip building runc; use our packaged one + + echo Building containerd-shim + make -C ./vendor/github.com/containerd/containerd bin/containerd-shim +diff --git a/scripts/package-cli b/scripts/package-cli +index 4c66ce32df..6d1e0c03cb 100755 +--- a/scripts/package-cli ++++ b/scripts/package-cli +@@ -55,10 +55,10 @@ LDFLAGS=" + -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8} + -w -s + " +-STATIC="-extldflags '-static'" + if [ "$DQLITE" = "true" ]; then + DQLITE_TAGS="dqlite" + fi +-CGO_ENABLED=0 go build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go ++go build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go + +-./scripts/build-upload ${CMD_NAME} ${COMMIT} ++# for nixos, don't upload it ++# ./scripts/build-upload ${CMD_NAME} ${COMMIT} 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..1cf76e1cff30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix @@ -0,0 +1,29 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "k9s"; + version = "0.18.1"; + + src = fetchFromGitHub { + owner = "derailed"; + repo = "k9s"; + rev = "v${version}"; + sha256 = "0a5x4yamvx2qlwngfvainbhplwp0hqwgvdqlj2jbrbz4hfhr1l59"; + }; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/derailed/k9s/cmd.version=${version} + -X github.com/derailed/k9s/cmd.commit=${src.rev} + ''; + + modSha256 = "0wpf6iyq6p3a8azdkn17gdp01wq9khyzr1bab6qgvsnsnhnjzcky"; + + 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..ebf98840ee2b --- /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..09a69f4b80e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix @@ -0,0 +1,30 @@ +{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }: + +buildGoPackage rec { + pname = "kompose"; + version = "1.21.0"; + + goPackagePath = "github.com/kubernetes/kompose"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "kubernetes"; + repo = "kompose"; + sha256 = "15a1alf6ywwfc4z5kdcnv64fp3cfy3qrcw62ny6xyn1kh1w24vkh"; + }; + + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + $bin/bin/kompose completion bash > kompose.bash + $bin/bin/kompose completion zsh > kompose.zsh + installShellCompletion kompose.{bash,zsh} + ''; + + meta = with lib; { + description = "A tool to help users who are familiar with docker-compose move to Kubernetes"; + homepage = "https://kompose.io"; + 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..87ae71f6a48d --- /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..a5f1806e5779 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix @@ -0,0 +1,78 @@ +{ 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; + }; + + nativeBuildInputs = [ 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.2"; + sha256 = "1sjfd7pfi81ccq1dkgkh9xx6y94bqzlp727pvyf7l01x3d14z2b3"; + }; + + kops_1_16 = mkKops { + version = "1.16.0"; + sha256 = "1b2lzf6b29rs5imbpqp8gnp3b511lk7jrm2f62y32gmx0gyjws6a"; + }; +} 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..2eea6adb28d1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix @@ -0,0 +1,33 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kube3d"; + version = "1.6.0"; + k3sVersion = "1.17.3-k3s1"; + + goPackagePath = "github.com/rancher/k3d"; + + src = fetchFromGitHub { + owner = "rancher"; + repo = "k3d"; + rev = "v${version}"; + sha256 = "0qjwqqynvgzainq66fpzczgynwk3hv7wzgfy5271fc6mj2k0zz5x"; + }; + + buildFlagsArray = '' + -ldflags= + -w -s + -X github.com/rancher/k3d/version.Version=${version} + -X github.com/rancher/k3d/version.K3sVersion=v${k3sVersion} + ''; + + modSha256 = "0c8bfl0hz5cfhi6jzhhylz051jiix6s7s20fn23w7wri4xaqrjn8"; + + 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 ngerstle ]; + }; +} 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..bf4ec9492157 --- /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..48540bffb536 --- /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; []; + 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..3a91efd064cc --- /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.18.1"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = "kubernetes"; + rev = "v${version}"; + sha256 = "1z109h0jqqfxvgyhmxsiggf6fb9kdrwvmv9wdi1n58n4yk65hvl6"; + }; + + nativeBuildInputs = [ 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..ef87b67a3600 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kubeseal"; + version = "0.12.0"; + + src = fetchFromGitHub { + owner = "bitnami-labs"; + repo = "sealed-secrets"; + rev = "v${version}"; + sha256 = "0z51iwdc4m0y8wyyx3mcvbzxlrgws7n5wkcd0g7nr73irnsld4lh"; + }; + + modSha256 = "029h0zr3fpzlsv9hf1d1x5j7aalxkcsyszsxjz8fqrhjafqc7zvq"; + + 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..114c5f5af152 --- /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..569baf6000ad --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix @@ -0,0 +1,23 @@ +{ stdenv, lib, fetchFromGitHub, buildGoModule, makeWrapper }: + +buildGoModule rec { + pname = "kubeval"; + version = "0.14.0"; + + src = fetchFromGitHub { + owner = "instrumenta"; + repo = "kubeval"; + rev = "${version}"; + sha256 = "0kpwk7bv36m3i8vavm1pqc8l611c6l9qbagcc64v6r85qig4w5xv"; + }; + + modSha256 = "0y9x44y3bchi8xg0a6jmp2rmi8dybkl6qlywb6nj1viab1s8dd4y"; + + 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/kubeval/schema.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix new file mode 100644 index 000000000000..370fe9a1cd82 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix @@ -0,0 +1,15 @@ +{ fetchFromGitHub }: +# To cache schema as a package so network calls are not +# necessary at runtime, allowing use in package builds you can use the following: + +# KUBEVAL_SCHEMA_LOCATION="file:///${kubeval-schema}"; +(fetchFromGitHub { + name = "kubeval-schema"; + owner = "instrumenta"; + repo = "kubernetes-json-schema"; + rev = "6a498a60dc68c5f6a1cc248f94b5cd1e7241d699"; + sha256 = "1y9m2ma3n4h7sf2lg788vjw6pkfyi0fa7gzc870faqv326n6x2jr"; +}) // { + # the schema is huge (> 7GB), we don't get any benefit from building int on hydra + meta.hydraPlatforms = []; +} 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..3d66a7c62f20 --- /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..010d8cf4d215 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix @@ -0,0 +1,30 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "luigi"; + version = "2.8.12"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "1p83mxqs7w5v27a58ps7wji5mlyfz66cpkbyrndix0pv9hdyzpxn"; + }; + + propagatedBuildInputs = with python3Packages; [ dateutil 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..df571f4cf869 --- /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 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..ac1feee5d72b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix @@ -0,0 +1,263 @@ +{ 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 offline ]; + platforms = platforms.unix; + broken = true; # Broken since 2019-10-22 (https://hydra.nixos.org/build/115475123) + }; +} 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..1e2840017b34 --- /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="https://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..d48a28f46a89 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix @@ -0,0 +1,67 @@ +{ stdenv +, buildGoModule +, fetchFromGitHub +, pkgconfig +, makeWrapper +, go-bindata +, libvirt +, vmnet +}: + +buildGoModule rec { + pname = "minikube"; + version = "1.9.2"; + # for -ldflags + commit = "1b78a7b8a99ad6a3c62b8d22f57120d614d17935"; + + goPackagePath = "k8s.io/minikube"; + subPackages = [ "cmd/minikube" ]; + modSha256 = "1pxs6myszgma3rzz0nhfjbnylv6m0xzlinvmlg0c4ijvkkzxg3v5"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = "minikube"; + rev = "v${version}"; + sha256 = "025v45427d885qkjjg7ig8fgrvjalnf1lajsj0cnbwbih2m69svg"; + }; + + nativeBuildInputs = [ pkgconfig go-bindata makeWrapper ]; + buildInputs = stdenv.lib.optionals stdenv.isLinux [ libvirt ] + ++ stdenv.lib.optionals stdenv.isDarwin [ vmnet ]; + + preBuild = '' + go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/... + go-bindata -nomemcopy -o pkg/minikube/translate/translations.go -pkg translate translations/... + + 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//") + + export buildFlagsArray="-ldflags=\ + -X ${goPackagePath}/pkg/version.version=v${version} \ + -X ${goPackagePath}/pkg/version.isoVersion=$ISO_VERSION \ + -X ${goPackagePath}/pkg/version.isoPath=$ISO_BUCKET \ + -X ${goPackagePath}/pkg/version.gitCommitID=${commit} \ + -X ${goPackagePath}/pkg/drivers/kvm.version=v${version} \ + -X ${goPackagePath}/pkg/drivers/kvm.gitCommitID=${commit} \ + -X ${goPackagePath}/pkg/drivers/hyperkit.version=v${version} \ + -X ${goPackagePath}/pkg/drivers/hyperkit.gitCommitID=${commit}" + ''; + + postInstall = '' + 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 + ''; + + 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 atkinschang ]; + 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..3dcfbf6fd7e3 --- /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/node-problem-detector/default.nix b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix new file mode 100644 index 000000000000..a7a98de6d39b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix @@ -0,0 +1,50 @@ +{ stdenv, buildGoModule, fetchFromGitHub, systemd }: + +buildGoModule rec { + pname = "node-problem-detector"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = pname; + rev = "v${version}"; + sha256 = "02avknglmkr9k933a64hkw0rjfxvyh4sc3x70p41b8q2g6vzv2gs"; + }; + + # Project upstream recommends building through vendoring + overrideModAttrs = (_: { + buildCommand = '' + echo "Skipping go.mod, using vendoring instead." && touch $out + ''; + }); + + modSha256 = "0ip26j2h11n1kgkz36rl4akv694yz65hr72q4kv4b3lxcbi65b3p"; + + # Optionally, a log counter binary can be created to parse journald logs. + # The binary is dynamically linked against systemd libraries, making it a + # Linux-only feature. See 'ENABLE_JOURNALD' upstream: + # https://github.com/kubernetes/node-problem-detector/blob/master/Makefile + subPackages = [ "cmd/nodeproblemdetector" ] ++ + stdenv.lib.optionals stdenv.isLinux [ "cmd/logcounter" ]; + + preBuild = '' + export CGO_ENABLED=${if stdenv.isLinux then "1" else "0"} + ''; + + buildInputs = stdenv.lib.optionals stdenv.isLinux [ systemd ]; + + buildFlags = "-mod vendor" + + stdenv.lib.optionalString stdenv.isLinux " -tags journald"; + + buildFlagsArray = [ + "-ldflags=" + "-X k8s.io/${pname}/pkg/version.version=v${version}" + ]; + + meta = with stdenv.lib; { + description = "Various problem detectors running on the Kubernetes nodes"; + homepage = "https://github.com/kubernetes/node-problem-detector"; + license = licenses.asl20; + maintainers = with maintainers; [ lbpdt ]; + }; +} 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..829ea1000f06 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix @@ -0,0 +1,41 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "nomad"; + version = "0.11.0"; + rev = "v${version}"; + + goPackagePath = "github.com/hashicorp/nomad"; + subPackages = [ "." ]; + + src = fetchFromGitHub { + owner = "hashicorp"; + repo = pname; + inherit rev; + sha256 = "0jg7h52wlgd2aslx13fs97j3b8g5xfgil3p2jsc4j95l7lmqn7bv"; + }; + + # 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..a9b0ed3fcb59 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix @@ -0,0 +1,88 @@ +{ 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 = [ kerberos ]; + + nativeBuildInputs = [ which rsync go-bindata 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..65a4a1938430 --- /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..afcd736e629c --- /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/default.nix b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix new file mode 100644 index 000000000000..0b2f798d35b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix @@ -0,0 +1,66 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "prow-unstable"; + version = "2020-04-01"; + rev = "32e3b5ce7695fb622381421653db436cb57b47c5"; + + src = fetchFromGitHub { + inherit rev; + + owner = "kubernetes"; + repo = "test-infra"; + sha256 = "0mc3ynmbf3kidibdy8k3v3xjlvmxl8w7zm1z2m0skmhd0y4bpmk4"; + }; + + modSha256 = "1xajdg10a27icc7g1y3ym4pkgg64rp4afybbjlhbg3k3whir9xa1"; + + subPackages = [ + "prow/cmd/admission" + "prow/cmd/branchprotector" + "prow/cmd/checkconfig" + "prow/cmd/clonerefs" + "prow/cmd/cm2kc" + "prow/cmd/config-bootstrapper" + "prow/cmd/crier" + "prow/cmd/deck" + "prow/cmd/entrypoint" + "prow/cmd/exporter" + "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..53b421ec5521 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "qbec"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "splunk"; + repo = "qbec"; + rev = "v${version}"; + sha256 = "0krdfaha19wzi10rh0wfhki5nknbd5mndaxhrq7y9m840xy43d6d"; + }; + + modSha256 = "1wb15vrkb4ryvrjp68ygmadnf78s354106ya210pnmsbb53rbhaz"; + + 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..47cdb6942cec --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.8.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..ece04f6621bb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix @@ -0,0 +1,11477 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "@babel/code-frame-7.8.3" = { + name = "_at_babel_slash_code-frame"; + packageName = "@babel/code-frame"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz"; + sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g=="; + }; + }; + "@babel/core-7.8.7" = { + name = "_at_babel_slash_core"; + packageName = "@babel/core"; + version = "7.8.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz"; + sha512 = "rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA=="; + }; + }; + "@babel/generator-7.8.8" = { + name = "_at_babel_slash_generator"; + packageName = "@babel/generator"; + version = "7.8.8"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz"; + sha512 = "HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg=="; + }; + }; + "@babel/helper-function-name-7.8.3" = { + name = "_at_babel_slash_helper-function-name"; + packageName = "@babel/helper-function-name"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz"; + sha512 = "BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA=="; + }; + }; + "@babel/helper-get-function-arity-7.8.3" = { + name = "_at_babel_slash_helper-get-function-arity"; + packageName = "@babel/helper-get-function-arity"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz"; + sha512 = "FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA=="; + }; + }; + "@babel/helper-plugin-utils-7.8.3" = { + name = "_at_babel_slash_helper-plugin-utils"; + packageName = "@babel/helper-plugin-utils"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz"; + sha512 = "j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ=="; + }; + }; + "@babel/helper-split-export-declaration-7.8.3" = { + name = "_at_babel_slash_helper-split-export-declaration"; + packageName = "@babel/helper-split-export-declaration"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz"; + sha512 = "3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA=="; + }; + }; + "@babel/helpers-7.8.4" = { + name = "_at_babel_slash_helpers"; + packageName = "@babel/helpers"; + version = "7.8.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz"; + sha512 = "VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w=="; + }; + }; + "@babel/highlight-7.8.3" = { + name = "_at_babel_slash_highlight"; + packageName = "@babel/highlight"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz"; + sha512 = "PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg=="; + }; + }; + "@babel/parser-7.8.8" = { + name = "_at_babel_slash_parser"; + packageName = "@babel/parser"; + version = "7.8.8"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz"; + sha512 = "mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA=="; + }; + }; + "@babel/plugin-syntax-object-rest-spread-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-object-rest-spread"; + packageName = "@babel/plugin-syntax-object-rest-spread"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"; + sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="; + }; + }; + "@babel/template-7.8.6" = { + name = "_at_babel_slash_template"; + packageName = "@babel/template"; + version = "7.8.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz"; + sha512 = "zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg=="; + }; + }; + "@babel/traverse-7.8.6" = { + name = "_at_babel_slash_traverse"; + packageName = "@babel/traverse"; + version = "7.8.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz"; + sha512 = "2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A=="; + }; + }; + "@babel/types-7.8.7" = { + name = "_at_babel_slash_types"; + packageName = "@babel/types"; + version = "7.8.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz"; + sha512 = "k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw=="; + }; + }; + "@cnakazawa/watch-1.0.4" = { + name = "_at_cnakazawa_slash_watch"; + packageName = "@cnakazawa/watch"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz"; + sha512 = "v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ=="; + }; + }; + "@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.6" = { + name = "_at_types_slash_babel__core"; + packageName = "@types/babel__core"; + version = "7.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.6.tgz"; + sha512 = "tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg=="; + }; + }; + "@types/babel__generator-7.6.1" = { + name = "_at_types_slash_babel__generator"; + packageName = "@types/babel__generator"; + version = "7.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz"; + sha512 = "bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew=="; + }; + }; + "@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.9" = { + name = "_at_types_slash_babel__traverse"; + packageName = "@types/babel__traverse"; + version = "7.0.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz"; + sha512 = "jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw=="; + }; + }; + "@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.19.0" = { + name = "_at_types_slash_body-parser"; + packageName = "@types/body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ=="; + }; + }; + "@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.33" = { + name = "_at_types_slash_connect"; + packageName = "@types/connect"; + version = "3.4.33"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz"; + sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A=="; + }; + }; + "@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.2" = { + name = "_at_types_slash_cron"; + packageName = "@types/cron"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cron/-/cron-1.7.2.tgz"; + sha512 = "AEpNLRcsVSc5AdseJKNHpz0d4e8+ow+abTaC0fKDbAU86rF1evoFF0oC2fV9FdqtfVXkG2LKshpLTJCFOpyvTg=="; + }; + }; + "@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.3" = { + name = "_at_types_slash_express"; + packageName = "@types/express"; + version = "4.17.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz"; + sha512 = "I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg=="; + }; + }; + "@types/express-serve-static-core-4.17.2" = { + name = "_at_types_slash_express-serve-static-core"; + packageName = "@types/express-serve-static-core"; + version = "4.17.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz"; + sha512 = "El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg=="; + }; + }; + "@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-3.0.0" = { + name = "_at_types_slash_istanbul-lib-report"; + packageName = "@types/istanbul-lib-report"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"; + sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg=="; + }; + }; + "@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.9.1" = { + name = "_at_types_slash_jest"; + packageName = "@types/jest"; + version = "24.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz"; + sha512 = "Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q=="; + }; + }; + "@types/js-yaml-3.12.2" = { + name = "_at_types_slash_js-yaml"; + packageName = "@types/js-yaml"; + version = "3.12.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.2.tgz"; + sha512 = "0CFu/g4mDSNkodVwWijdlr8jH7RoplRWNgovjFLEZeT+QEbbZXjBmCe3HwaWheAlCbHwomTwzZoSedeOycABug=="; + }; + }; + "@types/keygrip-1.0.2" = { + name = "_at_types_slash_keygrip"; + packageName = "@types/keygrip"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz"; + sha512 = "GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw=="; + }; + }; + "@types/koa-2.11.2" = { + name = "_at_types_slash_koa"; + packageName = "@types/koa"; + version = "2.11.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.2.tgz"; + sha512 = "2UPelagNNW6bnc1I5kIzluCaheXRA9S+NyOdXEFFj9Az7jc15ek5V03kb8OTbb3tdZ5i2BIJObe86PhHvpMolg=="; + }; + }; + "@types/koa-compose-3.2.5" = { + name = "_at_types_slash_koa-compose"; + packageName = "@types/koa-compose"; + version = "3.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz"; + sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ=="; + }; + }; + "@types/koa-router-7.4.0" = { + name = "_at_types_slash_koa-router"; + packageName = "@types/koa-router"; + version = "7.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.4.0.tgz"; + sha512 = "CkNyhGOCJ6rpBEG0rlSQhwHsHNwMzGLE49tV3jE5f0TvMzy/SmoCAIlHWdOLs8Mro+BqtKFH6e/lDaibWkydag=="; + }; + }; + "@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.4" = { + name = "_at_types_slash_koa-views"; + packageName = "@types/koa-views"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-views/-/koa-views-2.0.4.tgz"; + sha512 = "aGFBVLiPC7FkXTqHLhnmjKhx3COV+GeJHO9OkLX/p/iAQTgDB5bbnsddx3XgrS6aACWyxR3BpQJVDdSqCNY1lw=="; + }; + }; + "@types/lodash-4.14.149" = { + name = "_at_types_slash_lodash"; + packageName = "@types/lodash"; + version = "4.14.149"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz"; + sha512 = "ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ=="; + }; + }; + "@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.17.17" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "10.17.17"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz"; + sha512 = "gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q=="; + }; + }; + "@types/node-12.12.30" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "12.12.30"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-12.12.30.tgz"; + sha512 = "sz9MF/zk6qVr3pAnM0BSQvYIBK44tS75QC5N+VbWSE4DjCV/pJ+UzCW/F+vVnl7TkOPcuwQureKNtSSwjBTaMg=="; + }; + }; + "@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.4" = { + name = "_at_types_slash_request"; + packageName = "@types/request"; + version = "2.48.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz"; + sha512 = "W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw=="; + }; + }; + "@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.6" = { + name = "_at_types_slash_tough-cookie"; + packageName = "@types/tough-cookie"; + version = "2.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.6.tgz"; + sha512 = "wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ=="; + }; + }; + "@types/underscore-1.9.4" = { + name = "_at_types_slash_underscore"; + packageName = "@types/underscore"; + version = "1.9.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.4.tgz"; + sha512 = "CjHWEMECc2/UxOZh0kpiz3lEyX2Px3rQS9HzD20lxMvx571ivOBQKeLnqEjxUY0BMgp6WJWo/pQLRBwMW5v4WQ=="; + }; + }; + "@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.4" = { + name = "_at_types_slash_ws"; + packageName = "@types/ws"; + version = "6.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz"; + sha512 = "PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg=="; + }; + }; + "@types/yargs-13.0.8" = { + name = "_at_types_slash_yargs"; + packageName = "@types/yargs"; + version = "13.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz"; + sha512 = "XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA=="; + }; + }; + "@types/yargs-parser-15.0.0" = { + name = "_at_types_slash_yargs-parser"; + packageName = "@types/yargs-parser"; + version = "15.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz"; + sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="; + }; + }; + "@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.3" = { + name = "abab"; + packageName = "abab"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz"; + sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg=="; + }; + }; + "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.4" = { + name = "acorn"; + packageName = "acorn"; + version = "5.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz"; + sha512 = "1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="; + }; + }; + "acorn-6.4.1" = { + name = "acorn"; + packageName = "acorn"; + version = "6.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz"; + sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="; + }; + }; + "acorn-7.1.1" = { + name = "acorn"; + packageName = "acorn"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz"; + sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg=="; + }; + }; + "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=="; + }; + }; + "acorn-walk-7.1.1" = { + name = "acorn-walk"; + packageName = "acorn-walk"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz"; + sha512 = "wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ=="; + }; + }; + "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.12.0" = { + name = "ajv"; + packageName = "ajv"; + version = "6.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz"; + sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw=="; + }; + }; + "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-2.6.3" = { + name = "async"; + packageName = "async"; + version = "2.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz"; + sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg=="; + }; + }; + "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.9.1" = { + name = "aws4"; + packageName = "aws4"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz"; + sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="; + }; + }; + "axios-0.19.2" = { + name = "axios"; + packageName = "axios"; + version = "0.19.2"; + src = fetchurl { + url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz"; + sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA=="; + }; + }; + "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=="; + }; + }; + "bindings-1.5.0" = { + name = "bindings"; + packageName = "bindings"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"; + sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="; + }; + }; + "bluebird-3.7.2" = { + name = "bluebird"; + packageName = "bluebird"; + version = "3.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"; + sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="; + }; + }; + "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-1.0.0" = { + name = "browser-process-hrtime"; + packageName = "browser-process-hrtime"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz"; + sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="; + }; + }; + "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.1" = { + name = "bser"; + packageName = "bser"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz"; + sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="; + }; + }; + "buffer-4.9.2" = { + name = "buffer"; + packageName = "buffer"; + version = "4.9.2"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz"; + sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg=="; + }; + }; + "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.30001035" = { + name = "caniuse-lite"; + packageName = "caniuse-lite"; + version = "1.0.30001035"; + src = fetchurl { + url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz"; + sha512 = "C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ=="; + }; + }; + "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.4" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"; + sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="; + }; + }; + "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.3" = { + name = "clean-css"; + packageName = "clean-css"; + version = "4.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz"; + sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA=="; + }; + }; + "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.3" = { + name = "commander"; + packageName = "commander"; + version = "2.20.3"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"; + sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="; + }; + }; + "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.18" = { + name = "compressible"; + packageName = "compressible"; + version = "2.0.18"; + src = fetchurl { + url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz"; + sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="; + }; + }; + "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.2.0" = { + name = "console-browserify"; + packageName = "console-browserify"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz"; + sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="; + }; + }; + "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.7.0" = { + name = "convert-source-map"; + packageName = "convert-source-map"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz"; + sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA=="; + }; + }; + "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.8.0" = { + name = "cookies"; + packageName = "cookies"; + version = "0.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz"; + sha512 = "8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow=="; + }; + }; + "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.11" = { + name = "core-js"; + packageName = "core-js"; + version = "2.6.11"; + src = fetchurl { + url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz"; + sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="; + }; + }; + "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.8.2" = { + name = "cron"; + packageName = "cron"; + version = "1.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz"; + sha512 = "Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg=="; + }; + }; + "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=="; + }; + }; + "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"; + }; + }; + "depd-2.0.0" = { + name = "depd"; + packageName = "depd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"; + sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="; + }; + }; + "des.js-1.0.1" = { + name = "des.js"; + packageName = "des.js"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz"; + sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA=="; + }; + }; + "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.4" = { + name = "ejs"; + packageName = "ejs"; + version = "2.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz"; + sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA=="; + }; + }; + "electron-to-chromium-1.3.376" = { + name = "electron-to-chromium"; + packageName = "electron-to-chromium"; + version = "1.3.376"; + src = fetchurl { + url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz"; + sha512 = "cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw=="; + }; + }; + "elliptic-6.5.2" = { + name = "elliptic"; + packageName = "elliptic"; + version = "6.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz"; + sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw=="; + }; + }; + "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"; + }; + }; + "emojis-list-3.0.0" = { + name = "emojis-list"; + packageName = "emojis-list"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"; + sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="; + }; + }; + "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=="; + }; + }; + "enhanced-resolve-4.1.1" = { + name = "enhanced-resolve"; + packageName = "enhanced-resolve"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz"; + sha512 = "98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA=="; + }; + }; + "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.17.4" = { + name = "es-abstract"; + packageName = "es-abstract"; + version = "1.17.4"; + src = fetchurl { + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz"; + sha512 = "Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ=="; + }; + }; + "es-to-primitive-1.2.1" = { + name = "es-to-primitive"; + packageName = "es-to-primitive"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"; + sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="; + }; + }; + "es5-ext-0.10.53" = { + name = "es5-ext"; + packageName = "es5-ext"; + version = "0.10.53"; + src = fetchurl { + url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz"; + sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q=="; + }; + }; + "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.3" = { + name = "es6-symbol"; + packageName = "es6-symbol"; + version = "3.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz"; + sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA=="; + }; + }; + "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.14.1" = { + name = "escodegen"; + packageName = "escodegen"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz"; + sha512 = "Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ=="; + }; + }; + "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-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.1.0" = { + name = "events"; + packageName = "events"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz"; + sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="; + }; + }; + "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.4" = { + name = "exec-sh"; + packageName = "exec-sh"; + version = "0.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz"; + sha512 = "sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="; + }; + }; + "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=="; + }; + }; + "ext-1.4.0" = { + name = "ext"; + packageName = "ext"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz"; + sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A=="; + }; + }; + "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-3.1.1" = { + name = "fast-deep-equal"; + packageName = "fast-deep-equal"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz"; + sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="; + }; + }; + "fast-json-stable-stringify-2.1.0" = { + name = "fast-json-stable-stringify"; + packageName = "fast-json-stable-stringify"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; + sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="; + }; + }; + "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.1" = { + name = "fb-watchman"; + packageName = "fb-watchman"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz"; + sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg=="; + }; + }; + "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=="; + }; + }; + "file-uri-to-path-1.0.0" = { + name = "file-uri-to-path"; + packageName = "file-uri-to-path"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; + sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="; + }; + }; + "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.2" = { + name = "formidable"; + packageName = "formidable"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz"; + sha512 = "V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="; + }; + }; + "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.11" = { + name = "fsevents"; + packageName = "fsevents"; + version = "1.2.11"; + src = fetchurl { + url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz"; + sha512 = "+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw=="; + }; + }; + "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=="; + }; + }; + "gensync-1.0.0-beta.1" = { + name = "gensync"; + packageName = "gensync"; + version = "1.0.0-beta.1"; + src = fetchurl { + url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz"; + sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="; + }; + }; + "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.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=="; + }; + }; + "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.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=="; + }; + }; + "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=="; + }; + }; + "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.1" = { + name = "has-symbols"; + packageName = "has-symbols"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz"; + sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="; + }; + }; + "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.8" = { + name = "hosted-git-info"; + packageName = "hosted-git-info"; + version = "2.8.8"; + src = fetchurl { + url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz"; + sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="; + }; + }; + "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"; + }; + }; + "html-escaper-2.0.0" = { + name = "html-escaper"; + packageName = "html-escaper"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz"; + sha512 = "a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig=="; + }; + }; + "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.1" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; + sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="; + }; + }; + "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-callable-1.1.5" = { + name = "is-callable"; + packageName = "is-callable"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz"; + sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q=="; + }; + }; + "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.2" = { + name = "is-date-object"; + packageName = "is-date-object"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz"; + sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="; + }; + }; + "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.1.0" = { + name = "is-finite"; + packageName = "is-finite"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz"; + sha512 = "cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="; + }; + }; + "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.5" = { + name = "is-regex"; + packageName = "is-regex"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz"; + sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ=="; + }; + }; + "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.3" = { + name = "is-symbol"; + packageName = "is-symbol"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz"; + sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ=="; + }; + }; + "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.7" = { + name = "istanbul-reports"; + packageName = "istanbul-reports"; + version = "2.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz"; + sha512 = "uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg=="; + }; + }; + "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.3" = { + name = "js-beautify"; + packageName = "js-beautify"; + version = "1.10.3"; + src = fetchurl { + url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.3.tgz"; + sha512 = "wfk/IAWobz1TfApSdivH5PJ0miIHgDoYb1ugSqHcODPmaYu46rYe5FVuIEkhjg8IQiv6rDNPyhsqbsohI/C2vQ=="; + }; + }; + "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.1.0" = { + name = "keygrip"; + packageName = "keygrip"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz"; + sha512 = "iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ=="; + }; + }; + "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.3" = { + name = "kind-of"; + packageName = "kind-of"; + version = "6.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"; + sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="; + }; + }; + "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.11.0" = { + name = "koa"; + packageName = "koa"; + version = "2.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa/-/koa-2.11.0.tgz"; + sha512 = "EpR9dElBTDlaDgyhDMiLkXrPwp6ZqgAIBvhhmxQ9XN4TFgW+gEz6tkcsNI6BnUbUftrKDjVFj4lW2/J2aNBMMA=="; + }; + }; + "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-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=="; + }; + }; + "loader-utils-1.4.0" = { + name = "loader-utils"; + packageName = "loader-utils"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz"; + sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA=="; + }; + }; + "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.7" = { + name = "loglevel"; + packageName = "loglevel"; + version = "1.6.7"; + src = fetchurl { + url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz"; + sha512 = "cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A=="; + }; + }; + "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.6" = { + name = "make-error"; + packageName = "make-error"; + version = "1.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"; + sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="; + }; + }; + "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"; + }; + }; + "memory-fs-0.5.0" = { + name = "memory-fs"; + packageName = "memory-fs"; + version = "0.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz"; + sha512 = "jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA=="; + }; + }; + "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.43.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.43.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz"; + sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="; + }; + }; + "mime-types-2.1.26" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.26"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz"; + sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ=="; + }; + }; + "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.5" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; + sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; + }; + }; + "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.28" = { + name = "moment-timezone"; + packageName = "moment-timezone"; + version = "0.5.28"; + src = fetchurl { + url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz"; + sha512 = "TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw=="; + }; + }; + "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.3" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; + sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; + }; + }; + "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.2.0" = { + name = "nwsapi"; + packageName = "nwsapi"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz"; + sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="; + }; + }; + "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.7.0" = { + name = "object-inspect"; + packageName = "object-inspect"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz"; + sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="; + }; + }; + "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.1.0" = { + name = "object.getownpropertydescriptors"; + packageName = "object.getownpropertydescriptors"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz"; + sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg=="; + }; + }; + "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=="; + }; + }; + "optionator-0.8.3" = { + name = "optionator"; + packageName = "optionator"; + version = "0.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"; + sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA=="; + }; + }; + "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.2" = { + name = "p-limit"; + packageName = "p-limit"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz"; + sha512 = "WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ=="; + }; + }; + "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.11" = { + name = "pako"; + packageName = "pako"; + version = "1.0.11"; + src = fetchurl { + url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz"; + sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="; + }; + }; + "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.8.0" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "1.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz"; + sha512 = "n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA=="; + }; + }; + "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.25" = { + name = "portfinder"; + packageName = "portfinder"; + version = "1.0.25"; + src = fetchurl { + url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz"; + sha512 = "6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg=="; + }; + }; + "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.19.1" = { + name = "prettier"; + packageName = "prettier"; + version = "1.19.1"; + src = fetchurl { + url = "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz"; + sha512 = "s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew=="; + }; + }; + "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.3.1" = { + name = "prompts"; + packageName = "prompts"; + version = "2.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/prompts/-/prompts-2.3.1.tgz"; + sha512 = "qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA=="; + }; + }; + "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.6" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"; + sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw=="; + }; + }; + "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.7.0" = { + name = "psl"; + packageName = "psl"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz"; + sha512 = "5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="; + }; + }; + "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.13.0" = { + name = "react-is"; + packageName = "react-is"; + version = "16.13.0"; + src = fetchurl { + url = "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz"; + sha512 = "GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA=="; + }; + }; + "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.7" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; + sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; + }; + }; + "readable-stream-3.6.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; + sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + }; + }; + "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.2" = { + name = "request"; + packageName = "request"; + version = "2.88.2"; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz"; + sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="; + }; + }; + "request-promise-core-1.1.3" = { + name = "request-promise-core"; + packageName = "request-promise-core"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz"; + sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ=="; + }; + }; + "request-promise-native-1.0.8" = { + name = "request-promise-native"; + packageName = "request-promise-native"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz"; + sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ=="; + }; + }; + "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.15.1" = { + name = "resolve"; + packageName = "resolve"; + version = "1.15.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz"; + sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w=="; + }; + }; + "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.4" = { + name = "rxjs"; + packageName = "rxjs"; + version = "6.5.4"; + src = fetchurl { + url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz"; + sha512 = "naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q=="; + }; + }; + "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=="; + }; + }; + "serialize-javascript-2.1.2" = { + name = "serialize-javascript"; + packageName = "serialize-javascript"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz"; + sha512 = "rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ=="; + }; + }; + "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.4" = { + name = "sisteransi"; + packageName = "sisteransi"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz"; + sha512 = "/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig=="; + }; + }; + "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.3" = { + name = "source-map-resolve"; + packageName = "source-map-resolve"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz"; + sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw=="; + }; + }; + "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.16" = { + name = "source-map-support"; + packageName = "source-map-support"; + version = "0.5.16"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz"; + sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ=="; + }; + }; + "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.1" = { + name = "stream-shift"; + packageName = "stream-shift"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz"; + sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="; + }; + }; + "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.1" = { + name = "string.prototype.trimleft"; + packageName = "string.prototype.trimleft"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz"; + sha512 = "iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag=="; + }; + }; + "string.prototype.trimright-2.1.1" = { + name = "string.prototype.trimright"; + packageName = "string.prototype.trimright"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz"; + sha512 = "qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g=="; + }; + }; + "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.6.6" = { + name = "terser"; + packageName = "terser"; + version = "4.6.6"; + src = fetchurl { + url = "https://registry.npmjs.org/terser/-/terser-4.6.6.tgz"; + sha512 = "4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g=="; + }; + }; + "terser-webpack-plugin-1.4.3" = { + name = "terser-webpack-plugin"; + packageName = "terser-webpack-plugin"; + version = "1.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz"; + sha512 = "QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA=="; + }; + }; + "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.1.0" = { + name = "thunky"; + packageName = "thunky"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz"; + sha512 = "eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="; + }; + }; + "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.5.0" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"; + sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="; + }; + }; + "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.3.0" = { + name = "ts-jest"; + packageName = "ts-jest"; + version = "24.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz"; + sha512 = "Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ=="; + }; + }; + "tslib-1.11.1" = { + name = "tslib"; + packageName = "tslib"; + version = "1.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz"; + sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="; + }; + }; + "tsscmp-1.0.6" = { + name = "tsscmp"; + packageName = "tsscmp"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz"; + sha512 = "LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="; + }; + }; + "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-2.0.0" = { + name = "type"; + packageName = "type"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz"; + sha512 = "KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="; + }; + }; + "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.8.3" = { + name = "typescript"; + packageName = "typescript"; + version = "3.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz"; + sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w=="; + }; + }; + "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-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.2" = { + name = "underscore"; + packageName = "underscore"; + version = "1.9.2"; + src = fetchurl { + url = "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz"; + sha512 = "D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ=="; + }; + }; + "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.2" = { + name = "urijs"; + packageName = "urijs"; + version = "1.19.2"; + src = fetchurl { + url = "https://registry.npmjs.org/urijs/-/urijs-1.19.2.tgz"; + sha512 = "s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w=="; + }; + }; + "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.1" = { + name = "util.promisify"; + packageName = "util.promisify"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz"; + sha512 = "g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA=="; + }; + }; + "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.4.0" = { + name = "uuid"; + packageName = "uuid"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; + sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; + }; + }; + "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.2" = { + name = "vm-browserify"; + packageName = "vm-browserify"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz"; + sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="; + }; + }; + "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.2" = { + name = "w3c-hr-time"; + packageName = "w3c-hr-time"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz"; + sha512 = "z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ=="; + }; + }; + "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.42.0" = { + name = "webpack"; + packageName = "webpack"; + version = "4.42.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz"; + sha512 = "EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w=="; + }; + }; + "webpack-bundle-analyzer-3.6.1" = { + name = "webpack-bundle-analyzer"; + packageName = "webpack-bundle-analyzer"; + version = "3.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz"; + sha512 = "Nfd8HDwfSx1xBwC+P8QMGvHAOITxNBSvu/J/mCJvOwv+G4VWkU7zir9SSenTtyCi0LnVtmsc7G5SZo1uV+bxRw=="; + }; + }; + "webpack-cli-3.3.11" = { + name = "webpack-cli"; + packageName = "webpack-cli"; + version = "3.3.11"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz"; + sha512 = "dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g=="; + }; + }; + "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.10.3" = { + name = "webpack-dev-server"; + packageName = "webpack-dev-server"; + version = "3.10.3"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz"; + sha512 = "e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ=="; + }; + }; + "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.31" = { + name = "websocket"; + packageName = "websocket"; + version = "1.0.31"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz"; + sha512 = "VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ=="; + }; + }; + "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.1.0" = { + name = "whatwg-url"; + packageName = "whatwg-url"; + version = "7.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz"; + sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg=="; + }; + }; + "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"; + }; + }; + "word-wrap-1.2.3" = { + name = "word-wrap"; + packageName = "word-wrap"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"; + sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="; + }; + }; + "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"; + }; + }; + "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.2" = { + name = "yargs"; + packageName = "yargs"; + version = "13.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz"; + sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw=="; + }; + }; + "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.2" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "13.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz"; + sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg=="; + }; + }; + "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.8.3" + (sources."@babel/core-7.8.7" // { + dependencies = [ + sources."debug-4.1.1" + sources."json5-2.1.1" + sources."minimist-1.2.5" + sources."ms-2.1.2" + sources."source-map-0.5.7" + ]; + }) + (sources."@babel/generator-7.8.8" // { + dependencies = [ + sources."jsesc-2.5.2" + sources."source-map-0.5.7" + ]; + }) + sources."@babel/helper-function-name-7.8.3" + sources."@babel/helper-get-function-arity-7.8.3" + sources."@babel/helper-plugin-utils-7.8.3" + sources."@babel/helper-split-export-declaration-7.8.3" + sources."@babel/helpers-7.8.4" + (sources."@babel/highlight-7.8.3" // { + dependencies = [ + sources."js-tokens-4.0.0" + ]; + }) + sources."@babel/parser-7.8.8" + sources."@babel/plugin-syntax-object-rest-spread-7.8.3" + sources."@babel/template-7.8.6" + (sources."@babel/traverse-7.8.6" // { + dependencies = [ + sources."debug-4.1.1" + sources."globals-11.12.0" + sources."ms-2.1.2" + ]; + }) + (sources."@babel/types-7.8.7" // { + dependencies = [ + sources."to-fast-properties-2.0.0" + ]; + }) + (sources."@cnakazawa/watch-1.0.4" // { + dependencies = [ + sources."minimist-1.2.5" + ]; + }) + (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.17.17" + ]; + }) + 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.6" + sources."@types/babel__generator-7.6.1" + sources."@types/babel__template-7.0.2" + sources."@types/babel__traverse-7.0.9" + sources."@types/babylon-6.16.5" + sources."@types/body-parser-1.19.0" + sources."@types/caseless-0.12.2" + sources."@types/command-line-args-5.0.0" + sources."@types/connect-3.4.33" + sources."@types/cookies-0.7.4" + sources."@types/cron-1.7.2" + sources."@types/events-3.0.0" + sources."@types/express-4.17.3" + sources."@types/express-serve-static-core-4.17.2" + 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-3.0.0" + sources."@types/istanbul-reports-1.1.1" + sources."@types/jest-24.9.1" + sources."@types/js-yaml-3.12.2" + sources."@types/keygrip-1.0.2" + sources."@types/koa-2.11.2" + sources."@types/koa-compose-3.2.5" + sources."@types/koa-router-7.4.0" + sources."@types/koa-send-4.1.2" + sources."@types/koa-static-4.0.1" + sources."@types/koa-views-2.0.4" + sources."@types/lodash-4.14.149" + 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.12.30" + sources."@types/ora-3.2.0" + sources."@types/range-parser-1.2.3" + (sources."@types/request-2.48.4" // { + 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.6" + sources."@types/underscore-1.9.4" + sources."@types/websocket-0.0.40" + sources."@types/ws-6.0.4" + sources."@types/yargs-13.0.8" + sources."@types/yargs-parser-15.0.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.3" + 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.12.0" + 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-2.6.3" + 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.9.1" + sources."axios-0.19.2" + 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."bindings-1.5.0" + sources."bluebird-3.7.2" + 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-1.0.0" + (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.1" + sources."buffer-4.9.2" + 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.30001035" + 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.4" + 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-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.3" + 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.3" + sources."commondir-1.0.1" + sources."component-emitter-1.3.0" + sources."compressible-2.0.18" + (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.2.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.7.0" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."cookie-0.4.0" + sources."cookie-signature-1.0.6" + (sources."cookies-0.8.0" // { + dependencies = [ + sources."depd-2.0.0" + ]; + }) + 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.11" + 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.8.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.1.0" + ]; + }) + 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.1" + 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.4" + sources."electron-to-chromium-1.3.376" + sources."elliptic-6.5.2" + sources."emoji-regex-7.0.3" + sources."emojis-list-3.0.0" + sources."encodeurl-1.0.2" + sources."end-of-stream-1.4.4" + sources."enhanced-resolve-4.1.1" + sources."errno-0.1.7" + sources."error-ex-1.3.2" + sources."error-inject-1.0.0" + sources."es-abstract-1.17.4" + sources."es-to-primitive-1.2.1" + sources."es5-ext-0.10.53" + sources."es6-iterator-2.0.3" + sources."es6-promise-4.2.8" + sources."es6-symbol-3.1.3" + sources."escape-html-1.0.3" + sources."escape-string-regexp-1.0.5" + sources."escodegen-1.14.1" + sources."eslint-scope-4.0.3" + sources."esprima-4.0.1" + 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.1.0" + sources."eventsource-1.0.7" + sources."evp_bytestokey-1.0.3" + sources."exec-sh-0.3.4" + 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-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."ext-1.4.0" // { + dependencies = [ + sources."type-2.0.0" + ]; + }) + 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-3.1.1" + sources."fast-json-stable-stringify-2.1.0" + sources."fast-levenshtein-2.0.6" + sources."faye-websocket-0.10.0" + sources."fb-watchman-2.0.1" + sources."figgy-pudding-3.5.1" + sources."file-uri-to-path-1.0.0" + 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.2" + 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.11" + sources."function-bind-1.1.1" + sources."gensync-1.0.0-beta.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.6" + (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.3" + ]; + }) + 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.3" + sources."growly-1.3.0" + (sources."gzip-size-5.1.1" // { + dependencies = [ + sources."pify-4.0.1" + ]; + }) + sources."handle-thing-2.0.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.1" + sources."has-to-string-tag-x-1.4.1" + sources."has-value-1.0.0" + (sources."has-values-1.0.0" // { + dependencies = [ + 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.8" + sources."hpack.js-2.1.6" + sources."html-encoding-sniffer-1.0.2" + sources."html-entities-1.2.1" + sources."html-escaper-2.0.0" + 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.1" + sources."is-absolute-url-3.0.3" + (sources."is-accessor-descriptor-1.0.0" // { + dependencies = [ + sources."kind-of-6.0.3" + ]; + }) + sources."is-arrayish-0.2.1" + sources."is-binary-path-1.0.1" + sources."is-buffer-1.1.6" + sources."is-callable-1.1.5" + sources."is-ci-2.0.0" + (sources."is-data-descriptor-1.0.0" // { + dependencies = [ + sources."kind-of-6.0.3" + ]; + }) + sources."is-date-object-1.0.2" + (sources."is-descriptor-1.0.2" // { + dependencies = [ + sources."kind-of-6.0.3" + ]; + }) + (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.1.0" + 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.5" + sources."is-retry-allowed-1.2.0" + sources."is-stream-1.1.0" + sources."is-symbol-1.0.3" + 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.7" + 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.2" + ]; + }) + 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.2" + ]; + }) + 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.3" + sources."js-stringify-1.0.2" + sources."js-tokens-3.0.2" + sources."js-yaml-3.13.1" + sources."jsbn-0.1.1" + (sources."jsdom-11.12.0" // { + dependencies = [ + sources."acorn-5.7.4" + (sources."acorn-globals-4.3.4" // { + dependencies = [ + sources."acorn-6.4.1" + ]; + }) + 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.5" + ]; + }) + sources."jsonpath-plus-0.19.0" + sources."jsprim-1.4.1" + sources."jstransformer-1.0.0" + sources."keygrip-1.1.0" + sources."keyv-3.0.0" + sources."killable-1.0.1" + sources."kind-of-3.2.2" + sources."kleur-3.0.3" + sources."koa-2.11.0" + 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-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.4.0" + 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.7" + 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.6" + 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.5.0" + 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.3" + ]; + }) + sources."miller-rabin-4.0.1" + sources."mime-1.6.0" + sources."mime-db-1.43.0" + sources."mime-types-2.1.26" + 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.28" + 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.3" + ]; + }) + 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.3" + 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.2.0" + 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.7.0" + sources."object-keys-1.1.1" + sources."object-visit-1.0.1" + sources."object.assign-4.1.0" + sources."object.getownpropertydescriptors-2.1.0" + 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."optionator-0.8.3" + 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.2" + 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.11" + 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.8.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.25" // { + dependencies = [ + sources."debug-3.2.6" + sources."ms-2.1.2" + ]; + }) + sources."posix-character-classes-0.1.1" + sources."prelude-ls-1.1.2" + sources."prepend-http-2.0.0" + sources."prettier-1.19.1" + 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.3.1" + sources."proto-list-1.2.4" + sources."proxy-addr-2.0.6" + sources."prr-1.0.1" + sources."pseudomap-1.0.2" + sources."psl-1.7.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.13.0" + sources."read-pkg-3.0.0" + sources."read-pkg-up-4.0.0" + (sources."readable-stream-2.3.7" // { + 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.2" + sources."request-promise-core-1.1.3" + sources."request-promise-native-1.0.8" + sources."require-directory-2.1.1" + sources."require-main-filename-2.0.0" + sources."requires-port-1.0.0" + sources."resolve-1.15.1" + 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.4" + 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.5" + ]; + }) + 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.4" + 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-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.3" + sources."source-map-support-0.5.16" + 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.6.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-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.1" + 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.1" + sources."string.prototype.trimright-2.1.1" + (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.6.6" + (sources."terser-webpack-plugin-1.4.3" // { + 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."serialize-javascript-2.1.2" + 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.1.0" + 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.5.0" + sources."tr46-1.0.1" + sources."trim-right-1.0.1" + sources."tryer-1.0.1" + (sources."ts-jest-24.3.0" // { + dependencies = [ + sources."camelcase-4.1.0" + sources."json5-2.1.1" + sources."minimist-1.2.5" + sources."yargs-parser-10.1.0" + ]; + }) + sources."tslib-1.11.1" + sources."tsscmp-1.0.6" + 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.8.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.2" + 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.2" + 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.1" + sources."utils-merge-1.0.1" + sources."uuid-3.4.0" + 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.2" + sources."void-elements-2.0.1" + sources."w3c-hr-time-1.0.2" + 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.42.0" // { + dependencies = [ + sources."acorn-6.4.1" + sources."memory-fs-0.4.1" + ]; + }) + (sources."webpack-bundle-analyzer-3.6.1" // { + dependencies = [ + sources."acorn-7.1.1" + sources."acorn-walk-7.1.1" + ]; + }) + (sources."webpack-cli-3.3.11" // { + dependencies = [ + sources."cliui-5.0.0" + sources."emojis-list-2.1.0" + sources."enhanced-resolve-4.1.0" + sources."loader-utils-1.2.3" + sources."memory-fs-0.4.1" + sources."supports-color-6.1.0" + sources."yargs-13.2.4" + ]; + }) + (sources."webpack-dev-middleware-3.7.2" // { + dependencies = [ + sources."memory-fs-0.4.1" + sources."mime-2.4.4" + sources."webpack-log-2.0.0" + ]; + }) + (sources."webpack-dev-server-3.10.3" // { + 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.31" // { + 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."word-wrap-1.2.3" + 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.2" // { + 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..162585851d0c --- /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..a5a2ace2399b --- /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..a5b6e7d2f5e7 --- /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.9.1"; + + goPackagePath = "github.com/segmentio/${pname}"; + + src = fetchFromGitHub { + owner = "segmentio"; + repo = pname; + rev = "v${version}"; + sha256 = "00sfzdqhf8g85m03r6mbzfas5vvc67iq7syb8ljcgxg8l1knxnjx"; + }; + + 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..38fbd1b42865 --- /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..7307d8a33f3c --- /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 + 2.1.4 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..903aa9abb6e2 --- /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..d07b6321cb2c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix @@ -0,0 +1,1075 @@ +# Generated with ./update-all +{ + aci = + { + owner = "terraform-providers"; + repo = "terraform-provider-aci"; + rev = "v0.1.8"; + version = "0.1.8"; + sha256 = "14hya00ygz0khljjxwvkp6wbrbsavh2n8f26s2mjakph2havb8a3"; + }; + acme = + { + owner = "terraform-providers"; + repo = "terraform-provider-acme"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "1h53bgflchavnn4laf801d920bsgqqg0ph4slnf7y1fpb0mz5vdv"; + }; + akamai = + { + owner = "terraform-providers"; + repo = "terraform-provider-akamai"; + rev = "v0.5.0"; + version = "0.5.0"; + sha256 = "18l1ik10pn4aq0911sqnfjw9a5zxrm0qbsgynvf5vxc02zds13n5"; + }; + alicloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-alicloud"; + rev = "v1.77.0"; + version = "1.77.0"; + sha256 = "0g8i8dmxzgkzylh2hh4fa9nq6x8bmxqaz0ly0f0cijb82lcbc3qf"; + }; + archive = + { + owner = "hashicorp"; + 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"; + }; + auth0 = + { + owner = "terraform-providers"; + repo = "terraform-provider-auth0"; + rev = "v0.8.1"; + version = "0.8.1"; + sha256 = "0hfmbw76p99xa9jz2sjss56p4wzqqhnf9l9gqgyamywfrdd2bn57"; + }; + aviatrix = + { + owner = "terraform-providers"; + repo = "terraform-provider-aviatrix"; + rev = "v2.12.0"; + version = "2.12.0"; + sha256 = "01n3cqb5k8gd0cll3nqbdmnx3mi0scm57j0xpzhxnif14kpj15g6"; + }; + avi = + { + owner = "terraform-providers"; + repo = "terraform-provider-avi"; + rev = "v0.2.1"; + version = "0.2.1"; + sha256 = "1pyknx5maq1qxm4i2y69iz9c2ym3q3n0fd4hbwxcl83n39cb5iy6"; + }; + aws = + { + owner = "terraform-providers"; + repo = "terraform-provider-aws"; + rev = "v2.55.0"; + version = "2.55.0"; + sha256 = "0pxmwdy5cin0navva1nf3l02yrqqbg01xcq3hf8w0ch8fgr8mr25"; + }; + azuread = + { + owner = "terraform-providers"; + repo = "terraform-provider-azuread"; + rev = "v0.8.0"; + version = "0.8.0"; + sha256 = "0vljhjbizxh5s8f2ki7yn6hzf5xbn5swhxmq9wpxmg7jw5z0k6ha"; + }; + azurerm = + { + owner = "terraform-providers"; + repo = "terraform-provider-azurerm"; + rev = "v2.3.0"; + version = "2.3.0"; + sha256 = "195r6l0ddpjmmf947c1k5v0vdscnhsg2ilp6x7pna418pnx84y2d"; + }; + azurestack = + { + owner = "terraform-providers"; + repo = "terraform-provider-azurestack"; + rev = "v0.9.0"; + version = "0.9.0"; + sha256 = "1msm7jwzry0vmas3l68h6p0migrsm6d18zpxcncv197m8xbvg324"; + }; + baiducloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-baiducloud"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "1va0b9vqfcv2nrqh8jwf80ylyl1x826jhb7h4ghnf18c144qm0i1"; + }; + bigip = + { + owner = "terraform-providers"; + repo = "terraform-provider-bigip"; + rev = "v1.12"; + version = "1.12"; + sha256 = "0yjv0xldplx7jfld1izzc7i93bzwdqrjjzymq02isy2xyfh8by35"; + }; + bitbucket = + { + owner = "terraform-providers"; + repo = "terraform-provider-bitbucket"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "11n4wpvmaab164g6k077n9dbdbhd5lwl7pxpha5492ks468nd95b"; + }; + brightbox = + { + owner = "terraform-providers"; + repo = "terraform-provider-brightbox"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "0s1b2k58r2kmjrdqrkw2dlfpby79i81gml9rpa10y372bwq314zd"; + }; + checkpoint = + { + owner = "terraform-providers"; + repo = "terraform-provider-checkpoint"; + rev = "v1.0.1"; + version = "1.0.1"; + sha256 = "1z2m8lbnplcfaij1xnclyhl4zlchx6bmvrc2fr4hwfzc58m9v7ra"; + }; + chef = + { + owner = "terraform-providers"; + repo = "terraform-provider-chef"; + rev = "v0.2.0"; + version = "0.2.0"; + sha256 = "0ihn4706fflmf0585w22l7arzxsa9biq4cgh8nlhlp5y0zy934ns"; + }; + cherryservers = + { + owner = "terraform-providers"; + repo = "terraform-provider-cherryservers"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "1z6ai6q8aw38kiy8x13rp0dsvb4jk40cv8pk5c069q15m4jab8lh"; + }; + ciscoasa = + { + owner = "terraform-providers"; + repo = "terraform-provider-ciscoasa"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "033pgy42qwjpmjyzylpml7sfzd6dvvybs56cid1f6sm4ykmxbal7"; + }; + 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.5.0"; + version = "2.5.0"; + sha256 = "1dqxn2iwbidmfb0850sicwqh4yp6ynarkl36lnr8nqw9lasvqr5a"; + }; + cloudscale = + { + owner = "terraform-providers"; + repo = "terraform-provider-cloudscale"; + rev = "v2.1.1"; + version = "2.1.1"; + sha256 = "122yi2wbd8mqddkwp2la6vwqw0kw7c9ff5j6y4xqczjg2bwb9mph"; + }; + 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.7.0"; + version = "2.7.0"; + sha256 = "11c54waq7w34l79ak4kizjkmh8zjca5ygh9yib691hdmxsx2cifj"; + }; + datadog = + { + owner = "terraform-providers"; + repo = "terraform-provider-datadog"; + rev = "v2.7.0"; + version = "2.7.0"; + sha256 = "0cq11cjcm2nlszqhsrj425mk8dp0h5ljrrn7jplrbffp8g6wvadd"; + }; + digitalocean = + { + owner = "terraform-providers"; + repo = "terraform-provider-digitalocean"; + rev = "v1.15.1"; + version = "1.15.1"; + sha256 = "0nld6lgz5vy8n4s0y0wpssrslp866rha2znli6pd5sw1nvi6yg0z"; + }; + dme = + { + owner = "terraform-providers"; + repo = "terraform-provider-dme"; + rev = "v0.1.0"; + version = "0.1.0"; + sha256 = "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv"; + }; + dnsimple = + { + owner = "terraform-providers"; + repo = "terraform-provider-dnsimple"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "1m38whc6jx5mccaisnbnkawwlz1bxvy991rqy6h9xb10zyvqar62"; + }; + dns = + { + owner = "hashicorp"; + repo = "terraform-provider-dns"; + rev = "v2.2.0"; + version = "2.2.0"; + sha256 = "11xdxj6hfclaq9glbh14nihmrsk220crm9ld8bdv77w0bppmrrch"; + }; + docker = + { + owner = "terraform-providers"; + repo = "terraform-provider-docker"; + rev = "v2.7.0"; + version = "2.7.0"; + sha256 = "0pl515xjnic7mhfvqbml1z1win5mrhjdqb84jhd5n09j39lb24gx"; + }; + dome9 = + { + owner = "terraform-providers"; + repo = "terraform-provider-dome9"; + rev = "v1.17.0"; + version = "1.17.0"; + sha256 = "123phc71rnb25lv9glybadhmr3pdsrbzl7xm6mj8j213a78qdmn5"; + }; + dyn = + { + owner = "terraform-providers"; + repo = "terraform-provider-dyn"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1a3kxmbib2y0nl7gnxknbhsflj5kfknxnm3gjxxrb2h5d2kvqy48"; + }; + exoscale = + { + owner = "terraform-providers"; + repo = "terraform-provider-exoscale"; + rev = "v0.16.1"; + version = "0.16.1"; + sha256 = "0gs39nx12ws0ikal9zyqkyfiljbxbw0pj7llj9xsq96s7crvy6xr"; + }; + external = + { + owner = "hashicorp"; + repo = "terraform-provider-external"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1kx28bffhd1pg3m0cbldclc8l9zic16mqrk7gybcls9vyds5gbvc"; + }; + fastly = + { + owner = "terraform-providers"; + repo = "terraform-provider-fastly"; + rev = "v0.13.0"; + version = "0.13.0"; + sha256 = "0mcjmk21fil4q98p8v3qln7s2fqbdkjv1pvba0cf9v9d101dhhi9"; + }; + flexibleengine = + { + owner = "terraform-providers"; + repo = "terraform-provider-flexibleengine"; + rev = "v1.11.1"; + version = "1.11.1"; + sha256 = "12kgnq2ydwi2n29y0dc7r251zrnq8kkskiq8p5ypsrm23j3jm6dw"; + }; + fortios = + { + owner = "terraform-providers"; + repo = "terraform-provider-fortios"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "0m006ah351f2ih7zvd3pnpga4d8mh42i4m8af4wflhvyzkw50xnf"; + }; + genymotion = + { + owner = "terraform-providers"; + repo = "terraform-provider-genymotion"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "02jpr3cm7rrf810c69sr6lcxzvxpnf7icc5z80gnvg67wwfg4ph4"; + }; + github = + { + owner = "terraform-providers"; + repo = "terraform-provider-github"; + rev = "v2.5.1"; + version = "2.5.1"; + sha256 = "1lqnwq5gsz34n6zzwajxrh0i1cbyicl4zxakr4fch7makri2fqwg"; + }; + gitlab = + { + owner = "terraform-providers"; + repo = "terraform-provider-gitlab"; + rev = "v2.5.0"; + version = "2.5.0"; + sha256 = "1g7girhjks6p7rcs82p2zd8clp6kdfn6d1synlmfwiw6d3496fvf"; + }; + google-beta = + { + owner = "terraform-providers"; + repo = "terraform-provider-google-beta"; + rev = "v3.15.0"; + version = "3.15.0"; + sha256 = "1xncw82y48dcc464v2gzfmr94l3kgh9x2rlmpmmy6g4mihiwh38b"; + }; + google = + { + owner = "terraform-providers"; + repo = "terraform-provider-google"; + rev = "v3.15.0"; + version = "3.15.0"; + sha256 = "0vw7sndy441xn34kiv2k9hq9p9g649amh7bk91rf0f5p8cmyll1c"; + }; + grafana = + { + owner = "terraform-providers"; + repo = "terraform-provider-grafana"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "0zy3bqgpxymp2zygaxzllk1ysdankwxa1sy1djfgr4fs2nlggkwi"; + }; + gridscale = + { + owner = "terraform-providers"; + repo = "terraform-provider-gridscale"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "05nzia9sa555k07gkhyyckdgn9n6a50w8l3id69rjq1jjh0pngd7"; + }; + hcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-hcloud"; + rev = "v1.16.0"; + version = "1.16.0"; + sha256 = "09v2bg4ffyh4ibz449dygxgd7mvjgh4b2r242l3cwi7pzn66imrz"; + }; + hedvig = + { + owner = "terraform-providers"; + repo = "terraform-provider-hedvig"; + rev = "v1.1.1"; + version = "1.1.1"; + sha256 = "1gd26jm9frn52hy2vm5sv003lbai5sjgdign6akhjmw5sdsmfr05"; + }; + helm = + { + owner = "terraform-providers"; + repo = "terraform-provider-helm"; + rev = "v1.1.1"; + version = "1.1.1"; + sha256 = "0sna0xaibdh1aw3lxs1r2hidw95lxkpm4fqdw0hzmdqxwdmg4b40"; + }; + heroku = + { + owner = "terraform-providers"; + repo = "terraform-provider-heroku"; + rev = "v2.3.0"; + version = "2.3.0"; + sha256 = "1lv3l54fw6rgj2ixkz2dvaf3djj3slhrm0nlbza5c7zjb945igfq"; + }; + http = + { + owner = "hashicorp"; + repo = "terraform-provider-http"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "0q8ichbqrq62q1j0rc7sdz1jzfwg2l9v4ac9jqf6y485dblhmwqd"; + }; + huaweicloudstack = + { + owner = "terraform-providers"; + repo = "terraform-provider-huaweicloudstack"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "1zzf7jbvdlccfbb4cmw2k3mlfj4hh0lv59zahq2zy8afiajsb68i"; + }; + huaweicloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-huaweicloud"; + rev = "v1.13.0"; + version = "1.13.0"; + sha256 = "1caix3lycqnd856z6c3zp9mmq3vr7rblwhhbkwn4rrcld8sv285j"; + }; + icinga2 = + { + owner = "terraform-providers"; + repo = "terraform-provider-icinga2"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "0xwjxb84glhp9viqykziwanj696w2prq4r7k0565k0w3qiaz440v"; + }; + ignition = + { + owner = "terraform-providers"; + repo = "terraform-provider-ignition"; + rev = "v1.2.1"; + version = "1.2.1"; + sha256 = "0wd29iw0a5w7ykgs9m1mmi0bw5z9dl4z640qyz64x8rlh5hl1wql"; + }; + incapsula = + { + owner = "terraform-providers"; + repo = "terraform-provider-incapsula"; + rev = "v2.1.0"; + version = "2.1.0"; + sha256 = "12zw2m7j52rszfawywbiv9rgv976h1w6bp98012qn45d4ap2kvzy"; + }; + influxdb = + { + owner = "terraform-providers"; + repo = "terraform-provider-influxdb"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "19af40g8hgz2rdz6523v0fs71ww7qdlf2mh5j9vb7pfzriqwa5k9"; + }; + jdcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-jdcloud"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "04vz0m3z9rfw2hp0h3jhn625r2v37b319krznvhqylqzksv39dzf"; + }; + kubernetes = + { + owner = "terraform-providers"; + repo = "terraform-provider-kubernetes"; + rev = "v1.11.1"; + version = "1.11.1"; + sha256 = "13m0g52i2z4s58grk22rv0yqbrfszfbxxhwisb5mi7cma4cp7506"; + }; + launchdarkly = + { + owner = "terraform-providers"; + repo = "terraform-provider-launchdarkly"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "1gj0srv8shn6qg109y1g42dx8dybkp3qrjn412bvs6f063ggk0zs"; + }; + 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.2"; + version = "1.9.2"; + sha256 = "1nrk8fi0fwkcm4csrppjwv7vd2ilpbj01dywak696nj8b15w176q"; + }; + local = + { + owner = "hashicorp"; + 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.3.0"; + version = "1.3.0"; + sha256 = "00d8qx95cxaif636dyh935nv9nn6lmb1ybxy7n4myy9g80y50ap1"; + }; + mailgun = + { + owner = "terraform-providers"; + repo = "terraform-provider-mailgun"; + rev = "v0.4.1"; + version = "0.4.1"; + sha256 = "1l76pg4hmww9zg2n4rkhm5dwjh42fxri6d41ih1bf670krkxwsmz"; + }; + matchbox = + { + owner = "poseidon"; + repo = "terraform-provider-matchbox"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3"; + }; + metalcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-metalcloud"; + rev = "v2.2.0"; + version = "2.2.0"; + sha256 = "0xii9gk96srzi9y4pbvlx2cvwypll4igvk89f9qrg18qrw72ags3"; + }; + mongodbatlas = + { + owner = "terraform-providers"; + repo = "terraform-provider-mongodbatlas"; + rev = "v0.4.2"; + version = "0.4.2"; + sha256 = "0cb8dh7bwz9yzyhz8v9j6ksi4dgmmz8d1qpm7234rj36ccirnjmz"; + }; + mysql = + { + owner = "terraform-providers"; + repo = "terraform-provider-mysql"; + rev = "v1.9.0"; + version = "1.9.0"; + sha256 = "14gxxki3jhncv3s2x828ns2vgmf2xxzigdyp9b54mbkw5rnv1k2g"; + }; + ncloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-ncloud"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1h2fr0ss58dr3ypqj6kw90iyji6s83sz2i85vhs5z2adjbk7h8va"; + }; + netlify = + { + owner = "terraform-providers"; + repo = "terraform-provider-netlify"; + rev = "v0.4.0"; + version = "0.4.0"; + sha256 = "07xds84k2vgpvn2cy3id7hmzg57sz2603zs4msn3ysxmi28lmqyg"; + }; + newrelic = + { + owner = "terraform-providers"; + repo = "terraform-provider-newrelic"; + rev = "v1.16.0"; + version = "1.16.0"; + sha256 = "0ddfffyrw28syg0y2q9j7xh4k2sjb8l40167rwgz19w39p1caffv"; + }; + nixos = + { + owner = "tweag"; + repo = "terraform-provider-nixos"; + rev = "v0.0.1"; + version = "0.0.1"; + sha256 = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf"; + }; + nomad = + { + owner = "terraform-providers"; + repo = "terraform-provider-nomad"; + rev = "v1.4.4"; + version = "1.4.4"; + sha256 = "05029s8h8vx7pl0y3d9cd5nlww3483caxhwkbrmk0vs7zdgxk8ns"; + }; + ns1 = + { + owner = "terraform-providers"; + repo = "terraform-provider-ns1"; + rev = "v1.8.0"; + version = "1.8.0"; + sha256 = "1h1pqrj11wdi0fnrrh2mkwahi59jl2vd8affy4acx7kny4n92s49"; + }; + nsxt = + { + owner = "terraform-providers"; + repo = "terraform-provider-nsxt"; + rev = "v2.0.0"; + version = "2.0.0"; + sha256 = "0fka793r0c06sz8vlxk0z7vbm6kab5xzk39r5pznkq34004r17sl"; + }; + null = + { + owner = "hashicorp"; + 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.69.0"; + version = "3.69.0"; + sha256 = "17vndv6bpa9ajs7llnf64bb482b15virbv311d3ds5lrva4vvrv8"; + }; + oktaasa = + { + owner = "terraform-providers"; + repo = "terraform-provider-oktaasa"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "093d5r8dz8gryk8qp5var2qrrgkvs1gwgw3zqpxry9xc5cpn30w0"; + }; + okta = + { + owner = "terraform-providers"; + repo = "terraform-provider-okta"; + rev = "v3.1.1"; + version = "3.1.1"; + sha256 = "1hky6hqrfyl2gj1lykb7gazj9awjgsxhc028558whm5rysx2wpsr"; + }; + 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"; + }; + opennebula = + { + owner = "terraform-providers"; + repo = "terraform-provider-opennebula"; + rev = "v0.1.1"; + version = "0.1.1"; + sha256 = "048cqd89fz5xpji1w8ylg75nbzzcx1c5n89y1k0ra8d3g2208yb2"; + }; + openstack = + { + owner = "terraform-providers"; + repo = "terraform-provider-openstack"; + rev = "v1.26.0"; + version = "1.26.0"; + sha256 = "1vsvzs8112vbi0x99yg6niw0wr55p09x7cg85qwjd0r42gpfdfq2"; + }; + opentelekomcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-opentelekomcloud"; + rev = "v1.16.0"; + version = "1.16.0"; + sha256 = "1bxkh8qnm1mw37wi4rxf29q8lksp864124nwbyn14fwb4h6m1yj4"; + }; + opsgenie = + { + owner = "terraform-providers"; + repo = "terraform-provider-opsgenie"; + rev = "v0.2.9"; + version = "0.2.9"; + sha256 = "13y6awnm9j5qzq1bcmhg7ngzvx43h2dw9wmzdfi1xcpmv1ldvwpi"; + }; + 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.7.0"; + version = "0.7.0"; + sha256 = "167msjsl8xh8zy7lrxvkq2h98xpvxpsjzlil8lcxqmz8qq8a0q5f"; + }; + packet = + { + owner = "terraform-providers"; + repo = "terraform-provider-packet"; + rev = "v2.8.0"; + version = "2.8.0"; + sha256 = "1qnjla347hll0fav0ngnifblk6slbmh1klnm7k9jv327jmv92hz5"; + }; + pagerduty = + { + owner = "terraform-providers"; + repo = "terraform-provider-pagerduty"; + rev = "v1.5.1"; + version = "1.5.1"; + sha256 = "12n12sx1qxckqklcaphzr0j9bcwzrl6p8qzdc3d2csiqccqrpdas"; + }; + panos = + { + owner = "terraform-providers"; + repo = "terraform-provider-panos"; + rev = "v1.6.2"; + version = "1.6.2"; + sha256 = "1qy6jynv61zhvq16s8jkwjhxz7r65cmk9k37ahh07pbhdx707mz5"; + }; + pass = + { + owner = "camptocamp"; + repo = "terraform-provider-pass"; + rev = "1.2.1"; + version = "1.2.1"; + sha256 = "1hf5mvgz5ycp7shiy8px205d9kwswfjmclg7mlh9a55bkraffahk"; + }; + postgresql = + { + owner = "terraform-providers"; + repo = "terraform-provider-postgresql"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "1c9vn1jpfan04iidzn030q21bz3xabrd5pdhlbblblf558ykn4q0"; + }; + powerdns = + { + owner = "terraform-providers"; + repo = "terraform-provider-powerdns"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "0in8f9vfi9y71qac643lfgapbnxi40cwq9b3l82fl1r8ghg7kgri"; + }; + profitbricks = + { + owner = "terraform-providers"; + repo = "terraform-provider-profitbricks"; + rev = "v1.4.4"; + version = "1.4.4"; + sha256 = "0pzcl3pdhaykihvv1v38zrv607mydchvkzrzhwcakgmdkp3vq54i"; + }; + pureport = + { + owner = "terraform-providers"; + repo = "terraform-provider-pureport"; + rev = "v1.1.8"; + version = "1.1.8"; + sha256 = "02vmqwjz5m5hj4zghwicjp27dxvc4qsiwj4gjsi66w6djdqnh4h1"; + }; + rabbitmq = + { + owner = "terraform-providers"; + repo = "terraform-provider-rabbitmq"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "1adkbfm0p7a9i1i53bdmb34g5871rklgqkx7kzmwmk4fvv89n6g8"; + }; + rancher2 = + { + owner = "terraform-providers"; + repo = "terraform-provider-rancher2"; + rev = "v1.8.1"; + version = "1.8.1"; + sha256 = "15pvz1sd1x932yxdp7d679vax3dw56bfhp3422vxqsgmdgscwg1s"; + }; + rancher = + { + owner = "terraform-providers"; + repo = "terraform-provider-rancher"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "0yhv9ahj6ajspgnl2f77gpyd6klq44dyl74lvl10bx6yy56abi2m"; + }; + random = + { + owner = "hashicorp"; + 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.14.0"; + version = "1.14.0"; + sha256 = "0j428pinwyyldg1jhlkad32213z98q3891yv906d6n7jg2bk5m6a"; + }; + secret = + { + owner = "tweag"; + repo = "terraform-provider-secret"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "09gv0fpsrxzgna0xrhrdk8d4va9s0gvdbz596r306qxb4mip4w3r"; + }; + segment = + { + owner = "ajbosco"; + repo = "terraform-provider-segment"; + rev = "v0.2.0"; + version = "0.2.0"; + sha256 = "0ic5b9djhnb1bs2bz3zdprgy3r55dng09xgc4d9l9fyp85g2amaz"; + }; + selectel = + { + owner = "terraform-providers"; + repo = "terraform-provider-selectel"; + rev = "v3.1.0"; + version = "3.1.0"; + sha256 = "1ajhnjlx4bf91z04cp8245j3h2h9c30ajf934zr29jvwli0y3piw"; + }; + signalfx = + { + owner = "terraform-providers"; + repo = "terraform-provider-signalfx"; + rev = "v4.18.6"; + version = "4.18.6"; + sha256 = "1xjajkvkcksz0dnawjb3hv14ysp140g0vdj5warshafz8hjbys17"; + }; + skytap = + { + owner = "terraform-providers"; + repo = "terraform-provider-skytap"; + rev = "v0.14.0"; + version = "0.14.0"; + sha256 = "01cscykfw5qilf5rlvh7y2l3bqbv8f180ssqw7zqzyr9p4m6511l"; + }; + 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.14.3"; + version = "1.14.3"; + sha256 = "06brm0bvr13f31km55y8bp4z1xj3imfi11k7l5nirjp73cbvcpmg"; + }; + stackpath = + { + owner = "terraform-providers"; + repo = "terraform-provider-stackpath"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "0gsr903v6fngaxm2r5h53g9yc3jpx2zccqq07rhzm9jbsfb6rlzn"; + }; + 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 = "hashicorp"; + repo = "terraform-provider-template"; + rev = "v2.1.2"; + version = "2.1.2"; + sha256 = "18w1mmma81m9j7yf6q500w8v9ss28w6sw2ynssl99pyw2gwmd04q"; + }; + tencentcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-tencentcloud"; + rev = "v1.30.7"; + version = "1.30.7"; + sha256 = "0d7byng63sxbgn8f5r92lkcaqvq3r0plm619h63f47h6z6z8xarc"; + }; + 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.15.1"; + version = "0.15.1"; + sha256 = "0372yjifsr4kvbc36hzhzf6ajlg6wy1r2x94p67m7rgr2fw061n2"; + }; + tls = + { + owner = "hashicorp"; + 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.17.0"; + version = "1.17.0"; + sha256 = "0dpy3bkrm20sk4zpkikas5c8ygl0zf9v6cnd34iblw1m41f44n7v"; + }; + 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.9.0"; + version = "2.9.0"; + sha256 = "0a1jkwxz45qcbnd91im0xz948k197zal78n6y45bwcbqnil32yiy"; + }; + vcd = + { + owner = "terraform-providers"; + repo = "terraform-provider-vcd"; + rev = "v2.7.0"; + version = "2.7.0"; + sha256 = "0bh8hqxpy6722q1v9cnpvn8fqwh5llzz1aavrbsib5brgjc8vqmy"; + }; + venafi = + { + owner = "terraform-providers"; + repo = "terraform-provider-venafi"; + rev = "v0.9.2"; + version = "0.9.2"; + sha256 = "06nk5c7lxs8fc04sz97lc3yk1zk1b9phkzw6fj9fnmpgaak87bj9"; + }; + vra7 = + { + owner = "terraform-providers"; + repo = "terraform-provider-vra7"; + rev = "v0.5.0"; + version = "0.5.0"; + sha256 = "123yskwgzp771nx03sg49vwi5ph3zf2ajf06s7msj0blvz6wan4v"; + }; + vsphere = + { + owner = "terraform-providers"; + repo = "terraform-provider-vsphere"; + rev = "v1.17.0"; + version = "1.17.0"; + sha256 = "16fglpfy8grlifaa1d1ymvjys7wh39m6py8h45g1xgs1jyfkz00s"; + }; + vthunder = + { + owner = "terraform-providers"; + repo = "terraform-provider-vthunder"; + rev = "v0.1.0"; + version = "0.1.0"; + sha256 = "1mw55g0kjgp300p6y4s8wc91fgfxjm0cbszfzgbc8ca4b00j8cc2"; + }; + vultr = + { + owner = "terraform-providers"; + repo = "terraform-provider-vultr"; + rev = "v1.1.4"; + version = "1.1.4"; + sha256 = "14anp7b759yyh78ickas52amads2lmwg85h8i0ikln7qhrhl42d7"; + }; + wavefront = + { + owner = "spaceapegames"; + repo = "terraform-provider-wavefront"; + rev = "v2.1.1"; + version = "2.1.1"; + sha256 = "0cbs74kd820i8f13a9jfbwh2y5zmmx3c2mp07qy7m0xx3m78jksn"; + }; + yandex = + { + owner = "terraform-providers"; + repo = "terraform-provider-yandex"; + rev = "v0.35.0"; + version = "0.35.0"; + sha256 = "10zj5s0zdgh54rlczyvkq292v9xj1ivvn2k9ml65l6j3h0axlgxv"; + }; +} 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..c3c44160c1b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix @@ -0,0 +1,140 @@ +{ lib +, buildGoPackage +, fetchFromGitHub +, callPackage +}: +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}}"; + }; + + # Google is now using the vendored go modules, which works a bit differently + # and is not 100% compatible with the pre-modules vendored folders. + # + # Instead of switching to goModules which requires a goModSha256, patch the + # goPackage derivation so it can install the top-level. + patchGoModVendor = drv: + drv.overrideAttrs (attrs: { + buildFlags = "-mod=vendor"; + + # override configurePhase to not move the source into GOPATH + configurePhase = '' + export GOPATH=$NIX_BUILD_TOP/go:$GOPATH + export GOCACHE=$TMPDIR/go-cache + export GO111MODULE=on + ''; + + # just build and install into $GOPATH/bin + buildPhase = '' + go install -mod=vendor -v -p 16 . + ''; + + # don't run the tests, they are broken in this setup + doCheck = false; + }); + + # These providers are managed with the ./update-all script + automated-providers = lib.mapAttrs (_: toDrv) list; + + # These are the providers that don't fall in line with the default model + special-providers = { + # Override the google providers + google = patchGoModVendor automated-providers.google; + google-beta = patchGoModVendor automated-providers.google-beta; + + # providers that were moved to the `hashicorp` organization, + # but haven't updated their references yet: + + # https://github.com/hashicorp/terraform-provider-archive/pull/67 + archive = automated-providers.archive.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-archive hashicorp/terraform-provider-archive + substituteInPlace main.go --replace terraform-providers/terraform-provider-archive hashicorp/terraform-provider-archive + ''; + }); + + # https://github.com/hashicorp/terraform-provider-dns/pull/101 + dns = automated-providers.dns.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-dns hashicorp/terraform-provider-dns + substituteInPlace main.go --replace terraform-providers/terraform-provider-dns hashicorp/terraform-provider-dns + ''; + }); + + # https://github.com/hashicorp/terraform-provider-external/pull/41 + external = automated-providers.external.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-external hashicorp/terraform-provider-external + substituteInPlace main.go --replace terraform-providers/terraform-provider-external hashicorp/terraform-provider-external + ''; + }); + + # https://github.com/hashicorp/terraform-provider-http/pull/40 + http = automated-providers.http.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-http hashicorp/terraform-provider-http + substituteInPlace main.go --replace terraform-providers/terraform-provider-http hashicorp/terraform-provider-http + ''; + }); + + # https://github.com/hashicorp/terraform-provider-local/pull/40 + local = automated-providers.local.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-local hashicorp/terraform-provider-local + substituteInPlace main.go --replace terraform-providers/terraform-provider-local hashicorp/terraform-provider-local + ''; + }); + + # https://github.com/hashicorp/terraform-provider-null/pull/43 + null = automated-providers.null.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-null hashicorp/terraform-provider-null + substituteInPlace main.go --replace terraform-providers/terraform-provider-null hashicorp/terraform-provider-null + ''; + }); + + # https://github.com/hashicorp/terraform-provider-random/pull/107 + random = automated-providers.random.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-random hashicorp/terraform-provider-random + substituteInPlace main.go --replace terraform-providers/terraform-provider-random hashicorp/terraform-provider-random + ''; + }); + + # https://github.com/hashicorp/terraform-provider-template/pull/79 + template = automated-providers.template.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-template hashicorp/terraform-provider-template + substituteInPlace main.go --replace terraform-providers/terraform-provider-template hashicorp/terraform-provider-template + ''; + }); + + # https://github.com/hashicorp/terraform-provider-tls/pull/71 + tls = automated-providers.tls.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-tls hashicorp/terraform-provider-tls + substituteInPlace main.go --replace terraform-providers/terraform-provider-tls hashicorp/terraform-provider-tls + ''; + }); + + elasticsearch = callPackage ./elasticsearch {}; + gandi = callPackage ./gandi {}; + ibm = callPackage ./ibm {}; + libvirt = callPackage ./libvirt {}; + lxd = callPackage ./lxd {}; + ansible = callPackage ./ansible {}; + }; +in + automated-providers // special-providers 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..bd667dbc15f6 --- /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..daffb5930903 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix @@ -0,0 +1,52 @@ +{ 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.6.1"; + + goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt"; + + src = fetchFromGitHub { + owner = "dmacvicar"; + repo = "terraform-provider-libvirt"; + rev = "v${version}"; + sha256 = "1l2n97nj6g44n7bhnbjwmv36xi6754p4iq2qnpkdh39x4384a0zz"; + }; + + nativeBuildInputs = [ pkgconfig makeWrapper ]; + + buildInputs = [ libvirt ]; + + # 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/lxd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix new file mode 100644 index 000000000000..fd2a6c36d65c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terraform-provider-lxd"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "sl1pm4t"; + repo = "terraform-provider-lxd"; + rev = "v${version}"; + sha256 = "1k54021178zybh9dqly2ly8ji9x5rka8dn9xd6rv7gkcl5w3y6fv"; + }; + + modSha256 = "1h95ng9by3i3v15s1ws1fv86a47vglivn42xbffdy94s108g0908"; + + postBuild = "mv ../go/bin/terraform-provider-lxd{,_v${version}}"; + + meta = with stdenv.lib; { + homepage = "https://github.com/sl1pm4t/terraform-provider-lxd"; + description = "Terraform provider for lxd"; + platforms = platforms.linux; + license = licenses.mpl20; + maintainers = with maintainers; [ gila ]; + }; +} 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..89ed5a94f2ab --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all @@ -0,0 +1,175 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p bash coreutils jq nix gitAndTools.hub +# vim: ft=sh sw=2 et +# shellcheck shell=bash +# +# 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_tf_providers_org() { + # returns all terraform providers in a given organization, and their the + # latest tags, in the format + # $org/$repo $rev + local org=$1 + hub api --paginate graphql -f query=" + query(\$endCursor: String) { + repositoryOwner(login: \"${org}\") { + repositories(first: 100, after: \$endCursor) { + nodes { + nameWithOwner + name + refs(first: 1, refPrefix: \"refs/tags/\", orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) { + nodes { + name + } + } + } + pageInfo { + hasNextPage + endCursor + } + } + } + }" | \ + jq -r '.data.repositoryOwner.repositories.nodes[] | select(.name | startswith("terraform-provider-")) | select((.refs.nodes | length) > 0) | .nameWithOwner + " " + .refs.nodes[0].name' + # filter the result with jq: + # - repos need to start with `teraform-provider-` + # - they need to have at least one tag + # for each of the remaining repos, assemble a string $org/$repo $rev +} + +get_latest_repo_tag() { + # of a given repo and owner, retrieve the latest tag + local owner=$1 + local repo=$2 + hub api --paginate "https://api.github.com/repos/$owner/$repo/git/refs/tags" | \ + jq -r '.[].ref' | \ + grep -v 'v\.' | \ + cut -d '/' -f 3- | \ + sort --version-sort | \ + tail -1 +} + +prefetch_github() { + # of a given owner, repo and rev, fetch the tarball and return the output of + # `nix-prefetch-url` + 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=${rev#v} + local sha256=$4 + cat <<EOF +{ + owner = "$owner"; + repo = "$repo"; + rev = "$rev"; + version = "$version"; + sha256 = "$sha256"; +}; +EOF +} + +indent() { sed 's/^/ /'; } + +add_provider() { + org="${1}" + repo="${2}" + rev="${3}" + + echo "*** $org/$repo $rev ***" + name=$(echo "$repo" | cut -d - -f 3-) + sha256=$(prefetch_github "$org" "$repo" "$rev") + + { + echo " $name =" + echo_entry "$org" "$repo" "$rev" "$sha256" | indent + } >> data.nix +} + +## Main ## + +cd "$(dirname "$0")" + +# individual repos to fetch +slugs=( + ajbosco/terraform-provider-segment + camptocamp/terraform-provider-pass + poseidon/terraform-provider-matchbox + spaceapegames/terraform-provider-wavefront + tweag/terraform-provider-nixos + tweag/terraform-provider-secret +) + +# a list of providers to ignore +blacklist=( + terraform-providers/terraform-provider-azure-classic + terraform-providers/terraform-provider-cidr + terraform-providers/terraform-provider-circonus + terraform-providers/terraform-provider-cloudinit + terraform-providers/terraform-provider-quorum + hashicorp/terraform-provider-time + terraform-providers/terraform-provider-vmc +) + +cat <<HEADER > data.nix +# Generated with ./update-all +{ +HEADER + +# assemble list of terraform providers +providers=$(get_tf_providers_org "terraform-providers") +providers=$(echo "$providers";get_tf_providers_org "hashicorp") + +# add terraform-providers from slugs +for slug in "${slugs[@]}"; do + # retrieve latest tag + org=${slug%/*} + repo=${slug#*/} + rev=$(get_latest_repo_tag "$org" "$repo") + + # add to list + providers=$(echo "$providers";echo "$org/$repo $rev") +done + +# filter out all providers on the blacklist +for repo in "${blacklist[@]}"; do + providers=$(echo "$providers" | grep -v "^${repo} ") +done + +# sort results alphabetically by repo name +providers=$(echo "$providers" | sort -t "/" --key=2) + +# render list +IFS=$'\n' +for provider in $providers; do + org=$(echo "$provider" | cut -d " " -f 1 | cut -d "/" -f1) + repo=$(echo "$provider" | cut -d " " -f 1 | cut -d "/" -f2) + rev=$(echo "$provider" | cut -d " " -f 2) + add_provider "${org}" "${repo}" "${rev}" +done + +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..ee27422a1391 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix @@ -0,0 +1,147 @@ +{ stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper, coreutils +, 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; + }; + + postPatch = '' + # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22 + substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \ + --replace "/bin/stty" "${coreutils}/bin/stty" + ''; + + 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.24"; + sha256 = "1rjihp6qcaizp2nnv4z20kpmjnqcw95pq5rnhq381a3pdzr0cd0z"; + 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..26c969c671f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }: + +buildGoPackage rec { + pname = "terragrunt"; + version = "0.23.2"; + + goPackagePath = "github.com/gruntwork-io/terragrunt"; + + src = fetchFromGitHub { + owner = "gruntwork-io"; + repo = "terragrunt"; + rev = "v${version}"; + sha256 = "1r3q7faxys0h147cr9154pcix1qgj36v41ja9hhbggm4c7vig4s1"; + }; + + goDeps = ./deps.nix; + + buildInputs = [ makeWrapper ]; + + preBuild = '' + find go/src -name vendor | xargs -I % sh -c 'echo Removing %; rm -rf %' + 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..16105dbadcb9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix @@ -0,0 +1,525 @@ +# 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 = "d96ccb2ba7586bb79a416471882d347754a78ce5"; + sha256 = "18f1l28665x1a8j8a5bh2i7wb2vrwj050d1g5qda50isgqaybixd"; + }; + } + { + goPackagePath = "github.com/BurntSushi/toml"; + fetch = { + type = "git"; + url = "https://github.com/BurntSushi/toml"; + rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005"; + sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"; + }; + } + { + goPackagePath = "github.com/agext/levenshtein"; + fetch = { + type = "git"; + url = "https://github.com/agext/levenshtein"; + rev = "0ded9c86537917af2ff89bc9c78de6bd58477894"; + sha256 = "19d7q69yhcg7gl81j038rkbjz8yjb4qwnsqrmxa4zvhgzlc7d130"; + }; + } + { + goPackagePath = "github.com/apparentlymart/go-cidr"; + fetch = { + type = "git"; + url = "https://github.com/apparentlymart/go-cidr"; + rev = "b1115bf8e14a60131a196f908223e4506b0ddc35"; + sha256 = "0r938rb18c9cr2k417cwwd4pfq74aabpjp9pzvk4qkxc5279igl3"; + }; + } + { + goPackagePath = "github.com/apparentlymart/go-textseg"; + fetch = { + type = "git"; + url = "https://github.com/apparentlymart/go-textseg"; + rev = "fb01f485ebef760e5ee06d55e1b07534dda2d295"; + sha256 = "0n9xcyj7p5y8mbqilk9zprfyqvgm2y9f1g440wqw9dnn3s4fi1k4"; + }; + } + { + goPackagePath = "github.com/aws/aws-sdk-go"; + fetch = { + type = "git"; + url = "https://github.com/aws/aws-sdk-go"; + rev = "572908275ed4e38fef7ccb7d507f2faacaa7ab36"; + sha256 = "07bn3v0c4pd38qdp0a0kgmsvh7q30f14qp7pbbls3jzmvpxh49zs"; + }; + } + { + goPackagePath = "github.com/bgentry/go-netrc"; + fetch = { + type = "git"; + url = "https://github.com/bgentry/go-netrc"; + rev = "9fd32a8b3d3d3f9d43c341bfe098430e07609480"; + sha256 = "0dn2h8avgavqdzdqnph8bkhj35bx0wssczry1zdczr22xv650g1l"; + }; + } + { + goPackagePath = "github.com/bmatcuk/doublestar"; + fetch = { + type = "git"; + url = "https://github.com/bmatcuk/doublestar"; + rev = "2437321e1473408f122a95f65df3d8841fec4fba"; + sha256 = "0z1jg4l746825qs95sffbc69av1yj0l37n8rjmmnwf7hxh5glxzp"; + }; + } + { + goPackagePath = "github.com/creack/pty"; + fetch = { + type = "git"; + url = "https://github.com/creack/pty"; + rev = "3a6a957789163cacdfe0e291617a1c8e80612c11"; + sha256 = "1v52599qq76dwq742mffakzj6mxqqccv2szn3hjicjld56nmd2d3"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "8991bc29aa16c548c550c7ff78260e27b9ab7c73"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4"; + sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv"; + }; + } + { + goPackagePath = "github.com/go-errors/errors"; + fetch = { + type = "git"; + url = "https://github.com/go-errors/errors"; + rev = "a6af135bd4e28680facf08a3d206b454abc877a4"; + sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "b5d812f8a3706043e23a9cd5babf2e5423744d30"; + sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "6f77996f0c42f7b84e5a2b252227263f93432e9b"; + sha256 = "1hyxx3434zshl2m9ja78gwlkg1rx9yl6diqa7dnjb31xz5x4gbjj"; + }; + } + { + goPackagePath = "github.com/google/uuid"; + fetch = { + type = "git"; + url = "https://github.com/google/uuid"; + rev = "0cd6bf5da1e1c83f8b45653022c74f71af0538a4"; + sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb"; + }; + } + { + goPackagePath = "github.com/googleapis/gax-go"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/gax-go"; + rev = "beaecbbdd8af86aa3acf14180d53828ce69400b2"; + sha256 = "1iwnm6ky1x53lgs44mw3hpdkjzrm5qd0kfs50m0qcq2ml5m1cwdm"; + }; + } + { + goPackagePath = "github.com/gruntwork-io/terratest"; + fetch = { + type = "git"; + url = "https://github.com/gruntwork-io/terratest"; + rev = "a02960d4ef0711ae95ae2651271b4e073f88da4e"; + sha256 = "0mywsimj8if8j2jbp8sf4igl5lcdlj81hd3lif86fsmyrma090vw"; + }; + } + { + goPackagePath = "github.com/hashicorp/errwrap"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/errwrap"; + rev = "8a6fb523712970c966eefc6b39ed2c5e74880354"; + sha256 = "0slfb6w3b61xz04r32bi0a1bygc82rjzhqkxj2si2074wynqnr1c"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-cleanhttp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-cleanhttp"; + rev = "eda1e5db218aad1db63ca4642c8906b26bcf2744"; + sha256 = "07kx3fhryqmaw3czacmm11qwx63js2q8cfq967vphk7xg9q377kk"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-getter"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-getter"; + rev = "f9ec369200fd2163b8f452e5e45696d83ae3f4b6"; + sha256 = "1h69946nsmpp06iqg85whwvjrfqlk1gf9q7y01f0r3sf0cb28f30"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-multierror"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-multierror"; + rev = "886a7fbe3eb1c874d46f623bfa70af45f425b3d1"; + sha256 = "00nyn8llqzbfm8aflr9kwsvpzi4kv8v45c141v88xskxp5xf6z49"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-safetemp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-safetemp"; + rev = "c9a55de4fe06c920a71964b53cfe3dd293a3c743"; + sha256 = "0gydks8bkq88adlzmv8qj3rvljx15j94c8lyrp88ji2jn6dvv643"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-uuid"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-uuid"; + rev = "4f571afc59f3043a65f8fe6bf46d887b10a01d43"; + sha256 = "0jvb88m0rq41bwgirsadgw7mnayl27av3gd2vqa3xvxp3fy0hp5k"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-version"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-version"; + rev = "ac23dc3fea5d1a983c43f6a0f6e2c13f0195d8bd"; + sha256 = "1bwi6y6111xq8ww8kjq0w1cmz15l1h9hb2id6596l8l0ag1vjj1z"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/golang-lru"; + rev = "7087cb70de9f7a8bc0a10c375cb0d2280a8edf9c"; + sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl2"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl2"; + rev = "318e80eefe28c3aa01b434c61bcf4c83a0cc6b25"; + sha256 = "1wlm47qk84ggn6lanafirc49kaq998r1nw2xdcv4ghdxy2ijc0rj"; + }; + } + { + goPackagePath = "github.com/hashicorp/terraform"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/terraform"; + rev = "abec0acf40d8e31ac612a244cf3886fb3bcce0bb"; + sha256 = "14js4n08rg30y0jrm0na79syglpb64cb7cxys0x3w47pcbgymrka"; + }; + } + { + goPackagePath = "github.com/jmespath/go-jmespath"; + fetch = { + type = "git"; + url = "https://github.com/jmespath/go-jmespath"; + rev = "c2b33e84"; + sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz"; + }; + } + { + goPackagePath = "github.com/jstemmer/go-junit-report"; + fetch = { + type = "git"; + url = "https://github.com/jstemmer/go-junit-report"; + rev = "cc1f095d5cc5eca2844f5c5ea7bb37f6b9bf6cac"; + sha256 = "1knip80yir1cdsjlb3rzy0a4w3kl4ljpiciaz6hjzwqlfhnv7bkw"; + }; + } + { + 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 = "e1f7b56ace729e4a73a29a6b4fac6cd5fcda7ab3"; + sha256 = "0i3km37lajahh1y2392g4hpgvq05arcgiiv93yhzxxyv0fpqj72m"; + }; + } + { + goPackagePath = "github.com/mattn/go-zglob"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-zglob"; + rev = "2ea3427bfa539cca900ca2768d8663ecc8a708c1"; + sha256 = "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz"; + }; + } + { + 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-testing-interface"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-testing-interface"; + rev = "6d0b8010fcc857872e42fc6c931227569016843c"; + sha256 = "1dl2js8di858bawg7dadlf1qjpkl2g3apziihjyf5imri3znyfpw"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-wordwrap"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-wordwrap"; + rev = "9e67c67572bc5dd02aef930e2b0ae3c02a4b5a5c"; + sha256 = "1jffbwcr3nnq6c12c5856bwzv2nxjzqk3jwgvxkwi1xhpd2by0bf"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "3536a929edddb9a5b34bd6861dc4a9647cb459fe"; + sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "792786c7400a136282c1664665ae0a8db921c6c2"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "ffdc059bfe9ce6a4e144ba849dbedead332c6053"; + sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy"; + }; + } + { + goPackagePath = "github.com/ulikunitz/xz"; + fetch = { + type = "git"; + url = "https://github.com/ulikunitz/xz"; + rev = "6f934d456d51e742b4eeab20d925a827ef22320a"; + sha256 = "1qpk02c0nfgfyg110nmbaiy5x12fpn0pm8gy7h1s8pwns133n831"; + }; + } + { + goPackagePath = "github.com/urfave/cli"; + fetch = { + type = "git"; + url = "https://github.com/urfave/cli"; + rev = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1"; + sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj"; + }; + } + { + goPackagePath = "github.com/zclconf/go-cty"; + fetch = { + type = "git"; + url = "https://github.com/zclconf/go-cty"; + rev = "6fd39ad70c3a6bbdb1b4e47444e4cce72f901200"; + sha256 = "0mb0ws70jg93vlamzhdvyvyfq6x0s0ll5gf44yanb1dhlz6i1f90"; + }; + } + { + goPackagePath = "github.com/zclconf/go-cty-yaml"; + fetch = { + type = "git"; + url = "https://github.com/zclconf/go-cty-yaml"; + rev = "bc34c981dadb5ed30af852693e3aba8fb6546f42"; + sha256 = "0dams5g61n88rk7zq7sy0yap873ksjafhf81hn2fg2dpfjhcd3y2"; + }; + } + { + goPackagePath = "go.opencensus.io"; + fetch = { + type = "git"; + url = "https://github.com/census-instrumentation/opencensus-go"; + rev = "9c377598961b706d1542bd2d84d538b5094d596e"; + sha256 = "05jr8gkr2w34i5wwki4zhl5ch0qrgi7cdgag5iy5gpxplhbrvbg9"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "5c40567a22f818bd14a1ea7245dad9f8ef0691aa"; + sha256 = "17g8fb9vy2sqq8vgz8jdvf6c6d2290gm2qs0i4yzsd86mgn4dlrg"; + }; + } + { + goPackagePath = "golang.org/x/exp"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/exp"; + rev = "f17229e696bd4e065144fd6ae1313e41515abbdc"; + sha256 = "0q1fij8izg7xcnx7wqh0zdnya11k3d9a5fqm0yb2r93jhlf3x128"; + }; + } + { + goPackagePath = "golang.org/x/lint"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/lint"; + rev = "910be7a94367618fd0fd25eaabbee4fdc0ac7092"; + sha256 = "08gskshgfwxhmm9i4vgd4q7kqd5i7yihqh33v6r07br6kqd0g995"; + }; + } + { + goPackagePath = "golang.org/x/mod"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/mod"; + rev = "ed3ec21bb8e252814c380df79a80f366440ddb2d"; + sha256 = "1fp6885dclq77mh73v7i54v2b9llpv4di193zc8vmsbbkkc483cl"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "461777fb6f67e8cb9d70cda16573678d085a74cf"; + sha256 = "0sc0llch05q6h7nqgayi3sgismsznpnlsz4gh89y4klpymdcpbh2"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33"; + sha256 = "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"; + }; + } + { + 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 = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "49b8ac185c84c5092be0953fb92b7660db9b8162"; + sha256 = "0ccsm8p9i83f0s0z5c7jwyzj7jgcg60zf20hzrmp705669wn5y67"; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/xerrors"; + rev = "9bdfabe68543c54f90421aeb9a60ef8061b5b544"; + sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c"; + }; + } + { + goPackagePath = "google.golang.org/api"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/google-api-go-client"; + rev = "e9c39defab7fc4be8ec95d4ce422dbeae4070400"; + sha256 = "01wjr07xnb9s32y2jc6d0rba3jxwccd2wydm6cql41yhyr3x84rd"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "b2f4a3cf3c67576a2ee09e1fe62656a5086ce880"; + sha256 = "0zxlvwzxwkwz4bs4h9zc9979dx76y4xf9ks4d22bclg47dv59yry"; + }; + } + { + goPackagePath = "google.golang.org/genproto"; + fetch = { + type = "git"; + url = "https://github.com/google/go-genproto"; + rev = "eb0b1bdb6ae60fcfc41b8d907b50dfb346112301"; + sha256 = "0g00wfxd4z886bglyszcvfpgzak0476axqyfaqv3va62ndbqpk90"; + }; + } + { + goPackagePath = "google.golang.org/grpc"; + fetch = { + type = "git"; + url = "https://github.com/grpc/grpc-go"; + rev = "f495f5b15ae7ccda3b38c53a1bfcde4c1a58a2bc"; + sha256 = "09phrrsafgq6hnbw8cawvx44bdpk1p584fys17x1bwn0j0451zzs"; + }; + } + { + goPackagePath = "honnef.co/go/tools"; + fetch = { + type = "git"; + url = "https://github.com/dominikh/go-tools"; + rev = "afd67930eec2a9ed3e9b19f684d17a062285f16a"; + sha256 = "1rwwahmbs4dwxncwjj56likir1kps9937vm2id3rygxzzla40zal"; + }; + } +] \ No newline at end of file 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..13f2c3d9bd9e --- /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.11.3"; + + src = fetchFromGitHub { + owner = "windmilleng"; + repo = pname; + rev = "v${version}"; + sha256 = "035czgr0rn6gcv24vnlr35n9yvy0fwq4spdzsc76gfxckcbcmzz0"; + }; + + goPackagePath = "github.com/windmilleng/tilt"; + + subPackages = [ "cmd/tilt" ]; + + buildFlagsArray = ("-ldflags=-X main.version=${version} -X main.date=2020-01-25"); + + 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..976541177ddb --- /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.15.0"; + + src = fetchurl { + url = "https://secure.nic.cz/files/datove_schranky/${version}/${pname}-${version}.tar.xz"; + sha256 = "1f311qnyiay34iqpik4x492py46my89j4nnbdf6qcidnydzas8r1"; + }; + + 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..38a08aaf4c06 --- /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/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix new file mode 100644 index 000000000000..3f0a83d015da --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, buildGoPackage}: + +buildGoPackage rec { + pname = "dnscontrol"; + version = "3.0.0"; + + goPackagePath = "github.com/StackExchange/dnscontrol"; + + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "StackExchange"; + repo = pname; + rev = "v${version}"; + sha256 = "1j8i4k7bqkqmi6dmc9fxfab49a7qigig72rlbga902lw336p6cc7"; + }; + + postInstall = '' + rm $bin/bin/{build,convertzone,generate,validate} + ''; + + meta = with stdenv.lib; { + description = "Synchronize your DNS to multiple providers from a simple DSL"; + homepage = "https://stackexchange.github.io/dnscontrol/"; + license = licenses.mit; + maintainers = with maintainers; [ mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/deps.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/deps.nix new file mode 100644 index 000000000000..55cb5daa18f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dnscontrol/deps.nix @@ -0,0 +1,1236 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "cloud.google.com/go"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/gocloud"; + rev = "335e9e09b93e"; + sha256 = "1aiglr6d2369nf3s9ig1kc0nixsivcmh7p1fyzkcf6n6ql0p2zsm"; + }; + } + { + goPackagePath = "github.com/Azure/azure-sdk-for-go"; + fetch = { + type = "git"; + url = "https://github.com/Azure/azure-sdk-for-go"; + rev = "v39.1.0"; + sha256 = "1s0j7gh3d3p157py7v6525c6zs07hdiry97dhg4c8z7ww35wxhj7"; + }; + } + { + goPackagePath = "github.com/BurntSushi/toml"; + fetch = { + type = "git"; + url = "https://github.com/BurntSushi/toml"; + rev = "v0.3.1"; + sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"; + }; + } + { + goPackagePath = "github.com/BurntSushi/xgb"; + fetch = { + type = "git"; + url = "https://github.com/BurntSushi/xgb"; + rev = "27f122750802"; + sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj"; + }; + } + { + goPackagePath = "github.com/DisposaBoy/JsonConfigReader"; + fetch = { + type = "git"; + url = "https://github.com/DisposaBoy/JsonConfigReader"; + rev = "5ea4d0ddac55"; + sha256 = "022wzrkf0rni9yb15439w81kj0kb4667zx6n2zq07ysw7lk6ahqz"; + }; + } + { + goPackagePath = "github.com/TomOnTime/utfutil"; + fetch = { + type = "git"; + url = "https://github.com/TomOnTime/utfutil"; + rev = "09c41003ee1d"; + sha256 = "01d6w8migw5px19jg0mm7qhsa1ydcz9wvl838nsclfw63x5sy70i"; + }; + } + { + goPackagePath = "github.com/alecthomas/kingpin"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/kingpin"; + rev = "v2.2.6"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "fb15b899a751"; + sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "f65c72e2690d"; + sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc"; + }; + } + { + goPackagePath = "github.com/andreyvit/diff"; + fetch = { + type = "git"; + url = "https://github.com/andreyvit/diff"; + rev = "c7f18ee00883"; + sha256 = "1s4qjkxig5yqahpzfl4xqh4kzi9mymdpkzq6kj3f4dr5dl3hlynr"; + }; + } + { + goPackagePath = "github.com/armon/go-metrics"; + fetch = { + type = "git"; + url = "https://github.com/armon/go-metrics"; + rev = "f0300d1749da"; + sha256 = "13l7c35ps0r27vxfil2w0xhhc7w5rh00awvlmn4cz0a937b9ffpv"; + }; + } + { + goPackagePath = "github.com/armon/go-radix"; + fetch = { + type = "git"; + url = "https://github.com/armon/go-radix"; + rev = "7fddfc383310"; + sha256 = "0y8chspn14n9xpsfb9gxnnf819rfpriaz64v81p7873a42kkhxb4"; + }; + } + { + goPackagePath = "github.com/aws/aws-sdk-go"; + fetch = { + type = "git"; + url = "https://github.com/aws/aws-sdk-go"; + rev = "v1.29.21"; + sha256 = "0q97abz6cjj1gf3gfd52gjx39grfhlcjax8306zw9038a8v0nadc"; + }; + } + { + goPackagePath = "github.com/bgentry/speakeasy"; + fetch = { + type = "git"; + url = "https://github.com/bgentry/speakeasy"; + rev = "v0.1.0"; + sha256 = "02dfrj0wyphd3db9zn2mixqxwiz1ivnyc5xc7gkz58l5l27nzp8s"; + }; + } + { + goPackagePath = "github.com/billputer/go-namecheap"; + fetch = { + type = "git"; + url = "https://github.com/billputer/go-namecheap"; + rev = "0c7adb0710f8"; + sha256 = "09jkymml6f0nvz7md7s4ayj75xdms77ziz9rkw4kvj7jhv36302p"; + }; + } + { + goPackagePath = "github.com/cenkalti/backoff"; + fetch = { + type = "git"; + url = "https://github.com/cenkalti/backoff"; + rev = "v2.1.1"; + sha256 = "1mf4lsl3rbb8kk42x0mrhzzy4ikqy0jf6nxpzhkr02rdgwh6rjk8"; + }; + } + { + goPackagePath = "github.com/census-instrumentation/opencensus-proto"; + fetch = { + type = "git"; + url = "https://github.com/census-instrumentation/opencensus-proto"; + rev = "v0.2.1"; + sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj"; + }; + } + { + goPackagePath = "github.com/client9/misspell"; + fetch = { + type = "git"; + url = "https://github.com/client9/misspell"; + rev = "v0.3.4"; + sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs"; + }; + } + { + goPackagePath = "github.com/cpuguy83/go-md2man"; + fetch = { + type = "git"; + url = "https://github.com/cpuguy83/go-md2man"; + rev = "v2.0.0"; + sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"; + }; + } + { + 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/digitalocean/godo"; + fetch = { + type = "git"; + url = "https://github.com/digitalocean/godo"; + rev = "v1.30.0"; + sha256 = "0z38lg1zd57b5ymxdxhz5rs5rynpzhqmbvm0marhh0v7v9bbk0rx"; + }; + } + { + goPackagePath = "github.com/dimchansky/utfbom"; + fetch = { + type = "git"; + url = "https://github.com/dimchansky/utfbom"; + rev = "v1.1.0"; + sha256 = "06s61wwd32fad1p8qn5blqjd5791avzb13fnqflkkg993adw49ww"; + }; + } + { + goPackagePath = "github.com/dnsimple/dnsimple-go"; + fetch = { + type = "git"; + url = "https://github.com/dnsimple/dnsimple-go"; + rev = "v0.31.0"; + sha256 = "0i074r3m0bqggmplswymgj6yfzbsrcqw8gn6py9x8g3kyl4si0x0"; + }; + } + { + goPackagePath = "github.com/envoyproxy/go-control-plane"; + fetch = { + type = "git"; + url = "https://github.com/envoyproxy/go-control-plane"; + rev = "5f8ba28d4473"; + sha256 = "1f1s764rd41vd9vgk3r14h1m6fz6pdvxj6fd83q58gxifbc4q5w4"; + }; + } + { + goPackagePath = "github.com/envoyproxy/protoc-gen-validate"; + fetch = { + type = "git"; + url = "https://github.com/envoyproxy/protoc-gen-validate"; + rev = "v0.1.0"; + sha256 = "0kxd3wwh3xwqk0r684hsy281xq4y71cd11d4q2hspcjbnlbwh7cy"; + }; + } + { + goPackagePath = "github.com/exoscale/egoscale"; + fetch = { + type = "git"; + url = "https://github.com/exoscale/egoscale"; + rev = "v0.23.0"; + sha256 = "0dgc08sdvy2cj7yygrlnyp6v9m829h4v0pm3vdsj9yx3bps5v7iy"; + }; + } + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "v1.7.0"; + sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv"; + }; + } + { + goPackagePath = "github.com/fatih/structs"; + fetch = { + type = "git"; + url = "https://github.com/fatih/structs"; + rev = "v1.1.0"; + sha256 = "1wrhb8wp8zpzggl61lapb627lw8yv281abvr6vqakmf569nswa9q"; + }; + } + { + goPackagePath = "github.com/go-acme/lego"; + fetch = { + type = "git"; + url = "https://github.com/go-acme/lego"; + rev = "v2.7.2"; + sha256 = "1137l22jrwk8hvdzjbmfkvd9nllp6sznzy66ngmcsc0ybp19hcry"; + }; + } + { + goPackagePath = "github.com/go-ldap/ldap"; + fetch = { + type = "git"; + url = "https://github.com/go-ldap/ldap"; + rev = "v3.0.2"; + sha256 = "1srb1nkcbs0v1hcdz6j4zhg000h763j83jlklsiwanvbp48y4lhz"; + }; + } + { + goPackagePath = "github.com/go-sql-driver/mysql"; + fetch = { + type = "git"; + url = "https://github.com/go-sql-driver/mysql"; + rev = "v1.5.0"; + sha256 = "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v"; + }; + } + { + goPackagePath = "github.com/go-test/deep"; + fetch = { + type = "git"; + url = "https://github.com/go-test/deep"; + rev = "042da051cf31"; + sha256 = "08bya0s7m15f5qm1kn2r42g1r4lpq0svpaqr0zaac4hmaxj7vnid"; + }; + } + { + goPackagePath = "github.com/gobwas/glob"; + fetch = { + type = "git"; + url = "https://github.com/gobwas/glob"; + rev = "e7a84e9525fe"; + sha256 = "1v6vjklq06wqddv46ihajahaj1slv0imgaivlxr8bsx59i90js5q"; + }; + } + { + goPackagePath = "github.com/gofrs/uuid"; + fetch = { + type = "git"; + url = "https://github.com/gofrs/uuid"; + rev = "v3.2.0"; + sha256 = "1q63mp7bznhfgyw133c0wc0hpcj1cq9bcf7w1f8r6inkcrils1fz"; + }; + } + { + goPackagePath = "github.com/golang/glog"; + fetch = { + type = "git"; + url = "https://github.com/golang/glog"; + rev = "23def4e6c14b"; + sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30"; + }; + } + { + goPackagePath = "github.com/golang/mock"; + fetch = { + type = "git"; + url = "https://github.com/golang/mock"; + rev = "v1.3.1"; + sha256 = "1wnfa8njxdym1qb664dmfnkpm4pmqy22hqjlqpwaaiqhglb5g9d1"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "v1.3.3"; + sha256 = "1cyyr52yhj3fzrily3rmsbqyj8va4ld75lmry0857m39rgpv8sy1"; + }; + } + { + goPackagePath = "github.com/golang/snappy"; + fetch = { + type = "git"; + url = "https://github.com/golang/snappy"; + rev = "v0.0.1"; + sha256 = "0gp3kkzlm3wh37kgkhbqxq3zx07iqbgis5w9mf4d64h6vjq760is"; + }; + } + { + goPackagePath = "github.com/google/btree"; + fetch = { + type = "git"; + url = "https://github.com/google/btree"; + rev = "v1.0.0"; + sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "v0.4.0"; + sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2"; + }; + } + { + goPackagePath = "github.com/google/go-github"; + fetch = { + type = "git"; + url = "https://github.com/google/go-github"; + rev = "v17.0.0"; + sha256 = "1kvw95l77a5n5rgal9n1xjh58zxb3a40ij1j722b1h4z8yg9jhg4"; + }; + } + { + goPackagePath = "github.com/google/go-querystring"; + fetch = { + type = "git"; + url = "https://github.com/google/go-querystring"; + rev = "c8c88dbee036"; + sha256 = "1yckg2052mz7ps1m68wri6kyb5n4g0vx2yf7s0xs9gdqvvscp57l"; + }; + } + { + goPackagePath = "github.com/google/martian"; + fetch = { + type = "git"; + url = "https://github.com/google/martian"; + rev = "v2.1.0"; + sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp"; + }; + } + { + goPackagePath = "github.com/google/pprof"; + fetch = { + type = "git"; + url = "https://github.com/google/pprof"; + rev = "54271f7e092f"; + sha256 = "14x4ydifz23rzaylggvwbm3dwlv1bc6s0bclmkxck9nbjbqw89vy"; + }; + } + { + goPackagePath = "github.com/googleapis/gax-go"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/gax-go"; + rev = "v2.0.5"; + sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx"; + }; + } + { + goPackagePath = "github.com/gopherjs/gopherjs"; + fetch = { + type = "git"; + url = "https://github.com/gopherjs/gopherjs"; + rev = "0766667cb4d1"; + sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw"; + }; + } + { + goPackagePath = "github.com/gopherjs/jquery"; + fetch = { + type = "git"; + url = "https://github.com/gopherjs/jquery"; + rev = "73f4c7416038"; + sha256 = "1xhl0k52v3djalnd02a0ph572f85i1szj2x4q3lglkq40j7racd2"; + }; + } + { + goPackagePath = "github.com/hashicorp/errwrap"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/errwrap"; + rev = "v1.0.0"; + sha256 = "0slfb6w3b61xz04r32bi0a1bygc82rjzhqkxj2si2074wynqnr1c"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-cleanhttp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-cleanhttp"; + rev = "v0.5.1"; + sha256 = "07kx3fhryqmaw3czacmm11qwx63js2q8cfq967vphk7xg9q377kk"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-hclog"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-hclog"; + rev = "v0.9.2"; + sha256 = "0pakba7rdkjgq50r79sbbpavymbyib77cy613wl734mpi30ywrxm"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-immutable-radix"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-immutable-radix"; + rev = "v1.0.0"; + sha256 = "1v3nmsnk1s8bzpclrhirz7iq0g5xxbw9q5gvrg9ss6w9crs72qr6"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-multierror"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-multierror"; + rev = "v1.0.0"; + sha256 = "00nyn8llqzbfm8aflr9kwsvpzi4kv8v45c141v88xskxp5xf6z49"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-plugin"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-plugin"; + rev = "v1.0.1"; + sha256 = "0aama8vdyrfzjdhxc1l4cwhmgydl989lywhq3pg3slzjg6r00rda"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-retryablehttp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-retryablehttp"; + rev = "v0.6.3"; + sha256 = "1vnhr7yry71jldmmj5gxhq49crhi9vrmqc2i41mycpnva2zd8a0i"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-rootcerts"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-rootcerts"; + rev = "v1.0.1"; + sha256 = "0ca5h7vlvrghf24dzh8l6w5px293n173qxfkjxb9kgsl6hsrsl3y"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-sockaddr"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-sockaddr"; + rev = "v1.0.2"; + sha256 = "0y106nhd3s63lj7h7k21iq0br97h0z9qjrvx028zqcsq9407k9is"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-uuid"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-uuid"; + rev = "v1.0.1"; + sha256 = "0jvb88m0rq41bwgirsadgw7mnayl27av3gd2vqa3xvxp3fy0hp5k"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-version"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-version"; + rev = "v1.1.0"; + sha256 = "1ykh3jl5zj5a4irkgp5mq936bqkznmf9lp23qk741vh4r5874vi8"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/golang-lru"; + rev = "v0.5.1"; + sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "v1.0.0"; + sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"; + }; + } + { + goPackagePath = "github.com/hashicorp/yamux"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/yamux"; + rev = "2f1d1f20f75d"; + sha256 = "1fga3p6j2g24ip9qjfwn3nqjr00m4nnjz92app7ms3sz7vgq2a7s"; + }; + } + { + goPackagePath = "github.com/hexonet/go-sdk"; + fetch = { + type = "git"; + url = "https://github.com/hexonet/go-sdk"; + rev = "v2.2.3"; + sha256 = "0mgkfrc7qlm4xf1v7kb29p7wq6rmaaha9zv8kwa27r8hjx6qnb8c"; + }; + } + { + goPackagePath = "github.com/jarcoal/httpmock"; + fetch = { + type = "git"; + url = "https://github.com/jarcoal/httpmock"; + rev = "v1.0.4"; + sha256 = "1x04i9hhvdxi9xmyf0vbi5azlh7rr4blsq7fbhps8i2gdpga612y"; + }; + } + { + goPackagePath = "github.com/jmespath/go-jmespath"; + fetch = { + type = "git"; + url = "https://github.com/jmespath/go-jmespath"; + rev = "2437e8417af5"; + sha256 = "1hwcbr7nrlfshwr4hrac8ch8gvfpf07qi72bpqmqi272c67ma89v"; + }; + } + { + goPackagePath = "github.com/jstemmer/go-junit-report"; + fetch = { + type = "git"; + url = "https://github.com/jstemmer/go-junit-report"; + rev = "af01ea7f8024"; + sha256 = "1lp3n94ris12hac02wi31f3whs88lcrzwgdg43a5j6cafg9p1d0s"; + }; + } + { + goPackagePath = "github.com/jtolds/gls"; + fetch = { + type = "git"; + url = "https://github.com/jtolds/gls"; + rev = "v4.20.0"; + sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"; + }; + } + { + goPackagePath = "github.com/kr/pretty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pretty"; + rev = "v0.1.0"; + sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"; + }; + } + { + goPackagePath = "github.com/kr/pty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pty"; + rev = "v1.1.1"; + sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; + }; + } + { + goPackagePath = "github.com/kr/text"; + fetch = { + type = "git"; + url = "https://github.com/kr/text"; + rev = "v0.1.0"; + sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; + }; + } + { + goPackagePath = "github.com/malexdev/utfutil"; + fetch = { + type = "git"; + url = "https://github.com/malexdev/utfutil"; + rev = "00c8d4a8e7a8"; + sha256 = "01d6w8migw5px19jg0mm7qhsa1ydcz9wvl838nsclfw63x5sy70i"; + }; + } + { + 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.3"; + sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n"; + }; + } + { + goPackagePath = "github.com/miekg/dns"; + fetch = { + type = "git"; + url = "https://github.com/miekg/dns"; + rev = "v1.1.27"; + sha256 = "0fpd9alvhzrkb1c31n4lrxlpv1nlhy51w1yg39xxb3mjmrb7lby1"; + }; + } + { + goPackagePath = "github.com/mitchellh/cli"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/cli"; + rev = "v1.0.0"; + sha256 = "1i9kmr7rcf10d2hji8h4247hmc0nbairv7a0q51393aw2h1bnwg2"; + }; + } + { + goPackagePath = "github.com/mitchellh/copystructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/copystructure"; + rev = "v1.0.0"; + sha256 = "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "v1.1.0"; + sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-testing-interface"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-testing-interface"; + rev = "v1.0.0"; + sha256 = "1dl2js8di858bawg7dadlf1qjpkl2g3apziihjyf5imri3znyfpw"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-wordwrap"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-wordwrap"; + rev = "v1.0.0"; + sha256 = "1jffbwcr3nnq6c12c5856bwzv2nxjzqk3jwgvxkwi1xhpd2by0bf"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "v1.1.2"; + sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"; + }; + } + { + goPackagePath = "github.com/mitchellh/reflectwalk"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/reflectwalk"; + rev = "v1.0.0"; + sha256 = "0wzkp0fdx22n8f7y9y37dgmnlrlfsv9zjdb48cbx7rsqsbnny7l0"; + }; + } + { + goPackagePath = "github.com/mjibson/esc"; + fetch = { + type = "git"; + url = "https://github.com/mjibson/esc"; + rev = "v0.2.0"; + sha256 = "0ci3bdm01prm114plcwkgzbqn825lh0zc1iqaw3jicjay5sh0bis"; + }; + } + { + goPackagePath = "github.com/namedotcom/go"; + fetch = { + type = "git"; + url = "https://github.com/namedotcom/go"; + rev = "08470befbe04"; + sha256 = "00ai7fd74sn4alqmpqsiyczirli50b7m059b6zzg1izy9g4cdd4g"; + }; + } + { + goPackagePath = "github.com/oklog/run"; + fetch = { + type = "git"; + url = "https://github.com/oklog/run"; + rev = "v1.0.0"; + sha256 = "1pbjza4claaj95fpqvvfrysvs10y7dm0pl6qr5lzh6qy1vnhmcgw"; + }; + } + { + goPackagePath = "github.com/ovh/go-ovh"; + fetch = { + type = "git"; + url = "https://github.com/ovh/go-ovh"; + rev = "ba5adb4cf014"; + sha256 = "1rwxib0pn2ni6nfn2sijvb6cd424n95gnqhs21q6mz08n9hnzspy"; + }; + } + { + goPackagePath = "github.com/pascaldekloe/goe"; + fetch = { + type = "git"; + url = "https://github.com/pascaldekloe/goe"; + rev = "v0.1.0"; + sha256 = "1dqd3mfb4z2vmv6pg6fhgvfc53vhndk24wcl9lj1rz02n6m279fq"; + }; + } + { + goPackagePath = "github.com/philhug/opensrs-go"; + fetch = { + type = "git"; + url = "https://github.com/philhug/opensrs-go"; + rev = "9dfa7433020d"; + sha256 = "1bjw3llpx5n1srylw08310ch14sz1pw5mban1yakax8606q3dqdf"; + }; + } + { + goPackagePath = "github.com/pierrec/lz4"; + fetch = { + type = "git"; + url = "https://github.com/pierrec/lz4"; + rev = "v2.0.5"; + sha256 = "0y5rh7z01zycd59nnjpkqq0ydyjmcg9j1xw15q1i600l9j9g617p"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.9.1"; + sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"; + }; + } + { + 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/posener/complete"; + fetch = { + type = "git"; + url = "https://github.com/posener/complete"; + rev = "v1.1.1"; + sha256 = "1nbdiybjizbaxbf5q0xwbq0cjqw4bl6jggvsjzrpif0w86fcjda2"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "14fe0d1b01d4"; + sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550"; + }; + } + { + goPackagePath = "github.com/renier/xmlrpc"; + fetch = { + type = "git"; + url = "https://github.com/renier/xmlrpc"; + rev = "ce4a1a486c03"; + sha256 = "0byvacdwhagva53r2frzqws3f5j7qzigmxzxahpcv300i8pm9i50"; + }; + } + { + goPackagePath = "github.com/robertkrimen/otto"; + fetch = { + type = "git"; + url = "https://github.com/robertkrimen/otto"; + rev = "c382bd3c16ff"; + sha256 = "043y6l647snsz71mdy84s2d3kn22aj6rbqd6c1vd8absvamqhlxa"; + }; + } + { + goPackagePath = "github.com/russross/blackfriday"; + fetch = { + type = "git"; + url = "https://github.com/russross/blackfriday"; + rev = "v2.0.1"; + sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"; + }; + } + { + goPackagePath = "github.com/ryanuber/columnize"; + fetch = { + type = "git"; + url = "https://github.com/ryanuber/columnize"; + rev = "v2.1.0"; + sha256 = "0m9jhagb1k44zfcdai76xdf9vpi3bqdl7p078ffyibmz0z9jfap6"; + }; + } + { + goPackagePath = "github.com/ryanuber/go-glob"; + fetch = { + type = "git"; + url = "https://github.com/ryanuber/go-glob"; + rev = "v1.0.0"; + sha256 = "0mhrjy0iba3jr6bsgy7q50zjr42ar1njn1sb2fvihlkhxgb2ahv2"; + }; + } + { + goPackagePath = "github.com/sergi/go-diff"; + fetch = { + type = "git"; + url = "https://github.com/sergi/go-diff"; + rev = "v1.1.0"; + sha256 = "0ir8ali2vx0j7pipmlfd6k8c973akyy2nmbjrf008fm800zcp7z2"; + }; + } + { + goPackagePath = "github.com/shurcooL/sanitized_anchor_name"; + fetch = { + type = "git"; + url = "https://github.com/shurcooL/sanitized_anchor_name"; + rev = "v1.0.0"; + sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"; + }; + } + { + goPackagePath = "github.com/smartystreets/assertions"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/assertions"; + rev = "b2de0cb4f26d"; + sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y"; + }; + } + { + goPackagePath = "github.com/smartystreets/goconvey"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/goconvey"; + rev = "68dc04aab96a"; + sha256 = "1kas5v95fzhr88hg4rjy0vp03y4pzvy3pwwgkfz2yhn5nlj29nk6"; + }; + } + { + goPackagePath = "github.com/softlayer/softlayer-go"; + fetch = { + type = "git"; + url = "https://github.com/softlayer/softlayer-go"; + rev = "5e1c8cccc730"; + sha256 = "0jsi0f60gx92qm1n2lcz65v425bbqf59dsr0dw4x1wmychp25mk7"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.1.0"; + sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.5.1"; + sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"; + }; + } + { + goPackagePath = "github.com/tdewolff/minify"; + fetch = { + type = "git"; + url = "https://github.com/tdewolff/minify"; + rev = "v2.3.6"; + sha256 = "0p4v4ab49lm5y438k5aks06fpiagbjw2j2x7i8jaa273mkgicrbb"; + }; + } + { + goPackagePath = "github.com/tdewolff/parse"; + fetch = { + type = "git"; + url = "https://github.com/tdewolff/parse"; + rev = "v2.3.4"; + sha256 = "00hclphbjgc5vjrqgnclp72v8c45k35vmj84d2a0f7bw8cc88zcd"; + }; + } + { + goPackagePath = "github.com/tdewolff/test"; + fetch = { + type = "git"; + url = "https://github.com/tdewolff/test"; + rev = "v1.0.6"; + sha256 = "12glhjb4cwp6yxwd17rwa6b4gxna3lm01bgc7yn9di58chc7lyh3"; + }; + } + { + goPackagePath = "github.com/tiramiseb/go-gandi"; + fetch = { + type = "git"; + url = "https://github.com/tiramiseb/go-gandi"; + rev = "e1cf2e430b3a"; + sha256 = "1m6wzif0dgssh5hzffwqg39789k9nwvj8xaq0d492f0fr14w0nng"; + }; + } + { + goPackagePath = "github.com/urfave/cli"; + fetch = { + type = "git"; + url = "https://github.com/urfave/cli"; + rev = "v2.1.1"; + sha256 = "0znf7pim7xsl8x6pcgi9vm0px48xrqfkw6ysn4yv6xc2569zpjs1"; + }; + } + { + goPackagePath = "github.com/vultr/govultr"; + fetch = { + type = "git"; + url = "https://github.com/vultr/govultr"; + rev = "v0.2.0"; + sha256 = "09103hb2rx93d6vyr54bqdai35d6l5q3klk09k53aqrijp8pycfz"; + }; + } + { + goPackagePath = "go.opencensus.io"; + fetch = { + type = "git"; + url = "https://github.com/census-instrumentation/opencensus-go"; + rev = "v0.22.0"; + sha256 = "05jr8gkr2w34i5wwki4zhl5ch0qrgi7cdgag5iy5gpxplhbrvbg9"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "2aa609cf4a9d"; + sha256 = "1yvis6fqbsd7f356aqyi18f76vnwj3bry6mxqnkvshq4cwrf92il"; + }; + } + { + goPackagePath = "golang.org/x/exp"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/exp"; + rev = "efd6b22b2522"; + sha256 = "0ysahwb7p6y09izks4ca8nk2w414gmjxzz44l5rmadlvk3k66cgp"; + }; + } + { + goPackagePath = "golang.org/x/image"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/image"; + rev = "0694c2d4d067"; + sha256 = "0v4rs4xpi7agbdzjw713mp7gzij8z89058s0yfj3276mzlns3zk4"; + }; + } + { + goPackagePath = "golang.org/x/lint"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/lint"; + rev = "959b441ac422"; + sha256 = "1mgcv5f00pkzsbwnq2y7vqvd1b4lr5a3s47cphh2qv4indfk7pck"; + }; + } + { + goPackagePath = "golang.org/x/mobile"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/mobile"; + rev = "d3739f865fa6"; + sha256 = "079ck2dyikacnph9s5mf0hrjnqlk6lc8q64dwnyw45w3xbbc50mg"; + }; + } + { + goPackagePath = "golang.org/x/mod"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/mod"; + rev = "v0.2.0"; + sha256 = "1fp6885dclq77mh73v7i54v2b9llpv4di193zc8vmsbbkkc483cl"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "0de0cce0169b"; + sha256 = "1db7s5kbzyh2zd5lpv05n7hp8wbwdvgk0wpiwrlnig94mkr0y5aq"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "bf48bf16ab8d"; + sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "cd5d95a43a6e"; + sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "cb0a6d8edb6c"; + sha256 = "0xkrf2k6nn1qh64ckrc4rmf1vhkzs0p7f1rnhv4v4pz9mvgh3v6w"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.2"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "golang.org/x/time"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/time"; + rev = "9d24e82272b4"; + sha256 = "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "20ab64c0d93f"; + sha256 = "1gfhw6daabjy771b3c0k0yga18ja50845n648mgagsa441dxvlch"; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/xerrors"; + rev = "9bdfabe68543"; + sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c"; + }; + } + { + goPackagePath = "google.golang.org/api"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/google-api-go-client"; + rev = "v0.20.0"; + sha256 = "13syr1x33k6mrn5w6l4sgdbzn368w3m60vf6kk2j10fwa45125rg"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "v1.6.5"; + sha256 = "05hbq4cs7bqw0zl17bx8rzdkszid3nyl92100scg3jjrg70dhm7w"; + }; + } + { + goPackagePath = "google.golang.org/genproto"; + fetch = { + type = "git"; + url = "https://github.com/google/go-genproto"; + rev = "24fa4b261c55"; + sha256 = "109zhaqlfd8zkbr1hk6zqbs6vcxfrk64scjwh2nswph05gr0m84d"; + }; + } + { + goPackagePath = "google.golang.org/grpc"; + fetch = { + type = "git"; + url = "https://github.com/grpc/grpc-go"; + rev = "v1.27.0"; + sha256 = "1ijrmgrxyabfn51nm3p9l81iaasq5fg237wnr6mdc4dzsfcg8kd7"; + }; + } + { + goPackagePath = "gopkg.in/asn1-ber.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/asn1-ber.v1"; + rev = "f715ec2f112d"; + sha256 = "00ixms8x3lrhywbvq5v2sagcqsxa1pcnlk17dp5lnwckv3xg4psb"; + }; + } + { + goPackagePath = "gopkg.in/check.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/check.v1"; + rev = "41f04d3bba15"; + sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy"; + }; + } + { + goPackagePath = "gopkg.in/ini.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/ini.v1"; + rev = "v1.42.0"; + sha256 = "18ywm8zyv091j1pp5mvx8szl7928chk8lw02br6jy568d7rk4xal"; + }; + } + { + goPackagePath = "gopkg.in/ns1/ns1-go.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/ns1/ns1-go.v2"; + rev = "c563826f4cbe"; + sha256 = "0swpsy0bdkwqlb7i0fgxs55sdfsy7pbnh6a09crhbw5xldvswq5k"; + }; + } + { + goPackagePath = "gopkg.in/sourcemap.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/sourcemap.v1"; + rev = "v1.0.5"; + sha256 = "08rf2dl13hbnm3fq2cm0nnsspy9fhf922ln23cz5463cv7h62as4"; + }; + } + { + goPackagePath = "gopkg.in/square/go-jose.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/square/go-jose.v2"; + rev = "v2.3.1"; + sha256 = "11r93g9xrcjqj7qvq8sbd5hy5rnbpmim0vdsp6rbav8gl7wimaa3"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "v2.2.8"; + sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw"; + }; + } + { + goPackagePath = "honnef.co/go/tools"; + fetch = { + type = "git"; + url = "https://github.com/dominikh/go-tools"; + rev = "ea95bdfd59fc"; + sha256 = "1763nw7pwpzkvzfnm63dgzcgbq9hwmq5l1nffchnhh77vgkaq4ic"; + }; + } + { + goPackagePath = "rsc.io/binaryregexp"; + fetch = { + type = "git"; + url = "https://github.com/rsc/binaryregexp"; + rev = "v0.2.0"; + sha256 = "1kar0myy85waw418zslviwx8846zj0m9cmqkxjx0fvgjdi70nc4b"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/drive/default.nix b/nixpkgs/pkgs/applications/networking/drive/default.nix new file mode 100644 index 000000000000..ad1a0c9a533c --- /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..f3f5f54f4092 --- /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..12865bd6ca7f --- /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 = "2020.03.04"; + 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 = "1jjc835n2j61d23kvygdb4n4jsrw33r9mbwxrm4fqin6x01l2w7k"; + }; + + 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..b3655888e1d3 --- /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..e72f50cd29ba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl }: + +with rustPlatform; + +buildRustPackage rec { + pname = "cfdyndns"; + version = "0.0.3"; + src = fetchFromGitHub { + owner = "colemickens"; + repo = "cfdyndns"; + rev = "v${version}"; + sha256 = "1fba0w2979dmc2wyggqx4fj52rrl1s2vpjk6mkj1811a848l1hdi"; + }; + + cargoSha256 = "04ryin24z3pfxjxy4smngy66xs7k85g6gdzsl77cij8ifb29im99"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ 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; + }; +} 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..76d6d39baf29 --- /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..642677a9addc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/errbot/default.nix @@ -0,0 +1,76 @@ +{ lib, fetchFromGitHub, python, glibcLocales }: + +let + py = python.override { + packageOverrides = self: super: { + # errbot requires markdown<3, and is not compatible with it either. + markdown = super.markdown.overridePythonAttrs (oldAttrs: rec { + version = "2.6.11"; + src = super.fetchPypi { + pname = "Markdown"; + inherit version; + sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8"; + }; + }); + + # errbot requires slackclient 1.x, see https://github.com/errbotio/errbot/pull/1367 + # latest 1.x release would be 1.3.2, but it requires an older websocket_client than the one in nixpkgs + # so let's just vendor the known-working version until they've migrated to 2.x. + slackclient = super.slackclient.overridePythonAttrs (oldAttrs: rec { + version = "1.2.1"; + pname = "slackclient"; + src = fetchFromGitHub { + owner = "slackapi"; + repo = "python-slackclient"; + rev = version; + sha256 = "073fwf6fm2sqdp5ms3vm1v3ljh0pldi69k048404rp6iy3cfwkp0"; + }; + + propagatedBuildInputs = with self; [ websocket_client requests six ]; + + checkInputs = with self; [ pytest codecov coverage mock pytestcov pytest-mock responses flake8 ]; + # test_server.py fails because it needs connection (I think); + checkPhase = '' + py.test --cov-report= --cov=slackclient tests --ignore=tests/test_server.py + ''; + }); + }; + }; + +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.linux; + # flaky on darwin, "RuntimeError: can't start new thread" + }; +} diff --git a/nixpkgs/pkgs/applications/networking/esniper/default.nix b/nixpkgs/pkgs/applications/networking/esniper/default.nix new file mode 100644 index 000000000000..0282483df8dc --- /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-21-g6379846"; + + src = fetchgit { + url = "https://git.code.sf.net/p/esniper/git"; + rev = "637984623984ef36782d52d8968df7fae7bbb0a7"; + sha256 = "1md3fzs0k88f6mgvrj1yrh96mn0qlca2p6vfqj6dnpyb8pjjwp8w"; + }; + + 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..80106085e1b6 --- /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..b8279f22de4d --- /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..f399aeaa98d1 --- /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..5b97859304cb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix @@ -0,0 +1,62 @@ +{ stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkgconfig, libxml2, json_c, ncurses +, asciidoctor, libiconv, Security, makeWrapper }: + +rustPlatform.buildRustPackage rec { + pname = "newsboat"; + version = "2.19"; + + src = fetchFromGitHub { + owner = "newsboat"; + repo = "newsboat"; + rev = "r${version}"; + sha256 = "0yyrq8a90l6pkrczm9qvdg75jhsdq0niwp79vrdpm8rsxqpdmfq7"; + }; + + cargoSha256 = "1q3jf3d80c0ik38qk8jgbhfz5jxv0cy3lzmkyh2l002azp9hvv59"; + + postPatch = '' + substituteInPlace Makefile --replace "|| true" "" + # Allow other ncurses versions on Darwin + substituteInPlace config.sh \ + --replace "ncurses5.4" "ncurses" + ''; + + nativeBuildInputs = [ + pkgconfig + asciidoctor + gettext + ] ++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper libiconv ]; + + buildInputs = [ stfl sqlite curl libxml2 json_c ncurses ] + ++ stdenv.lib.optional stdenv.isDarwin Security; + + postBuild = '' + make + ''; + + # TODO: Check if that's still needed + NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin " -Wno-error=format-security"; + + doCheck = true; + + preCheck = '' + 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..9fdee56b99b4 --- /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..18f154d3ff74 --- /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..d0825404f017 --- /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..66228efe8952 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, cppcheck, libmrss, libiconv }: + +stdenv.mkDerivation { + pname = "rsstail"; + version = "2.1"; + + src = fetchFromGitHub { + sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6"; + rev = "6f2436185372b3f945a4989406c4b6a934fe8a95"; + repo = "rsstail"; + owner = "flok99"; + }; + + buildInputs = [ libmrss ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ]; + 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.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/firehol/default.nix b/nixpkgs/pkgs/applications/networking/firehol/default.nix new file mode 100644 index 000000000000..c6e8ab5c887b --- /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..e47afba02945 --- /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..a38ac8511c23 --- /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..20ddc6c93d49 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix @@ -0,0 +1,65 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "FlexGet"; + version = "3.1.30"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "453992c6bf8a7b0f83abeddd0e8f989dc10fd59e407e3803b886072cff2576a7"; + }; + + 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 + more-itertools + progressbar + pynzb + pyparsing + PyRSS2Gen + dateutil + pyyaml + rebulk + requests + rpyc + sqlalchemy + terminaltables + zxcvbn + # plugins + transmissionrpc + ]; + + 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..8bb38230d5c1 --- /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.3"; + + src = fetchurl { + url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2"; + sha256 = "15bkg9qs07h4pzkxba1gymp8f264dk0zrzd9brx48fcwm7qbzigi"; + }; + + 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..b6c8a534545b --- /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..c5a5d1e970a6 --- /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/gmailctl/default.nix b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix new file mode 100644 index 000000000000..ea387dad4243 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix @@ -0,0 +1,27 @@ +{ stdenv +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "gmailctl"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "mbrt"; + repo = "gmailctl"; + rev = "v${version}"; + sha256 = "0g581gdkib7bj86blpm8skjvbnivmzh9ddikxai9hr5qq231j1pb"; + }; + + modSha256 = "0pv3lhzl96ygzh9y01hi9klrrk403ii92imr9yrbimaf7rsvyvjp"; + + meta = with stdenv.lib; { + description = "Declarative configuration for Gmail filters"; + homepage = "https://github.com/mbrt/gmailctl"; + license = licenses.mit; + maintainers = [ maintainers.doronbehar ]; + platforms = platforms.unix; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix new file mode 100644 index 000000000000..1d045afd4c00 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix @@ -0,0 +1,48 @@ +{ callPackage }: + +let + stableVersion = "2.2.7"; + 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; }; + extraArgs = rec { + mkOverride = attrname: version: sha256: + self: super: { + ${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: { + inherit version; + src = oldAttrs.src.override { + inherit version sha256; + }; + doCheck = oldAttrs.doCheck && (attrname != "psutil"); + }); + }; + commonOverrides = [ + (mkOverride "psutil" "5.6.6" + "1rs6z8bfy6bqzw88s4i5zllrx3i18hnkv4akvmw7bifngcgjh8dd") + ]; + }; + mkGui = args: callPackage (import ./gui.nix (addVersion args // extraArgs)) { }; + mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { }; + guiSrcHash = "1rq1cb07mvakqny848nvwgasp8f6pxdy790gd98xh55xrbi8jvxp"; + serverSrcHash = "1cf3inppj2050mgmx5sgf540iz3m3nbh53p26dx8m67x2xfyb934"; +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..2524731cd05c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix @@ -0,0 +1,47 @@ +{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }: + +{ lib, stdenv, python3, fetchFromGitHub }: + +let + # TODO: This package requires qt5Full to launch + defaultOverrides = commonOverrides ++ [ + (mkOverride "jsonschema" "2.6.0" + "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg") + ]; + + python = python3.override { + packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides; + }; +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/"; + changelog = "https://github.com/GNS3/gns3-gui/releases/tag/v${version}"; + 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..32dc42e9f51a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix @@ -0,0 +1,56 @@ +{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }: + +{ lib, stdenv, python3, fetchFromGitHub }: + +let + defaultOverrides = commonOverrides ++ [ + (mkOverride "jsonschema" "2.6.0" + "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg") + ]; + + python = python3.override { + packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides; + }; +in python.pkgs.buildPythonPackage { + pname = "gns3-server"; + inherit version; + + src = fetchFromGitHub { + owner = "GNS3"; + repo = "gns3-server"; + rev = "v${version}"; + sha256 = sha256Hash; + }; + + postPatch = '' + # yarl 1.4+ only requires Python 3.6+ + sed -iE "s/yarl==1.3.0//" requirements.txt + ''; + + propagatedBuildInputs = with python.pkgs; [ + aiohttp-cors yarl aiohttp multidict setuptools + jinja2 psutil zipstream raven jsonschema distro async_generator aiofiles + prompt_toolkit py-cpuinfo + ]; + + # 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/"; + changelog = "https://github.com/GNS3/gns3-server/releases/tag/v${version}"; + 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..5465a27bbf2d --- /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..4e5716386442 --- /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..40e9401a40d2 --- /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..59274f4105b2 --- /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 = "12.0.0.0220"; + + src = fetchurl { + url = "https://www.myroom.hpe.com/downloadfiles/${pname}-${version}.x86_64.rpm"; + sha256 = "0gajj2s6l7jj8520agrv2dyisg7hhacbwzqlsp9a0xdxr0v71jhr"; + }; + + 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..871aba0a669f --- /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..92415148ed5e --- /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..04c87b7c25b6 --- /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.2"; + + src = fetchurl { + url = "https://www.openinfosecfoundation.org/download/${pname}-${version}.tar.gz"; + sha256 = "1ryfa3bzd8mrq2k5kjfwmblxqqziz6b9n1dnh692mazf5z4wlc3z"; + }; + + 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..8fe856f9773f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix @@ -0,0 +1,46 @@ +{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, zlib, file, curl +, libmaxminddb, gperftools, python, swig, fetchpatch }: +let + preConfigure = (import ./script.nix); +in +stdenv.mkDerivation rec { + pname = "zeek"; + version = "3.1.2"; + + src = fetchurl { + url = "https://download.zeek.org/zeek-${version}.tar.gz"; + sha256 = "18aa4pfwav8m6vq7cr4bhfg243da54ak933rqbriljnhsrgp4n0q"; + }; + + nativeBuildInputs = [ cmake flex bison file ]; + buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ]; + + #see issue https://github.com/zeek/zeek/issues/804 to modify hardlinking duplicate files. + inherit preConfigure; + + enableParallelBuilding = true; + + patches = stdenv.lib.optionals stdenv.cc.isClang [ + # Fix pybind c++17 build with Clang. See: https://github.com/pybind/pybind11/issues/1604 + (fetchpatch { + url = "https://github.com/pybind/pybind11/commit/759221f5c56939f59d8f342a41f8e2d2cacbc8cf.patch"; + sha256 = "0l8z7d7chq1awd8dnfarj4c40wx36hkhcan0702p5l89x73wqk54"; + extraPrefix = "aux/broker/bindings/python/3rdparty/pybind11/"; + stripLen = 1; + }) + ]; + + 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/ids/zeek/script.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix new file mode 100644 index 000000000000..10a2d11a1489 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix @@ -0,0 +1,62 @@ +'' + sed -i "1i##! test dpd" $PWD/scripts/base/frameworks/dpd/__load__.zeek + sed -i "1i##! test x509" $PWD/scripts/base/files/x509/__load__.zeek + sed -i "1i##! test files-extract" $PWD/scripts/base/files/extract/__load__.zeek + sed -i "1i##! test files-hash" $PWD/scripts/base/files/hash/__load__.zeek + sed -i "1i##! test files-pe" $PWD/scripts/base/files/pe/__load__.zeek + sed -i "1i##! test analyzer" $PWD/scripts/base/frameworks/analyzer/__load__.zeek + sed -i "1i##! test cluster" $PWD/scripts/base/frameworks/cluster/__load__.zeek + sed -i "1i##! test config" $PWD/scripts/base/frameworks/config/__load__.zeek + sed -i "1i##! test contro" $PWD/scripts/base/frameworks/control/__load__.zeek + sed -i "1i##! test files" $PWD/scripts/base/frameworks/files/__load__.zeek + sed -i "1i##! test files-magic" $PWD/scripts/base/frameworks/files/magic/__load__.zeek + sed -i "1i##! test input" $PWD/scripts/base/frameworks/input/__load__.zeek + sed -i "1i##! test intel" $PWD/scripts/base/frameworks/intel/__load__.zeek + sed -i "1i##! test logging" $PWD/scripts/base/frameworks/logging/__load__.zeek + sed -i "1i##! test logging-postprocessors" $PWD/scripts/base/frameworks/logging/postprocessors/__load__.zeek + sed -i "1i##! test netcontrol" $PWD/scripts/base/frameworks/netcontrol/__load__.zeek + sed -i "1i##! test netcontrol-plugins" $PWD/scripts/base/frameworks/netcontrol/plugins/__load__.zeek + sed -i "1i##! test notice" $PWD/scripts/base/frameworks/notice/__load__.zeek + sed -i "1i##! test openflow" $PWD/scripts/base/frameworks/openflow/__load__.zeek + sed -i "1i##! test openflow-plugins" $PWD/scripts/base/frameworks/openflow/plugins/__load__.zeek + sed -i "1i##! test packet-filter" $PWD/scripts/base/frameworks/packet-filter/__load__.zeek + sed -i "1i##! test reporter" $PWD/scripts/base/frameworks/reporter/__load__.zeek + sed -i "1i##! test signatures" $PWD/scripts/base/frameworks/signatures/__load__.zeek + sed -i "1i##! test software" $PWD/scripts/base/frameworks/software/__load__.zeek + sed -i "1i##! test sumstats" $PWD/scripts/base/frameworks/sumstats/__load__.zeek + sed -i "1i##! test sumstats-plugins" $PWD/scripts/base/frameworks/sumstats/plugins/__load__.zeek + sed -i "1i##! test conn" $PWD/scripts/base/protocols/conn/__load__.zeek + sed -i "1i##! test dce-rpc" $PWD/scripts/base/protocols/dce-rpc/__load__.zeek + sed -i "1i##! test dhcp" $PWD/scripts/base/protocols/dhcp/__load__.zeek + sed -i "1i##! test dnp3" $PWD/scripts/base/protocols/dnp3/__load__.zeek + sed -i "1i##! test dns" $PWD/scripts/base/protocols/dns/__load__.zeek + sed -i "1i##! test ftp" $PWD/scripts/base/protocols/ftp/__load__.zeek + sed -i "1i##! test http" $PWD/scripts/base/protocols/http/__load__.zeek + sed -i "1i##! test imap" $PWD/scripts/base/protocols/imap/__load__.zeek + sed -i "1i##! test irc" $PWD/scripts/base/protocols/irc/__load__.zeek + sed -i "1i##! test krb" $PWD/scripts/base/protocols/krb/__load__.zeek + sed -i "1i##! test modbus" $PWD/scripts/base/protocols/modbus/__load__.zeek + sed -i "1i##! test mqtt" $PWD/scripts/base/protocols/mqtt/__load__.zeek + sed -i "1i##! test mysql" $PWD/scripts/base/protocols/mysql/__load__.zeek + sed -i "1i##! test ntlm" $PWD/scripts/base/protocols/ntlm/__load__.zeek + sed -i "1i##! test ntp" $PWD/scripts/base/protocols/ntp/__load__.zeek + sed -i "1i##! test pop3" $PWD/scripts/base/protocols/pop3/__load__.zeek + sed -i "1i##! test radius" $PWD/scripts/base/protocols/radius/__load__.zeek + sed -i "1i##! test rdp" $PWD/scripts/base/protocols/rdp/__load__.zeek + sed -i "1i##! test rfb" $PWD/scripts/base/protocols/rfb/__load__.zeek + sed -i "1i##! test sip" $PWD/scripts/base/protocols/sip/__load__.zeek + sed -i "1i##! test smb" $PWD/scripts/base/protocols/smb/__load__.zeek + sed -i "1i##! test smtp" $PWD/scripts/base/protocols/smtp/__load__.zeek + sed -i "1i##! test snmp" $PWD/scripts/base/protocols/snmp/__load__.zeek + sed -i "1i##! test socks" $PWD/scripts/base/protocols/socks/__load__.zeek + sed -i "1i##! test ssh" $PWD/scripts/base/protocols/ssh/__load__.zeek + sed -i "1i##! test ssl" $PWD/scripts/base/protocols/ssl/__load__.zeek + sed -i "1i##! test syslog" $PWD/scripts/base/protocols/syslog/__load__.zeek + sed -i "1i##! test xmpp" $PWD/scripts/base/protocols/xmpp/__load__.zeek + sed -i "1i##! test unified2" $PWD/scripts/policy/files/unified2/__load__.zeek + sed -i "1i##! test intel-seen" $PWD/scripts/policy/frameworks/intel/seen/__load__.zeek + sed -i "1i##! test notice" $PWD/scripts/policy/frameworks/notice/__load__.zeek + sed -i "1i##! test barnyard2" $PWD/scripts/policy/integration/barnyard2/__load__.zeek + sed -i "1i##! test collective-intel" $PWD/scripts/policy/integration/collective-intel/__load__.zeek + sed -i "1i##! test detect-traceroute" $PWD/scripts/policy/misc/detect-traceroute/__load__.zeek +'' diff --git a/nixpkgs/pkgs/applications/networking/ike/default.nix b/nixpkgs/pkgs/applications/networking/ike/default.nix new file mode 100644 index 000000000000..93858ba3027c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ike/default.nix @@ -0,0 +1,61 @@ +{ 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 ]; + + postPatch = '' + # fix build with bison3 + sed -i 's/define "parser_class_name"/define parser_class_name/' source/iked/conf.parse.yy + ''; + + 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..f5ec3d7b6bd0 --- /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..60d4ec829cc2 --- /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..ace546227b93 --- /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..0b6f142f1e92 --- /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.3"; + + src = fetchFromGitHub { + rev = version; + owner = "sm00th"; + repo = "bitlbee-discord"; + sha256 = "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n"; + }; + + 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..78016065610b --- /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..155ea5edc4d7 --- /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.3"; + + src = fetchgit { + url = "https://alexschroeder.ch/cgit/bitlbee-mastodon"; + rev = "v${version}"; + sha256 = "1k9j4403w6x93f4ls3xj8nrabz8ynjby6sigqdmhb7cqv26l987p"; + }; + + 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..14a3319c1490 --- /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..cf3f2549c810 --- /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..f383daa6fd02 --- /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..14fbd4db1a00 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix @@ -0,0 +1,123 @@ +{ stdenv +, fetchurl +, rpmextract +, patchelf +, patchelfUnstable +, libnotify +, libuuid +, cairo +, cups +, pango +, fontconfig +, udev +, dbus +, gtk3 +, atk +, at-spi2-atk +, expat +, gdk-pixbuf +, freetype +, nspr +, glib +, nss +, libX11 +, libXrandr +, libXrender +, libXtst +, libXdamage +, libxcb +, libXcursor +, libXi +, libXext +, libXfixes +, libXft +, libXcomposite +, libXScrnSaver +, alsaLib +, pulseaudio +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "bluejeans"; + version = "2.1.0"; + + src = fetchurl { + url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans.rpm"; + sha256 = "1zhh0pla5gk75p8x84va9flvnk456pbcm1n6x8l82c9682fwr7dd"; + }; + + nativeBuildInputs = [ rpmextract makeWrapper ]; + + libPath = + stdenv.lib.makeLibraryPath + [ + libnotify + libuuid + cairo + cups + pango + fontconfig + gtk3 + atk + at-spi2-atk + expat + gdk-pixbuf + dbus + udev.lib + freetype + nspr + glib + stdenv.cc.cc.lib + nss + libX11 + libXrandr + libXrender + libXtst + libXdamage + libxcb + libXcursor + libXi + libXext + libXfixes + libXft + libXcomposite + libXScrnSaver + alsaLib + pulseaudio + ]; + + localtime64_stub = ./localtime64_stub.c; + + buildCommand = '' + mkdir -p $out/bin/ + cd $out + rpmextract $src + mv usr/share share + rmdir usr + + ${patchelf}/bin/patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --replace-needed libudev.so.0 libudev.so.1 \ + opt/BlueJeans/bluejeans-v2 + ${patchelfUnstable}/bin/patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + opt/BlueJeans/resources/BluejeansHelper + + cc $localtime64_stub -shared -o "$out"/opt/BlueJeans/liblocaltime64_stub.so + + makeWrapper $out/opt/BlueJeans/bluejeans-v2 $out/bin/bluejeans \ + --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \ + --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so + + 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/bluejeans/localtime64_stub.c b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c new file mode 100644 index 000000000000..87c2fa11714c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c @@ -0,0 +1,12 @@ +#include <stdio.h> +#include <stdlib.h> + +void *localtime64() { + fprintf(stderr, "nixpkgs: call into localtime64_r\n"); + abort(); +} + +void *localtime64_r() { + fprintf(stderr, "nixpkgs: call into localtime64_r\n"); + abort(); +} 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..52d8178764c5 --- /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..553b466b12f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix @@ -0,0 +1,35 @@ +{ mkDerivation, stdenv, lib, pkgconfig, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qmake, boost, openssl, wrapQtAppsHook }: + +mkDerivation rec { + pname = "chatterino2"; + version = "unstable-2019-05-11"; + src = fetchFromGitHub { + owner = "fourtf"; + repo = pname; + rev = "8c46cbf571dc8fd77287bf3186445ff52b1d1aaf"; + sha256 = "0i2385hamhd9i7jdy906cfrd81cybw524j92l87c8pzrkxphignk"; + fetchSubmodules = true; + }; + nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ]; + buildInputs = [ qtbase qtsvg qtmultimedia boost openssl ]; + postInstall = lib.optionalString stdenv.isDarwin '' + mkdir -p "$out/Applications" + mv bin/chatterino.app "$out/Applications/" + ''; + postFixup = lib.optionalString stdenv.isDarwin '' + wrapQtApp "$out/Applications/chatterino.app/Contents/MacOS/chatterino" + ''; + meta = with 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..67c2a0db2372 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix @@ -0,0 +1,27 @@ +{ 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 ]; + + buildInputs = [ 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/deltachat-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix new file mode 100644 index 000000000000..5418b671633e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix @@ -0,0 +1,36 @@ +{ lib, fetchurl, appimageTools }: + +let + pname = "deltachat-electron"; + version = "1.2.0"; + name = "${pname}-${version}"; + + src = fetchurl { + url = + "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage"; + sha256 = "Cyb34bfQEdwOA6XYZO+1Ri/2e/PRat15aUMn7IElmUI="; + }; + + appimageContents = appimageTools.extract { inherit name src; }; + +in appimageTools.wrapType2 { + inherit name src; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D \ + ${appimageContents}/deltachat-desktop.desktop \ + $out/share/applications/${pname}.desktop + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + cp -r ${appimageContents}/usr/share/icons $out/share + ''; + + meta = with lib; { + description = "Electron client for DeltaChat"; + homepage = "https://delta.chat/"; + license = licenses.gpl3; + maintainers = with maintainers; [ ehmry ]; + platforms = [ "x86_64-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..035878b8e008 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix @@ -0,0 +1,72 @@ +{ stdenv, fetchFromGitHub +, vala, cmake, ninja, wrapGAppsHook, pkgconfig, gettext +, gobject-introspection, gnome3, glib, gdk-pixbuf, gtk3, glib-networking +, xorg, libXdmcp, libxkbcommon +, libnotify, libsoup, libgee +, librsvg, libsignal-protocol-c +, libgcrypt +, epoxy +, at-spi2-core +, sqlite +, dbus +, gpgme +, pcre +, qrencode +, icu + }: + +stdenv.mkDerivation rec { + pname = "dino"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "dino"; + repo = "dino"; + rev = "v${version}"; + sha256 = "1k5cgj5n8s40i71wqdh6m1q0njl45ichfdbbywx9rga5hljz1c54"; + }; + + 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 + libsignal-protocol-c + librsvg + ]; + + 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 = with maintainers; [ mic92 qyliss ]; + }; +} 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..8f4f16673d25 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix @@ -0,0 +1,64 @@ +{ 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"; + }; + + passthru.updateScript = ./update-discord.sh; + + 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..926ddeeb0483 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -0,0 +1,36 @@ +{ branch ? "stable", pkgs }: +# Generated by ./update-discord.sh +let + inherit (pkgs) callPackage fetchurl; +in { + stable = callPackage ./base.nix rec { + pname = "discord"; + binaryName = "Discord"; + desktopName = "Discord"; + version = "0.0.10"; + src = fetchurl { + url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; + sha256 = "0kx92i8naqr3algmyy3wyzbh8146z7gigxwf1nbpg1gl16wlplaq"; + }; + }; + ptb = callPackage ./base.nix rec { + pname = "discord-ptb"; + binaryName = "DiscordPTB"; + desktopName = "Discord PTB"; + version = "0.0.19"; + src = fetchurl { + url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; + sha256 = "0wixmm16qsmgbr0l9144vl5pc3s2p4jqhl7cnc6kmgy1y4ig56ib"; + }; + }; + canary = callPackage ./base.nix rec { + pname = "discord-canary"; + binaryName = "DiscordCanary"; + desktopName = "Discord Canary"; + version = "0.0.103"; + src = fetchurl { + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; + sha256 = "1d95q75ak4z6wkxlgcmkl7yk20gl7zf568b0xslz42hwx032fn4z"; + }; + }; +}.${branch} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh new file mode 100755 index 000000000000..34c1574c65aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# script to generate ./default.nix + +set -e +exec >"${BASH_SOURCE%/*}/default.nix" + +cat <<EOF +{ branch ? "stable", pkgs }: +# Generated by ./update-discord.sh +let + inherit (pkgs) callPackage fetchurl; +in { +EOF + +for branch in "" ptb canary; do + url=$(curl -sI "https://discordapp.com/api/download${branch:+/}${branch}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+') + version=${url##https://dl*.discordapp.net/apps/linux/} + version=${version%%/*.tar.gz} + echo " ${branch:-stable} = callPackage ./base.nix rec {" + echo " pname = \"discord${branch:+-}${branch}\";" + case $branch in + "") suffix="" ;; + ptb) suffix="PTB" ;; + canary) suffix="Canary" ;; + esac + echo " binaryName = \"Discord${suffix}\";" + echo " desktopName = \"Discord${suffix:+ }${suffix}\";" + echo " version = \"${version}\";" + echo " src = fetchurl {" + echo " url = \"${url//${version}/\$\{version\}}\";" + echo " sha256 = \"$(nix-prefetch-url "$url")\";" + echo " };" + echo " };" +done + +echo "}.\${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..05767d1a9cd6 --- /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 = "10fgw9m6gdazrca73g43sgvsghhac7xc3bg7hr0vpynzqyfigwa9"; + + nativeBuildInputs = [ + cargo + gettext + meson + ninja + pkgconfig + python3 + rustc + wrapGAppsHook + glib + ]; + + 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..0c5090574fa6 --- /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..b2be635728d7 --- /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..2962d190d369 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix @@ -0,0 +1,40 @@ +{ stdenv, buildGoModule, fetchFromGitHub, makeDesktopItem }: + +buildGoModule rec { + pname = "gomuks"; + version = "2020-03-20"; + + goPackagePath = "maunium.net/go/gomuks"; + + src = fetchFromGitHub { + owner = "tulir"; + repo = pname; + rev = "bce30e32a049b3ee76081c8d3881a3820b0e7341"; + sha256 = "0f7i88vrvl1xl4hmjplq3wwihqwijbgxy6nk5fkvc8pfmm5hsjcs"; + }; + + modSha256 = "10w0bjhnf6bbqx5jbgfv2jxxyqswzx25p64kkjmvh5qamjzpbjz2"; + + postInstall = '' + cp -r ${ + makeDesktopItem { + name = "net.maunium.gomuks.desktop"; + exec = "@out@/bin/gomuks"; + terminal = "true"; + desktopName = "Gomuks"; + genericName = "Matrix client"; + categories = "Network;Chat"; + comment = meta.description; + } + }/* $out/ + substituteAllInPlace $out/share/applications/* + ''; + + 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 emily ]; + 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..0661e6d7525e --- /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..7213332a549a --- /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..92857aa1a667 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, ocamlPackages }: + +assert stdenv.lib.versionAtLeast ocamlPackages.ocaml.version "4.07"; + +stdenv.mkDerivation { + pname = "jackline"; + version = "unstable-2020-03-22"; + + src = fetchFromGitHub { + owner = "hannesm"; + repo = "jackline"; + rev = "52f84525c74c43e8d03fb1e6ff025ccb2699e4aa"; + sha256 = "0wir573ah1w16xzdn9rfwk3569zq4ff5frp0ywq70va4gdlb679c"; + }; + + buildInputs = with ocamlPackages; [ + ocaml ocamlbuild findlib topkg ppx_sexp_conv ppx_deriving + erm_xmpp tls mirage-crypto mirage-crypto-pk x509 domain-name + ocaml_lwt otr astring ptime mtime notty sexplib hex uutf + dns-client base64 + ]; + + buildPhase = "${ocamlPackages.topkg.run} build --pinned true"; + + inherit (ocamlPackages.topkg) installPhase; + + meta = with stdenv.lib; { + homepage = "https://github.com/hannesm/jackline"; + description = "minimalistic secure XMPP client in OCaml"; + license = licenses.bsd2; + maintainers = with maintainers; [ sternenseemann ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix new file mode 100644 index 000000000000..7afe273599f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, fetchurl +, appimageTools +, makeWrapper +, electron_8 +}: + +stdenv.mkDerivation rec { + pname = "jitsi-meet-electron"; + version = "2.0.2"; + + src = fetchurl { + url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage"; + sha256 = "04y3qn2clvsfiyp9s6ib09mfxspv3kpr9248sda8s09n1cm0jpps"; + name="${pname}-${version}.AppImage"; + }; + + appimageContents = appimageTools.extractType2 { + name = "${pname}-${version}"; + inherit src; + }; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/${pname} $out/share/applications + + cp -a ${appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${appimageContents}/jitsi-meet.desktop $out/share/applications/${pname}.desktop + cp -a ${appimageContents}/usr/share/icons $out/share + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app.asar \ + --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}" + ''; + + meta = with stdenv.lib; { + description = "Jitsi Meet desktop application powered by Electron"; + homepage = "https://github.com/jitsi/jitsi-meet-electron"; + license = licenses.asl20; + maintainers = with maintainers; [ prusnak ]; + platforms = [ "x86_64-linux" ]; + }; +} 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..13013dc4c753 --- /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..0d97fcbbf511 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -0,0 +1,238 @@ +{ bcg729 +, bctoolbox +, bcunit +, belcard +, belle-sip +, belr +, bzrtp +, cairo +, cmake +, cyrus_sasl +, fetchFromGitLab +, fetchurl +, ffmpeg +, gdk-pixbuf +, glib +, gnused +, graphviz +, gtk2 +, intltool +, lib +, libexosip +, liblinphone +, libmatroska +, libnotify +, libosip +, libsoup +, libupnp +, libX11 +, libxml2 +, makeWrapper +, mbedtls +, mediastreamer +, mediastreamer-openh264 +, mkDerivation +, openldap +, ortp +, pango +, pkgconfig +, python +, qtbase +, qtgraphicaleffects +, qtquickcontrols2 +, qttranslations +, readline +, speex +, sqlite +, stdenv +, udev +, zlib + # For Minizip 2.2.7: +, fetchFromGitHub +, libbsd +}: +let + # Linphone Desktop requires Minizip 2.2.7. Nixpkgs contains a very old version + # from the time when it was part of zlib. The most recent release of Minizip + # is currently 2.9.2 but Linphone Desktop didn't work with that. So, even if + # we added most recent Minizip version to nixpkgs, probably Minizip 2.2.7 is + # only needed here and we shouldn't add this semi-old version to + # all-packages.nix. Therefore, just define it here locally. + minizip2 = stdenv.mkDerivation rec { + pname = "minizip"; + version = "2.2.7"; + + disabled = stdenv.isAarch32; + + src = fetchFromGitHub { + owner = "nmoinvaz"; + repo = pname; + rev = version; + sha256 = "1a88v1gjlflsd17mlrgxh420rpa38q0d17yh9q8j1zzqfrd1azch"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=YES" + ]; + + buildInputs = [ + zlib + libbsd # required in 2.2.7 but not in 2.9.2? + ]; + + meta = with stdenv.lib; { + description = "Compression library implementing the deflate compression method found in gzip and PKZIP"; + homepage = "https://github.com/nmoinvaz/minizip"; + license = licenses.zlib; + platforms = platforms.unix; + }; + }; +in +mkDerivation rec { + pname = "linphone-desktop"; + # Latest release is 4.1.1 old and doesn't build with the latest releases of + # some of the dependencies so let's use the latest commit. + version = "unstable-2020-03-06"; + + src = fetchFromGitLab { + domain = "gitlab.linphone.org"; + owner = "public"; + group = "BC"; + repo = pname; + rev = "971997e162558d37051f89c9c34bbc240135f704"; + sha256 = "02ji4r8bpcm2kyisn9d3054m026l33g2574i1ag1cmb2dz2p8i1c"; + }; + + # Without this patch, the build fails with: + # + # No rule to make target + # 'minizip_OUTPUT/nix/store/...linphone-desktop.../lib/libminizip.so', + # + # So, the makefile tries to use a full absolute path to the library but does + # it incorrectly. As we have installed Minizip properly, it's sufficient to + # just use "minizip" and the library is found automatically. If this patched + # target_link_libraries line was removed entirely, the build would fail at the + # very end when linking minizip. + patches = [ + ./fix_minizip_linking.patch + ]; + + # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21 + postPatch = '' + substituteInPlace src/app/AppController.cpp \ + --replace "LINPHONE_QT_GIT_VERSION" "\"${version}\"" + ''; + + # TODO: After linphone-desktop and liblinphone split into separate packages, + # there might be some build inputs here that aren't needed for + # linphone-desktop. + buildInputs = [ + bcg729 + bctoolbox + belcard + belle-sip + belr + bzrtp + cairo + cyrus_sasl + ffmpeg + gdk-pixbuf + glib + gtk2 + libX11 + libexosip + liblinphone + libmatroska + libnotify + libosip + libsoup + libupnp + libxml2 + mbedtls + mediastreamer + mediastreamer-openh264 + minizip2 + openldap + ortp + pango + qtbase + qtgraphicaleffects + qtquickcontrols2 + qttranslations + readline + speex + sqlite + udev + zlib + ]; + + nativeBuildInputs = [ + bcunit + cmake + gnused + graphviz + intltool + makeWrapper + pkgconfig + ]; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + "-DMINIZIP_INCLUDE_DIRS=${minizip2}/include" + "-DMINIZIP_LIBRARIES=minizip" + ]; + + # The default install phase fails because the paths are somehow messed up in + # the makefiles. The errors were like: + # + # CMake Error at cmake_builder/linphone_package/cmake_install.cmake:49 (file): + # file INSTALL cannot find + # "/build/linphone-desktop-.../build/linphone-sdk/desktop//nix/store/.../bin": + # No such file or directory. + # + # If someone is able to figure out how to fix that, great. For now, just + # trying to pick all the relevant files to the output. + # + # Also, the exec path in linphone.desktop file remains invalid, pointing to + # the build directory, after the whole nix build process. So, let's use sed to + # manually fix that path. + # + # In order to find mediastreamer plugins, mediastreamer package was patched to + # support an environment variable pointing to the plugin directory. Set that + # environment variable by wrapping the Linphone executable. + # + # Also, some grammar files needed to be copied too from some dependencies. I + # suppose if one define a dependency in such a way that its share directory is + # found, then this copying would be unnecessary. These missing grammar files + # were discovered when linphone crashed at startup and it was run with + # --verbose flag. Instead of actually copying these files, create symlinks. + # + # It is quite likely that there are some other files still missing and + # Linphone will randomly crash when it tries to access those files. Then, + # those just need to be copied manually below. + installPhase = '' + mkdir -p $out/bin + cp linphone $out/bin/ + wrapProgram $out/bin/linphone \ + --set MEDIASTREAMER_PLUGINS_DIR \ + ${mediastreamer-openh264}/lib/mediastreamer/plugins + mkdir -p $out/share/applications + sed -i "s@/build/.*/OUTPUT/bin@$out/bin@" linphone.desktop + cp linphone.desktop $out/share/applications/ + cp -r ../assets/icons $out/share/ + mkdir -p $out/share/belr/grammars + ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/ + mkdir -p $out/share/linphone + ln -s ${liblinphone}/share/linphone/* $out/share/linphone/ + ''; + + meta = with lib; { + homepage = "https://www.linphone.org/"; + description = "Open source SIP phone for voice/video calls and instant messaging"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ jluttine ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch new file mode 100644 index 000000000000..bb88d0030fae --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3ee77441..18ea5c27 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -517,7 +517,7 @@ else() + target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib") + execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib") + elseif(NOT WIN32) +- target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.so") ++ target_link_libraries(${TARGET_NAME} "minizip") + endif() + endif()#If (LinphoneCxx_FOUND AND Minizip_FOUND) + endif()#If (LinphoneCxx_FOUND) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix new file mode 100644 index 000000000000..97f775220229 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix @@ -0,0 +1,25 @@ +{ lib, python3Packages, fetchFromGitHub }: + +python3Packages.buildPythonApplication rec { + pname = "matrix-dl-unstable"; + version = "2019-09-22"; + + src = fetchFromGitHub { + owner = "rubo77"; + repo = "matrix-dl"; + rev = "e91610f45b7b3b0aca34923309fc83ba377f8a69"; + sha256 = "036xfdd21pcfjlilknc67z5jqpk0vz07853wwcsiac32iypc6f2q"; + }; + + propagatedBuildInputs = with python3Packages; [ + matrix-client + ]; + + meta = with lib; { + description = "Download backlogs from Matrix as raw text"; + homepage = src.meta.homepage; + license = licenses.gpl1Plus; + maintainers = with maintainers; [ aw ]; + platforms = platforms.unix; + }; +} 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..577619dcc04e --- /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..0a41c9666b68 --- /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..98b326820b9f --- /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..5c86157f5023 --- /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..3bdfcbfe7d1d --- /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..1938bae4f74c --- /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..e3595e07a788 --- /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/pantalaimon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix new file mode 100644 index 000000000000..c7d8ce4b56d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix @@ -0,0 +1,62 @@ +{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder, + attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus, + prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3, + + pytest, faker, pytest-aiohttp, aioresponses, + + enableDbusUi ? true +}: + +buildPythonApplication rec { + pname = "pantalaimon"; + version = "0.5.1"; + + disabled = pythonOlder "3.6"; + + # pypi tarball miss tests + src = fetchFromGitHub { + owner = "matrix-org"; + repo = pname; + rev = version; + sha256 = "18jihvqlfk8lx97hxcr36zdkp2sffg2l8mkg5lflylwcgwy1dx0y"; + }; + + propagatedBuildInputs = [ + aiohttp + appdirs + attrs + click + janus + keyring + Logbook + matrix-nio + peewee + prompt_toolkit + ] ++ lib.optional enableDbusUi [ + dbus-python + notify2 + pygobject3 + pydbus + ]; + + checkInputs = [ + pytest + faker + pytest-aiohttp + aioresponses + ]; + + # darwin has difficulty communicating with server, fails some integration tests + doCheck = !stdenv.isDarwin; + + checkPhase = '' + pytest + ''; + + meta = with lib; { + description = "An end-to-end encryption aware Matrix reverse proxy daemon."; + homepage = "https://github.com/matrix-org/pantalaimon"; + license = licenses.asl20; + maintainers = with maintainers; [ valodim ]; + }; +} 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..7c2150a584fe --- /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.2.2"; + + src = fetchFromGitHub { + owner = "gkdr"; + repo = "carbons"; + rev = "v${version}"; + sha256 = "1aq9bwgpmbwrigq6ywf0pjkngqcm0qxncygaj1fi57npjhcjs6ln"; + }; + + 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; [ ]; + }; +} 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..eccb8de31e59 --- /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..bdc16d101f55 --- /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..1fd248e0c89d --- /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..13e165ad7a13 --- /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..067a71a93dd5 --- /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..bf9979c19f25 --- /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..cae84c054e89 --- /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..463b6326b5a2 --- /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..0322005ae935 --- /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..204d99f6d7ab --- /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..0a6aa1a133d6 --- /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..999235314fe6 --- /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..6739befbfea4 --- /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..7d7abbd1eed6 --- /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..76b242659e7a --- /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..3277e12ec086 --- /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..253d2ddfe24a --- /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..38424ca25979 --- /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..de48ee26a6ed --- /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..f576f2ad9c3e --- /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..369ae0693246 --- /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..f7238419b539 --- /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..86e760d497ce --- /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.8.1"; + + src = fetchFromGitHub { + owner = "profanity-im"; + repo = "profanity"; + rev = version; + sha256 = "0fg5xcdlvhsi7a40w4jcxyj7m7wl42jy1cvsa8fi2gb6g9y568k8"; + }; + + 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..010c06e0c2ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, cmake, wrapQtAppsHook +, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine +, libidn, qca2-qt5, libsecret, libXScrnSaver, hunspell +, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c +}: + +stdenv.mkDerivation rec { + pname = "psi-plus"; + version = "1.4.984"; + + src = fetchFromGitHub { + owner = "psi-plus"; + repo = "psi-plus-snapshots"; + rev = version; + sha256 = "1nii2nfi37i6mn79xmygscmm8ax75ky244wxkzlga0ya8i8wfjh7"; + }; + + resources = fetchFromGitHub { + owner = "psi-plus"; + repo = "resources"; + rev = "2f1c12564f7506bf902a26040fdb47ead4df6b73"; + sha256 = "1dgm9k052fq7f2bpx13kchg7sxb227dkn115lyspzvhnhprnypz2"; + }; + + postUnpack = '' + cp -a "${resources}/iconsets" "$sourceRoot" + ''; + + cmakeFlags = [ + "-DENABLE_PLUGINS=ON" + ]; + + nativeBuildInputs = [ cmake wrapQtAppsHook ]; + + buildInputs = [ + qtbase qtmultimedia qtx11extras qttools qtwebengine + libidn qca2-qt5 libsecret libXScrnSaver hunspell + libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "XMPP (Jabber) client"; + maintainers = with maintainers; [ orivej misuzu ]; + 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..d76b8dd206e4 --- /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..e3fc384f0f08 --- /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..ec6a497bde92 --- /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 +, libsecret +}: + +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 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/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix new file mode 100644 index 000000000000..1237892ef64c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook +, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify +}: + +let + version = "0.7.5"; +in stdenv.mkDerivation rec { + pname = "rambox"; + inherit version; + src = { + x86_64-linux = fetchurl { + url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-amd64.deb"; + sha256 = "108yd5djnap37yh0nbjyqkp5ci1zmydfzqcsbapin40a4f36zm31"; + }; + i686-linux = fetchurl { + url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.deb"; + sha256 = "1pvh048h6m19rmbscsy69ih0jkyhazmq2pcagmf3kk8gmbi7y6p6"; + }; + }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); + + nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ]; + buildInputs = [ libXtst libXScrnSaver gtk3 nss alsaLib ]; + runtimeDependencies = [ udev.lib libnotify ]; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p $out/bin + cp -r opt $out + ln -s $out/opt/Rambox/rambox $out/bin + + # provide resources + cp -r usr/share $out + substituteInPlace $out/share/applications/rambox.desktop \ + --replace Exec=/opt/Rambox/rambox Exec=rambox + ''; + + postFixup = '' + wrapProgram $out/opt/Rambox/rambox --prefix PATH : ${xdg_utils}/bin + ''; + + meta = with stdenv.lib; { + description = "Free and Open Source messaging and emailing app that combines common web applications into one"; + homepage = "http://rambox.pro"; + license = licenses.mit; + maintainers = with maintainers; [ gnidorah ma27 ]; + platforms = ["i686-linux" "x86_64-linux"]; + hydraPlatforms = []; + }; +} 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..16c96a86a412 --- /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.3.1"; + + 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 = "1cy4h2yzrpr3gxd16p4323w06i67d82jjlyx737c3ngzw7aahmq1"; + }; + + 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/ratox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix new file mode 100644 index 000000000000..212ba3a31a4b --- /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..01295697ad3a --- /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..55624643a018 --- /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..775b9015eb0e --- /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..390b61d8d367 --- /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.15", + "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..e1dce803b408 --- /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.2.tgz"; + path = fetchurl { + name = "minimist___minimist_1.2.2.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.2.tgz"; + sha1 = "b00a00230a1108c48c169e69a291aafda3aacd63"; + }; + } + { + 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..a30df623050d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix @@ -0,0 +1,86 @@ +{ stdenv, fetchFromGitHub +, makeWrapper, makeDesktopItem, mkYarnPackage +, electron_7, riot-web +}: +# 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.15"; + riot-web-src = fetchFromGitHub { + owner = "vector-im"; + repo = "riot-web"; + rev = "v${version}"; + sha256 = "08yk5is6n9ci1jml0b94a3swdybx01k5klbl30i1b76biyn75m77"; + }; + electron = electron_7; + +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 './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}/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.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..78fc4b45f6b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }: + +# Note for maintainers: +# Versions of `riot-web` and `riot-desktop` should be kept in sync. + +let + noPhoningHome = { + disable_guests = true; # disable automatic guest account registration at matrix.org + piwik = false; # disable analytics + }; + configOverrides = writeText "riot-config-overrides.json" (builtins.toJSON (noPhoningHome // conf)); + +in stdenv.mkDerivation rec { + pname = "riot-web"; + version = "1.5.15"; + + src = fetchurl { + url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz"; + sha256 = "09a9l1l65m2c4ldycjhnqn0mmblm3j65vc9rcjfkdxqbd6bh86h7"; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/ + cp -R . $out/ + ${jq}/bin/jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$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 ma27 ]; + 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/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix new file mode 100755 index 000000000000..16cf7f5fc779 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix @@ -0,0 +1,69 @@ +{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools, + qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats, + autoPatchelfHook, desktop-file-utils, imagemagick, makeWrapper, + twemoji-color-font, xorg, libsodium, libopus, libGL, zlib, alsaLib }: + +mkDerivation rec { + pname = "ripcord"; + version = "0.4.24"; + + src = let + appimage = fetchurl { + url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage"; + sha256 = "0rscmnwxvbdl0vfx1pz7x5gxs9qsjk905zmcad4f330j5l5m227z"; + name = "${pname}-${version}.AppImage"; + }; + in appimageTools.extract { + name = "${pname}-${version}"; + src = appimage; + }; + + nativeBuildInputs = [ autoPatchelfHook desktop-file-utils imagemagick ]; + buildInputs = [ libsodium libopus libGL alsaLib ] ++ + [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ] ++ + (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]); + + fontsConf = makeFontsConf { + fontDirectories = [ twemoji-color-font ]; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r ${src}/{qt.conf,translations,twemoji.ripdb} $out + + for size in 16 32 48 64 72 96 128 192 256 512 1024; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize "$size"x"$size" ${src}/Ripcord_Icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/ripcord.png + done + + desktop-file-install --dir $out/share/applications \ + --set-key Exec --set-value ripcord \ + --set-key Icon --set-value ripcord \ + --set-key Comment --set-value "${meta.description}" \ + ${src}/Ripcord.desktop + mv $out/share/applications/Ripcord.desktop $out/share/applications/ripcord.desktop + + install -Dm755 ${src}/Ripcord $out/Ripcord + patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord + makeQtWrapper $out/Ripcord $out/bin/ripcord \ + --run "cd $out" \ + --set FONTCONFIG_FILE "${fontsConf}" \ + --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \ + --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" + + runHook postInstall + ''; + + meta = with lib; { + description = "Desktop chat client for Slack and Discord"; + homepage = "https://cancel.fm/ripcord/"; + + # See: https://cancel.fm/ripcord/shareware-redistribution/ + license = licenses.unfreeRedistributable; + + maintainers = with maintainers; [ infinisil ]; + platforms = [ "x86_64-linux" ]; + }; +} 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..6b9593a24b7f --- /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..b16659ba44cd --- /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..a062d679f7fa --- /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.6"; + + # 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 = "1r0w9knxa2kx5my9xgmcnhq14287ixwbqxqip5ispj78d27g4zfq"; + }; + + 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..7295f6c48ad6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -0,0 +1,136 @@ +{ stdenv, lib, fetchurl, autoPatchelfHook, 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, systemd, 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 ""); +in stdenv.mkDerivation rec { + pname = "signal-desktop"; + version = "1.33.1"; # 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}/lib/Signal/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 = "0p9ak0cmk9b77dzbw4y2xmxqg211y62n7ckggwf7bcg48wzj0jy7"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + wrapGAppsHook + ]; + + buildInputs = [ + alsaLib + at-spi2-atk + at-spi2-core + 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 + libnotify + libuuid + nspr + nss + pango + systemd + xorg.libxcb + ]; + + runtimeDependencies = [ + systemd.lib + libnotify + ]; + + unpackPhase = "dpkg-deb -x $src ."; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + # We need to run autoPatchelf manually with the "no-recurse" option, see + # https://github.com/NixOS/nixpkgs/pull/78413 for the reasons. + dontAutoPatchelf = true; + + installPhase = '' + mkdir -p $out/lib + + mv usr/share $out/share + mv opt/Signal $out/lib/Signal + + # Note: The following path contains bundled libraries: + # $out/lib/Signal/resources/app.asar.unpacked/node_modules/sharp/vendor/lib/ + # We run autoPatchelf with the "no-recurse" option to avoid picking those + # up, but resources/app.asar still requires them. + + # Symlink to bin + mkdir -p $out/bin + ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ] }" + ${customLanguageWrapperArgs} + ) + + # Fix the desktop link + substituteInPlace $out/share/applications/signal-desktop.desktop \ + --replace /opt/Signal/signal-desktop $out/bin/signal-desktop + + autoPatchelf --no-recurse -- $out/lib/Signal/ + ''; + + 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/"; + changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}"; + 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..0c84e1c5c80a --- /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..fe8b251c4048 --- /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..57d1ffece71a --- /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..5eda7971748f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix @@ -0,0 +1,119 @@ +{ stdenv, fetchurl, dpkg +, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome3 +, gtk3, libappindicator-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.58.0.93"; + + 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 + libappindicator-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 = "1nqadil50z896jg0r202gw3xmm3diawn0pnh6n6nxn900f02avl3"; + } + 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..c862c253c00a --- /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.5.0"; + + goPackagePath = "github.com/erroneousboat/slack-term"; + + src = fetchFromGitHub { + owner = "erroneousboat"; + repo = "slack-term"; + rev = "v${version}"; + sha256 = "1fbq7bdhy70hlkklppimgdjamnk0v059pg73xm9ax1f4616ki1m6"; + }; + + 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/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix new file mode 100644 index 000000000000..e9a795b59cdc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -0,0 +1,163 @@ +{ stdenv +, fetchurl +, dpkg +, makeWrapper +, nodePackages +, alsaLib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, curl +, dbus +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gnome2 +, gtk3 +, libappindicator-gtk3 +, libnotify +, libpulseaudio +, libuuid +, libxcb +, nspr +, nss +, pango +, systemd +, xdg_utils +, xorg +}: + +let + + pname = "slack"; + + inherit (stdenv.hostPlatform) system; + + throwSystem = throw "Unsupported system: ${system}"; + + sha256 = { + x86_64-darwin = "05xsbiviikrwfayjr6rvvfkm70681x2an6mgcg1cxw1fsi4sr6fd"; + x86_64-linux = "0h2rfgx92yq9a6dqsv9a0r8a6m5xfrywkljjk5w9snw49b0r1p12"; + }.${system} or throwSystem; + + meta = with stdenv.lib; { + description = "Desktop client for Slack"; + homepage = "https://slack.com"; + license = licenses.unfree; + maintainers = with maintainers; [ mmahut ]; + platforms = [ "x86_64-darwin" "x86_64-linux" ]; + }; + + linux = stdenv.mkDerivation rec { + inherit pname meta; + version = "4.4.0"; + src = fetchurl { + url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb"; + inherit sha256; + }; + + rpath = stdenv.lib.makeLibraryPath [ + alsaLib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libappindicator-gtk3 + libnotify + libpulseaudio + libuuid + libxcb + nspr + nss + pango + stdenv.cc.cc + systemd + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxkbfile + ] + ":${stdenv.cc.cc.lib}/lib64"; + + 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/ + ''; + }; + + darwin = stdenv.mkDerivation rec { + inherit pname meta; + version = "4.4.1"; + + phases = [ "installPhase" ]; + + src = fetchurl { + url = "https://downloads.slack-edge.com/mac_releases/Slack-${version}-macOS.dmg"; + inherit sha256; + }; + + installPhase = '' + /usr/bin/hdiutil mount -nobrowse -mountpoint slack-mnt $src + mkdir -p $out/Applications + cp -r ./slack-mnt/Slack.app $out/Applications + /usr/bin/hdiutil unmount slack-mnt + defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES + ''; + }; +in if stdenv.isDarwin + then darwin + else linux 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..23659e8a6c9c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchgit +, pkgconfig, wrapQtAppsHook +, cmake +, qtbase, qttools, qtquickcontrols2, qtmultimedia, qtkeychain +, libpulseaudio +# Not mentioned but seems needed +, qtgraphicaleffects +, qtdeclarative +, qtmacextras +, olm, libsecret, cmark +}: + +let qtkeychain-qt5 = qtkeychain.override { + inherit qtbase qttools; + withQt5 = true; +}; +in stdenv.mkDerivation rec { + pname = "spectral"; + version = "817"; + + src = fetchgit { + url = "https://gitlab.com/spectral-im/spectral.git"; + rev = version; + sha256 = "0lg0bkz621cmqb67kz1zmn4xwbspcqalz68byll5iszqz9y4gnp1"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ pkgconfig cmake wrapQtAppsHook ]; + buildInputs = [ qtbase qtkeychain-qt5 qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative olm libsecret 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://spectral.im"; + 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..895ad30360e9 --- /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..ce59d5746190 --- /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.py2 ]; + + 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..63d922ab2994 --- /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.3.00.5153"; + + src = fetchurl { + url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb"; + sha256 = "13c7fmij0gcg6mrjjj2mhs21q7fzdssscwhihzyrmbmj64cd0a69"; + }; + + 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..b9835f45d27e --- /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 = "https://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..761d7cfcbd4b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix @@ -0,0 +1,96 @@ +{ stdenv, fetchurl, autoPatchelfHook, writeScript }: + +let + arch = if stdenv.is64bit then "amd64" else "x86"; +in stdenv.mkDerivation rec { + pname = "teamspeak-server"; + version = "3.12.1"; + + src = fetchurl { + url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2"; + sha256 = if stdenv.is64bit + then "1dxbnk12ry6arn1p38hpv5jfak55pmfmxkkl7aihn3sp1aizpgyg" + else "0nfzx7pbzd95a7v08g29l84sc0lnv9fx8vz3mrmzhs0xqn9gxdkq"; + }; + + 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 + ''; + + passthru.updateScript = writeScript "update-teampeak-server" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused + + set -eu -o pipefail + + version=$( \ + curl -s "https://www.teamspeak.de/download/teamspeak-3-amd64-server-linux/" \ + | grep softwareVersion \ + | sed -E -e 's/^.*<span itemprop="softwareVersion">([^<]+)<\/span>.*$/\1/' \ + ) + + versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version") + + nixFile=pkgs/applications/networking/instant-messengers/teamspeak/server.nix + + update-source-version teamspeak_server "$version" --system=i686-linux + + sed -i -e "s/version = \"$version\";/version = $versionOld;/" "$nixFile" + + update-source-version teamspeak_server "$version" --system=x86_64-linux + ''; + + 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/kotatogram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix new file mode 100644 index 000000000000..87c70464e9b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix @@ -0,0 +1,50 @@ +{ mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja +, qtbase, qtimageformats, libsForQt5, hunspell, xdg_utils, ffmpeg, openalSoft +, lzma, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected +, range-v3 +}: + +with lib; + +mkDerivation rec { + pname = "kotatogram-desktop"; + version = "1.2"; + + src = fetchFromGitHub { + owner = "kotatogram"; + repo = "kotatogram-desktop"; + rev = "k${version}"; + sha256 = "00pdx3cjhrihf7ihhmszcf159jrzn1bcx20vwiiizs5r1qk8l210"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ pkg-config python3 cmake ninja ]; + + buildInputs = [ + qtbase qtimageformats ffmpeg openalSoft lzma lz4 xxHash libsForQt5.libdbusmenu + zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3 + ]; + + qtWrapperArgs = [ + "--prefix PATH : ${xdg_utils}/bin" + ]; + + cmakeFlags = [ + "-DTDESKTOP_API_TEST=ON" + "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF" + "-DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF" + ]; + + meta = { + description = "Kotatogram – experimental Telegram Desktop fork"; + longDescription = '' + Unofficial desktop client for the Telegram messenger, based on Telegram Desktop. + + It contains some useful (or purely cosmetic) features, but they could be unstable. A detailed list is available here: https://kotatogram.github.io/changes + ''; + license = licenses.gpl3; + platforms = platforms.linux; + homepage = "https://kotatogram.github.io"; + maintainers = with maintainers; [ ilya-fedin ]; + }; +} 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..60fd95a14761 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix @@ -0,0 +1,106 @@ +{ mkDerivation, lib, fetchurl, fetchsvn +, pkgconfig, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook +, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash +, dee, ffmpeg_4, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3 +, tl-expected, microsoft_gsl, hunspell +# TODO: Shouldn't be required: +, pcre, xorg, utillinux, libselinux, libsepol, epoxy, at-spi2-core, libXtst +, xdg_utils +}: + +with lib; + +# Main reference: +# - This package was originally based on the Arch package but all patches are now upstreamed: +# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop +# Other references that could be useful: +# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD +# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template + +mkDerivation rec { + pname = "telegram-desktop"; + version = "2.0.1"; + + # Telegram-Desktop with submodules + src = fetchurl { + url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz"; + sha256 = "0g3jw4can9gmp48s3b8s1w8n9xi54i142y74fszxf9jyq5drzlff"; + }; + + postPatch = '' + substituteInPlace Telegram/lib_spellcheck/spellcheck/platform/linux/linux_enchant.cpp \ + --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"' + substituteInPlace Telegram/CMakeLists.txt \ + --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"' + ''; + + # We want to run wrapProgram manually (with additional parameters) + dontWrapGApps = true; + dontWrapQtApps = true; + + nativeBuildInputs = [ pkgconfig cmake ninja python3 wrapGAppsHook wrapQtAppsHook ]; + + buildInputs = [ + qtbase qtimageformats gtk3 libsForQt5.libdbusmenu enchant2 lz4 xxHash + dee ffmpeg_4 openalSoft minizip libopus alsaLib libpulseaudio range-v3 + tl-expected microsoft_gsl hunspell + # TODO: Shouldn't be required: + pcre xorg.libpthreadstubs xorg.libXdmcp utillinux libselinux libsepol epoxy at-spi2-core libXtst + ]; + + enableParallelBuilding = true; + + cmakeFlags = [ + "-Ddisable_autoupdate=ON" + # TODO: Officiall API credentials for Nixpkgs + # (see: https://github.com/NixOS/nixpkgs/issues/55271): + "-DTDESKTOP_API_TEST=ON" + "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF" + "-DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF" + "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON" + "-DTDESKTOP_USE_PACKAGED_TGVOIP=OFF" + #"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""' + "-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default + ]; + + # Note: The following packages could be packaged system-wide, but it's + # probably best to use the bundled ones from tdesktop (Arch does this too): + # rlottie: + # - CMake flag: "-DTDESKTOP_USE_PACKAGED_TGVOIP=ON" + # - Sources (problem: there are no stable releases!): + # - desktop-app (tdesktop): https://github.com/desktop-app/rlottie + # - upstream: https://github.com/Samsung/rlottie + # libtgvoip: + # - CMake flag: "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=ON" + # - Sources (problem: the stable releases might be too old!): + # - tdesktop: https://github.com/telegramdesktop/libtgvoip + # - upstream: https://github.com/grishka/libtgvoip + # Both of these packages are included in this PR (kotatogram-desktop): + # https://github.com/NixOS/nixpkgs/pull/75210 + # TODO: Package mapbox-variant + + 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/"; + changelog = "https://github.com/telegramdesktop/tdesktop/releases/tag/v{version}"; + 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..d81af8388aac --- /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..6d4ff62f22a8 --- /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..f8e1f1f2c665 --- /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..c590b6a0896d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix @@ -0,0 +1,64 @@ +{ stdenv +, fetchurl +, fetchpatch +, 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"; + }; + + patches = [ + # Fix property name (new GLib is stricter) + # https://github.com/NixOS/nixpkgs/pull/81626#issuecomment-601494939 + # https://gitlab.gnome.org/GNOME/polari/-/merge_requests/141 + (fetchpatch { + url = "https://github.com/TelepathyIM/telepathy-mission-control/commit/d8dab08fe8db137c6bbd8bbdc3d9b01d98c48910.patch"; + sha256 = "Sw+V5QcWQ5zugwTTdkwa3pqV+v5XD0OhH6xI5ymgkOU="; + }) + ]; + + 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..dcb2c720bc62 --- /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..8231f481ee0d --- /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..b6017277b0a5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix @@ -0,0 +1,54 @@ +{ 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 ]; + + LC_ALL = "en_US.UTF-8"; + + 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..b6f0b87dc848 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix @@ -0,0 +1,84 @@ +{ 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 = [ + # patch for bcg729 1.0.2+ + (fetchurl { # https://github.com/LubosD/twinkle/pull/152 + url = "https://github.com/LubosD/twinkle/compare/05082ae12051821b1d969e6672d9e4e5afe1bc07...7a6c533cda387652b5b4cb2a867be1a18585890c.patch"; + sha256 = "39fc6cef3e88cfca8db44612b2d082fb618027b0f99509138d3c0d2777a494c2"; + }) + # patch manual link to not link to old url, which now points to NSFW page + (fetchurl { # https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07 + url = "https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07.diff"; + sha256 = "1iamragr9wp2vczsnp6n261fpr1ai2nc2abp0228jlar9zafksw0"; + }) + ]; + + 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..b360793e484b --- /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..cbd32347c4e2 --- /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..e53b8c7391e8 --- /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..bece4e467a35 --- /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 = "5.0.1"; +in stdenv.mkDerivation { + pname = "vk-messenger"; + inherit version; + src = { + i686-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm"; + sha256 = "1ji23x13lzbkiqfrrwx1pj6gmms0p58cjmjc0y4g16kqhlxl60v6"; + }; + x86_64-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm"; + sha256 = "01vvmia2qrxvrvavk9hkkyvfg4pg15m01grwb28884vy4nqw400y"; + }; + }.${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..1cd2df4c7ac1 --- /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..d69f22f32acc --- /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.16.3630"; + x86_64-linux = "3.16.2923"; + }.${system} or throwSystem; + + sha256 = { + x86_64-darwin = "1lnjn45bhd36n9xgx6xx9cggwivvkr2s6r4zai2dwg0aac1bywr5"; + x86_64-linux = "0c8jmlsg2gnxsvly04xj1al80nj52rg4czfdha58sg14x14lyspz"; + }.${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..52cf8e3279a0 --- /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..ef06f26522d6 --- /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 +, qtgraphicaleffects, qtimageformats, qtlocation, qtquickcontrols +, qtquickcontrols2, qtscript, qtsvg , qttools, qtwayland, qtwebchannel +, qtwebengine +# Runtime +, coreutils, libjpeg_turbo, pciutils, procps, utillinux +, pulseaudioSupport ? true, libpulseaudio ? null +}: + +assert pulseaudioSupport -> libpulseaudio != null; + +let + inherit (stdenv.lib) concatStringsSep makeBinPath optional; + + version = "3.5.385850.0413"; + srcs = { + x86_64-linux = fetchurl { + url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; + sha256 = "049kxgkyaxknxpk0hf1a7bxn0c08dk250z3q2ba9pc1xkrn5kdnw"; + }; + }; + + # 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 qtgraphicaleffects 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 ]}'' + # --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..8245f5febc4c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -0,0 +1,40 @@ +{ lib +, fetchurl +, appimageTools +}: + +let + pname = "zulip"; + version = "5.0.0"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; + sha256 = "0qwlhkzb3lbzk3piyfx8nn827kcafrl3j1nxrn18f8px9gwasinz"; + 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..773a07dd6c24 --- /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..f921970175a2 --- /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.12.1"; + rev = "v${version}"; + + modSha256 = "0bn47lcb9plzvl2vqqj7p33ishz6bbqpsgf2i6p34g13bwwpq647"; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "ipfs-cluster"; + inherit rev; + sha256 = "1jh6ynj50jd4w79widaqrgm3h3yz5h03vq0lbsx717a8d9073blh"; + }; + + 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..578ac9b04797 --- /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..b4ae5ef827ec --- /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..b94fc1addb0b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix @@ -0,0 +1,28 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ipfs"; + version = "0.4.23"; + rev = "v${version}"; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "go-ipfs"; + inherit rev; + sha256 = "19m1bhqf1jghdv2ngdnjdk1kvjcxbkgm1ccdkmkabv4ii43h8jwm"; + }; + + postPatch = '' + rm -rf test/dependencies + ''; + + modSha256 = "12m4ind1s8zaa6kssblc28z2cafy20w2jp80kzif39hg5ar9bijm"; + + 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..6a9bcaf32d22 --- /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..1fc81be240bf --- /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..83d9a019e48b --- /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..af67c224e7d7 --- /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..6cb6f2c2ef67 --- /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..cb2fa4ae6823 --- /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..59278dddad1a --- /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..c5b2a9f1b28e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix @@ -0,0 +1,50 @@ +{ 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.3"; + + src = fetchFromGitHub { + owner = "hexchat"; + repo = "hexchat"; + rev = "v${version}"; + sha256 = "08kvp0dcn3bvmlqcfp9312075bwkqkpa8m7zybr88pfp210gfl85"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig ]; + + buildInputs = [ + gtk2 lua perl python3 pciutils dbus-glib libcanberra-gtk2 libproxy + libnotify openssl desktop-file-utils + isocodes + ]; + + #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..163dec194b15 --- /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..27b37e78a1a4 --- /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..f1e0e9158ca6 --- /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..2890deccb800 --- /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..86f7793819b0 --- /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..27adb2cefc5f --- /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 setuptools + ]; + + 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..69605af2f660 --- /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/tiny/default.nix b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix new file mode 100644 index 000000000000..abb296d64744 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix @@ -0,0 +1,35 @@ +{ stdenv +, lib +, rustPlatform +, fetchpatch +, fetchFromGitHub +, pkg-config +, dbus +, openssl +}: + +rustPlatform.buildRustPackage rec { + pname = "tiny"; + version = "0.5.1"; + + src = fetchFromGitHub { + owner = "osa1"; + repo = pname; + rev = "v${version}"; + sha256 = "1m57xsrc7lzkrm8k1wh3yx3in5bhd0qjzygxdwr8lvigpsiy5caa"; + }; + + cargoSha256 = "1s93zxk85wa7zw8745ba1sgipal75w1y18nc9vca6sig4pzvvj41"; + + RUSTC_BOOTSTRAP = 1; + + nativeBuildInputs = lib.optional stdenv.isLinux pkg-config; + buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ]; + + meta = with lib; { + description = "A console IRC client"; + homepage = "https://github.com/osa1/tiny"; + license = licenses.mit; + maintainers = with maintainers; [ filalex77 ]; + }; +} 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..08a27003f8d1 --- /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.8"; + pname = "weechat"; + + src = fetchurl { + url = "https://weechat.org/files/src/weechat-${version}.tar.bz2"; + sha256 = "0xpzl7985j47rpmly4r833jxd448xpy7chqphaxmhlql2c0gc08z"; + }; + + 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..8df6c8d6124e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix @@ -0,0 +1,45 @@ +{ stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }: + +stdenv.mkDerivation rec { + pname = "wee-slack"; + version = "2.5.0"; + + src = fetchFromGitHub { + repo = "wee-slack"; + owner = "wee-slack"; + rev = "v${version}"; + sha256 = "0sxgi5fg8qvzqmxy7sdma6v0wj93xwh21av10n8nxvdskacw5dxz"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "wee-slack-env"; + paths = with python3Packages; [ websocket_client six ]; + }}/${python3Packages.python.sitePackages}"; + }) + ./hardcode-json-file-path.patch + ]; + + postPatch = '' + substituteInPlace wee_slack.py --subst-var out + ''; + + passthru.scripts = [ "wee_slack.py" ]; + + installPhase = '' + mkdir -p $out/share + cp wee_slack.py $out/share/wee_slack.py + install -D -m 0444 weemoji.json $out/share/wee-slack/weemoji.json + ''; + + 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/hardcode-json-file-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch new file mode 100644 index 000000000000..7413a9229ce6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch @@ -0,0 +1,12 @@ +--- a/wee_slack.py ++++ b/wee_slack.py +@@ -4560,8 +4560,7 @@ + + def load_emoji(): + try: +- DIR = w.info_get('weechat_dir', '') +- with open('{}/weemoji.json'.format(DIR), 'r') as ef: ++ with open('@out@/share/wee-slack/weemoji.json', 'r') as ef: + emojis = json.loads(ef.read()) + if 'emoji' in emojis: + print_error('The weemoji.json file is in an old format. Please update it.') 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..883ed793ced6 --- /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.8"; + + src = fetchFromGitHub { + owner = "de-vri-es"; + repo = pname; + rev = version; + sha256 = "0a2gc8nhklvlivradhqy2pkymsqyy01pvzrmwg60cln8snmcqpd5"; + }; + + 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; [ emily ]; + }; +} 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..f1b075e6d082 --- /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..aca9a9a111d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix @@ -0,0 +1,79 @@ +{ buildPythonPackage +, stdenv +, python +, fetchFromGitHub +, pyopenssl +, webcolors +, future +, atomicwrites +, attrs +, Logbook +, pygments +, matrix-nio +, aiohttp +, requests +}: + +let + scriptPython = python.withPackages (ps: with ps; [ + aiohttp + requests + python_magic + ]); +in buildPythonPackage { + pname = "weechat-matrix"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "poljar"; + repo = "weechat-matrix"; + rev = "65a5db7291439b6132e35e8cc09ed901614fabf6"; + sha256 = "0m3k5vrv5ab1aw1mjd0r8d71anwqzvncvv9v5zx9xp1i188sdm8x"; + }; + + propagatedBuildInputs = [ + pyopenssl + webcolors + future + atomicwrites + attrs + Logbook + pygments + matrix-nio + aiohttp + requests + ]; + + 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.py $out/bin/matrix_upload + cp $src/contrib/matrix_decrypt.py $out/bin/matrix_decrypt + cp $src/contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper + substituteInPlace $out/bin/matrix_upload \ + --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python' + substituteInPlace $out/bin/matrix_sso_helper \ + --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python' + substituteInPlace $out/bin/matrix_decrypt \ + --replace '/usr/bin/env python3' '${scriptPython}/bin/python' + + 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.unix; + maintainers = with maintainers; [ tilpner emily ]; + }; +} 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..02bccb67bfe1 --- /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 = "https://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/lieer/default.nix b/nixpkgs/pkgs/applications/networking/lieer/default.nix new file mode 100644 index 000000000000..fc5214f0d01f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/lieer/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "lieer"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "gauteh"; + repo = "lieer"; + rev = "v${version}"; + sha256 = "19jx3sm925nrzl26km1bxbp6y5gk1mzwadd79vip2jl70b3xk9f8"; + }; + + 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://lieer.gaute.vetsj.com/"; + repositories.git = "https://github.com/gauteh/lieer.git"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ kaiha ]; + }; +} 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..f458e03913ba --- /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..62be1a4118c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/maestral/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, lib +, fetchFromGitHub +, python3 +, withGui ? false +, wrapQtAppsHook ? null +}: + +python3.pkgs.buildPythonApplication rec { + pname = "maestral${lib.optionalString withGui "-gui"}"; + version = "0.6.3"; + + disabled = python3.pkgs.pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "SamSchott"; + repo = "maestral-dropbox"; + rev = "v${version}"; + sha256 = "0h1vbx00mps2msdhsab1yz64c8sprwrg38nkqyj86mkb6jkirq92"; + }; + + propagatedBuildInputs = with python3.pkgs; [ + blinker + bugsnag + click + dropbox + keyring + keyrings-alt + lockfile + pathspec + Pyro5 + 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..f53f2244e9f1 --- /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 +}: + +let + rev = "ea0df7bee433fedae5716906ea56141f92b9ce53"; +in buildGoModule rec { + pname = "aerc"; + version = "unstable-2020-02-01"; + + src = fetchurl { + url = "https://git.sr.ht/~sircmpwn/aerc/archive/${rev}.tar.gz"; + sha256 = "1bx2fypw053v3bzalfgyi6a0s5fvv040z8jy4i63s7p53m8gmzs9"; + }; + + modSha256 = "127xrah6xxrvc224g5dxn432sagrssx8v7phzapcsdajsnmagq6x"; + + nativeBuildInputs = [ + scdoc + python3.pkgs.wrapPython + ]; + + patches = [ + ./runtime-sharedir.patch + ]; + + pythonPath = [ + python3.pkgs.colorama + ]; + + buildInputs = [ python3 notmuch ]; + + 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 ]} + ''; + + 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..7d7f660df7c7 --- /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..171136ce22ca --- /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..04d00a166aa8 --- /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..5f5e66597acc --- /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.5"; + + src = fetchurl { + url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz"; + sha256 = "1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns"; + }; + + 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''${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 orivej ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix new file mode 100644 index 000000000000..1e1909e7109a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix @@ -0,0 +1,121 @@ +{ config, fetchgit, stdenv, wrapGAppsHook, autoreconfHook, bison, flex +, curl, dbus, dbus-glib, enchant, gtk3, gnutls, gnupg, gpgme +, libarchive, libcanberra-gtk3, libetpan, libnotify, libsoup, libxml2, networkmanager +, openldap, perl, pkgconfig, poppler, python, shared-mime-info, webkitgtk +, 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 +, enablePluginFancy ? true +, 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-gtk3"; + version = "3.17.5"; + + src = fetchgit { + url = "git://git.claws-mail.org/claws.git"; + rev = "c1e1902323c2b5dfe82144328b7933dc857ef343"; # this commit is "for release 3.17.5" + sha256 = "0cqzlzcms6alvsdsbcc06bsdi1h349b16qngn2z1p8fz16x6s6cy"; + }; + + 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''${LD_LIBRARY_PATH:+:}${python}/lib + # generate version without .git + [ -e version ] || echo "echo ${version}" > version + ''; + + postPatch = '' + substituteInPlace src/procmime.c \ + --subst-var-by MIMEROOTDIR ${shared-mime-info}/share + ''; + + nativeBuildInputs = [ autoreconfHook bison flex pkgconfig wrapGAppsHook python.pkgs.wrapPython ]; + propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ]; + + buildInputs = + [ curl dbus dbus-glib gtk3 gnutls gsettings-desktop-schemas + libetpan perl glib-networking libSM libytnef + ] + ++ optional enableSpellcheck enchant + ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ] + ++ optional enablePluginArchive libarchive + ++ optional enablePluginNotificationSounds libcanberra-gtk3 + ++ optional enablePluginNotificationDialogs libnotify + ++ optional enablePluginFancy libsoup + ++ optional enablePluginRssyl libxml2 + ++ optional enableNetworkManager networkmanager + ++ optional enableLdap openldap + ++ optional enablePluginPdf poppler + ++ optional enablePluginFancy webkitgtk + ++ 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 (!enablePluginFancy) "--disable-fancy-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 + ''; + + NIX_CFLAGS_COMPILE = [ "-Wno-deprecated-declarations" ]; + + 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 orivej ]; + }; +} 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..b677d82dce47 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix @@ -0,0 +1,27 @@ +{ 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"; + }; + makeFlags = [ + "SSLCAFILE=/etc/ssl/certs/ca-bundle.crt" + "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..3dd03c971203 --- /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..96ce99580fcb --- /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..8341cc63092c --- /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..6bd0995623db --- /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..fc9001e59e32 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix @@ -0,0 +1,38 @@ +{ stdenv, lib, fetchFromGitHub, fetchpatch, libiconv, ruby ? null }: + +stdenv.mkDerivation rec { + pname = "mblaze"; + version = "0.5.1"; + + buildInputs = [ ruby ] ++ 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 + '' + lib.optionalString (ruby != null) '' + install -Dt $out/bin contrib/msuck contrib/mblow + ''; + + meta = with 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..c7554fc84b08 --- /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/mmh/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix new file mode 100644 index 000000000000..7d6254ed13cc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, ncurses, autoreconfHook, flex }: +let rev = "431604647f89d5aac7b199a7883e98e56e4ccf9e"; +in stdenv.mkDerivation rec { + pname = "mmh-unstable"; + version = "2019-09-08"; + + src = fetchurl { + url = "http://git.marmaro.de/?p=mmh;a=snapshot;h=${rev};sf=tgz"; + name = "mmh-${rev}.tgz"; + sha256 = "1q97p4g3f1q2m567i2dbx7mm7ixw3g91ww2rymwj42cxk9iyizhv"; + }; + + buildInputs = [ ncurses ]; + nativeBuildInputs = [ autoreconfHook flex ]; + + meta = with stdenv.lib; { + description = "Set of electronic mail handling programs"; + homepage = "http://marmaro.de/prog/mmh"; + license = licenses.bsd3; + platforms = platforms.unix; + broken = stdenv.isDarwin; + maintainers = with maintainers; [ kaction ]; + }; +} 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..3461b3b560f9 --- /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..81b2fcf62bc3 --- /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.5"; + + src = fetchurl { + url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz"; + sha256 = "0lx65a44b03rbvcrz0y9syrik67fx3hvblxyyvz5l9bb7rdipmvc"; + }; + + 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..612af14b87f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix @@ -0,0 +1,110 @@ +{ 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, zlib +, fetchpatch +}: + +stdenv.mkDerivation rec { + version = "20200417"; + pname = "neomutt"; + + src = fetchFromGitHub { + owner = "neomutt"; + repo = "neomutt"; + rev = version; + sha256 = "0s7943r2s14kavyjf7i70vca252l626539i09a9vk0i9sfi35vx5"; + }; + + patches = [ + # Remove on next release. Fixes the `change-folder` + # macro (https://github.com/neomutt/neomutt/issues/2268) + (fetchpatch { + url = "https://github.com/neomutt/neomutt/commit/9e7537caddb9c6adc720bb3322a7512cf51ab025.patch"; + sha256 = "1vmlvgnhx1ra3rnyjkpkv6lrqw8xfh2kkmqp43fqn9lnk3pkjxvv"; + }) + ]; + + 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 zlib + ]; + + 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" + "--zlib" + ]; + + # 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; + + preCheck = '' + cp -r ${fetchFromGitHub { + owner = "neomutt"; + repo = "neomutt-test-files"; + rev = "1ee274e9ae1330fb901eb7b8275b3079d7869222"; + sha256 = "0dhilz4rr7616jh8jcvh50a3rr09in43nsv72mm6f3vfklcqincp"; + }} $(pwd)/test-files + (cd test-files && ./setup.sh) + + export NEOMUTT_TEST_DIR=$(pwd)/test-files + ''; + + checkTarget = "test"; + postCheck = "unset NEOMUTT_TEST_DIR"; + + 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 ma27 ]; + 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..868037c33c1a --- /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..19b90b534efb --- /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..0b2a76cc00f8 --- /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..d9ed62bb94da --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix @@ -0,0 +1,102 @@ +{ fetchurl, stdenv +, pkgconfig, gnupg +, xapian, gmime, talloc, zlib +, doxygen, perl, texinfo +, pythonPackages +, emacs +, ruby +, which, dtach, openssl, bash, gdb, man +, withEmacs ? true +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + version = "0.29.3"; + pname = "notmuch"; + + passthru = { + pythonSourceRoot = "${pname}-${version}/bindings/python"; + inherit version; + }; + + src = fetchurl { + url = "https://notmuchmail.org/releases/${pname}-${version}.tar.xz"; + sha256 = "0dfwa38vgnxk9cvvpza66szjgp8lir6iz6yy0cry9593lywh9xym"; + }; + + nativeBuildInputs = [ + pkgconfig + doxygen # (optional) api docs + pythonPackages.sphinx # (optional) documentation -> doc/INSTALL + texinfo # (optional) documentation -> doc/INSTALL + ] ++ optional withEmacs [ emacs ]; + + buildInputs = [ + gnupg # undefined dependencies + xapian gmime talloc zlib # dependencies described in INSTALL + perl + pythonPackages.python + ruby + ]; + + postPatch = '' + patchShebangs configure + patchShebangs test/ + + substituteInPlace lib/Makefile.local \ + --replace '-install_name $(libdir)' "-install_name $out/lib" + '' + optionalString withEmacs '' + 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" + "--bashcompletiondir=${placeholder "out"}/share/bash-completion/completions" + "--infodir=${placeholder "info"}" + ] ++ optional (!withEmacs) "--without-emacs" + ++ optional (withEmacs) "--emacslispdir=${placeholder "emacs"}/share/emacs/site-lisp" + ++ optional (isNull ruby) "--without-ruby"; + + # Notmuch doesn't use autoconf and consequently doesn't tag --bindir and + # friends + setOutputFlags = false; + enableParallelBuilding = true; + makeFlags = [ "V=1" ]; + + + outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional withEmacs "emacs"; + + 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 emacs + ]; + + installTargets = [ "install" "install-man" "install-info" ]; + + postInstall = stdenv.lib.optionalString withEmacs '' + moveToOutput bin/notmuch-emacs-mua $emacs + ''; + + 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..18264c5c6af4 --- /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..8f268e67c304 --- /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..e9217c84fc69 --- /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..39950bd58c5e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix @@ -0,0 +1,615 @@ +{ + version = "68.7.0"; + sources = [ + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ar/thunderbird-68.7.0.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "549c2fde5a7da05f1d0da28e6e203fffef5cc7d39073baef204da5ce221fdb12da53da64b29dc84cf4518eaee7394db71cee6e22611d5d86938df1b9b3bf8e0b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ast/thunderbird-68.7.0.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "92fa156e6dd72d9c0a6b0b6889e7486d97922cad3d8c8a4e572b048ff5694cd4fcd7f7f91eff718417760b72a50d045e5508befb8404f9343ec73633c8c43040"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/be/thunderbird-68.7.0.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "1ddce136d33b7eb6065cc1fa02f3e167b76a546308a19edf51f1102e569b259cb2bbd98d720050d48669ae04610cde6c09400ae6a9f467d611f3a5d332dcf203"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/bg/thunderbird-68.7.0.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "31aeab60348dcb199e3fee7c167eccb8e02e98a62c0a30ad48d2963fda56a1cf25ff71eb9f16bc186db481fa90d795191c6aa29eef33742adab6e2df0c2e5282"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/br/thunderbird-68.7.0.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "f1555dbb5e30ad7d9d7468473f042424e9abd159a85325af55fdda74963c54e780f76093d15a2fc23a555b22896c6a76ad4c449846611222b63d13745cb577b7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ca/thunderbird-68.7.0.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "44e0a8cb1feda921b6a3afb6ef0f72d2ad3aaf681f908673c015ef43a660914df5a8b61a6d987c3ddb0b6abc6cd778e0ddb07c56c737a74848942e26d4ee45a2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/cak/thunderbird-68.7.0.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "e907643f6c7065117fd131d24b452734c229fad3bace6d445de15757ffbed875fdc69dcfc535cbe7b00b38df30c0b69b378b50560382e57fabff166c71d7ea33"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/cs/thunderbird-68.7.0.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "1b65fe735bb61d2dbcd2d23ede39e7770a66feb6f898ec31cb7c198fdf95796d4f42876730fdb993767026c4c315a9be9cb53229cc21a5328ff443bc463ca4c3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/cy/thunderbird-68.7.0.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "77a3beb1ce6e78fb1d5138a7f0021462efb96e7f1d13cae2213670016a4a89dbd4a46bbe0e588ad15957ec71d053643cbd01033d9cdcc4e91b9e0303726abc27"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/da/thunderbird-68.7.0.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "b9d12257b5b4fae31cb70edf36ff02d48dc56481b37fa3f3a65bacadc38d772e407d7c1382899179299c23d70e55652c1d05f8ada855621a9db5f300b9c983a7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/de/thunderbird-68.7.0.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "c84cd6e76e18207ed02209bb333e922e3dc928c0f0ecd0243f4f8024d49c3ad1f4c3268dde921ced90a77cacffcd41eac82beab65d226dedcd07fd7a2f821a00"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/dsb/thunderbird-68.7.0.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "e29bd848258aa5b04eb60391183bead511ad8bdee038994a84982d068312c97b2e490cb5abe3821825101ed313c503c5c679e42d79011aab89bd116af7807276"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/el/thunderbird-68.7.0.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "b203b8cb46f51f5dd176aabfc720eadc41ed081094c8feed87658885025ba4aef422ac19f4b4773976c42c4f8ce38aa80b39bc75f56c42ec59f5313ce4b98111"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/en-GB/thunderbird-68.7.0.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "998aaa3ea0dcc387568802f367ea1637806a1dc19929ac8875ab4823c691c84004f62c6450b3c4439b88e017774ecbd4abfa38f72661fd9ce97208fe920060e4"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/en-US/thunderbird-68.7.0.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "583e9a08aff1d3e4be47e5a9f31b7595109e25a4062a36e8640468a354e29a47f389062db5fa134af6c231af5fb1caaa31368584fa662105100419a64134f0ac"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/es-AR/thunderbird-68.7.0.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "d976f3b916430388af3a50f58253cd4ddcaa5adef935b3965c71f38e938a8e3ad28f7ea8d83d4a9e0d0c85d29a1613547a95d4c9c4917159dce06d700e3f8122"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/es-ES/thunderbird-68.7.0.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "e51afeb81b39f6f3e7c501a0d5ca839d87794ed3a7f04ce552175a7f1227fee9667dec917a0c13d509687e31d6d87516bd5580dfe0158a964b13e4c26c82fb52"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/et/thunderbird-68.7.0.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "60872a5306f154af3e2b9e58dfecf6135927464c92a3a6cac7c44fb934cc074eefeef6bbb6242e7403aaad3e1fb850d475efb07aaa80a07043f213960b92bd3b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/eu/thunderbird-68.7.0.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "5f774a38904b5881d0a5bdf0ddad71fa7f85db82daf7879de54d337e8dae17021267b1a289676a11daf1e96572f2734f74a29327f23636e8b38aed084b874bd7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/fi/thunderbird-68.7.0.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "0d977cbd85d7f1360e985844cc8ee433414abc3d10b8a33b2fbb9a03fdddcf3a91018edc12a12d96cc680d2c119e0c020549bd40cc10db9eba4188805e40dea8"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/fr/thunderbird-68.7.0.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "dc6d20875579d8e788a236885859faee3ca61d83aa051a48bfe18c484afec986353c1493e7e68181a83fea7a42ee62c29d3f71cc053873743959513dddf6e8ce"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/fy-NL/thunderbird-68.7.0.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "add2c509cb15cebc5dc77957c44e26a80ee52eda82f395308303216ebf14d13c09338f7bee14bad46ad0ffa8187008e7f4cc101c712029ff15b3ce14904c0a69"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ga-IE/thunderbird-68.7.0.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "d1771c8282253a80ed62dca8f49797796f202da66e2a607d27dee89a1a8fe556dda440bc03d441b8b63bf732cd9c0960ebf9b9cc047de9c07e901a1051dfc94b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/gd/thunderbird-68.7.0.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "ea0f6d6287ef4e771c49b4891a4d9dff8b9766e444087456448e9ebe32c17e41d5cd9c9a17747250c393e389720a6ecb3bc6df98dc5c81f26504fc9cd6ea3e03"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/gl/thunderbird-68.7.0.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "487af69af4e9844a97d72e14a9de8f8aaf8f45efee6f72ad0d5b310019d6fe73c74288b3e4c7d2a83f6e30cb5b3fbeab2d2200d406814e6e25936ccefdbb5f14"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/he/thunderbird-68.7.0.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "13f43a849b765ed9743947c9e03fe9cb7bffcf120446ec80e8622ae1ecc7994497617464e7597a1e883520598f5de2404e2901b8d30cc91fad78dfe58763da20"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/hr/thunderbird-68.7.0.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "bbcb86e67a1975920a3e0fd4298b817103fbf88eea05e822eeb89f60f4690164c90940e32082cbcc19fb9222f53c30b32c39eb041a768b1f8cdf61ae866abd13"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/hsb/thunderbird-68.7.0.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "23c9d885024b178a37de1f968def6e338fb1e44d2414f01d6b8757e3be082ab4b5950ca6bfb0cfb93093ebcf57d061cfeb2c7c8c46ac56274ff495b83a7754e7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/hu/thunderbird-68.7.0.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "8076d47c0b15fb565ecda807c789d5eba41b1209df356fe2184d4550a115b7ea986bb51fb6e9e8a4a279ed6025b7acb8f5c7ca88e5ccd72e4556fdaaf95619fc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/hy-AM/thunderbird-68.7.0.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "825f0066a329fc3e35c6a2c9038a28c1e673b93767a020a6f4297dff5b769882d6550eb2cd293b232123223fbbb0f0e0d54893c98ae9f2e35072071a26171967"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/id/thunderbird-68.7.0.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "253cc87eee92b10d9b74e7885e43d5d9b146694bed63ebbb1b5e63730b18feeef53de4581ae824ded77a5770c45fce8b46d90621212d4b0e1ab32ba5fc7df1b3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/is/thunderbird-68.7.0.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "0e0784865fa1f0b57f5287674c94993263a03b8876fa6a053cb9bd52cef89a93a07dace1d2425ad669656ebc86a083e37faa456ee52481844e8e8e7fe87f3c85"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/it/thunderbird-68.7.0.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "0eca59d5adf138f2be6b9c2cd11e51252e550b711f3f6584e6971ec3564630eebb7f1774dfed4f79c6b38f3218420825300bb447b0bddd0e16379aa787edd0f8"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ja/thunderbird-68.7.0.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "6a112e7ae24616115f6b5dadc72bd30d8dd046b8df16ebae1d609199d9467259f83b354659a1358d70d2e1ad8c52e71db9991f95aff6f2864649d539b9f0f139"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ka/thunderbird-68.7.0.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "e2c71035f910648cc83d92af69bd96f3a7668be2ac4ddfcd40c97762a1fa4e94c7d67b9ff588b27783ff943330ee07940fe0f8bf1671dfd87dd34a23b78b55cf"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/kab/thunderbird-68.7.0.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "4e1a72147657fc0706f3cd4c4511fc22949fdb5e90e5d17a080b5c814240451d030ccb4c287ec6901d1dfd8a7ebfd74d59e617ca73530fd20c0b4fad539f9154"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/kk/thunderbird-68.7.0.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "61cbaa5aa674a4b6a34869f271d93234d874fdf49231b0ebf3c882863b294a0e2e0447bc81c8980c7f27c5dda4e8c29ace091c7097870d4109aa1f4718379099"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ko/thunderbird-68.7.0.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "b2d3be58c8af63b3a94888e8365cd7253858733686ee30776c61ccbb8e05db57882158ad3a9aa5af6e319c875e870bb52dae9dd8c834ea5643e811dd948b6fd2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/lt/thunderbird-68.7.0.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "e878eefffd3ada9d49c3a692fe1a968159d8fd23ec8660cb71ce8019034e10c905f1acb79c6122384c7b18f3da3d1e6b91e31807c9d88ae799175fae2ef18005"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ms/thunderbird-68.7.0.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "1d6094b7ea3fbdd40d278a60684b2e2357c1608e3403037a761038460dd1c89149f3f010a9f93d795f3f408acb81c3b6fa2b5ce206f5550352db6391895fb0f3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/nb-NO/thunderbird-68.7.0.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "0deb1e4fb220c9b17bd68ddec7bf4569ee8425528a6586f5cdadd17f7c1948f933070700d36d7c6cc9442c172d6bb302d2681716abac131c9777d8b57d4f0a4c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/nl/thunderbird-68.7.0.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "24c5100339da2ea1df96d515c1529f02b0132385e141520d7a2c94d194ca71a634310eb26f3a88ea0cd6a8ad0a56f33ce5055bce19c68e3465037afe33a85550"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/nn-NO/thunderbird-68.7.0.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "525675451d274d17d3b5dbd1d3b75d3475b3c29f32b5d0813c71d5cff6c8002f35038ee7801c245d0b2cefa596ba4288c4287a6fed66905b6497591cca96be61"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/pl/thunderbird-68.7.0.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "3ef251ebd90637c11cb64f00f429611a2621fc5841e91fa51d7a3ba97d1244ddcf383c8b0011abb009935a59bab58a3bba52e3c4db05483b28c400dbd500ba42"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/pt-BR/thunderbird-68.7.0.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "fe80b879e307d6ca192bae16e13df892bc837e0e216562c4a4ddf7ae3c526e2967cdf8f8291e53a450f70759025303b2195f7e2acf683cca9d8620a00d8ed69f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/pt-PT/thunderbird-68.7.0.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "437e5390889424f126a1a229bf8c66881ac4a98d300f6308e242c5f2386d443c1977c52f78fe9e2b620952d181c14c35692718ff447d267c000e1ccc8cdafd5d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/rm/thunderbird-68.7.0.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "d76f9f0e992da2e28e69b20a1ae532c8e98415825d41ee5716c34639abd1a3bb456d8645a108d17423bfac848f8e8a340358ccfc2635794cc703764d6f8de0a9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ro/thunderbird-68.7.0.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "0485cdcdf247ed4bd67420fe7919f7f9d845e3c369c80960d92e448c48e3ce7e55c03ddbce16aed6de84da70a5e7610d8be5f55c5f53dc4568ac712b92a7153c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/ru/thunderbird-68.7.0.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "96b28866dd1e4b68846cd88adee09e4edb60af8d506f42838f3f5f1dadd59ef5339e8c331b2a8b6ed0d1ff482ed48d83861b9db174b28dce5ce90b619b3a237d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/si/thunderbird-68.7.0.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "0ea525527ab09277fce4202f488778d838090d2d59fcb2f049b1869ff0a6d50f54eb22449dbd1063aa6b15d5e559dc119e36dbf97d8a7bbf22e9ac4971393a1e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/sk/thunderbird-68.7.0.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "26280b266d2a7956321854ec57737d8cd4ff6ecc938ca07304431e6f351f73ea43e2213e28797d0bc994e0174da41108421a957054a00adca97cc630c107e4b9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/sl/thunderbird-68.7.0.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "3cf380bb8bab8917e3643eaa337e8382e73802d725ca6134e73fc9d991d9e137b6681fb2aaa86aa83cf6766c3f536406298a4962b97175cf63bbf81142b75618"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/sq/thunderbird-68.7.0.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "daeeb1a66f65e2da8ef2a6e3c59eb07bc341bebd19a79cce606d787d16f674e2d52decb17ae12125a7df78ecdb7c7a693644b17aa726ce1fd424fd30bb05ae43"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/sr/thunderbird-68.7.0.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "01a71c036d95587adb010cdd0f0641c4559af557c3596b16e43d11accddf64290d06ed5b35ab8d0b640b9242157b04a899ded266a47ad7bf2a07e3b923bc6fb7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/sv-SE/thunderbird-68.7.0.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "28abf6b95fc03abd0f8d5008a1a3ba5b46138a616750b20e8f7be08fc2307cc75ef0e1ac3b8e29e37542553de502d07c092a771cc94c9b794da6a5bd268e3c6e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/tr/thunderbird-68.7.0.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "a7cb235bf1db3dfc5f7bed0fb92c327fedeb2f319c602bc13727b3c452305345a053405f77895611d294578a96eb8dfe7c7e9f008c531fa2acddfc81679391b6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/uk/thunderbird-68.7.0.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "0fd2ea32ce4ef03150db5234561546f45724e399fb12967a4ecde42149a81f4609505bd1da5cf85ae745e71768b93738c2885c4c7ace9b7b0063d6ace566bbb5"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/uz/thunderbird-68.7.0.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "4394e70e02ef67428b74af0b1d35ea06964b71a23d5a0d73afa2e6fdbe8d23286abde651b17a48a2353a1ac762d5a8b169f8e699a79644f00340b05e204f05c8"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/vi/thunderbird-68.7.0.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "e1eeb7b46a9ece66fc40d2d58d2781fea4cca320a97b6cfeddd02f3f6907b44539f4400390467a794cbadde50c8ffe350fb08d8012f207db60d36a61d205a368"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/zh-CN/thunderbird-68.7.0.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "ab6839f46e41c14fbc588a59044496feb3e8a35aaaa1f0777212636e9b4dc5a6640b34a3f1e833239d5597f468960a947c0591373938306dd8bedd6c6e13283e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-x86_64/zh-TW/thunderbird-68.7.0.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "4923f6c790335820811bad56494d24a5899c1586ab2344b3e2fc81a91651d9de5b378ec6ac0ec68597ee83a8dc0f24ef084a41bfcd98dbde128cf4831646db70"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ar/thunderbird-68.7.0.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "91b19e61a360062d71e090d7eb8dd78b1ff73fd3e7733573ff1ce6ef4e98c13fb297c219fda8c43c9d80299625ea8bf9566e25a5546f28d010737a399488f3fd"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ast/thunderbird-68.7.0.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "2edcc3b6d7c51c79b1539fe8fa4da53003af0379727ed658ca7523d608c96c251e8be6fea004098609d5b854ebfe6cc8b81830f8e1d359386edd2593f3eff6c7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/be/thunderbird-68.7.0.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "84a76ba8031d25f6b097f66e4b0c74359ac313f25016c3b82e547d8e973814d8398697572014590f23ea094aad7941c13cb4130b618a776f6c4973356cccb30a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/bg/thunderbird-68.7.0.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha512 = "b489ff67e47eb1d431f5b2f59f0d6b8cfcded889e167cea3a2d602057264a402769e44191ac015e15930faacf7acd9f1fccb87abbd438e3629db7b795b8fe43d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/br/thunderbird-68.7.0.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha512 = "3ffa33885f86bbf13f4c2a2bb15b864aec851b5558eba88e7a64e8b8b111169bf4e163e590491702465ec8436274ee72dd140a0bda2c9ba39754145de5501388"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ca/thunderbird-68.7.0.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha512 = "fad5eeda16877f0bfa5edfec10fd8fe5baf16a112aaf56c908c718159b0bb6b72ac314b93584536ca369d054059612fbf86c396d076158b6efc7a9d9cd2fff93"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/cak/thunderbird-68.7.0.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha512 = "f4a0605533cfd5b0806c8412514de4478c520f52903a07c809df136b443ff0734be917444cec2d4c73301d0821d77e585c96bf314ab17deec4b4bd5036e83a97"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/cs/thunderbird-68.7.0.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "319f3a63a352a2f7831bb6d2d046d238db4c136cdc256934ac19fd4e8421344c98b4900c57a12f49af77d1844ffc8e8c7129c4ab9557d590affd59aaa0229ba4"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/cy/thunderbird-68.7.0.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha512 = "4aa1974543b568168d06ec8c0004127cabab481fa798a67878a9bd5c1955d98d14d770383ef5e6af35dadc106fb20da46a1744a7156b3bfc582e416a32df1673"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/da/thunderbird-68.7.0.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha512 = "c587a13d45f5a5e94108252d8dc98548583ac7f27b35f3fc28100df0a15f696c04c68a4f786d7b9c3ee461db6120c14aef2b6ee14cfcabbe855f16ed00660861"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/de/thunderbird-68.7.0.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "5c425faa2c44d30b695ce6713b59e5720bbd8294aea20d1c7431f26173da0f6ca85b1cdb9f178e54ff670e109bc6c30abf21110df0c7029b5d5a01373c8b1510"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/dsb/thunderbird-68.7.0.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha512 = "6ad04e1e43d0a7e4821c584a78b476262e77aa5f6c7d170806eb02d74b0d831f53e66568917837d11c11cb5ed19b796c23ba6d496573ca1da7029fb1eedbad9f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/el/thunderbird-68.7.0.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha512 = "e9c7d89bbc736527ea9918151886705fec533969582ff37fe8e1acec3b6c1938fb33da4285c02ea92c2a87df1c6700c9c2223ca391ba342eb2e4e1fad8e06f8f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/en-GB/thunderbird-68.7.0.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "ead179d699feabcf14373aa4e02ec96f52e96f8a1413294f690d70608f2cf83fdfbccd1031f0430a0f3805bb230943d8aea269195d0f092334040d0c092cf9b7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/en-US/thunderbird-68.7.0.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "18309ddef56d0e7e50f3b5895e1c21c206b432da141c7517f9220686ada6523f7b0181e98a6722205bfe09d9023c4d2beeeb11ad60a7b6ec4242441bd60afcd0"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/es-AR/thunderbird-68.7.0.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "d0a1ce2264c3663a529df667f800bb7e7ae446e09a5b0b09934e00ca18e523baca3943edf1bc2e3269a1b41399a47bd989b487e8650a0ce9a66b94b8bcb37726"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/es-ES/thunderbird-68.7.0.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "5dc04a48b1997e0291265533351818b1912d73b9b002c8978f729006f7b406c03c27edf736a99d898ad9cb8328b40d732b27ca51e3f621740146b81968f87d8d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/et/thunderbird-68.7.0.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha512 = "8fdb9911b0da646fca7256fc0e004530339f6631fe3a91e1c0857b52d3d7f786a6fb8bf83cfea9e3c4e0faf6093d0b3afcd46a0dd1ce5c1357a40ff217393d6b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/eu/thunderbird-68.7.0.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha512 = "788cee146a94621d373e8d815daef246d58b46ab1e935b01dee3955fe695af43e7a482f287d611e98a376b137b5bcd5b92baed5ab322a39ef30d8815abff6640"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/fi/thunderbird-68.7.0.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha512 = "b65e042905882d1c7fbc88bffb512b32fc91475b99c3b1bf6a4e10ed355f9bb3223a3c709273b0ad84c30ad3c6c405c07cb3e04eeb8a4938ec22bae3af4dfbe5"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/fr/thunderbird-68.7.0.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "a85af36139d6f7ab6028acaba61a8dd47c2fd6ef9114b5ae8783c78c85e16c606d72b05c15a299d1a0beb518301aeb65d3493d518b270bfb97f22c88d23bbc0a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/fy-NL/thunderbird-68.7.0.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "60cc189b7eedc72327d3fce18809403014cc6b2c4dc53617cc8cd589dade6be25ade584416f9be18830f3c7a6060fad3e19bb930a591f17fdb3437b4597f48a6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ga-IE/thunderbird-68.7.0.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha512 = "95b337d681a5292c0343bb545232b666268e5fbea0afd6b96122ff00e504da0a5628126a11495ba54d4e8500615d35b34de13851ad43f180bd9b5b1f584c7ec9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/gd/thunderbird-68.7.0.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha512 = "483a1bcc1a0066a962ed91c8f4c6f948623e3555d2977c593a473c5c08e12baf05fc4c043ef5db1fc839fb9f550764abe457f2d33e23ffc748ea6aa50d675101"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/gl/thunderbird-68.7.0.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "0a88fc59510fa06757dd1b6994be0ceb8a0ad2cd1246077838756a0d65d6c01a64f8c48fc8ac87690686bdfea8c7d0b44e5fd96feca4c3aa59d6fb43eaeed3f2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/he/thunderbird-68.7.0.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "9c2ae42cf2d43e4ae9d0dad829871b44321b2cf49cde1f17568f96c4d6a69793d78c9b7a72cb29b71c108718906ab749f006f7c727d6f3892efa3d56d0852449"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/hr/thunderbird-68.7.0.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha512 = "9e9a949fe54c23a0f73bcb05a4fe2b212c6701cbd1d68ae10dba2b62de07fcc5dad5210de0ec3c3f684f06828f8fd1c420712396e5132da6053de42f319d6454"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/hsb/thunderbird-68.7.0.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha512 = "0d3c5ca3ce6a9becaad63b2d7bf3e1d4491cad18201e1ddb634ad80d4d9d9d26c95b02034888f24ce50c5390b1197fe3bbd69525bcffd5192d95ed35203515de"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/hu/thunderbird-68.7.0.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "4519acbc2d00cb1f97d73f17b37db4625fd16f7f25e628d5309bdddee2012feb2133ce599bc69eabb22a18f015a00c8e98d6804140ea1ae41d66f59164355f32"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/hy-AM/thunderbird-68.7.0.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha512 = "f60cca5cef19516a5c6e4b22962567c0c0d22035ee7583b0d93a4db0db7f625ed0cfaddc78f56621371d0a8b6341948cbf9171debe81c222d170af2c759eef36"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/id/thunderbird-68.7.0.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "75adaedcce7dae3998a063794552d3e5fd69e037422e44fafcc7871a05cabcb592c9ddb637c1f7b0639e03f6d0d99b262679087df2d6806fe2a202121cdb5563"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/is/thunderbird-68.7.0.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha512 = "b80488a594bebecaa139a2bbac76e3daa0d3a9f3257cfdc2f6954f8cbf427c3b3ec1db3d1f55b9c5e8c37242778e53904b92adff1cb7e1907142008e69607ee8"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/it/thunderbird-68.7.0.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "c8a0f75f6467f6428103c98e97afce1690a0d986ea6466dbfbaa2eba2853d8f7a1e65c568d10884d6d4412fcbab39e8743d3e3233ac16f69ab57a5f698c3ac5c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ja/thunderbird-68.7.0.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "b1abc4fb9e7af1695ca2a4fe88d2198876212923ae10977b0caedffc96dadd891fe6068fd8d53c7cb7667854523197d1378791fb71c12eb817dd9b6e338eb3a3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ka/thunderbird-68.7.0.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha512 = "11e56137a0e5f9f6cc4b24e02861e6ee4c451280076e9efc46e1f28066862b3bd494ff7388f6be736be3dcf6412c5dbd141546dd37d6351aed54790deff841f9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/kab/thunderbird-68.7.0.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha512 = "b930bd22990497a66cc9aff96f0c9bbfae4396fd9b4397893db9c72b59b602b45f6ab7388b8899890e151bf8dd1e0b788d668cdad607f4326794825508d36ebd"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/kk/thunderbird-68.7.0.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "17b7ec790013cdbad015d3045ec8d4c5ee6d92b1ea9be18e2b9a5d7776f53c7b621193e7dec418f86be25e3d876e4a9cf9c8ceef0cac4051461afc1a51498353"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ko/thunderbird-68.7.0.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha512 = "1030a289a2e0793553ec3bfa8ac1b3ff3bfac3766318f5ffd9e6eff1979481b327a90a2207a5c16ca33719675c65e20d58ea8074fbd5fe9877fd334114e9b5f2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/lt/thunderbird-68.7.0.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "e433d8933c1d4a41e70ae2a8bdb6f1a502d478aad1308e1f0e8489149371893deea61fe8339717eb22996d844a5a6bbef916ec6c468a57cfbb7a54751bee2408"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ms/thunderbird-68.7.0.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha512 = "31343703e214decf4f25d724507dc706cb6c47d6247989cc2019841175099a0c328fca562fbd257f0003ec6a6fc8cdcd632c141de13e910a6a7b9c75733998bb"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/nb-NO/thunderbird-68.7.0.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "e79708c309dd16d23bba5bc0e29a4f5b426a7dcb7dcd56b86c40875abd0d7fa532d9ca8c8b5019552fa0d07e5c4686a66f0a4173e2fdbf8865d3921c8b29f327"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/nl/thunderbird-68.7.0.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "8c268bbe04c30a3dbef069add7b6e47fc576a60d0709020d0aee03b0be634f0fbfd4928489fe7b984a8c54fb1ad9ae951b9dd0c0ba04483b35a242bbbe3bbc19"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/nn-NO/thunderbird-68.7.0.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "9c73e09e4680f3c258e7d25691dffaf805ca6946335c9c30ef091a739d7f87e0f36f5328875ceb2b7f0f2cee2bf16fe1401411f11f4e5e45ca86837c4e207d79"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/pl/thunderbird-68.7.0.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "6dcb19a95e0bd8dd783a420c3f06e0980c5706c065397d4ee424969bd84daf783752d55153808df5811f656d28adeb15f826b1d4f2b9e356846c6b1c01b89a04"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/pt-BR/thunderbird-68.7.0.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "99deb6fe54bf1f9bb1858f2c454e44246b34bca6aaeb5322db57d048acdea5de853d439d4f079c3e2587174364ecb05861cac461a34dfba495eb747bb8fc98ac"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/pt-PT/thunderbird-68.7.0.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "fd0fe715c0e816e6a92b9cb6a2afea50952851161cdd217f764cdafdc529f7cf0c5a6913546b81fc1d9532de74eecf13517c6eb8380ab5f920487df4c26d331b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/rm/thunderbird-68.7.0.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha512 = "5ff0306c7c6f88976f3080d34690e4607a74730509f9f43a0ba56fb9e5b9cdea8e85a4137333c150110fa110ab6d98cbbf265ea07ca439f199841a82af500152"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ro/thunderbird-68.7.0.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha512 = "9240e285135f27f82402cd0d3374f28d293a29c904a503297014802554e8257bf95c8d0cbcf18841c44d1012e0d3d8067ab24186317cb4f42f96dfeeb65255b9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/ru/thunderbird-68.7.0.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "0c90806ecfe1e4b2e4d17ba01a5945bf5c0d3a0e7b5caaecd36456286f5a1ea597b743743acfbaef585cdc4bada86e6f194608ebe9dd2308f24d093fbba49fa5"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/si/thunderbird-68.7.0.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha512 = "a10ab6a050df683057d4532c0c1ebfbed80de96f6831ae60e53f4e4fe95a342ce97b545c7a658fa092a7b9d4c2196f4bb296e4af9b0c7e4183f112ab50b464e6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/sk/thunderbird-68.7.0.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "1aa04c5702a89099645616f7aee86a507cc5c54f3a62696eaef17d6ca161ded644285d77782ff940c2ab128d2ff9f4c5b385999da9de678837ecf91d00f88f16"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/sl/thunderbird-68.7.0.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "afacff8423baa933c6e4b2282fc112636876dd97e607e9a63675fc5232907bf7b06dc50e1377aeedd3cc56dded6f3d71b47aa774dbea12217f6243c6182a2bf8"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/sq/thunderbird-68.7.0.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha512 = "6036f12337b129025c34906b8df0663ae210294d3914cceb9f97be907f058e9eaeafad2aa2e2c2ee79f83be3659a242ab2135cf7f240b34eee24dcf555aef40f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/sr/thunderbird-68.7.0.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha512 = "c48be7ba5b42ebd244c59a6188be08236974fabdf7cc30f3473add6b215c6c7ea80fd4ad4d739d7e62fe2f1043afb288d2a6f7e838bf0e17fcc68b5340806e45"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/sv-SE/thunderbird-68.7.0.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "c943304a7f40e715d1fb1194ba7f306538b917788306f02be10a86e1d01baf091b1bc58b417aad7775fba58cf90ddd8412a56cfbcf2f12e4f7581be34c328205"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/tr/thunderbird-68.7.0.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "53d5c9d7db4a44ea3858c55377c0ab8f8d359440f86634a0ff5eefdaf0553dd2c7a9ca66112a2cd4fe3a8e6094cf9c1f16fe01119ab11f1a039f471fcba37609"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/uk/thunderbird-68.7.0.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "8204e0ca96902f16b92a6e02c09a788362359af3a6566f8246055727d5a74736d0b9f8570a4671a1f69233a993e25676c730001dfef9a92d034edcb8b12a5f7f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/uz/thunderbird-68.7.0.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha512 = "496d82507602cff8e48f43b9c63a696d24020b804ffda45f2027103c5f3768543db0f03051ef062e0076c16b78b31759f7d4a4878a45e7dfac1cc0e4e9d046cb"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/vi/thunderbird-68.7.0.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "f360794ecb21ed3f90552797269ab6e89024591903eb53dcf6216b25bb4dbcdf94c2526672b94ba979717f90cce5bfb6329efb3b5a2b9bec7c3d4d06d339ac9e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/zh-CN/thunderbird-68.7.0.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "ec7274b2870206647fd853c30db4e30b3856896ce9c89d5d825363e9d4327d23a230c899abbb740036a8e060f1532007ba5936af010feea85318bdeb18f29e0d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.7.0/linux-i686/zh-TW/thunderbird-68.7.0.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "f0fb6deda0813516753386ae69ddb7b6dce95ce89c6dfba3ba5828d80d9fe92e3eaf014e89ab56c4548d39932bbfe12d4b9c6c8ff66b77a9ebe4f7476a9f6be9"; + } + ]; +} 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..19c572af2795 --- /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.7.0"; + + src = fetchurl { + url = + "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; + sha512 = + "0glskn3djf739v2dphs663a2lfg5b0lbk1vlwwbzwfj9wfshvk7l07ijp84143bamvgb0lhhh0c9zx4gy5jj3x1j4196m3s1c1n7rzs"; + }; + + 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 + }/${stdenv.hostPlatform.config}" + } \ + $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..f383018e2537 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix @@ -0,0 +1,59 @@ +{ akonadi-contacts +, cmake +, fetchgit +, gnupg +, gpgme +, kcontacts +, kf5gpgmepp +, lib +, libsecret +, 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 + libsecret + 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..e8b7645db872 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix @@ -0,0 +1,72 @@ +{ stdenv +, pkgconfig +, python3 +, fetchhg +, fetchpatch +, 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"; + }; + + patches = [ + # Fix docs build + (fetchpatch { + url = "https://bitbucket.org/linuxonly/modem-manager-gui/commits/68fb09c12413b7de9b7477cbf4241c3527568325/raw"; + sha256 = "58XIT/RTZ9sjUK2e47h+SqpRWhQ2vbKb2h9MKiHNdgw="; + }) + ]; + + 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..b0f6859e69c9 --- /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..f78b085b6c64 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/msmtp/default.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig, texinfo +, 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.8"; + + src = fetchurl { + url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; + sha256 = "1rarck61mz3mwg0l30vjj6j9fq6gc7gic0r1c1ppwpq2izj57jzc"; + }; + + patches = [ + ./paths.patch + ]; + + buildInputs = [ gnutls gsasl libidn2 ] + ++ stdenv.lib.optional stdenv.isDarwin Security + ++ stdenv.lib.optional withKeyring libsecret; + + nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ]; + + 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..1e25b01259d0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix @@ -0,0 +1,92 @@ +{ stdenv, makeWrapper, fetchurl, dpkg +, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype +, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3 +, xorg, autoPatchelfHook, systemd, libnotify, libappindicator +}: + +let deps = [ + alsaLib + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + pango + gtk3 + libappindicator + 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 = "2020.3"; + + src = fetchurl { + url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb"; + sha256 = "fac3896db78cc2ddac81abec8bc0aa324e66b453126ed35a501e422ce64b1362"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + ]; + + buildInputs = deps; + + dontBuild = true; + dontConfigure = true; + + unpackPhase = "dpkg-deb -x $src ."; + + runtimeDependencies = [ systemd.lib libnotify libappindicator ]; + + 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 + ln -sf $out/share/mullvad/resources/mullvad-problem-report $out/bin/mullvad-problem-report + + 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 = with maintainers; [ filalex77 ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix new file mode 100644 index 000000000000..4408994ba8f0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix @@ -0,0 +1,142 @@ +{ 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 []) + ++ [ ./fix-rnnoise-argument.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" + "DEFINES+=PLUGIN_PATH=${placeholder "out"}/lib/mumble" + ] ++ optional (!speechdSupport) "CONFIG+=no-speechd" + ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio" + ++ (overrides.configureFlags or [ ]); + + preConfigure = '' + 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 infinisil ]; + 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/fix-rnnoise-argument.patch b/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch new file mode 100644 index 000000000000..78e8ed24d58f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch @@ -0,0 +1,16 @@ +nixpkgs has a more recent rnnoise than the one used by mumble, and rnnoise +changed the argument rnnoise_create[1], + +[1] https://github.com/xiph/rnnoise/commit/231b9c02d14a74cb449a98004cb7a2cf1bdeca2f + +--- old/src/mumble/AudioInput.cpp 2020-02-18 22:55:32.000000000 -0500 ++++ new/src/mumble/AudioInput.cpp 2020-02-18 22:58:08.000000000 -0500 +@@ -106,7 +106,7 @@ + #endif + + #ifdef USE_RNNOISE +- denoiseState = rnnoise_create(); ++ denoiseState = rnnoise_create(NULL); + #endif + + qWarning("AudioInput: %d bits/s, %d hz, %d sample", iAudioQuality, iSampleRate, iFrameSize); 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..931453624811 --- /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..c2e51ee743b5 --- /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..f1e8905089c9 --- /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..454e19fd8974 --- /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..6fa4dc19799c --- /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.3"; + + src = fetchFromGitHub { + owner = "QuiteRSS"; + repo = "quiterss"; + rev = version; + sha256 = "06m5mhzxvv8q2adaqcrar3sx2c1hc89h2i0qfjxmirfc5z67hdw2"; + }; + + 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..1cc9c39c991d --- /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..2560bc806eac --- /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.4"; + + src = fetchFromGitHub { + owner = "nextcloud"; + repo = "desktop"; + rev = "v${version}"; + sha256 = "1wr57qwcjfzbpb4p0ybfjpw2hhwp91yrk2n3ywrqywcvjj38jg1q"; + }; + + 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..85a39f7e656a --- /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..3986f2b67cb2 --- /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..679e966373b6 --- /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..aa9d94ad5b6e --- /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..3608ef982a9b --- /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..3fc9fedc4138 --- /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/1/default.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/1/default.nix new file mode 100644 index 000000000000..cafba65c788b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/1/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/deluge/2/default.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/2/default.nix new file mode 100644 index 000000000000..755ef4cc33b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/2/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, intltool, libtorrentRasterbar, pythonPackages +, gtk3, gobject-introspection, librsvg, wrapGAppsHook }: + +pythonPackages.buildPythonPackage rec { + pname = "deluge"; + version = "2.0.3"; + + src = fetchurl { + url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz"; + sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky"; + }; + + propagatedBuildInputs = with pythonPackages; [ + twisted Mako chardet pyxdg pyopenssl service-identity + libtorrentRasterbar.dev libtorrentRasterbar.python setuptools + setproctitle pillow rencode six zope_interface + dbus-python pygobject3 pycairo + gtk3 gobject-introspection librsvg + ]; + + nativeBuildInputs = [ intltool wrapGAppsHook ]; + + checkInputs = with pythonPackages; [ + pytest /* pytest-twisted */ pytestcov mock + mccabe pylint + ]; + + doCheck = false; # until pytest-twisted is packaged + + postInstall = '' + mkdir -p $out/share/applications + cp -R deluge/ui/data/pixmaps $out/share/ + cp -R deluge/ui/data/icons $out/share/ + cp deluge/ui/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..9355bfa5b8d9 --- /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..017f059ff6c3 --- /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..65e2165f64ee --- /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..39ab0ee0efa9 --- /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.8.4"; + pname = "frostwire"; + + src = fetchurl { + url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz"; + sha256 = "1qs0r5621ihb9sj4sqpmxj9smwf8a8k3n1qx2i0sz65qhjfc90zz"; + }; + + 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..5abee0108ec3 --- /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..b3d455599bf0 --- /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..19be24bd1b18 --- /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..da7713d7bc62 --- /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.11.0"; + + src = fetchFromGitHub { + owner = "boramalper"; + repo = "magnetico"; + rev = "v${version}"; + sha256 = "1622xcl5v67lrnkjwbg7g5b5ikrawx7p91jxbj3ixc1za2f3a3fn"; + }; + + modSha256 = "193n323xaypm9xkpray68nqcgyf141x8qzpxzwjnrmsgfz8p6wgk"; + + nativeBuildInputs = [ 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..786ba434b928 --- /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..c956f26b1165 --- /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..ed44ff24fecf --- /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..39740f53475c --- /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.2"; + + src = fetchFromGitHub { + owner = "qbittorrent"; + repo = "qbittorrent"; + rev = "release-${version}"; + sha256 = "1iqgwhgwa2kx85zj1rwfnnclr1433a7m2gbs3j7w6rx39vxnzhcc"; + }; + + # 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..ce6d3958c9b0 --- /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..2a8a06227133 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, fetchzip, mkDerivation +, appimageTools +, autoPatchelfHook +, desktop-file-utils +, imagemagick +, qtmultimedia +}: + +mkDerivation rec { + pname = "soulseekqt"; + version = "2018-1-30"; + name="${pname}-${version}"; + + src = fetchzip { + url = "https://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-${version}-64bit-appimage.tgz"; + sha256 = "16ncnvv8h33f161mgy7qc0wjvvqahsbwvby65qhgfh9pbbgb4xgg"; + }; + + appextracted = appimageTools.extractType2 { + inherit name; + src="${src}/SoulseekQt-2018-1-30-64bit.AppImage"; + }; + + dontBuild = true; + dontConfigure = true; + + nativeBuildInputs = [ imagemagick autoPatchelfHook desktop-file-utils ]; + buildInputs = [ qtmultimedia stdenv.cc.cc ]; + + installPhase = '' + # directory in /nix/store so readonly + cd $appextracted + + binary="$(readlink AppRun)" + install -Dm755 $binary -t $out/bin + + # fixup and install desktop file + desktop-file-install --dir $out/share/applications \ + --set-key Exec --set-value $binary \ + --set-key Comment --set-value "${meta.description}" \ + --set-key Categories --set-value Network default.desktop + mv $out/share/applications/default.desktop $out/share/applications/SoulseekQt.desktop + + #TODO: write generic code to read icon path from $binary.desktop + icon="$(readlink .DirIcon)" + for size in 16 32 48 64 72 96 128 192 256 512 1024; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize "$size"x"$size" $icon $out/share/icons/hicolor/"$size"x"$size"/apps/$icon + done + ''; + + meta = with lib; { + description = "Official Qt SoulSeek client"; + homepage = "https://www.slsknet.org"; + 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..325dc653e5b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix @@ -0,0 +1,58 @@ +{ 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" + ''; + + propagatedBuildInputs = with python3.pkgs; [ + urwid + urwidtrees + aiohttp + async-timeout + pyxdg + blinker + natsort + maxminddb + setproctitle + ]; + + checkInputs = with python3.pkgs; [ + asynctest + pytest + ]; + + # test_string__month_day_hour_minute_second fails on darwin + checkPhase = '' + LC_ALL=en_US.utf8 pytest tests \ + --deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second + ''; + + 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..80d907894401 --- /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 = "0lhhdzq4sadnp2pnbq309d1mb7ggbf24k5ivlchrjhllbim1wmdz"; + + 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..8691335d1290 --- /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.67"; + + src = fetchurl { + url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz"; + sha256 = "0510wkwmwrlv61958zd5nsc4lr0l0lka3jf4pq3dyiyfsf4k20rq"; + }; + + 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..1bf99165858d --- /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..dbe3bb50e6d0 --- /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..7c6e35752a01 --- /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..8e74b82b69d3 --- /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..0e80e1397faf --- /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..e9c5f2741432 --- /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.4"; + + src = fetchurl { + url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz"; + sha256 = "0hxiyf1k07ngym2p8r1b5mcx1y2crkyz43gi9sgvsvsyijyaff3p"; + }; + + 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..03cb381f5eb4 --- /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..be2421ef4d26 --- /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..dc75de6299f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ping/default.nix @@ -0,0 +1,67 @@ +{ stdenv +, fetchFromGitHub +, meson +, ninja +, vala +, pkgconfig +, pantheon +, python3 +, glib +, gtk3 +, gtksourceview +, json-glib +, libsoup +, libgee +, wrapGAppsHook +, vala_0_40 +}: + +stdenv.mkDerivation rec { + pname = "ping"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "jeremyvaartjes"; + repo = "ping"; + rev = version; + sha256 = "1h9cdy2jxa2ffykjg89j21hazls32z9yyv3g0x07x3vizzl5xcij"; + }; + + nativeBuildInputs = [ + meson + ninja + vala_0_40 + 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..6ac2e89cf40e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchFromGitHub, openssl, libsamplerate, alsaLib }: + +stdenv.mkDerivation rec { + pname = "pjsip"; + version = "2.10"; + + src = fetchFromGitHub { + owner = pname; + repo = "pjproject"; + rev = version; + sha256 = "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"; + }; + + 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..31b1bd6086ad --- /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-ng/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix new file mode 100644 index 000000000000..e62bc21ab5b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix @@ -0,0 +1,35 @@ +{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }: + +python3Packages.buildPythonApplication rec { + pname = "protonvpn-cli-ng"; + version = "2.2.2"; + + src = fetchFromGitHub { + owner = "protonvpn"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8"; + }; + + propagatedBuildInputs = (with python3Packages; [ + requests + docopt + setuptools + pythondialog + ]) ++ [ + dialog + openvpn + iptables + ]; + + # No tests + doCheck = false; + + meta = with lib; { + description = "Linux command-line client for ProtonVPN"; + homepage = "https://github.com/protonvpn/protonvpn-cli-ng"; + maintainers = with maintainers; [ jtcoolen jefflabonte ]; + license = licenses.gpl3; + platforms = platforms.unix; + }; +} 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..c48f6c820269 --- /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..02b14b72c18b --- /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..8eb0c2298fd3 --- /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..f173e56abb34 --- /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..3e639c283493 --- /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 = "1ry21zw5ghba4xjx8dvimlpprgap7n8j9lqhjsciahbvc16vx5ks"; + 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.4"; + + 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..0936f4e75521 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix @@ -0,0 +1,242 @@ +{ 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.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-1908.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 = [ "19.3.0" ]; + 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..be8810dfa7fc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix @@ -0,0 +1,109 @@ +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, alsaLib, ffmpeg, glib, openssl +, pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama +, libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland +, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt +, libusb1, libpulseaudio ? null, cups ? null, pcsclite ? null, systemd ? null +, buildServer ? true, nocaps ? false }: + +let + cmFlag = flag: if flag then "ON" else "OFF"; + disabledTests = [ + # this one is probably due to our sandbox + { + dir = "libfreerdp/crypto/test"; + file = "Test_x509_cert_info.c"; + } + ]; + +in stdenv.mkDerivation rec { + pname = "freerdp"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "FreeRDP"; + repo = "FreeRDP"; + rev = version; + sha256 = "0d2559v0z1jnq6jlrvsgdf8p6gd27m8kwdnxckl1x0ygaxs50bqc"; + }; + + postPatch = '' + export HOME=$TMP + + # failing test(s) + ${lib.concatMapStringsSep "\n" (e: '' + substituteInPlace ${e.dir}/CMakeLists.txt \ + --replace ${e.file} "" + rm ${e.dir}/${e.file} + '') disabledTests} + + 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" "${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 + gst-plugins-base + gst-plugins-good + gstreamer + libX11 + libXcursor + libXdamage + libXext + libXi + libXinerama + libXrandr + libXrender + libXtst + libXv + libpulseaudio + libunwind + libusb1 + libxkbcommon + libxkbfile + libxslt + openssl + orc + pcre + pcsclite + wayland + zlib + ] ++ optional stdenv.isLinux systemd; + + nativeBuildInputs = [ cmake pkgconfig ]; + + doCheck = true; + + cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ] + ++ lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") { + BUILD_TESTING = doCheck; + WITH_CUNIT = doCheck; + WITH_CUPS = (cups != null); + WITH_OSS = false; + WITH_PCSC = (pcsclite != null); + WITH_PULSE = (libpulseaudio != null); + WITH_SERVER = buildServer; + WITH_SSE2 = stdenv.isx86_64; + }; + + 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 = "https://www.freerdp.com/"; + license = licenses.asl20; + maintainers = with maintainers; [ peterhoeg lheckemann ]; + 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..804a40a614c5 --- /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..02a2c63b4397 --- /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..3e41649d8cc0 --- /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.4.1"; + + src = fetchFromGitLab { + owner = "Remmina"; + repo = "Remmina"; + rev = "v${version}"; + sha256 = "084yw0fd3qmzzd6xinhf4plv5bg8gfj4jnfac7zi1nif8zilf456"; + }; + + 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..dbb9d465cc7f --- /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.2.2756"; + + src = fetchurl { + url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb"; + sha256 = "1g6a7yadvc6gc660m62yibj2hrj7bwy26z5ww0gk6rwqlz048i97"; + }; + + 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..03be60a99489 --- /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/wayvnc/default.nix b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix new file mode 100644 index 000000000000..865710184f93 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchFromGitHub, meson, pkg-config, ninja +, pixman, libuv, libGL, libxkbcommon, wayland, neatvnc, libdrm, libX11 +}: + +stdenv.mkDerivation rec { + pname = "wayvnc"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "any1"; + repo = pname; + rev = "v${version}"; + sha256 = "0aa12fkbwhzs0g2pqw1b27l33nn5dpbcvsf1z8h88kwsf9xdvb2r"; + }; + + postPatch = '' + substituteInPlace meson.build \ + --replace "version: '0.1.0'" "version: '${version}'" + ''; + + nativeBuildInputs = [ meson pkg-config ninja ]; + buildInputs = [ pixman libuv libGL libxkbcommon wayland neatvnc libdrm libX11 ]; + + meta = with stdenv.lib; { + description = "A VNC server for wlroots based Wayland compositors"; + longDescription = '' + This is a VNC server for wlroots based Wayland compositors. It attaches + to a running Wayland session, creates virtual input devices and exposes a + single display via the RFB protocol. The Wayland session may be a + headless one, so it is also possible to run wayvnc without a physical + display attached. + ''; + inherit (src.meta) homepage; + changelog = "https://github.com/any1/wayvnc/releases/tag/v${version}"; + license = licenses.isc; + 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..047458067357 --- /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..9941951225ca --- /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..883a152fdf97 --- /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..0893ee21a558 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix @@ -0,0 +1,34 @@ +{ mkDerivation, lib, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools +, seafile-shared, ccnet, jansson, libsearpc +, withShibboleth ? true, qtwebengine }: + +mkDerivation rec { + pname = "seafile-client"; + version = "7.0.7"; + + src = fetchFromGitHub { + owner = "haiwen"; + repo = "seafile-client"; + rev = "v${version}"; + sha256 = "0szdyprljyckmbrw5sypizs22j96q84ak6nyidyr2j6gf4grh9mg"; + }; + + nativeBuildInputs = [ pkgconfig cmake ]; + buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ] + ++ lib.optional withShibboleth qtwebengine; + + cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ] + ++ lib.optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON"; + + qtWrapperArgs = [ + "--suffix PATH : ${lib.makeBinPath [ ccnet seafile-shared ]}" + ]; + + meta = with 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..c81cc78a9b55 --- /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..e664ee20c237 --- /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..9c295c279156 --- /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..4af8e526cd2c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre +, openssl, ncurses, glib, gtk3, atk, pango, flex, bison, geoip, harfbuzz +, 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 harfbuzz + ]; + + 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" + ]; + + # TODO: Remove after the next release (0.8.4 should work without this): + NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ]; + + meta = with stdenv.lib; { + description = "Comprehensive suite for man in the middle attacks"; + longDescription = '' + Ettercap is a comprehensive suite for man in the middle attacks. It + features sniffing of live connections, content filtering on the fly and + many other interesting tricks. It supports active and passive dissection + of many protocols and includes many features for network and host + analysis. + ''; + homepage = "https://www.ettercap-project.org/"; + 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..9775486c156a --- /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..7602cb5fe6af --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix @@ -0,0 +1,118 @@ +{ 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.3"; + 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 = "1fpsfjrap7j84sy728yhcr2gad9nq3n5gq03mwrmxnc6ijwf81zh"; + }; + + cmakeFlags = [ + "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}" + "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}" + # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444 + "-DCMAKE_INSTALL_LIBDIR=lib" + ]; + + 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..32a6423243e6 --- /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..d673917af316 --- /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..90d8ea553318 --- /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..c7766889f502 --- /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.6"; + name = "Patchwork-${version}"; + + src = fetchurl { + url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage"; + sha256 = "0bq4pi0rmfsyiiapnhkkhikg2a2jzqlna4gvk6gw7wl0r8a111cs"; + }; + + 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 = "Client for the decentralized social network Secure Scuttlebutt"; + 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; [ asymmetric ninjatrappeur thedavidmeister ]; + 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..b0e53a054d28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/station/default.nix @@ -0,0 +1,42 @@ +{ appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, lib }: + +let + pname = "station"; + version = "1.52.2"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/getstation/desktop-app-releases/releases/download/${version}/Station-${version}-x86_64.AppImage"; + sha256 = "0lhiwvnf94is9klvzrqv2wri53gj8nms9lg2678bs4y58pvjxwid"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; +in appimageTools.wrapType2 rec { + inherit name src; + + 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}} + install -m 444 -D ${appimageContents}/browserx.desktop $out/share/applications/browserx.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/browserx.png \ + $out/share/icons/hicolor/512x512/apps/browserx.png + substituteInPlace $out/share/applications/browserx.desktop \ + --replace 'Exec=AppRun' 'Exec=${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..7a70375e42c9 --- /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..c95647c78405 --- /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..6244cd661d0a --- /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..461de492ae2d --- /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..9831ab34b2eb --- /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..9573e1717de9 --- /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..636761d2aaff --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, dmd, pkgconfig, curl, sqlite, libnotify }: + +stdenv.mkDerivation rec { + pname = "onedrive"; + version = "2.3.13"; + + src = fetchFromGitHub { + owner = "abraunegg"; + repo = pname; + rev = "v${version}"; + sha256 = "0bcsrfh1g7bdlcp0zjn6np88qzpn5frv61lzxz9b2ayxf7wyybvi"; + }; + + nativeBuildInputs = [ dmd pkgconfig ]; + + buildInputs = [ curl sqlite libnotify ]; + + configureFlags = [ "--enable-notifications" ]; + + 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; [ srgom ianmjones ]; + 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..fb2020f0d3a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, cmake, wrapQtAppsHook, qtbase }: + +stdenv.mkDerivation rec { + pname = "rclone-browser"; + version = "1.8.0"; + + src = fetchFromGitHub { + owner = "kapitainsky"; + repo = "RcloneBrowser"; + rev = version; + sha256 = "14ckkdypkfyiqpnz0y2b73wh1py554iyc3gnymj4smy0kg70ai33"; + }; + + nativeBuildInputs = [ cmake wrapQtAppsHook ]; + + 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..2f484467450c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix @@ -0,0 +1,41 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages }: + +buildGoPackage rec { + pname = "rclone"; + version = "1.51.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "0z4kaq6wnj5dgl52g7f86phxlvnk5pbpda7prgh3hahpyhxj0z7d"; + }; + + goPackagePath = "github.com/rclone/rclone"; + + subPackages = [ "." ]; + + outputs = [ "bin" "out" "man" ]; + + postInstall = + let + rcloneBin = + if stdenv.buildPlatform == stdenv.hostPlatform + then "$bin" + else stdenv.lib.getBin buildPackages.rclone; + in + '' + install -D -m644 $src/rclone.1 $man/share/man/man1/rclone.1 + mkdir -p $bin/share/zsh/site-functions $bin/share/bash-completion/completions/ + ${rcloneBin}/bin/rclone genautocomplete zsh $bin/share/zsh/site-functions/_rclone + ${rcloneBin}/bin/rclone genautocomplete bash $bin/share/bash-completion/completions/rclone.bash + ''; + + 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..a0522dfe8202 --- /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/4.08-compatibility.patch b/nixpkgs/pkgs/applications/networking/sync/unison/4.08-compatibility.patch new file mode 100644 index 000000000000..a6921b516f07 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/unison/4.08-compatibility.patch @@ -0,0 +1,52 @@ +From 29fa058c3127f3b47c347dcaa4a94f4c0e888308 Mon Sep 17 00:00:00 2001 +From: Jaap Boender <jaapb@kerguelen.org> +Date: Thu, 21 Mar 2019 12:26:51 +0000 +Subject: [PATCH] Compatibility with OCaml 4.08 + +--- + src/files.ml | 2 +- + src/recon.ml | 4 ++-- + src/system/system_generic.ml | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/files.ml b/src/files.ml +index ba42ad57..5babf21e 100644 +--- a/src/files.ml ++++ b/src/files.ml +@@ -722,7 +722,7 @@ let get_files_in_directory dir = + with End_of_file -> + dirh.System.closedir () + end; +- Sort.list (<) !files ++ List.sort String.compare !files + + let ls dir pattern = + Util.convertUnixErrorsToTransient +diff --git a/src/recon.ml b/src/recon.ml +index 5ed358d7..0df2cfe4 100644 +--- a/src/recon.ml ++++ b/src/recon.ml +@@ -651,8 +651,8 @@ let rec reconcile + + (* Sorts the paths so that they will be displayed in order *) + let sortPaths pathUpdatesList = +- Sort.list +- (fun (p1, _) (p2, _) -> Path.compare p1 p2 <= 0) ++ List.sort ++ Path.compare + pathUpdatesList + + let rec enterPath p1 p2 t = +diff --git a/src/system/system_generic.ml b/src/system/system_generic.ml +index ed8e18f3..0e28a781 100755 +--- a/src/system/system_generic.ml ++++ b/src/system/system_generic.ml +@@ -47,7 +47,7 @@ let open_out_gen = open_out_gen + let chmod = Unix.chmod + let chown = Unix.chown + let utimes = Unix.utimes +-let link = Unix.link ++let link s d = Unix.link s d + let openfile = Unix.openfile + let opendir f = + let h = Unix.opendir f in 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..535757503ca6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix @@ -0,0 +1,55 @@ +{stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses +, enableX11 ? true}: + +let inherit (ocamlPackages) ocaml lablgtk; in + +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"; + + patches = [ + # NOTE: Only needed until Unison 2.51.3 is released! + ./4.08-compatibility.patch + ./lablgtk.patch + ]; + + 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 = "https://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/sync/unison/lablgtk.patch b/nixpkgs/pkgs/applications/networking/sync/unison/lablgtk.patch new file mode 100644 index 000000000000..20c1db1b1166 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/unison/lablgtk.patch @@ -0,0 +1,31 @@ +From 2e7ea9481c6c3ff2ec513c39f73cfe15c0763c06 Mon Sep 17 00:00:00 2001 +From: daviddavid <geiger.david68210@gmail.com> +Date: Mon, 26 Feb 2018 13:36:36 +0100 +Subject: [PATCH] Fix for lablgtk >= 2.18.6 + +--- + src/uigtk2.ml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/uigtk2.ml b/src/uigtk2.ml +index 2ba6d79..04c4da4 100644 +--- a/src/uigtk2.ml ++++ b/src/uigtk2.ml +@@ -89,12 +89,12 @@ let fontItalic = lazy (Pango.Font.from_string "italic") + (* This does not work with the current version of Lablgtk, due to a bug + let icon = + GdkPixbuf.from_data ~width:48 ~height:48 ~has_alpha:true +- (Gpointer.region_of_string Pixmaps.icon_data) ++ (Gpointer.region_of_bytes Pixmaps.icon_data) + *) + let icon = + let p = GdkPixbuf.create ~width:48 ~height:48 ~has_alpha:true () in + Gpointer.blit +- (Gpointer.region_of_string Pixmaps.icon_data) (GdkPixbuf.get_pixels p); ++ (Gpointer.region_of_bytes Pixmaps.icon_data) (GdkPixbuf.get_pixels p); + p + + let leftPtrWatch = +-- +2.25.1 + diff --git a/nixpkgs/pkgs/applications/networking/syncplay/default.nix b/nixpkgs/pkgs/applications/networking/syncplay/default.nix new file mode 100644 index 000000000000..0613a5c5bcd9 --- /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..cf1e053dd53c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix @@ -0,0 +1,65 @@ +{ 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.4"; + pname = "syncthing-gtk"; + + src = fetchFromGitHub { + owner = "syncthing"; + repo = "syncthing-gtk"; + rev = "v${version}"; + sha256 = "0nc0wd7qvyri7841c3dd9in5d7367hys0isyw8znv5fj4c0a6v1f"; + }; + + 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 = [ + (substituteAll { + src = ./paths.patch; + killall = "${killall}/bin/killall"; + syncthing = "${syncthing}/bin/syncthing"; + }) + ]; + + # repo doesn't have any tests + doCheck = false; + + 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..31cf76be5efc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix @@ -0,0 +1,101 @@ +{ buildGoModule, stdenv, lib, procps, fetchFromGitHub }: + +let + common = { stname, target, postInstall ? "" }: + buildGoModule rec { + version = "1.4.2"; + name = "${stname}-${version}"; + + src = fetchFromGitHub { + owner = "syncthing"; + repo = "syncthing"; + rev = "v${version}"; + sha256 = "0pfzpbdir2agwsyfjh1rxlyyd225xmyrr4k2g4vlg5r12kpcjwya"; + }; + + modSha256 = "0qjhb55nd8mlnswbk8bgl2sb9angmv8fnympmmyqj1dqa7lcs87z"; + + 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..cb13d296c2f8 --- /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.0"; + + src = fetchFromGitHub { + owner = "drwetter"; + repo = pname; + rev = version; + sha256 = "08i1l835zlzb3qmsnsd5vhsrr82li6fnp5jqxiybbqr5wjz67ssd"; + }; + + 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..56ebe1873ae6 --- /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..d16c1bb944a2 --- /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..cd0f65d4d454 --- /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.6"; + + src = fetchurl { + sha256 = "1xvzkxkq1sq33r2s4f1967f4gnca4xw411sbapdkx541f856w9w9"; + 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..4534beb20c39 --- /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 + 2.1.4 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..9887e34d7354 --- /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..e9c3acdc11d1 --- /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..3fd447b8b096 --- /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 ]; + }; + }; + +} |