[pve-devel] [PATCH v3 installer] Fix #1527: Use 'iso-codes' package country naming

Rhonda D'Vine rhonda at proxmox.com
Mon Sep 17 10:00:17 CEST 2018


The iso 3166-1 information in the iso-codes package seems to be more
up to par than the one that was used from tzdata.  Also remove
obsolete comments.

Signed-off-by: Rhonda D'Vine <rhonda at proxmox.com>
---
 country.pl     | 20 +++++---------------
 debian/control |  1 +
 2 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/country.pl b/country.pl
index 277fc34..b1a2d62 100755
--- a/country.pl
+++ b/country.pl
@@ -4,24 +4,14 @@ use strict;
 use warnings;
 
 use PVE::Tools;
+use JSON;
 
-# see also: http://en.wikipedia.org/wiki/Keyboard_layout
-#
-# country codes from: /usr/share/zoneinfo/iso3166.tab
-# timezones from: /usr/share/zoneinfo/zone.tab
-# keymaps: find /usr/share/keymaps/i386/ -type f -name '*.kmap.gz'
-# x11 layouts: /usr/share/X11/xkb/rules/xorg.lst
+# country codes from:
+my $country_codes_file = "/usr/share/iso-codes/json/iso_3166-1.json";
 
-my $country = {};
+my $iso_3166_codes = from_json(PVE::Tools::file_get_contents($country_codes_file, 64 * 1024));
 
-my $line;
-open (TMP, "</usr/share/zoneinfo/iso3166.tab");
-while (defined ($line = <TMP>)) {
-    if ($line =~ m/^([A-Z][A-Z])\s+(.*\S)\s*$/) {
-	$country->{lc($1)} = $2;
-    }
-}
-close (TMP);
+my $country = { map { lc($_->{'alpha_2'}) => $_->{'common_name'} // $_->{'name'} } @{$iso_3166_codes->{'3166-1'}} };
 
 # we need mappings for X11, console, and kvm vnc
 
diff --git a/debian/control b/debian/control
index 60bc8b0..7ab4515 100644
--- a/debian/control
+++ b/debian/control
@@ -3,6 +3,7 @@ Section: perl
 Priority: optional
 Maintainer: Proxmox Support Team <support at proxmox.com>
 Build-Depends: debhelper (>= 9),
+               iso-codes,
                libpve-common-perl,
                librsvg2-bin,
                perl (>= 5.10.0-19),
-- 
2.11.0





More information about the pve-devel mailing list