From 4224d280326e73d9feaaa10a88867472191fc04d Mon Sep 17 00:00:00 2001 From: Eric Fahlgren Date: Sat, 8 Feb 2025 04:47:04 -0800 Subject: [PATCH] build: apply-package-changes: handle long language identifiers Fix a bug in language packages name updates when the language identifier contains a dash. Examples are "zn-ch" or "zh-hant". Reported-by: @1715173329 Links: https://github.com/openwrt/asu/pull/1155#discussion_r1947690063 Signed-off-by: Eric Fahlgren --- asu/package_changes.py | 2 +- tests/test_package_changes.py | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/asu/package_changes.py b/asu/package_changes.py index d58abc9e..195a9e1d 100644 --- a/asu/package_changes.py +++ b/asu/package_changes.py @@ -65,5 +65,5 @@ def _add_if_missing(package): for i, package in enumerate(build_request.packages): for old, new in packages.items(): if package.startswith(old): - lang = package.rsplit("-", 1)[1] + lang = package.replace(old, "") build_request.packages[i] = f"{new}{lang}" diff --git a/tests/test_package_changes.py b/tests/test_package_changes.py index d453ddc2..c0a35e0e 100644 --- a/tests/test_package_changes.py +++ b/tests/test_package_changes.py @@ -85,25 +85,29 @@ def test_apply_package_changes_lang_packs(): "packages": [ "luci-i18n-opkg-ko", # Should be replaced "luci-i18n-xinetd-lt", # Should be untouched + "luci-i18n-opkg-zh-cn", # Should be replaced ], } ) - assert len(build_request.packages) == 2 + assert len(build_request.packages) == 3 assert build_request.packages[0] == "luci-i18n-opkg-ko" assert build_request.packages[1] == "luci-i18n-xinetd-lt" + assert build_request.packages[2] == "luci-i18n-opkg-zh-cn" apply_package_changes(build_request) - assert len(build_request.packages) == 3 + assert len(build_request.packages) == 4 assert build_request.packages[0] == "luci-i18n-opkg-ko" assert build_request.packages[1] == "luci-i18n-xinetd-lt" - assert build_request.packages[2] == "kmod-mt7622-firmware" + assert build_request.packages[2] == "luci-i18n-opkg-zh-cn" + assert build_request.packages[3] == "kmod-mt7622-firmware" build_request.version = "24.10.0-rc5" apply_package_changes(build_request) - assert len(build_request.packages) == 3 + assert len(build_request.packages) == 4 assert build_request.packages[0] == "luci-i18n-package-manager-ko" assert build_request.packages[1] == "luci-i18n-xinetd-lt" - assert build_request.packages[2] == "kmod-mt7622-firmware" + assert build_request.packages[2] == "luci-i18n-package-manager-zh-cn" + assert build_request.packages[3] == "kmod-mt7622-firmware"