summary refs log tree commit diff
path: root/maintainers
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-16 18:34:32 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-16 18:34:32 +0200
commit15c1ca9d2111ba5796c45881d654d1726e9d8e0d (patch)
treecdd03c5d2c9a576ac33b83b797ad84f0d66b0fa9 /maintainers
parentccda14879efd818b17a0b85bb0c3a512c1ebf84d (diff)
downloadnixlib-15c1ca9d2111ba5796c45881d654d1726e9d8e0d.tar
nixlib-15c1ca9d2111ba5796c45881d654d1726e9d8e0d.tar.gz
nixlib-15c1ca9d2111ba5796c45881d654d1726e9d8e0d.tar.bz2
nixlib-15c1ca9d2111ba5796c45881d654d1726e9d8e0d.tar.lz
nixlib-15c1ca9d2111ba5796c45881d654d1726e9d8e0d.tar.xz
nixlib-15c1ca9d2111ba5796c45881d654d1726e9d8e0d.tar.zst
nixlib-15c1ca9d2111ba5796c45881d654d1726e9d8e0d.zip
nix-generate-from-cpan: Hack to handle non-UTF-8 META.yml files
Diffstat (limited to 'maintainers')
-rw-r--r--maintainers/scripts/nix-generate-from-cpan.nix2
-rwxr-xr-xmaintainers/scripts/nix-generate-from-cpan.pl10
2 files changed, 9 insertions, 3 deletions
diff --git a/maintainers/scripts/nix-generate-from-cpan.nix b/maintainers/scripts/nix-generate-from-cpan.nix
index 59a9b89bbe7c..fffe11f1a5fc 100644
--- a/maintainers/scripts/nix-generate-from-cpan.nix
+++ b/maintainers/scripts/nix-generate-from-cpan.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "nix-generate-from-cpan-1";
 
-  buildInputs = [ makeWrapper perl perlPackages.YAML perlPackages.JSON ];
+  buildInputs = [ makeWrapper perl perlPackages.YAMLLibYAML perlPackages.JSON ];
 
   unpackPhase = "true";
   buildPhase = "true";
diff --git a/maintainers/scripts/nix-generate-from-cpan.pl b/maintainers/scripts/nix-generate-from-cpan.pl
index 86749bcac690..1eb6c51a16af 100755
--- a/maintainers/scripts/nix-generate-from-cpan.pl
+++ b/maintainers/scripts/nix-generate-from-cpan.pl
@@ -2,7 +2,7 @@
 
 use strict;
 use CPANPLUS::Backend;
-use YAML;
+use YAML::XS;
 use JSON;
 
 my $module_name = $ARGV[0];
@@ -50,7 +50,13 @@ print STDERR "unpacked to: $pkg_path\n";
 
 my $meta;
 if (-e "$pkg_path/META.yml") {
-    $meta = YAML::LoadFile("$pkg_path/META.yml");
+    eval {
+	$meta = YAML::XS::LoadFile("$pkg_path/META.yml");
+    };
+    if ($@) {
+	system("iconv -f windows-1252 -t utf-8 '$pkg_path/META.yml' > '$pkg_path/META.yml.tmp'");
+	$meta = YAML::XS::LoadFile("$pkg_path/META.yml.tmp");
+    }
 }
 
 print STDERR "metadata: ", encode_json($meta), "\n";