diff --git a/debian/changelog b/debian/changelog index 6ef87d8..1bd0c2d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,19 @@ +lubuntu-installer-prompt (1.1.1-0ubuntu2) noble; urgency=medium + + * Ensure C is not the default locale, to the user. + + -- Simon Quigley Sat, 23 Dec 2023 18:03:34 -0600 + +lubuntu-installer-prompt (1.1.1-0ubuntu1) noble; urgency=medium + + * New upstream release (LP: #2046099). + + -- Simon Quigley Sat, 23 Dec 2023 17:06:34 -0600 + lubuntu-installer-prompt (1.0.1-0ubuntu1) noble; urgency=medium * New upstream release. - * Update Standards-version to 4.6.2, no changess needed. + * Update Standards-version to 4.6.2, no changes needed. * Update Vcs-*. * Update build dependencies. * Update Lintian overrides. diff --git a/debian/files b/debian/files new file mode 100644 index 0000000..6faafd9 --- /dev/null +++ b/debian/files @@ -0,0 +1 @@ +lubuntu-installer-prompt_1.1.1-0ubuntu2_source.buildinfo misc optional diff --git a/debian/lintian-overrides b/debian/lintian-overrides index 32cdc4e..ba916ce 100644 --- a/debian/lintian-overrides +++ b/debian/lintian-overrides @@ -1,5 +1,5 @@ lubuntu-installer-prompt: no-manual-page [usr/bin/lubuntu-installer-prompt] -lubuntu-installer-prompt: no-manual-page [usr/bin/start-lubuntu-live-env] +lubuntu-installer-prompt: no-manual-page [usr/libexec/start-lubuntu-live-env] lubuntu-installer-prompt: no-manual-page [usr/libexec/change-system-language] lubuntu-installer-prompt: no-manual-page [usr/libexec/lubuntu-installer] lubuntu-installer-prompt: desktop-entry-lacks-icon-entry [usr/share/xsessions/lubuntu-live-environment.desktop] diff --git a/debian/patches/c-fixes.patch b/debian/patches/c-fixes.patch new file mode 100644 index 0000000..8b5067d --- /dev/null +++ b/debian/patches/c-fixes.patch @@ -0,0 +1,72 @@ +commit 7ac27098cf9c03fa02d9bac4536f7d6ee3159e42 +Author: Simon Quigley +Date: Sat Dec 23 17:53:11 2023 -0600 + + Don't default to C, and be somewhat reasonable about locales, to start. + +diff --git a/src/installerprompt.cpp b/src/installerprompt.cpp +index 04bc415..87a20c3 100644 +--- a/src/installerprompt.cpp ++++ b/src/installerprompt.cpp +@@ -376,10 +376,15 @@ QString InstallerPrompt::getDisplayNameForLocale(const QLocale &locale) { + return s; + }; + ++ QLocale currentAppLocale = QLocale::system(); + QString nativeName = locale.nativeLanguageName(); + QString nativeCountryName = sanitize(locale.nativeCountryName()); +- QString englishLanguageName = QLocale::languageToString(locale.language()); +- QString englishCountryName = sanitize(QLocale::countryToString(locale.country())); ++ QString englishLanguageName = currentAppLocale.languageToString(locale.language()); ++ QString englishCountryName = sanitize(currentAppLocale.countryToString(locale.country())); ++ ++ if (nativeName.isEmpty() || nativeCountryName.isEmpty()) { ++ return QString(); ++ } + + // Rename "American English" to "English" + if (locale.language() == QLocale::English) { +@@ -419,31 +424,29 @@ void InstallerPrompt::initLanguageComboBox() { + } + + QStringList InstallerPrompt::getAvailableLanguages() { +- QMap languageMap; // Default sorting by QString is case-sensitive +- +- for (int language = QLocale::C; language <= QLocale::LastLanguage; ++language) { +- foreach (int country, QLocale::countriesForLanguage(static_cast(language))) { +- QLocale locale(static_cast(language), static_cast(country)); ++ QMap language_map; // Default sorting by QString is case-sensitive + +- QString displayName = getDisplayNameForLocale(locale); +- if (displayName.isEmpty()) continue; ++ QList all_locales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyCountry); ++ for (const QLocale &locale : all_locales) { ++ QString display_name = getDisplayNameForLocale(locale); ++ if (display_name.isEmpty()) continue; + +- languageMap.insert(displayName, locale.name()); +- } ++ language_map.insert(display_name, locale.name()); + } ++ + // Sort the language display names +- QStringList sortedLanguages = languageMap.keys(); +- std::sort(sortedLanguages.begin(), sortedLanguages.end(), [](const QString &a, const QString &b) { ++ QStringList sorted_languages = language_map.keys(); ++ std::sort(sorted_languages.begin(), sorted_languages.end(), [](const QString &a, const QString &b) { + return a.compare(b, Qt::CaseInsensitive) < 0; + }); + + // Clear the existing languageLocaleMap and repopulate it based on sortedLanguages + languageLocaleMap.clear(); +- for (const QString &languageName : sortedLanguages) { +- languageLocaleMap.insert(languageName, languageMap[languageName]); ++ for (const QString &language_name : sorted_languages) { ++ languageLocaleMap.insert(language_name, language_map[language_name]); + } + +- return sortedLanguages; ++ return sorted_languages; + } + + void InstallerPrompt::onLanguageChanged(int index) { diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..6b94e44 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +c-fixes.patch