~postmarketos/pmbootstrap-devel

pmbootstrap: init: allow all locales v1 APPLIED

Oliver Smith: 1
 init: allow all locales

 3 files changed, 333 insertions(+), 28 deletions(-)
#1000907 .build.yml failed
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~postmarketos/pmbootstrap-devel/patches/41616/mbox | git am -3
Learn more about email & git

[PATCH pmbootstrap] init: allow all locales Export this patch

Replace the (outdated) list of locales supported in musl with a list
from all locales supported by glibc. The list of locales is taken from
the patch that is applied to musl-locales in alpine.
Related: https://gitlab.alpinelinux.org/alpine/aports/-/commit/2dc905dc773cbf7083dad72b33affa8f92f6e6fb
Closes: pmbootstrap issue 1997
---
 pmb/config/__init__.py |  20 ---
 pmb/config/init.py     |  37 +++--
 pmb/data/locales       | 304 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 333 insertions(+), 28 deletions(-)
 create mode 100644 pmb/data/locales

diff --git a/pmb/config/__init__.py b/pmb/config/__init__.py
index fae75b17..5bf9c06e 100644
--- a/pmb/config/__init__.py
+++ b/pmb/config/__init__.py
@@ -158,26 +158,6 @@ if "NO_COLOR" in os.environ:
    for style in styles.keys():
        styles[style] = ""


# List of available locales taken from musl-locales package; see
# https://pkgs.alpinelinux.org/contents?name=musl-locales
locales = [
    "C.UTF-8",
    "ch_DE.UTF-8",
    "de_CH.UTF-8",
    "de_DE.UTF-8",
    "en_GB.UTF-8",
    "en_US.UTF-8",
    "es_ES.UTF-8",
    "fr_FR.UTF-8",
    "it_IT.UTF-8",
    "nb_NO.UTF-8",
    "nl_NL.UTF-8",
    "pt_BR.UTF-8",
    "ru_RU.UTF-8",
    "sv_SE.UTF-8"
]

# Supported filesystems and their fstools packages
filesystems = {"btrfs": "btrfs-progs",
               "ext2": "e2fsprogs",
diff --git a/pmb/config/init.py b/pmb/config/init.py
index 56386a34..37183c1f 100644
--- a/pmb/config/init.py
+++ b/pmb/config/init.py
@@ -620,15 +620,36 @@ def ask_build_pkgs_on_install(args):
                                   default=args.build_pkgs_on_install)


def get_locales():
    ret = []
    list_path = f"{pmb.config.pmb_src}/pmb/data/locales"
    with open(list_path, "r") as handle:
        for line in handle:
            ret += [line.rstrip()]
    return ret


def ask_for_locale(args):
    locales = pmb.config.locales
    logging.info(f"Available locales ({len(locales)}): {', '.join(locales)}")
    return pmb.helpers.cli.ask("Choose default locale for installation",
                               choices=None,
                               default=args.locale,
                               lowercase_answer=False,
                               validation_regex="|".join(locales),
                               complete=locales)
    locales = get_locales()
    logging.info("Choose your preferred locale, like e.g. en_US. Only UTF-8"
                 " is supported, it gets appended automatically. Use"
                 " tab-completion if needed.")

    while True:
        ret = pmb.helpers.cli.ask("Locale",
                                  choices=None,
                                  default=args.locale.replace(".UTF-8", ""),
                                  lowercase_answer=False,
                                  complete=locales)
        ret = ret.replace(".UTF-8", "")
        if ret not in locales:
            logging.info("WARNING: this locale is not in the list of known"
                         " valid locales.")
            if pmb.helpers.cli.ask() != "y":
                # Ask again
                continue

        return f"{ret}.UTF-8"


