/usr/bin/edubuntu-langpack-installer is in edubuntu-live 14.04.2build1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #!/usr/bin/python3
# Copyright (C) 2012 Stephane Graber
# Author: Stephane Graber <stgraber@ubuntu.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import apt
import apt.cdrom
import aptsources.sourceslist
import gettext
import os
import sys
import time
from gi.repository import Gtk
_ = gettext.gettext
gettext.textdomain("langpack-installer")
if os.environ['LANG'].startswith("en_"):
sys.exit(0)
dialog = Gtk.Dialog(parent=None, flags=Gtk.DialogFlags.MODAL)
dialog.add_button(Gtk.STOCK_YES, Gtk.ResponseType.ACCEPT)
dialog.add_button(Gtk.STOCK_NO, Gtk.ResponseType.REJECT)
dialog.set_title(_("Edubuntu live desktop translations."))
label = Gtk.Label()
label.set_markup(_("""
The live session doesn't include the translations for your language by default.
These can be installed from the installation media now so you can try Edubuntu
in your language.
However, this will use up to 150MB of RAM and can be a problem on low memory
systems.
Do you want to install these extra translations?""").strip())
label.set_padding(12, 12)
dialog.vbox.pack_start(label, True, True, 0)
dialog.set_resizable(False)
dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
dialog.set_modal(True)
dialog.show_all()
if dialog.run() == Gtk.ResponseType.REJECT:
sys.exit(0)
dialog.destroy()
while Gtk.events_pending():
Gtk.main_iteration();
# Get the needed package list
import language_support_pkgs
pkg_depends = "/usr/share/language-selector/data/pkg_depends"
ls = language_support_pkgs.LanguageSupport(None, pkg_depends)
packages = ls.by_locale(os.environ['LANG'], False)
# Comment all non-cdrom sources
sources = aptsources.sourceslist.SourcesList()
sources.backup("langpack")
for entry in sources:
if not entry.line.startswith("deb cdrom") and not entry.invalid:
entry.set_enabled(False)
sources.save()
# Refresh the cache
cache = apt.Cache()
cache.update()
# Mark the packages for installation
for pkg in packages:
if pkg in cache:
cache[pkg].mark_install()
print("changes: %s" % cache.get_changes())
print("%s will be required" % cache.required_space)
# Install them
cache.commit()
# Cleanup
sources.restore_backup("langpack")
|