[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#343497: localechooser: move installation of language specific packages to prebaseconfig?



tags 343497 patch
thanks

Quoting Frans Pop (aragorn@tiscali.nl):
> Package: localechooser
> Version: 0.24
> Severity: minor
> 
> Currently for some languages the installation of packages needed to 
> support that language after the reboot are scheduled for installation in 
> the main localechooser script.
> 
> IMO it would be better to move these to the prebaseconfig script so they 
> will not be scheduled for installation if the user later goes back, runs 
> localechooser again and selects a different language that does not need 
> the extra packages.
> (This would also improve maintainability of the localechooser script by 
> limiting it to its core functions.)


The attached patch is a first attempt to solve this issue.

I made some early tests and it should be fine.

It also improves the way console-terminus is installed: instead of
hardcoding it for some languages, the package is installed when the
"kbd=" entry in languagelist mentions a Terminus font (names always
begin with "ter-").

I do not apply it in current localechooser as this change would be
likely to break it....and we agreed on avoiding risky changes before
beta2 now.


diff -Nru localechooser/localechooser localechooser.new/localechooser
--- localechooser/localechooser	2005-12-19 18:24:45.611447961 +0100
+++ localechooser.new/localechooser	2005-12-16 18:26:07.089672451 +0100
@@ -262,59 +262,6 @@
 log "Set debconf/language = '$LANGUAGELIST'"
 
 
-# Install specific packages depending on selected language
-
-# Enable translations (if this is present, base-config generates the
-# required locale on boot)
-# We use belocs-locales-data for languages which don't have a locale
-# in the locales package
-if [ "$LOCALE" != "C" ] ; then
-	case "$LANGUAGE" in
-	    ku|sa)
-		pkginstall belocs-locales-data
-		pkginstall belocs-locales-bin
-		;;
-	    *)
-		pkginstall locales
-		;;
-	esac
-
-	# Unicode font for languages requiring it
-	case "$LANGUAGE" in
-	    ar|el|fa|he|ja|ko|ku|tr|vi|wo|zh)
-		anna-install bterm-unifont
-		;;
-	esac
-
-	if [ "$LANGUAGE" != "en" ] ; then
-		pkginstall iso-codes
-	fi
-
-	# Other language specific packages
-	case "$LANGUAGE" in
-	    ja|ko|ko_KR|el|zh|zh_CN|zh_TW|bg|vi|wo)
-		# Japanese, Korean, Greek, Chinese, Bulgarian
-		pkginstall jfbterm
-		pkginstall unifont
-		;;
-#	    ru)
-#		# Russian
-#		pkginstall console-cyrillic
-#		pkginstall console-terminus
-#		;;
-	    tr|ku|ro)
-		# Turkish, Kurdish, Romanian
-		pkginstall console-terminus
-		;;
-	    ar|he|fa)
-		# RTL languages (Arabic, Hebrew, Farsi)
-		pkginstall jfbterm
-		pkginstall unifont
-		pkginstall libfribidi0
-		;;
-	esac
-fi
-
 
 # BEGIN COUNTRY SELECTION
 
diff -Nru localechooser/prebaseconfig localechooser.new/prebaseconfig
--- localechooser/prebaseconfig	2005-12-19 18:24:44.911590329 +0100
+++ localechooser.new/prebaseconfig	2005-12-16 18:26:02.694566842 +0100
@@ -12,6 +12,57 @@
 	fi
 }
 
+db_get debian-installer/locale || true
+LANGUAGE=${RET%%_*}
+
+# Install specific packages depending on selected language
+
+# Enable translations (if this is present, base-config generates the
+# required locale on boot)
+# We use belocs-locales-data for languages which don't have a locale
+# in the locales package
+if [ "$LOCALE" != "C" ] ; then
+	# Which locale package to install
+	case "$LANGUAGE" in
+	    ku|sa)
+		pkginstall belocs-locales-data
+		pkginstall belocs-locales-bin
+		;;
+	    *)
+		pkginstall locales
+		;;
+	esac
+
+	# Unicode font for languages requiring it
+	case "$LANGUAGE" in
+	    ar|el|fa|he|ja|ko|ku|tr|vi|wo|zh)
+		anna-install bterm-unifont
+		;;
+	esac
+
+	# FIXME: why this?
+	if [ "$LANGUAGE" != "en" ] ; then
+		pkginstall iso-codes
+	fi
+
+	# Other language specific packages
+	case "$LANGUAGE" in
+	    ja|ko|ko_KR|el|zh|zh_CN|zh_TW|bg|vi|wo)
+		# Languages needing jfbterm in 2nd stage
+		pkginstall jfbterm
+		pkginstall unifont
+		;;
+	    ar|he|fa)
+		# RTL languages (Arabic, Hebrew, Farsi)
+		pkginstall jfbterm
+		pkginstall unifont
+		pkginstall libfribidi0
+		;;
+	esac
+fi
+
+
+
 db_get debian-installer/consoledisplay || true
 consoletype=`echo $RET | sed -e 's/=.*$//'`
 case "$consoletype" in
@@ -43,6 +94,9 @@
 			echo "SCREEN_FONT_vc5=$consolefont" >>$ctconfig
 			echo "SCREEN_FONT_vc6=$consolefont" >>$ctconfig
 		fi
+		if echo "$consolefont" | grep -q "^ter-"; then
+			apt-install console-terminus
+		fi
 	fi
 	;;
     cyr)

Reply to: