[pve-devel] [PATCH 3/3] Fix #1527: Use iso-codes country naming
Rhonda D'Vine
rhonda at proxmox.com
Wed Sep 12 14:52:22 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.
Signed-off-by: Rhonda D'Vine <rhonda at proxmox.com>
---
country.pl | 18 ++++++++++++------
debian/control | 1 +
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/country.pl b/country.pl
index 277fc34..b149b5b 100755
--- a/country.pl
+++ b/country.pl
@@ -4,6 +4,7 @@ use strict;
use warnings;
use PVE::Tools;
+use JSON;
# see also: http://en.wikipedia.org/wiki/Keyboard_layout
#
@@ -14,14 +15,19 @@ use PVE::Tools;
my $country = {};
-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;
- }
+open (TMP, "</usr/share/iso-codes/json/iso_3166-1.json");
+my $json_data;
+{
+ local $/;
+ $json_data = <TMP>;
}
close (TMP);
+$json_data = from_json($json_data);
+
+foreach my $entry (@{$json_data->{'3166-1'}}) {
+ $country->{lc($entry->{'alpha_2'})} = defined $entry->{'common_name'} ?
+ $entry->{'common_name'} : $entry->{'name'};
+}
# 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