summary refs log tree commit diff
path: root/pkgs/development/perl-modules
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2019-11-24 17:25:07 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2019-11-24 17:25:07 +0000
commitd0d5136cce5e0cbe2305c53090bd4bd886114746 (patch)
tree70092947536a3c65e215df9df20e571e34652f7a /pkgs/development/perl-modules
parent9b090ccbca3f7dd26d91db06e96e8bf8282c37ca (diff)
parent195c263a812dec532656dcfd5d0360458cdc93fd (diff)
downloadnixpkgs-d0d5136cce5e0cbe2305c53090bd4bd886114746.tar
nixpkgs-d0d5136cce5e0cbe2305c53090bd4bd886114746.tar.gz
nixpkgs-d0d5136cce5e0cbe2305c53090bd4bd886114746.tar.bz2
nixpkgs-d0d5136cce5e0cbe2305c53090bd4bd886114746.tar.lz
nixpkgs-d0d5136cce5e0cbe2305c53090bd4bd886114746.tar.xz
nixpkgs-d0d5136cce5e0cbe2305c53090bd4bd886114746.tar.zst
nixpkgs-d0d5136cce5e0cbe2305c53090bd4bd886114746.zip
Merge remote-tracking branch 'upstream/master' into wrapper-pname-support
Diffstat (limited to 'pkgs/development/perl-modules')
-rw-r--r--pkgs/development/perl-modules/BerkeleyDB/default.nix16
-rw-r--r--pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix27
-rw-r--r--pkgs/development/perl-modules/DBD-Oracle/default.nix20
-rw-r--r--pkgs/development/perl-modules/DBD-Pg/default.nix25
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/default.nix32
-rw-r--r--pkgs/development/perl-modules/DBD-mysql/default.nix18
-rw-r--r--pkgs/development/perl-modules/DBD-sybase/default.nix18
-rw-r--r--pkgs/development/perl-modules/DB_File/default.nix20
-rw-r--r--pkgs/development/perl-modules/Device-OUI-1.04-hash.patch11
-rw-r--r--pkgs/development/perl-modules/Mozilla-LDAP/default.nix17
-rw-r--r--pkgs/development/perl-modules/Percona-Toolkit/default.nix20
-rw-r--r--pkgs/development/perl-modules/Po4a/default.nix37
-rw-r--r--pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix31
-rw-r--r--pkgs/development/perl-modules/alien-sdl.patch30
-rw-r--r--pkgs/development/perl-modules/generic/builder.sh11
-rw-r--r--pkgs/development/perl-modules/generic/default.nix3
-rw-r--r--pkgs/development/perl-modules/ham/default.nix42
-rw-r--r--pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch51
-rw-r--r--pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch21
-rw-r--r--pkgs/development/perl-modules/strip-nondeterminism/default.nix33
20 files changed, 221 insertions, 262 deletions
diff --git a/pkgs/development/perl-modules/BerkeleyDB/default.nix b/pkgs/development/perl-modules/BerkeleyDB/default.nix
deleted file mode 100644
index b23db8e1edf..00000000000
--- a/pkgs/development/perl-modules/BerkeleyDB/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{buildPerlPackage, fetchurl, db}:
-
-buildPerlPackage {
-  pname = "BerkeleyDB";
-  version = "0.61";
-
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/P/PM/PMQS/BerkeleyDB-0.61.tar.gz";
-    sha256 = "0l65v301cz6a9dxcw6a4ps2mnr5zq358yn81favap6i092krggiz";
-  };
-
-  preConfigure = ''
-    echo "LIB = ${db.out}/lib" > config.in
-    echo "INCLUDE = ${db.dev}/include" >> config.in
-  '';
-}
diff --git a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
deleted file mode 100644
index 1163b6cb15b..00000000000
--- a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ fetchurl, buildPerlPackage, zlib, stdenv }:
-
-buildPerlPackage {
-  pname = "Compress-Raw-Zlib";
-  version = "2.086";
-
-  src = fetchurl {
-    url = mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.086.tar.gz;
-    sha256 = "0va93wc968p4l2ql0k349bz189l2vbs09bpn865cvc36amqxwv9z";
-  };
-
-  preConfigure = ''
-    cat > config.in <<EOF
-      BUILD_ZLIB   = False
-      INCLUDE      = ${zlib.dev}/include
-      LIB          = ${zlib.out}/lib
-      OLD_ZLIB     = False
-      GZIP_OS_CODE = AUTO_DETECT
-    EOF
-  '';
-
-  doCheck = !stdenv.isDarwin;
-
-  meta = {
-    license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-  };
-}
diff --git a/pkgs/development/perl-modules/DBD-Oracle/default.nix b/pkgs/development/perl-modules/DBD-Oracle/default.nix
deleted file mode 100644
index 0658dd4248d..00000000000
--- a/pkgs/development/perl-modules/DBD-Oracle/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, buildPerlPackage, DBI, TestNoWarnings, oracle-instantclient }:
-
-buildPerlPackage {
-  pname = "DBD-Oracle";
-  version = "1.80";
-
-  src = fetchurl {
-    url = mirror://cpan/authors/id/Z/ZA/ZARQUON/DBD-Oracle-1.76.tar.gz;
-    sha256 = "1wym2kc8b31qa1zb0dgyy3w4iqlk1faw36gy9hkpj895qr1pznxn";
-  };
-
-  ORACLE_HOME = "${oracle-instantclient.lib}/lib";
-
-  buildInputs = [ TestNoWarnings oracle-instantclient ] ;
-  propagatedBuildInputs = [ DBI ];
-
-  postBuild = stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -add_rpath "${oracle-instantclient.lib}/lib" blib/arch/auto/DBD/Oracle/Oracle.bundle
-  '';
-}
diff --git a/pkgs/development/perl-modules/DBD-Pg/default.nix b/pkgs/development/perl-modules/DBD-Pg/default.nix
deleted file mode 100644
index 33979121538..00000000000
--- a/pkgs/development/perl-modules/DBD-Pg/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl, buildPerlPackage, DBI, postgresql }:
-
-buildPerlPackage {
-  pname = "DBD-Pg";
-  version = "3.7.4";
-
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.7.4.tar.gz";
-    sha256 = "0gkqlvbmzbdm0g4k328nlkjdg3wrjm5i2n9jxj1i8sqxkm79rylz";
-  };
-
-  buildInputs = [ postgresql ];
-  propagatedBuildInputs = [ DBI ];
-
-  makeMakerFlags = "POSTGRES_HOME=${postgresql}";
-
-  # tests freeze in a sandbox
-  doCheck = false;
-
-  meta = {
-    description = "DBI PostgreSQL interface";
-    license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/perl-modules/DBD-SQLite/default.nix b/pkgs/development/perl-modules/DBD-SQLite/default.nix
deleted file mode 100644
index 5a24687c2b0..00000000000
--- a/pkgs/development/perl-modules/DBD-SQLite/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, buildPerlPackage, perl, DBI, sqlite }:
-
-buildPerlPackage {
-  pname = "DBD-SQLite";
-  version = "1.62";
-
-  src = fetchurl {
-    url = mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.62.tar.gz;
-    sha256 = "0p78ri1q6xpc1i98i6mlriv8n66iz8r5r11dlsknjm4y58rfz0mx";
-  };
-
-  propagatedBuildInputs = [ DBI ];
-  buildInputs = [ sqlite ];
-
-  patches = [
-    # Support building against our own sqlite.
-    ./external-sqlite.patch
-  ];
-
-  makeMakerFlags = "SQLITE_INC=${sqlite.dev}/include SQLITE_LIB=${sqlite.out}/lib";
-
-  postInstall = ''
-    # Get rid of a pointless copy of the SQLite sources.
-    rm -rf $out/${perl.libPrefix}/*/*/auto/share
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Self Contained SQLite RDBMS in a DBI Driver";
-    license = with licenses; [ artistic1 gpl1Plus ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/perl-modules/DBD-mysql/default.nix b/pkgs/development/perl-modules/DBD-mysql/default.nix
deleted file mode 100644
index 6eed57c4e7c..00000000000
--- a/pkgs/development/perl-modules/DBD-mysql/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ fetchurl, buildPerlPackage, DBI, DevelChecklib, mysql }:
-
-buildPerlPackage {
-  pname = "DBD-mysql";
-  version = "4.050";
-
-  src = fetchurl {
-    url = mirror://cpan/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz;
-    sha256 = "0y4djb048i09dk19av7mzfb3khr72vw11p3ayw2p82jsy4gm8j2g";
-  };
-
-  buildInputs = [ mysql.connector-c DevelChecklib ] ;
-  propagatedBuildInputs = [ DBI ];
-
-  doCheck = false;
-
-#  makeMakerFlags = "MYSQL_HOME=${mysql}";
-}
diff --git a/pkgs/development/perl-modules/DBD-sybase/default.nix b/pkgs/development/perl-modules/DBD-sybase/default.nix
deleted file mode 100644
index e863663fc94..00000000000
--- a/pkgs/development/perl-modules/DBD-sybase/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ fetchurl, buildPerlPackage, DBI, freetds }:
-
-buildPerlPackage {
-  pname = "DBD-Sybase";
-  version = "1.16";
-
-  src = fetchurl {
-    url = mirror://cpan/authors/id/M/ME/MEWP/DBD-Sybase-1.16.tar.gz;
-    sha256 = "1k6n261nrrcll9wxn5xwi4ibpavqv1il96687k62mbpznzl2gx37";
-  };
-
-  SYBASE = freetds;
-
-  buildInputs = [ freetds ] ;
-  propagatedBuildInputs = [ DBI ];
-
-  doCheck = false;
-}
diff --git a/pkgs/development/perl-modules/DB_File/default.nix b/pkgs/development/perl-modules/DB_File/default.nix
deleted file mode 100644
index d63e3a48727..00000000000
--- a/pkgs/development/perl-modules/DB_File/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{fetchurl, buildPerlPackage, db}:
-
-buildPerlPackage {
-  pname = "DB_File";
-  version = "1.851";
-
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/P/PM/PMQS/DB_File-1.851.tar.gz";
-    sha256 = "1j276mng1nwxxdxnb3my427s5lb6zlnssizcnxricnvaa170kdv8";
-  };
-
-  preConfigure = ''
-    cat > config.in <<EOF
-    PREFIX = size_t
-    HASH = u_int32_t
-    LIB = ${db.out}/lib
-    INCLUDE = ${db.dev}/include
-    EOF
-  '';
-}
diff --git a/pkgs/development/perl-modules/Device-OUI-1.04-hash.patch b/pkgs/development/perl-modules/Device-OUI-1.04-hash.patch
new file mode 100644
index 00000000000..6133ab67475
--- /dev/null
+++ b/pkgs/development/perl-modules/Device-OUI-1.04-hash.patch
@@ -0,0 +1,11 @@
+--- Device-OUI-1.04/lib/Device/OUI.pm.orig	2009-03-07 02:23:17.000000000 +0000
++++ Device-OUI-1.04/lib/Device/OUI.pm	2016-08-09 08:19:00.642799675 +0100
+@@ -54,7 +54,7 @@
+         for my $x ( keys %hash ) {
+             if ( not defined $hash{ $x } ) { $hash{ $x } = '' }
+         }
+-        return $handle->{ $oui } = join( "\0", %hash );
++        return $handle->{ $oui } = join( "\0", map {$_,$hash{$_}} sort keys %hash );
+     } elsif ( my $x = $handle->{ $oui } ) {
+         return { split( "\0", $x ) };
+     }
diff --git a/pkgs/development/perl-modules/Mozilla-LDAP/default.nix b/pkgs/development/perl-modules/Mozilla-LDAP/default.nix
new file mode 100644
index 00000000000..41025e26f97
--- /dev/null
+++ b/pkgs/development/perl-modules/Mozilla-LDAP/default.nix
@@ -0,0 +1,17 @@
+{ lib, fetchurl, openldap, buildPerlPackage }:
+
+buildPerlPackage rec {
+  pname = "Mozilla-Ldap";
+  version = "1.5.3";
+  USE_OPENLDAP = 1;
+  LDAPSDKDIR = openldap.dev;
+  LDAPSDKLIBDIR = "${openldap.out}/lib";
+  src = fetchurl {
+    url = "https://ftp.mozilla.org/pub/directory/perldap/releases/${version}/src/perl-mozldap-${version}.tar.gz";
+    sha256 = "0s0albdw0zvg3w37s7is7gddr4mqwicjxxsy400n1p96l7ipnw4x";
+  };
+  meta = {
+    description = "Mozilla's ldap client library";
+    license = with lib.licenses; [ mpl20 lgpl21Plus gpl2Plus ];
+  };
+}
diff --git a/pkgs/development/perl-modules/Percona-Toolkit/default.nix b/pkgs/development/perl-modules/Percona-Toolkit/default.nix
new file mode 100644
index 00000000000..3b19b64367d
--- /dev/null
+++ b/pkgs/development/perl-modules/Percona-Toolkit/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchFromGitHub, buildPerlPackage, DBDmysql, DBI, IOSocketSSL, TermReadKey }:
+
+buildPerlPackage {
+  pname = "Percona-Toolkit";
+  version = "3.0.12";
+  src = fetchFromGitHub {
+    owner = "percona";
+    repo = "percona-toolkit";
+    rev = "3.0.12";
+    sha256 = "0xk4h4dzl80kf97lbx0nznx9ajrb6kkg7k3iwca3rj6f3rqggv9y";
+  };
+  outputs = [ "out" ];
+  buildInputs = [ DBDmysql DBI IOSocketSSL TermReadKey ];
+  meta = {
+    description = ''Collection of advanced command-line tools to perform a variety of MySQL and system tasks.'';
+    homepage = http://www.percona.com/software/percona-toolkit;
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/development/perl-modules/Po4a/default.nix b/pkgs/development/perl-modules/Po4a/default.nix
new file mode 100644
index 00000000000..94d83845e29
--- /dev/null
+++ b/pkgs/development/perl-modules/Po4a/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchurl, docbook_xsl, docbook_xsl_ns, gettext, libxslt, glibcLocales, docbook_xml_dtd_412, docbook_sgml_dtd_41, texlive, opensp
+, perl, buildPerlPackage, ModuleBuild, TextWrapI18N, LocaleGettext, TermReadKey, SGMLSpm, UnicodeLineBreak, PodParser, YAMLTiny }:
+
+buildPerlPackage rec {
+  pname = "po4a";
+  version = "0.55";
+  src = fetchurl {
+    url = "https://github.com/mquinson/po4a/releases/download/v${version}/po4a-${version}.tar.gz";
+    sha256 = "1qss4q5df3nsydsbggb7gg50bn0kdxq5wn8riqm9zwkiq6a4bifg";
+  };
+  nativeBuildInputs = [ docbook_xsl docbook_xsl_ns ModuleBuild ];
+  propagatedBuildInputs = [ TextWrapI18N LocaleGettext SGMLSpm UnicodeLineBreak PodParser YAMLTiny ];
+  # TODO: TermReadKey was temporarily removed from propagatedBuildInputs to unfreeze the build
+  buildInputs = [ gettext libxslt glibcLocales docbook_xml_dtd_412 docbook_sgml_dtd_41 texlive.combined.scheme-basic opensp ];
+  LC_ALL = "en_US.UTF-8";
+  SGML_CATALOG_FILES = "${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml";
+  preConfigure = ''
+    touch Makefile.PL
+    export PERL_MB_OPT="--install_base=$out --prefix=$out"
+  '';
+  buildPhase = "perl Build.PL --install_base=$out --install_path=\"lib=$out/${perl.libPrefix}\"; ./Build build";
+  checkPhase = ''
+    export SGML_CATALOG_FILES=${docbook_sgml_dtd_41}/sgml/dtd/docbook-4.1/docbook.cat
+    ./Build test
+  '';
+  installPhase = ''
+    ./Build install
+    for f in $out/bin/*; do
+      substituteInPlace $f --replace "#! /usr/bin/env perl" "#!${perl}/bin/perl"
+    done
+  '';
+  meta = {
+    homepage = "https://po4a.org/";
+    description = "Tools for helping translation of documentation";
+    license = lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix b/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
new file mode 100644
index 00000000000..6a3ed466e8f
--- /dev/null
+++ b/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, buildPerlPackage, shortenPerlShebang, LWP, LWPProtocolHttps, DataDump, JSON }:
+
+buildPerlPackage rec {
+  pname = "WWW-YoutubeViewer";
+  version = "3.3.0";
+
+  src = fetchFromGitHub {
+    owner  = "trizen";
+    repo   = "youtube-viewer";
+    rev    = version;
+    sha256 = "15xyrwv08fw8jmpydwzks26ipxnzliwddgyjcfqiaj0p7lwlhmx1";
+  };
+
+  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+  propagatedBuildInputs = [
+    LWP
+    LWPProtocolHttps
+    DataDump
+    JSON
+  ];
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/youtube-viewer
+  '';
+
+  meta = {
+    description = "A lightweight application for searching and streaming videos from YouTube";
+    homepage = https://github.com/trizen/youtube-viewer;
+    maintainers = with stdenv.lib.maintainers; [ woffs ];
+    license = with stdenv.lib.licenses; [ artistic2 ];
+  };
+}
diff --git a/pkgs/development/perl-modules/alien-sdl.patch b/pkgs/development/perl-modules/alien-sdl.patch
new file mode 100644
index 00000000000..b00f7dcce81
--- /dev/null
+++ b/pkgs/development/perl-modules/alien-sdl.patch
@@ -0,0 +1,30 @@
+diff --git a/inc/My/Builder/Unix.pm b/inc/My/Builder/Unix.pm
+index 15291d5..5c5ab24 100644
+--- a/inc/My/Builder/Unix.pm
++++ b/inc/My/Builder/Unix.pm
+@@ -48,7 +48,7 @@ sub get_additional_libs {
+ 
+ sub can_build_binaries_from_sources {
+   my $self = shift;
+-  return 1; # yes we can
++  return 0; # no we can't
+ }
+ 
+ sub build_binaries {
+diff --git a/t/004_get_header_version.t b/t/004_get_header_version.t
+index d4146ff..27f53ea 100644
+--- a/t/004_get_header_version.t
++++ b/t/004_get_header_version.t
+@@ -1,8 +1,11 @@
+ # t/004_config.t
+ 
+-use Test::More tests => 1;
++use Test::More;
+ use Alien::SDL;
+ 
++Test::More::plan( skip_all => 'NixOS doesn\'t have SDL headers in this location' );
++
++
+ like( Alien::SDL->get_header_version('SDL_version.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_version.h" );
+ #like( Alien::SDL->get_header_version('SDL_net.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_net.h" );
+ #like( Alien::SDL->get_header_version('SDL_image.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_image.h" );
diff --git a/pkgs/development/perl-modules/generic/builder.sh b/pkgs/development/perl-modules/generic/builder.sh
index 253e7e0bdc7..9b42401fc4d 100644
--- a/pkgs/development/perl-modules/generic/builder.sh
+++ b/pkgs/development/perl-modules/generic/builder.sh
@@ -25,17 +25,6 @@ preConfigure() {
     perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags PERL=$(type -P perl) FULLPERL=\"$fullperl/bin/perl\"
 }
 
-
-postFixup() {
-    # If a user installs a Perl package, she probably also wants its
-    # dependencies in the user environment (since Perl modules don't
-    # have something like an RPATH, so the only way to find the
-    # dependencies is to have them in the PERL5LIB variable).
-    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
-}
-
 if test -n "$perlPreHook"; then
     eval "$perlPreHook"
 fi
diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix
index 714b693d276..79c7919a354 100644
--- a/pkgs/development/perl-modules/generic/default.nix
+++ b/pkgs/development/perl-modules/generic/default.nix
@@ -22,9 +22,6 @@ toPerlModule(stdenv.mkDerivation (
     # Prevent CPAN downloads.
     PERL_AUTOINSTALL = "--skipdeps";
 
-    # Avoid creating perllocal.pod, which contains a timestamp
-    installTargets = "pure_install";
-
     # From http://wiki.cpantesters.org/wiki/CPANAuthorNotes: "allows
     # authors to skip certain tests (or include certain tests) when
     # the results are not being monitored by a human being."
diff --git a/pkgs/development/perl-modules/ham/default.nix b/pkgs/development/perl-modules/ham/default.nix
new file mode 100644
index 00000000000..637e6ac22dd
--- /dev/null
+++ b/pkgs/development/perl-modules/ham/default.nix
@@ -0,0 +1,42 @@
+{ lib, buildPerlPackage, fetchFromGitHub, makeWrapper, openssh, GitRepository, URI, XMLMini }:
+
+buildPerlPackage {
+  pname = "ham-unstable";
+  version = "2019-01-22";
+
+  src = fetchFromGitHub {
+    owner = "kernkonzept";
+    repo = "ham";
+    rev = "37c2e4e8b8bd779ba0f8c48a3c6ba34bad860b92";
+    sha256 = "0h5r5256niskypl4g1j2573wqi0nn0mai5p04zsa06xrgyjqcy2j";
+  };
+
+  outputs = [ "out" ];
+
+  buildInputs = [ makeWrapper ];
+  propagatedBuildInputs = [ openssh GitRepository URI XMLMini ];
+
+  preConfigure = ''
+    patchShebangs .
+    touch Makefile.PL
+    rm -f Makefile
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib $out/bin
+    cp -r . $out/lib/ham
+
+    makeWrapper $out/lib/ham/ham $out/bin/ham --argv0 ham \
+      --prefix PATH : ${openssh}/bin
+  '';
+
+  doCheck = false;
+
+  meta = {
+    description = "A tool to manage big projects consisting of multiple loosely-coupled git repositories";
+    homepage = https://github.com/kernkonzept/ham;
+    license = "unknown"; # should be gpl2, but not quite sure
+    maintainers = with lib.maintainers; [ aw ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch b/pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch
deleted file mode 100644
index 0568aeb56bf..00000000000
--- a/pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -ru stanaka-net-amazon-ec2-bc66577-orig/lib/Net/Amazon/EC2/RunningInstances.pm stanaka-net-amazon-ec2-bc66577/lib/Net/Amazon/EC2/RunningInstances.pm
---- stanaka-net-amazon-ec2-bc66577-orig/lib/Net/Amazon/EC2/RunningInstances.pm	2011-06-13 19:45:30.000000000 -0400
-+++ stanaka-net-amazon-ec2-bc66577/lib/Net/Amazon/EC2/RunningInstances.pm	2011-10-27 17:25:29.000000000 -0400
-@@ -25,6 +25,10 @@
- This element remains empty until the instance enters a 
- running state.
- 
-+=item dns_name_v6 (optional)
-+
-+The public IPv6 address of the instance.
-+
- =item image_id (required)
- 
- The image id of the AMI currently running in this instance.
-@@ -134,6 +138,7 @@
- 
- has 'ami_launch_index'  	=> ( is => 'ro', isa => 'Str', required => 0 );
- has 'dns_name'          	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
-+has 'dns_name_v6'          	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
- has 'image_id'          	=> ( is => 'ro', isa => 'Str', required => 1 );
- has 'kernel_id'         	=> ( is => 'ro', isa => 'Maybe[Str]', required => 1 );
- has 'ramdisk_id'        	=> ( is => 'ro', isa => 'Maybe[Str]', required => 1 );
-diff -ru stanaka-net-amazon-ec2-bc66577-orig/lib/Net/Amazon/EC2.pm stanaka-net-amazon-ec2-bc66577/lib/Net/Amazon/EC2.pm
---- stanaka-net-amazon-ec2-bc66577-orig/lib/Net/Amazon/EC2.pm	2011-06-13 19:45:30.000000000 -0400
-+++ stanaka-net-amazon-ec2-bc66577/lib/Net/Amazon/EC2.pm	2011-10-27 17:25:29.000000000 -0400
-@@ -1691,6 +1691,7 @@
- 	my $self = shift;
- 	my %args = validate( @_, {
- 		InstanceId => { type => SCALAR | ARRAYREF, optional => 1 },
-+		Action => { default => "DescribeInstances" },
- 	});
- 	
- 	# If we have a array ref of instances lets split them out into their InstanceId.n format
-@@ -1703,7 +1704,8 @@
- 		}
- 	}
- 	
--	my $xml = $self->_sign(Action  => 'DescribeInstances', %args);
-+	my $xml = $self->_sign(Action => $args{Action}, %args);
-+	delete $args{Action};
- 	my $reservations;
- 	
- 	if ( grep { defined && length } $xml->{Errors} ) {
-@@ -1791,6 +1793,7 @@
- 				my $running_instance = Net::Amazon::EC2::RunningInstances->new(
- 					ami_launch_index		=> $instance_elem->{amiLaunchIndex},
- 					dns_name				=> $instance_elem->{dnsName},
-+					dns_name_v6			=> $instance_elem->{dnsNameV6},
- 					image_id				=> $instance_elem->{imageId},
- 					kernel_id				=> $instance_elem->{kernelId},
- 					ramdisk_id				=> $instance_elem->{ramdiskId},
diff --git a/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch b/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch
deleted file mode 100644
index 5d9aef7f70d..00000000000
--- a/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru -x '*~' Net-Amazon-EC2-0.14-orig/lib/Net/Amazon/EC2.pm Net-Amazon-EC2-0.14/lib/Net/Amazon/EC2.pm
---- Net-Amazon-EC2-0.14-orig/lib/Net/Amazon/EC2.pm	2010-02-02 02:26:58.000000000 +0100
-+++ Net-Amazon-EC2-0.14/lib/Net/Amazon/EC2.pm	2011-06-16 16:11:53.861341300 +0200
-@@ -1552,6 +1552,8 @@
- 			$args{"InstanceId." . $count} = $instance_id;
- 			$count++;
- 		}
-+	} else {
-+		$args{"InstanceId.1"} = delete $args{InstanceId};
- 	}
- 	
- 	my $xml = $self->_sign(Action  => 'DescribeInstances', %args);
-@@ -3739,6 +3741,8 @@
- 			$args{"InstanceId." . $count} = $instance_id;
- 			$count++;
- 		}
-+	} else {
-+		$args{"InstanceId.1"} = delete $args{InstanceId};
- 	}
- 	
- 	my $xml = $self->_sign(Action  => 'TerminateInstances', %args);	
diff --git a/pkgs/development/perl-modules/strip-nondeterminism/default.nix b/pkgs/development/perl-modules/strip-nondeterminism/default.nix
new file mode 100644
index 00000000000..3e638bfb193
--- /dev/null
+++ b/pkgs/development/perl-modules/strip-nondeterminism/default.nix
@@ -0,0 +1,33 @@
+{ lib, file, fetchFromGitLab, buildPerlPackage, ArchiveZip, ArchiveCpio }:
+
+buildPerlPackage rec {
+  pname = "strip-nondeterminism";
+  version = "1.0.0";
+
+  outputs = [ "out" "dev" ]; # no "devdoc"
+
+  src = fetchFromGitLab {
+    owner = "reproducible-builds";
+    repo = "strip-nondeterminism";
+    domain = "salsa.debian.org";
+    rev = version;
+    sha256 = "1pwar1fyadqxmvb7x4zyw2iawbi5lsfjcg0ps9n9rdjb6an7vv64";
+  };
+
+  # stray test failure
+  doCheck = false;
+
+  buildInputs = [ ArchiveZip ArchiveCpio file ];
+
+  perlPostHook = ''
+    # we don’t need the debhelper script
+    rm $out/bin/dh_strip_nondeterminism
+    rm $out/share/man/man1/dh_strip_nondeterminism.1.gz
+  '';
+
+  meta = with lib; {
+    description = "A Perl module for stripping bits of non-deterministic information";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pSub ];
+  };
+}