def frontend(args):
diff --git a/pmb/data/locales b/pmb/data/locales
new file mode 100644
index 00000000..8573d76b
--- /dev/null
+++ b/pmb/data/locales
@@ -0,0 +1,304 @@
C
a_DJ
aa_ER
aa_ET
af_ZA
agr_PE
ak_GH
am_ET
an_ES
anp_IN
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IN
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SS
ar_SY
ar_TN
ar_YE
as_IN
ast_ES
ayc_PE
az_AZ
az_IR
be_BY
bem_ZM
ber_DZ
ber_MA
bg_BG
bhb_IN
bho_IN
bho_NP
bi_VU
bn_BD
bn_IN
bo_CN
bo_IN
br_FR
brx_IN
bs_BA
byn_ER
ca_AD
ca_ES
ca_FR
ca_IT
ce_RU
ch_DE
chr_US
cmn_TW
crh_UA
cs_CZ
csb_PL
cv_RU
cy_GB
da_DK
de_AT
de_BE
de_CH
de_DE
de_IT
de_LI
de_LU
doi_IN
dsb_DE
dv_MV
dz_BT
el_CY
el_GR
en_AG
en_AU
en_BW
en_CA
en_DK
en_GB
en_HK
en_IE
en_IL
en_IN
en_NG
en_NZ
en_PH
en_SC
en_SG
en_US
en_ZA
en_ZM
en_ZW
eo
es_AR
es_BO
es_CL
es_CO
es_CR
es_CU
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et_EE
eu_ES
fa_IR
ff_SN
fi_FI
fil_PH
fo_FO
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
fur_IT
fy_DE
fy_NL
ga_IE
gd_GB
gez_ER
gez_ET
gl_ES
gu_IN
gv_GB
ha_NG
hak_TW
he_IL
hi_IN
hif_FJ
hne_IN
hr_HR
hsb_DE
ht_HT
hu_HU
hy_AM
ia_FR
id_ID
ig_NG
ik_CA
is_IS
it_CH
it_IT
iu_CA
ja_JP
ka_GE
kab_DZ
kk_KZ
kl_GL
km_KH
kn_IN
ko_KR
kok_IN
ks_IN
ku_TR
kw_GB
ky_KG
lb_LU
lg_UG
li_BE
li_NL
lij_IT
ln_CD
lo_LA
lt_LT
lv_LV
lzh_TW
mag_IN
mai_IN
mai_NP
mfe_MU
mg_MG
mhr_RU
mi_NZ
miq_NI
mjw_IN
mk_MK
ml_IN
mn_MN
mni_IN
mnw_MM
mr_IN
ms_MY
mt_MT
my_MM
nan_TW
nb_NO
nds_DE
nds_NL
ne_NP
nhn_MX
niu_NU
niu_NZ
nl_AW
nl_BE
nl_NL
nn_NO
nr_ZA
nso_ZA
oc_FR
om_ET
om_KE
or_IN
os_RU
pa_IN
pa_PK
pap_AW
pap_CW
pl_PL
ps_AF
pt_BR
pt_PT
quz_PE
raj_IN
ro_RO
ru_RU
ru_UA
rw_RW
sa_IN
sah_RU
sat_IN
sc_IT
sd_IN
se_NO
sgs_LT
shn_MM
shs_CA
si_LK
sid_ET
sk_SK
sl_SI
sm_WS
so_DJ
so_ET
so_KE
so_SO
sq_AL
sq_MK
sr_ME
sr_RS
ss_ZA
st_ZA
sv_FI
sv_SE
sw_KE
sw_TZ
szl_PL
ta_IN
ta_LK
tcy_IN
te_IN
tg_TJ
th_TH
the_NP
ti_ER
ti_ET
tig_ER
tk_TM
tl_PH
tn_ZA
to_TO
tpi_PG
tr_CY
tr_TR
ts_ZA
tt_RU
ug_CN
uk_UA
unm_US
ur_IN
ur_PK
uz_UZ
ve_ZA
vi_VN
wa_BE
wae_CH
wal_ET
wo_SN
xh_ZA
yi_US
yo_NG
yue_HK
yuw_PG
zh_CN
zh_HK
zh_SG
zh_TW
zu_ZA
-- 
2.40.1
pmbootstrap/patches/.build.yml: FAILED in 16m30s

[init: allow all locales][0] from [Oliver Smith][1]

[0]: https://lists.sr.ht/~postmarketos/pmbootstrap-devel/patches/41616
[1]: mailto:ollieparanoid@postmarketos.org

✗ #1000907 FAILED pmbootstrap/patches/.build.yml https://builds.sr.ht/~postmarketos/job/1000907
Certainly better than before!

Reviewed-by: Pablo Correa Gómez <ablocorrea@hotmail.com>

El Sat, 03-06-2023 a las 18:05 +0200, Oliver Smith escribió: