Merge lp:~cyruslien/ubuntu/natty/ubiquity/fix-690726 into lp:ubuntu/natty/ubiquity
- Natty (11.04)
- fix-690726
- Merge into natty
Proposed by
Cyrus Lien
Status: | Needs review |
---|---|
Proposed branch: | lp:~cyruslien/ubuntu/natty/ubiquity/fix-690726 |
Merge into: | lp:ubuntu/natty/ubiquity |
Diff against target: |
218834 lines (+216016/-0) (has conflicts) 521 files modified
.bzrignore (+70/-0) .pycheckrc (+4/-0) ABOUT-NLS (+1068/-0) Makefile.am (+9/-0) Makefile.in (+779/-0) aclocal.m4 (+1597/-0) autogen.sh (+10/-0) bin/oem-config-firstboot (+123/-0) bin/oem-config-prepare (+79/-0) bin/oem-config-remaster (+121/-0) bin/oem-config-remove (+27/-0) bin/oem-config-remove-gtk (+74/-0) bin/oem-config-wrapper (+49/-0) bin/ubiquity (+535/-0) bin/ubiquity-dm (+556/-0) bin/ubiquity-greeter-gtk (+168/-0) bin/ubiquity-wireless-manager (+170/-0) bin/ubiquity-wrapper (+138/-0) build/compile (+142/-0) build/config.guess (+1502/-0) build/config.rpath (+666/-0) build/config.sub (+1714/-0) build/depcomp (+630/-0) build/install-sh (+520/-0) build/ltmain.sh (+8413/-0) build/missing (+376/-0) build/mkinstalldirs (+162/-0) compat/anna-install (+3/-0) compat/apt-install (+39/-0) compat/depmod (+3/-0) compat/linux-boot-prober (+13/-0) compat/locale (+20/-0) compat/os-prober (+12/-0) compat/udpkg (+9/-0) compat/update-dev (+5/-0) config.h.in (+99/-0) configure (+17632/-0) configure.ac (+112/-0) d-i/Makefile (+83/-0) d-i/README (+5/-0) d-i/build-manifest (+9/-0) d-i/check-manifest (+42/-0) d-i/get-sources (+118/-0) d-i/lists/amd64 (+2/-0) d-i/lists/any (+27/-0) d-i/lists/armel (+2/-0) d-i/lists/i386 (+2/-0) d-i/lists/lpia (+2/-0) d-i/lists/powerpc (+3/-0) d-i/make-keyboard-names (+134/-0) d-i/manifest (+34/-0) d-i/sources.list (+1/-0) d-i/update-changelog (+31/-0) d-i/update-control (+94/-0) dbus/com.ubuntu.ubiquity.WirelessManager.conf (+23/-0) dbus/com.ubuntu.ubiquity.WirelessManager.service (+4/-0) debian-installer-startup.d/S60oem-config-check (+9/-0) debian/changelog (+8760/-0) debian/changelog.oem-config (+1159/-0) debian/clean (+8/-0) debian/compat (+1/-0) debian/control (+148/-0) debian/copyright (+62/-0) debian/imported-po/Makefile (+29/-0) debian/imported-po/POTFILES.in (+1/-0) debian/imported-po/add-contexts (+14/-0) debian/imported-po/am.po (+43/-0) debian/imported-po/ar.po (+131/-0) debian/imported-po/ast.po (+128/-0) debian/imported-po/be.po (+51/-0) debian/imported-po/bg.po (+126/-0) debian/imported-po/bn.po (+129/-0) debian/imported-po/br.po (+126/-0) debian/imported-po/bs.po (+55/-0) debian/imported-po/ca.po (+146/-0) debian/imported-po/cs.po (+132/-0) debian/imported-po/cy.po (+125/-0) debian/imported-po/da.po (+152/-0) debian/imported-po/de.po (+135/-0) debian/imported-po/dz.po (+53/-0) debian/imported-po/el.po (+147/-0) debian/imported-po/eo.po (+51/-0) debian/imported-po/es.po (+114/-0) debian/imported-po/et.po (+131/-0) debian/imported-po/eu.po (+125/-0) debian/imported-po/fa.po (+51/-0) debian/imported-po/fi.po (+130/-0) debian/imported-po/fr.po (+134/-0) debian/imported-po/ga.po (+127/-0) debian/imported-po/gl.po (+138/-0) debian/imported-po/gu.po (+153/-0) debian/imported-po/he.po (+126/-0) debian/imported-po/hi.po (+137/-0) debian/imported-po/hr.po (+53/-0) debian/imported-po/hu.po (+128/-0) debian/imported-po/id.po (+53/-0) debian/imported-po/it.po (+125/-0) debian/imported-po/ja.po (+130/-0) debian/imported-po/ka.po (+56/-0) debian/imported-po/ko.po (+124/-0) debian/imported-po/ku.po (+89/-0) debian/imported-po/lt.po (+130/-0) debian/imported-po/lv.po (+124/-0) debian/imported-po/mk.po (+57/-0) debian/imported-po/ml.po (+126/-0) debian/imported-po/mr.po (+125/-0) debian/imported-po/nb.po (+123/-0) debian/imported-po/ne.po (+56/-0) debian/imported-po/nl.po (+142/-0) debian/imported-po/nn.po (+131/-0) debian/imported-po/pa.po (+126/-0) debian/imported-po/pl.po (+127/-0) debian/imported-po/pt.po (+124/-0) debian/imported-po/pt_BR.po (+137/-0) debian/imported-po/ro.po (+126/-0) debian/imported-po/ru.po (+137/-0) debian/imported-po/sk.po (+126/-0) debian/imported-po/sl.po (+130/-0) debian/imported-po/sq.po (+124/-0) debian/imported-po/sr.po (+128/-0) debian/imported-po/sv.po (+124/-0) debian/imported-po/ta.po (+138/-0) debian/imported-po/templates.pot (+123/-0) debian/imported-po/th.po (+124/-0) debian/imported-po/tr.po (+135/-0) debian/imported-po/uk.po (+125/-0) debian/imported-po/ur.po (+21/-0) debian/imported-po/vi.po (+126/-0) debian/imported-po/zh_CN.po (+130/-0) debian/imported-po/zh_HK.po (+126/-0) debian/imported-po/zh_TW.po (+126/-0) debian/oem-config-check.install (+2/-0) debian/oem-config-check.templates (+11/-0) debian/oem-config-gtk.dirs (+1/-0) debian/oem-config-gtk.install (+2/-0) debian/oem-config-gtk.postinst (+11/-0) debian/oem-config-gtk.postrm (+13/-0) debian/oem-config-gtk.preinst (+13/-0) debian/oem-config-gtk.prerm (+10/-0) debian/oem-config-kde.dirs (+1/-0) debian/oem-config-kde.install (+1/-0) debian/oem-config-kde.postinst (+11/-0) debian/oem-config-kde.prerm (+10/-0) debian/oem-config-remaster.install (+1/-0) debian/oem-config-udeb.install (+1/-0) debian/oem-config-udeb.postinst (+23/-0) debian/oem-config-udeb.templates (+31/-0) debian/oem-config.dirs (+6/-0) debian/oem-config.install (+5/-0) debian/oem-config.links (+2/-0) debian/oem-config.lintian-overrides (+1/-0) debian/oem-config.manpages (+1/-0) debian/oem-config.oem-config.upstart (+50/-0) debian/oem-config.postinst (+8/-0) debian/oem-config.templates (+52/-0) debian/pycompat (+1/-0) debian/real-po/POTFILES.in (+4/-0) debian/real-po/am.po (+1585/-0) debian/real-po/ar.po (+1664/-0) debian/real-po/ast.po (+1709/-0) debian/real-po/be.po (+1703/-0) debian/real-po/bg.po (+1706/-0) debian/real-po/bn.po (+1647/-0) debian/real-po/bs.po (+1702/-0) debian/real-po/ca.po (+1712/-0) debian/real-po/cs.po (+1696/-0) debian/real-po/cy.po (+1620/-0) debian/real-po/da.po (+1714/-0) debian/real-po/de.po (+1733/-0) debian/real-po/dz.po (+1535/-0) debian/real-po/el.po (+1729/-0) debian/real-po/eo.po (+1690/-0) debian/real-po/es.po (+1712/-0) debian/real-po/et.po (+1690/-0) debian/real-po/eu.po (+1705/-0) debian/real-po/fi.po (+1704/-0) debian/real-po/fr.po (+1727/-0) debian/real-po/ga.po (+1535/-0) debian/real-po/gl.po (+1710/-0) debian/real-po/gu.po (+1585/-0) debian/real-po/he.po (+1674/-0) debian/real-po/hi.po (+1676/-0) debian/real-po/hr.po (+1709/-0) debian/real-po/hu.po (+1706/-0) debian/real-po/id.po (+1704/-0) debian/real-po/it.po (+1712/-0) debian/real-po/ja.po (+1708/-0) debian/real-po/ka.po (+1619/-0) debian/real-po/kk.po (+1700/-0) debian/real-po/km.po (+1673/-0) debian/real-po/ko.po (+1681/-0) debian/real-po/ku.po (+1616/-0) debian/real-po/lt.po (+1697/-0) debian/real-po/lv.po (+1697/-0) debian/real-po/mk.po (+1594/-0) debian/real-po/ml.po (+1558/-0) debian/real-po/mr.po (+1536/-0) debian/real-po/ne.po (+1583/-0) debian/real-po/nl.po (+1717/-0) debian/real-po/pa.po (+1551/-0) debian/real-po/pl.po (+1705/-0) debian/real-po/pt.po (+1715/-0) debian/real-po/pt_BR.po (+1709/-0) debian/real-po/ro.po (+1712/-0) debian/real-po/ru.po (+1703/-0) debian/real-po/sk.po (+1695/-0) debian/real-po/sl.po (+1700/-0) debian/real-po/sq.po (+1704/-0) debian/real-po/sr.po (+1701/-0) debian/real-po/sv.po (+1714/-0) debian/real-po/ta.po (+1542/-0) debian/real-po/templates.pot (+1535/-0) debian/real-po/th.po (+1653/-0) debian/real-po/tl.po (+1536/-0) debian/real-po/tr.po (+1703/-0) debian/real-po/uk.po (+1701/-0) debian/real-po/vi.po (+1695/-0) debian/real-po/wo.po (+1536/-0) debian/real-po/zh_CN.po (+1644/-0) debian/real-po/zh_TW.po (+1649/-0) debian/rules (+282/-0) debian/source/format (+1/-0) debian/source/options (+1/-0) debian/ubiquity-frontend-debconf.install (+4/-0) debian/ubiquity-frontend-gtk.install (+11/-0) debian/ubiquity-frontend-kde.install (+10/-0) debian/ubiquity-gtkui.lintian-overrides (+1/-0) debian/ubiquity-guadalinex-artwork.install (+1/-0) debian/ubiquity-kdeui.lintian-overrides (+1/-0) debian/ubiquity-ubuntu-artwork.install (+3/-0) debian/ubiquity.di-numbers (+5/-0) debian/ubiquity.dirs-any (+8/-0) debian/ubiquity.dirs-armel (+1/-0) debian/ubiquity.dirs-powerpc (+2/-0) debian/ubiquity.docs (+1/-0) debian/ubiquity.install-amd64 (+5/-0) debian/ubiquity.install-any (+108/-0) debian/ubiquity.install-armel (+2/-0) debian/ubiquity.install-i386 (+5/-0) debian/ubiquity.install-powerpc (+10/-0) debian/ubiquity.manpages (+1/-0) debian/ubiquity.postinst (+12/-0) debian/ubiquity.templates (+1194/-0) debian/ubiquity.templates-imported (+72/-0) debian/ubiquity.ubiquity.upstart (+92/-0) desktop/Makefile.am (+13/-0) desktop/Makefile.in (+467/-0) desktop/oem-config-prepare-gtk.desktop.in (+11/-0) desktop/oem-config-prepare-kde.desktop.in (+11/-0) desktop/ubiquity-gtkui.desktop.in (+12/-0) desktop/ubiquity-kdeui.desktop.in (+12/-0) desktop/ubiquity.svg (+319/-0) doc/Changelog.Guadalinex (+148/-0) doc/README (+226/-0) doc/clock-handling (+48/-0) doc/oem-config-firstboot.8 (+59/-0) doc/oem-config-prepare.8 (+39/-0) doc/ubiquity.8 (+123/-0) finish-install.d/01oem-config-udeb (+22/-0) finish-install.d/07oem-config-user (+18/-0) gui/gtk/gtkwidgets.xml (+49/-0) gui/gtk/stepKeyboardConf.ui (+149/-0) gui/gtk/stepLanguage.ui (+209/-0) gui/gtk/stepLanguageOnly.ui (+32/-0) gui/gtk/stepLocation.ui (+42/-0) gui/gtk/stepMigrationAssistant.ui (+52/-0) gui/gtk/stepPartAdvanced.ui (+830/-0) gui/gtk/stepPartAsk.ui (+64/-0) gui/gtk/stepPartAuto.ui (+196/-0) gui/gtk/stepPrepare.ui (+160/-0) gui/gtk/stepUserInfo.ui (+425/-0) gui/gtk/stepWarning.ui (+23/-0) gui/gtk/stepWireless.ui (+30/-0) gui/gtk/ubiquity.ui (+890/-0) gui/qt/app.ui (+476/-0) gui/qt/crashdialog.ui (+192/-0) gui/qt/images/graphics.svg (+1650/-0) gui/qt/partition_create_dialog.ui (+192/-0) gui/qt/partition_edit_dialog.ui (+176/-0) gui/qt/stepIntro.ui (+89/-0) gui/qt/stepKeyboardConf.ui (+157/-0) gui/qt/stepLanguage.ui (+300/-0) gui/qt/stepLocation.ui (+142/-0) gui/qt/stepPartAuto.ui (+101/-0) gui/qt/stepPartMan.ui (+208/-0) gui/qt/stepPrepare.ui (+81/-0) gui/qt/stepUserSetup.ui (+573/-0) gui/qt/style.qss (+146/-0) gui/qt/style_small.qss (+18/-0) m4/ChangeLog (+32/-0) m4/am-check-python-headers.m4 (+35/-0) m4/codeset.m4 (+21/-0) m4/gettext.m4 (+381/-0) m4/glibc2.m4 (+30/-0) m4/glibc21.m4 (+30/-0) m4/iconv.m4 (+180/-0) m4/intdiv0.m4 (+84/-0) m4/intl.m4 (+285/-0) m4/intldir.m4 (+19/-0) m4/intlmacosx.m4 (+51/-0) m4/intltool.m4 (+216/-0) m4/intmax.m4 (+33/-0) m4/inttypes-pri.m4 (+36/-0) m4/inttypes_h.m4 (+26/-0) m4/lcmessage.m4 (+30/-0) m4/lib-ld.m4 (+110/-0) m4/lib-link.m4 (+709/-0) m4/lib-prefix.m4 (+185/-0) m4/libtool.m4 (+7377/-0) m4/lock.m4 (+316/-0) m4/longlong.m4 (+109/-0) m4/ltoptions.m4 (+368/-0) m4/ltsugar.m4 (+123/-0) m4/ltversion.m4 (+23/-0) m4/lt~obsolete.m4 (+92/-0) m4/nls.m4 (+31/-0) m4/po.m4 (+449/-0) m4/printf-posix.m4 (+44/-0) m4/progtest.m4 (+92/-0) m4/size_max.m4 (+68/-0) m4/stdint_h.m4 (+26/-0) m4/ubiquity-python.m4 (+27/-0) m4/uintmax_t.m4 (+30/-0) m4/visibility.m4 (+52/-0) m4/wchar_t.m4 (+20/-0) m4/wint_t.m4 (+28/-0) m4/xsize.m4 (+13/-0) main-menu.d/10oem-config (+6/-0) partman/check.d/_numbers (+1/-0) partman/check.d/partition_too_small (+104/-0) partman/commit.d/_numbers (+1/-0) partman/commit.d/unmount_busy (+112/-0) partman/finish.d/_numbers (+1/-0) partman/finish.d/remove_os_prober_cache (+4/-0) partman/undo.d/_numbers (+1/-0) partman/undo.d/signal_ubiquity (+7/-0) partman/update.d/_numbers (+1/-0) partman/update.d/signal_ubiquity (+16/-0) pixmaps/Makefile.am (+3/-0) pixmaps/Makefile.in (+457/-0) pixmaps/greeter-gtk.svg (+88/-0) po/ChangeLog (+11/-0) po/LINGUAS (+60/-0) po/Makefile.in.in (+217/-0) po/Makevars (+41/-0) po/Makevars.template (+41/-0) po/POTFILES.in (+5/-0) po/Rules-quot (+47/-0) po/am.po (+35/-0) po/ar.po (+35/-0) po/ast.po (+35/-0) po/be.po (+35/-0) po/bg.po (+35/-0) po/bn.po (+35/-0) po/boldquot.sed (+10/-0) po/bs.po (+35/-0) po/ca.po (+35/-0) po/cs.po (+35/-0) po/cy.po (+35/-0) po/da.po (+35/-0) po/de.po (+35/-0) po/el.po (+35/-0) po/en@boldquot.header (+25/-0) po/en@quot.header (+22/-0) po/eo.po (+35/-0) po/es.po (+35/-0) po/et.po (+35/-0) po/eu.po (+35/-0) po/fi.po (+35/-0) po/fr.po (+35/-0) po/ga.po (+35/-0) po/gl.po (+35/-0) po/gu.po (+35/-0) po/he.po (+35/-0) po/hi.po (+35/-0) po/hr.po (+35/-0) po/hu.po (+35/-0) po/id.po (+35/-0) po/insert-header.sin (+23/-0) po/it.po (+35/-0) po/ja.po (+35/-0) po/ka.po (+35/-0) po/kk.po (+35/-0) po/km.po (+37/-0) po/ko.po (+35/-0) po/ku.po (+35/-0) po/lt.po (+35/-0) po/lv.po (+35/-0) po/mk.po (+35/-0) po/ml.po (+35/-0) po/mr.po (+35/-0) po/ne.po (+35/-0) po/nl.po (+35/-0) po/pa.po (+35/-0) po/pl.po (+35/-0) po/pt.po (+35/-0) po/pt_BR.po (+35/-0) po/quot.sed (+6/-0) po/remove-potcdate.sin (+19/-0) po/ro.po (+36/-0) po/ru.po (+35/-0) po/sk.po (+35/-0) po/sl.po (+35/-0) po/sq.po (+35/-0) po/sr.po (+35/-0) po/sv.po (+35/-0) po/ta.po (+35/-0) po/th.po (+35/-0) po/tl.po (+35/-0) po/tr.po (+35/-0) po/ubiquity.pot (+33/-0) po/uk.po (+35/-0) po/vi.po (+35/-0) po/zh_CN.po (+35/-0) po/zh_TW.po (+35/-0) run-pychecker (+20/-0) scripts/activate-dmraid (+40/-0) scripts/apt-setup (+14/-0) scripts/check-kernels (+86/-0) scripts/clock-setup (+6/-0) scripts/clock-setup-apply (+62/-0) scripts/console-setup-apply (+18/-0) scripts/install.py (+613/-0) scripts/localechooser-apply (+58/-0) scripts/migration-assistant (+14/-0) scripts/netcfg-wrapper (+10/-0) scripts/plugininstall.py (+1443/-0) scripts/simple-plugins (+23/-0) scripts/tzsetup (+47/-0) scripts/ubi-reload-keyboard (+8/-0) scripts/update-apt-cache (+5/-0) src/Makefile.am (+1/-0) src/Makefile.in (+610/-0) src/cheese/Makefile.am (+36/-0) src/cheese/Makefile.in (+631/-0) src/cheese/cheese-types.defs (+14/-0) src/cheese/cheese.defs (+91/-0) src/cheese/cheese.override (+21/-0) src/cheese/cheesemodule.c (+46/-0) src/cheese/tests/cheese-test-chooser.py (+57/-0) src/panel/Makefile.am (+17/-0) src/panel/Makefile.in (+584/-0) src/panel/fixedtip.c (+261/-0) src/panel/fixedtip.h (+68/-0) src/panel/na-marshal.c (+167/-0) src/panel/na-marshal.h (+36/-0) src/panel/na-tray-child.c (+515/-0) src/panel/na-tray-child.h (+71/-0) src/panel/na-tray-manager.c (+845/-0) src/panel/na-tray-manager.h (+97/-0) src/panel/na-tray.c (+829/-0) src/panel/na-tray.h (+67/-0) src/panel/panel.c (+302/-0) tests/run (+48/-0) tests/run-frontend (+147/-0) ubiquity/Makefile.am (+9/-0) ubiquity/Makefile.in (+586/-0) ubiquity/__init__.py (+1/-0) ubiquity/auto_update.py (+184/-0) ubiquity/casper.py (+54/-0) ubiquity/components/apt_setup.py (+65/-0) ubiquity/components/check_kernels.py (+24/-0) ubiquity/components/flash_kernel.py (+25/-0) ubiquity/components/grubinstaller.py (+40/-0) ubiquity/components/hw_detect.py (+38/-0) ubiquity/components/install.py (+75/-0) ubiquity/components/kbootinstaller.py (+30/-0) ubiquity/components/partman_commit.py (+96/-0) ubiquity/components/plugininstall.py (+98/-0) ubiquity/components/yabootinstaller.py (+30/-0) ubiquity/debconfcommunicator.py (+46/-0) ubiquity/debconffilter.py (+449/-0) ubiquity/filteredcommand.py (+454/-0) ubiquity/frontend/__init__.py (+3/-0) ubiquity/frontend/base.py (+394/-0) ubiquity/frontend/debconf_ui.py (+151/-0) ubiquity/frontend/gtk_components/keyboard_query.py (+122/-0) ubiquity/frontend/gtk_ui.py (+1590/-0) ubiquity/frontend/kde_components/Keyboard.py (+282/-0) ubiquity/frontend/kde_components/PartAuto.py (+213/-0) ubiquity/frontend/kde_components/PartMan.py (+462/-0) ubiquity/frontend/kde_components/PartitionBar.py (+321/-0) ubiquity/frontend/kde_components/PartitionModel.py (+261/-0) ubiquity/frontend/kde_components/ProgressDialog.py (+72/-0) ubiquity/frontend/kde_components/SqueezeLabel.py (+21/-0) ubiquity/frontend/kde_components/Timezone.py (+240/-0) ubiquity/frontend/kde_components/__init__.py (+3/-0) ubiquity/frontend/kde_components/testing/partauto.py (+64/-0) ubiquity/frontend/kde_components/testing/partitionbar.py (+41/-0) ubiquity/frontend/kde_components/testing/partman.py (+350/-0) ubiquity/frontend/kde_ui.py (+1306/-0) ubiquity/frontend/noninteractive.py (+241/-0) ubiquity/gconftool.py (+129/-0) ubiquity/gtkwidgets.py (+1071/-0) ubiquity/i18n.py (+352/-0) ubiquity/im_switch.py (+159/-0) ubiquity/install_misc.py (+899/-0) ubiquity/keyboard_detector.py (+96/-0) ubiquity/misc.py (+526/-0) ubiquity/osextras.py (+115/-0) ubiquity/osextrasmodule.c (+115/-0) ubiquity/parted_server.py (+222/-0) ubiquity/plugin.py (+48/-0) ubiquity/plugin_manager.py (+143/-0) ubiquity/plugins/ubi-console-setup.py (+695/-0) ubiquity/plugins/ubi-language.py (+764/-0) ubiquity/plugins/ubi-migrationassistant.py (+343/-0) ubiquity/plugins/ubi-network.py (+38/-0) ubiquity/plugins/ubi-partman.py (+2510/-0) ubiquity/plugins/ubi-prepare.py (+351/-0) ubiquity/plugins/ubi-tasks.py (+38/-0) ubiquity/plugins/ubi-timezone.py (+611/-0) ubiquity/plugins/ubi-usersetup.py (+824/-0) ubiquity/plugins/ubi-warning.py.disabled (+80/-0) ubiquity/plugins/ubi-wireless.py.disabled (+81/-0) ubiquity/progressposition.py (+86/-0) ubiquity/qtwidgets.py (+37/-0) ubiquity/segmented_bar.py (+732/-0) ubiquity/timezone_map.py (+778/-0) ubiquity/tz.py (+254/-0) ubiquity/validation.py (+136/-0) Conflict adding file .pycheckrc. Moved existing file to .pycheckrc.moved. Conflict adding file ABOUT-NLS. Moved existing file to ABOUT-NLS.moved. Conflict adding file Makefile.am. Moved existing file to Makefile.am.moved. Conflict adding file Makefile.in. Moved existing file to Makefile.in.moved. Conflict adding file aclocal.m4. Moved existing file to aclocal.m4.moved. Conflict adding file autogen.sh. Moved existing file to autogen.sh.moved. Conflict adding file bin. Moved existing file to bin.moved. Conflict adding file build. Moved existing file to build.moved. Conflict adding file compat. Moved existing file to compat.moved. Conflict adding file config.h.in. Moved existing file to config.h.in.moved. Conflict adding file configure.ac. Moved existing file to configure.ac.moved. Conflict adding file configure. Moved existing file to configure.moved. Conflict adding file d-i. Moved existing file to d-i.moved. Conflict adding file dbus. Moved existing file to dbus.moved. Conflict adding file debian-installer-startup.d. Moved existing file to debian-installer-startup.d.moved. Conflict adding file debian. Moved existing file to debian.moved. Conflict adding file desktop. Moved existing file to desktop.moved. Conflict adding file doc. Moved existing file to doc.moved. Conflict adding file finish-install.d. Moved existing file to finish-install.d.moved. Conflict adding file gui. Moved existing file to gui.moved. Conflict adding file m4. Moved existing file to m4.moved. Conflict adding file main-menu.d. Moved existing file to main-menu.d.moved. Conflict adding file partman. Moved existing file to partman.moved. Conflict adding file pixmaps. Moved existing file to pixmaps.moved. Conflict adding file po. Moved existing file to po.moved. Conflict adding file run-pychecker. Moved existing file to run-pychecker.moved. Conflict adding file scripts. Moved existing file to scripts.moved. Conflict adding file src. Moved existing file to src.moved. Conflict adding file tests. Moved existing file to tests.moved. Conflict adding file ubiquity. Moved existing file to ubiquity.moved. |
To merge this branch: | bzr merge lp:~cyruslien/ubuntu/natty/ubiquity/fix-690726 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Colin Watson | Needs Resubmitting | ||
Review via email: mp+47982@code.launchpad.net |
Commit message
Description of the change
(LP: 690726)
Add shutdown option
Implement ubiquity/poweroff preseed option
To post a comment you must log in.
Unmerged revisions
- 4494. By Cyrus Lien
-
* Add shutdown option
Implement ubiquity/poweroff preseed option - 4493. By Colin Watson
-
releasing version 2.5.12
- 4492. By Colin Watson
-
Automatic update of included source packages: clock-setup 0.106ubuntu1,
console-setup 1.57ubuntu5, partman-basicfilesystem s 69ubuntu1,
partman-efi 23ubuntu1, partman-partitioning 79ubuntu1. - 4491. By Mario Limonciello
-
add bug number
- 4490. By Evan
-
Detect hostname collisions (LP: #634187).
- 4489. By Evan
-
Missed a pc105.tree reference that needed to be removed.
- 4488. By Evan
-
pc105.tree is included in console-setup now, which speeds up
ubiquity builds. - 4487. By Evan
-
Update LINGUAS.
- 4486. By Evan
-
Fix mistake in the cleanup branch merge that broke translations
(LP: #691671). - 4485. By Evan
-
If a session indicator gconf key starts unset, make sure it ends
that way (LP: #684052).
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file '.bzrignore' |
2 | --- .bzrignore 1970-01-01 00:00:00 +0000 |
3 | +++ .bzrignore 2011-01-31 11:12:59 +0000 |
4 | @@ -0,0 +1,70 @@ |
5 | +project.log |
6 | +tailor.state |
7 | +tailor.state.old |
8 | +tailor.state.journal |
9 | +./build-stamp |
10 | +debian/build |
11 | +debian/files |
12 | +debian/oem-config |
13 | +debian/oem-config-check |
14 | +debian/oem-config-debconf |
15 | +debian/oem-config-gtk |
16 | +debian/oem-config-kde |
17 | +debian/oem-config-udeb |
18 | +debian/oem-config-remaster |
19 | +debian/ubiquity |
20 | +debian/ubiquity-frontend-cloner |
21 | +debian/ubiquity-frontend-debconf |
22 | +debian/ubiquity-frontend-gtk |
23 | +debian/ubiquity-frontend-kde |
24 | +debian/ubiquity-frontend-mythbuntu |
25 | +debian/ubiquity-guadalinex-artwork |
26 | +debian/ubiquity-guadalinex-doc |
27 | +debian/ubiquity-ubuntu-artwork |
28 | +debian/ubiquity-ubuntu-doc |
29 | +debian/ubiquity.dirs |
30 | +debian/ubiquity.install |
31 | +debian/*.debhelper* |
32 | +debian/*.substvars |
33 | +./Makefile |
34 | +./autom4te.cache |
35 | +./config.h |
36 | +./config.log |
37 | +./config.status |
38 | +./intltool-* |
39 | +./libtool |
40 | +./stamp-h1 |
41 | +d-i/apt |
42 | +d-i/manifest.old |
43 | +d-i/source |
44 | +d-i/templates |
45 | +d-i/udeb-control |
46 | +desktop/Makefile |
47 | +desktop/*.desktop |
48 | +po/.intltool-merge-cache |
49 | +po/Makefile |
50 | +po/POTFILES |
51 | +po/remove-potcdate.sed |
52 | +po/stamp-it |
53 | +po/*.gmo |
54 | +pixmaps/Makefile |
55 | +src/Makefile |
56 | +src/cheese/.deps |
57 | +src/cheese/.libs |
58 | +src/cheese/cheese.c |
59 | +src/cheese/*.la |
60 | +src/cheese/*.lo |
61 | +src/cheese/Makefile |
62 | +src/panel/.deps |
63 | +src/panel/.libs |
64 | +src/panel/Makefile |
65 | +src/panel/panel |
66 | +ubiquity/.deps |
67 | +ubiquity/.libs |
68 | +ubiquity/Makefile |
69 | +ubiquity/frontend/*.bak |
70 | +ubiquity/frontend/liveinstaller.py |
71 | +ubiquity/frontend/crashdialog.py |
72 | +ubiquity/keyboard_names.py |
73 | +ubiquity/*.la |
74 | +ubiquity/*.lo |
75 | |
76 | === added file '.pycheckrc' |
77 | --- .pycheckrc 1970-01-01 00:00:00 +0000 |
78 | +++ .pycheckrc 2011-01-31 11:12:59 +0000 |
79 | @@ -0,0 +1,4 @@ |
80 | +limit = 0 |
81 | +unusedNames = [ '_', 'empty', 'unused', 'dummy', 'dummypkg', 'args', 'kwargs', ] |
82 | +blacklist = [ 'subprocess', 'Tkinter', 'wxPython', 'gtk', 'GTK', 'GDK', 'apt', 'debconf', ] |
83 | +maxLocals = 50 # arguably scripts/install.py:copy_all should be fixed ... |
84 | |
85 | === renamed file '.pycheckrc' => '.pycheckrc.moved' |
86 | === added file 'ABOUT-NLS' |
87 | --- ABOUT-NLS 1970-01-01 00:00:00 +0000 |
88 | +++ ABOUT-NLS 2011-01-31 11:12:59 +0000 |
89 | @@ -0,0 +1,1068 @@ |
90 | +1 Notes on the Free Translation Project |
91 | +*************************************** |
92 | + |
93 | +Free software is going international! The Free Translation Project is |
94 | +a way to get maintainers of free software, translators, and users all |
95 | +together, so that free software will gradually become able to speak many |
96 | +languages. A few packages already provide translations for their |
97 | +messages. |
98 | + |
99 | + If you found this `ABOUT-NLS' file inside a distribution, you may |
100 | +assume that the distributed package does use GNU `gettext' internally, |
101 | +itself available at your nearest GNU archive site. But you do _not_ |
102 | +need to install GNU `gettext' prior to configuring, installing or using |
103 | +this package with messages translated. |
104 | + |
105 | + Installers will find here some useful hints. These notes also |
106 | +explain how users should proceed for getting the programs to use the |
107 | +available translations. They tell how people wanting to contribute and |
108 | +work on translations can contact the appropriate team. |
109 | + |
110 | + When reporting bugs in the `intl/' directory or bugs which may be |
111 | +related to internationalization, you should tell about the version of |
112 | +`gettext' which is used. The information can be found in the |
113 | +`intl/VERSION' file, in internationalized packages. |
114 | + |
115 | +1.1 Quick configuration advice |
116 | +============================== |
117 | + |
118 | +If you want to exploit the full power of internationalization, you |
119 | +should configure it using |
120 | + |
121 | + ./configure --with-included-gettext |
122 | + |
123 | +to force usage of internationalizing routines provided within this |
124 | +package, despite the existence of internationalizing capabilities in the |
125 | +operating system where this package is being installed. So far, only |
126 | +the `gettext' implementation in the GNU C library version 2 provides as |
127 | +many features (such as locale alias, message inheritance, automatic |
128 | +charset conversion or plural form handling) as the implementation here. |
129 | +It is also not possible to offer this additional functionality on top |
130 | +of a `catgets' implementation. Future versions of GNU `gettext' will |
131 | +very likely convey even more functionality. So it might be a good idea |
132 | +to change to GNU `gettext' as soon as possible. |
133 | + |
134 | + So you need _not_ provide this option if you are using GNU libc 2 or |
135 | +you have installed a recent copy of the GNU gettext package with the |
136 | +included `libintl'. |
137 | + |
138 | +1.2 INSTALL Matters |
139 | +=================== |
140 | + |
141 | +Some packages are "localizable" when properly installed; the programs |
142 | +they contain can be made to speak your own native language. Most such |
143 | +packages use GNU `gettext'. Other packages have their own ways to |
144 | +internationalization, predating GNU `gettext'. |
145 | + |
146 | + By default, this package will be installed to allow translation of |
147 | +messages. It will automatically detect whether the system already |
148 | +provides the GNU `gettext' functions. If not, the included GNU |
149 | +`gettext' library will be used. This library is wholly contained |
150 | +within this package, usually in the `intl/' subdirectory, so prior |
151 | +installation of the GNU `gettext' package is _not_ required. |
152 | +Installers may use special options at configuration time for changing |
153 | +the default behaviour. The commands: |
154 | + |
155 | + ./configure --with-included-gettext |
156 | + ./configure --disable-nls |
157 | + |
158 | +will, respectively, bypass any pre-existing `gettext' to use the |
159 | +internationalizing routines provided within this package, or else, |
160 | +_totally_ disable translation of messages. |
161 | + |
162 | + When you already have GNU `gettext' installed on your system and run |
163 | +configure without an option for your new package, `configure' will |
164 | +probably detect the previously built and installed `libintl.a' file and |
165 | +will decide to use this. This might not be desirable. You should use |
166 | +the more recent version of the GNU `gettext' library. I.e. if the file |
167 | +`intl/VERSION' shows that the library which comes with this package is |
168 | +more recent, you should use |
169 | + |
170 | + ./configure --with-included-gettext |
171 | + |
172 | +to prevent auto-detection. |
173 | + |
174 | + The configuration process will not test for the `catgets' function |
175 | +and therefore it will not be used. The reason is that even an |
176 | +emulation of `gettext' on top of `catgets' could not provide all the |
177 | +extensions of the GNU `gettext' library. |
178 | + |
179 | + Internationalized packages usually have many `po/LL.po' files, where |
180 | +LL gives an ISO 639 two-letter code identifying the language. Unless |
181 | +translations have been forbidden at `configure' time by using the |
182 | +`--disable-nls' switch, all available translations are installed |
183 | +together with the package. However, the environment variable `LINGUAS' |
184 | +may be set, prior to configuration, to limit the installed set. |
185 | +`LINGUAS' should then contain a space separated list of two-letter |
186 | +codes, stating which languages are allowed. |
187 | + |
188 | +1.3 Using This Package |
189 | +====================== |
190 | + |
191 | +As a user, if your language has been installed for this package, you |
192 | +only have to set the `LANG' environment variable to the appropriate |
193 | +`LL_CC' combination. If you happen to have the `LC_ALL' or some other |
194 | +`LC_xxx' environment variables set, you should unset them before |
195 | +setting `LANG', otherwise the setting of `LANG' will not have the |
196 | +desired effect. Here `LL' is an ISO 639 two-letter language code, and |
197 | +`CC' is an ISO 3166 two-letter country code. For example, let's |
198 | +suppose that you speak German and live in Germany. At the shell |
199 | +prompt, merely execute `setenv LANG de_DE' (in `csh'), |
200 | +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). |
201 | +This can be done from your `.login' or `.profile' file, once and for |
202 | +all. |
203 | + |
204 | + You might think that the country code specification is redundant. |
205 | +But in fact, some languages have dialects in different countries. For |
206 | +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The |
207 | +country code serves to distinguish the dialects. |
208 | + |
209 | + The locale naming convention of `LL_CC', with `LL' denoting the |
210 | +language and `CC' denoting the country, is the one use on systems based |
211 | +on GNU libc. On other systems, some variations of this scheme are |
212 | +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of |
213 | +locales supported by your system for your language by running the |
214 | +command `locale -a | grep '^LL''. |
215 | + |
216 | + Not all programs have translations for all languages. By default, an |
217 | +English message is shown in place of a nonexistent translation. If you |
218 | +understand other languages, you can set up a priority list of languages. |
219 | +This is done through a different environment variable, called |
220 | +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' |
221 | +for the purpose of message handling, but you still need to have `LANG' |
222 | +set to the primary language; this is required by other parts of the |
223 | +system libraries. For example, some Swedish users who would rather |
224 | +read translations in German than English for when Swedish is not |
225 | +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. |
226 | + |
227 | + Special advice for Norwegian users: The language code for Norwegian |
228 | +bokma*l changed from `no' to `nb' recently (in 2003). During the |
229 | +transition period, while some message catalogs for this language are |
230 | +installed under `nb' and some older ones under `no', it's recommended |
231 | +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and |
232 | +older translations are used. |
233 | + |
234 | + In the `LANGUAGE' environment variable, but not in the `LANG' |
235 | +environment variable, `LL_CC' combinations can be abbreviated as `LL' |
236 | +to denote the language's main dialect. For example, `de' is equivalent |
237 | +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' |
238 | +(Portuguese as spoken in Portugal) in this context. |
239 | + |
240 | +1.4 Translating Teams |
241 | +===================== |
242 | + |
243 | +For the Free Translation Project to be a success, we need interested |
244 | +people who like their own language and write it well, and who are also |
245 | +able to synergize with other translators speaking the same language. |
246 | +Each translation team has its own mailing list. The up-to-date list of |
247 | +teams can be found at the Free Translation Project's homepage, |
248 | +`http://translationproject.org/', in the "Teams" area. |
249 | + |
250 | + If you'd like to volunteer to _work_ at translating messages, you |
251 | +should become a member of the translating team for your own language. |
252 | +The subscribing address is _not_ the same as the list itself, it has |
253 | +`-request' appended. For example, speakers of Swedish can send a |
254 | +message to `sv-request@li.org', having this message body: |
255 | + |
256 | + subscribe |
257 | + |
258 | + Keep in mind that team members are expected to participate |
259 | +_actively_ in translations, or at solving translational difficulties, |
260 | +rather than merely lurking around. If your team does not exist yet and |
261 | +you want to start one, or if you are unsure about what to do or how to |
262 | +get started, please write to `coordinator@translationproject.org' to |
263 | +reach the coordinator for all translator teams. |
264 | + |
265 | + The English team is special. It works at improving and uniformizing |
266 | +the terminology in use. Proven linguistic skills are praised more than |
267 | +programming skills, here. |
268 | + |
269 | +1.5 Available Packages |
270 | +====================== |
271 | + |
272 | +Languages are not equally supported in all packages. The following |
273 | +matrix shows the current state of internationalization, as of November |
274 | +2007. The matrix shows, in regard of each package, for which languages |
275 | +PO files have been submitted to translation coordination, with a |
276 | +translation percentage of at least 50%. |
277 | + |
278 | + Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo |
279 | + +----------------------------------------------------+ |
280 | + Compendium | [] [] [] [] | |
281 | + a2ps | [] [] [] [] [] | |
282 | + aegis | () | |
283 | + ant-phone | () | |
284 | + anubis | [] | |
285 | + ap-utils | | |
286 | + aspell | [] [] [] [] [] | |
287 | + bash | [] | |
288 | + bfd | | |
289 | + bibshelf | [] | |
290 | + binutils | | |
291 | + bison | [] [] | |
292 | + bison-runtime | [] | |
293 | + bluez-pin | [] [] [] [] [] | |
294 | + cflow | [] | |
295 | + clisp | [] [] [] | |
296 | + console-tools | [] [] | |
297 | + coreutils | [] [] [] [] | |
298 | + cpio | | |
299 | + cpplib | [] [] [] | |
300 | + cryptonit | [] | |
301 | + dialog | | |
302 | + diffutils | [] [] [] [] [] [] | |
303 | + doodle | [] | |
304 | + e2fsprogs | [] [] | |
305 | + enscript | [] [] [] [] | |
306 | + fetchmail | [] [] () [] [] | |
307 | + findutils | [] | |
308 | + findutils_stable | [] [] [] | |
309 | + flex | [] [] [] | |
310 | + fslint | | |
311 | + gas | | |
312 | + gawk | [] [] [] | |
313 | + gcal | [] | |
314 | + gcc | [] | |
315 | + gettext-examples | [] [] [] [] [] | |
316 | + gettext-runtime | [] [] [] [] [] | |
317 | + gettext-tools | [] [] | |
318 | + gip | [] | |
319 | + gliv | [] [] | |
320 | + glunarclock | [] | |
321 | + gmult | [] [] | |
322 | + gnubiff | () | |
323 | + gnucash | [] [] () () [] | |
324 | + gnuedu | | |
325 | + gnulib | [] | |
326 | + gnunet | | |
327 | + gnunet-gtk | | |
328 | + gnutls | [] | |
329 | + gpe-aerial | [] [] | |
330 | + gpe-beam | [] [] | |
331 | + gpe-calendar | | |
332 | + gpe-clock | [] [] | |
333 | + gpe-conf | [] [] | |
334 | + gpe-contacts | | |
335 | + gpe-edit | [] | |
336 | + gpe-filemanager | | |
337 | + gpe-go | [] | |
338 | + gpe-login | [] [] | |
339 | + gpe-ownerinfo | [] [] | |
340 | + gpe-package | | |
341 | + gpe-sketchbook | [] [] | |
342 | + gpe-su | [] [] | |
343 | + gpe-taskmanager | [] [] | |
344 | + gpe-timesheet | [] | |
345 | + gpe-today | [] [] | |
346 | + gpe-todo | | |
347 | + gphoto2 | [] [] [] [] | |
348 | + gprof | [] [] | |
349 | + gpsdrive | | |
350 | + gramadoir | [] [] | |
351 | + grep | [] [] | |
352 | + gretl | () | |
353 | + gsasl | | |
354 | + gss | | |
355 | + gst-plugins-bad | [] [] | |
356 | + gst-plugins-base | [] [] | |
357 | + gst-plugins-good | [] [] [] | |
358 | + gst-plugins-ugly | [] [] | |
359 | + gstreamer | [] [] [] [] [] [] [] | |
360 | + gtick | () | |
361 | + gtkam | [] [] [] [] | |
362 | + gtkorphan | [] [] | |
363 | + gtkspell | [] [] [] [] | |
364 | + gutenprint | [] | |
365 | + hello | [] [] [] [] [] | |
366 | + herrie | [] | |
367 | + hylafax | | |
368 | + idutils | [] [] | |
369 | + indent | [] [] [] [] | |
370 | + iso_15924 | | |
371 | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] | |
372 | + iso_3166_2 | | |
373 | + iso_4217 | [] [] [] | |
374 | + iso_639 | [] [] [] [] | |
375 | + jpilot | [] | |
376 | + jtag | | |
377 | + jwhois | | |
378 | + kbd | [] [] [] [] | |
379 | + keytouch | [] [] | |
380 | + keytouch-editor | [] | |
381 | + keytouch-keyboa... | [] | |
382 | + latrine | () | |
383 | + ld | [] | |
384 | + leafpad | [] [] [] [] [] | |
385 | + libc | [] [] [] [] | |
386 | + libexif | [] | |
387 | + libextractor | [] | |
388 | + libgpewidget | [] [] [] | |
389 | + libgpg-error | [] | |
390 | + libgphoto2 | [] [] | |
391 | + libgphoto2_port | [] [] | |
392 | + libgsasl | | |
393 | + libiconv | [] [] | |
394 | + libidn | [] [] [] | |
395 | + lifelines | [] () | |
396 | + lilypond | [] | |
397 | + lingoteach | | |
398 | + lprng | | |
399 | + lynx | [] [] [] [] | |
400 | + m4 | [] [] [] [] | |
401 | + mailfromd | | |
402 | + mailutils | [] | |
403 | + make | [] [] | |
404 | + man-db | [] [] [] | |
405 | + minicom | [] [] [] | |
406 | + nano | [] [] [] | |
407 | + opcodes | [] | |
408 | + parted | [] [] | |
409 | + pilot-qof | | |
410 | + popt | [] [] [] | |
411 | + psmisc | [] | |
412 | + pwdutils | | |
413 | + qof | | |
414 | + radius | [] | |
415 | + recode | [] [] [] [] [] [] | |
416 | + rpm | [] | |
417 | + screem | | |
418 | + scrollkeeper | [] [] [] [] [] [] [] [] | |
419 | + sed | [] [] [] | |
420 | + shared-mime-info | [] [] [] [] () [] [] [] | |
421 | + sharutils | [] [] [] [] [] [] | |
422 | + shishi | | |
423 | + skencil | [] () | |
424 | + solfege | | |
425 | + soundtracker | [] [] | |
426 | + sp | [] | |
427 | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | |
428 | + tar | [] [] | |
429 | + texinfo | [] [] [] | |
430 | + tin | () () | |
431 | + tuxpaint | [] [] [] [] [] [] | |
432 | + unicode-han-tra... | | |
433 | + unicode-transla... | | |
434 | + util-linux | [] [] [] [] | |
435 | + util-linux-ng | [] [] [] [] | |
436 | + vorbis-tools | [] | |
437 | + wastesedge | () | |
438 | + wdiff | [] [] [] [] | |
439 | + wget | [] [] [] | |
440 | + xchat | [] [] [] [] [] [] [] | |
441 | + xkeyboard-config | [] | |
442 | + xpad | [] [] [] | |
443 | + +----------------------------------------------------+ |
444 | + af am ar az be bg bs ca cs cy da de el en en_GB eo |
445 | + 6 0 2 1 8 26 2 40 48 2 56 88 15 1 15 18 |
446 | + |
447 | + es et eu fa fi fr ga gl gu he hi hr hu id is it |
448 | + +--------------------------------------------------+ |
449 | + Compendium | [] [] [] [] [] | |
450 | + a2ps | [] [] [] () | |
451 | + aegis | | |
452 | + ant-phone | [] | |
453 | + anubis | [] | |
454 | + ap-utils | [] [] | |
455 | + aspell | [] [] [] | |
456 | + bash | [] | |
457 | + bfd | [] [] | |
458 | + bibshelf | [] [] [] | |
459 | + binutils | [] [] [] | |
460 | + bison | [] [] [] [] [] [] | |
461 | + bison-runtime | [] [] [] [] [] | |
462 | + bluez-pin | [] [] [] [] [] | |
463 | + cflow | [] | |
464 | + clisp | [] [] | |
465 | + console-tools | | |
466 | + coreutils | [] [] [] [] [] [] | |
467 | + cpio | [] [] [] | |
468 | + cpplib | [] [] | |
469 | + cryptonit | [] | |
470 | + dialog | [] [] [] | |
471 | + diffutils | [] [] [] [] [] [] [] [] [] | |
472 | + doodle | [] [] | |
473 | + e2fsprogs | [] [] [] | |
474 | + enscript | [] [] [] | |
475 | + fetchmail | [] | |
476 | + findutils | [] [] [] | |
477 | + findutils_stable | [] [] [] [] | |
478 | + flex | [] [] [] | |
479 | + fslint | | |
480 | + gas | [] [] | |
481 | + gawk | [] [] [] [] () | |
482 | + gcal | [] [] | |
483 | + gcc | [] | |
484 | + gettext-examples | [] [] [] [] [] [] [] | |
485 | + gettext-runtime | [] [] [] [] [] [] | |
486 | + gettext-tools | [] [] [] [] | |
487 | + gip | [] [] [] [] | |
488 | + gliv | () | |
489 | + glunarclock | [] [] [] | |
490 | + gmult | [] [] [] | |
491 | + gnubiff | () () | |
492 | + gnucash | () () () | |
493 | + gnuedu | [] | |
494 | + gnulib | [] [] [] | |
495 | + gnunet | | |
496 | + gnunet-gtk | | |
497 | + gnutls | | |
498 | + gpe-aerial | [] [] | |
499 | + gpe-beam | [] [] | |
500 | + gpe-calendar | | |
501 | + gpe-clock | [] [] [] [] | |
502 | + gpe-conf | [] | |
503 | + gpe-contacts | [] [] | |
504 | + gpe-edit | [] [] [] [] | |
505 | + gpe-filemanager | [] | |
506 | + gpe-go | [] [] [] | |
507 | + gpe-login | [] [] [] | |
508 | + gpe-ownerinfo | [] [] [] [] [] | |
509 | + gpe-package | [] | |
510 | + gpe-sketchbook | [] [] | |
511 | + gpe-su | [] [] [] [] | |
512 | + gpe-taskmanager | [] [] [] | |
513 | + gpe-timesheet | [] [] [] [] | |
514 | + gpe-today | [] [] [] [] | |
515 | + gpe-todo | [] | |
516 | + gphoto2 | [] [] [] [] [] | |
517 | + gprof | [] [] [] [] [] | |
518 | + gpsdrive | [] | |
519 | + gramadoir | [] [] | |
520 | + grep | [] [] [] | |
521 | + gretl | [] [] [] () | |
522 | + gsasl | [] [] | |
523 | + gss | [] [] | |
524 | + gst-plugins-bad | [] [] [] [] | |
525 | + gst-plugins-base | [] [] [] [] | |
526 | + gst-plugins-good | [] [] [] [] [] | |
527 | + gst-plugins-ugly | [] [] [] [] | |
528 | + gstreamer | [] [] [] | |
529 | + gtick | [] [] [] | |
530 | + gtkam | [] [] [] [] | |
531 | + gtkorphan | [] [] | |
532 | + gtkspell | [] [] [] [] [] [] [] | |
533 | + gutenprint | [] | |
534 | + hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | |
535 | + herrie | [] | |
536 | + hylafax | | |
537 | + idutils | [] [] [] [] [] | |
538 | + indent | [] [] [] [] [] [] [] [] [] [] | |
539 | + iso_15924 | [] | |
540 | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | |
541 | + iso_3166_2 | [] | |
542 | + iso_4217 | [] [] [] [] [] [] | |
543 | + iso_639 | [] [] [] [] [] [] | |
544 | + jpilot | [] [] | |
545 | + jtag | [] | |
546 | + jwhois | [] [] [] [] [] | |
547 | + kbd | [] [] | |
548 | + keytouch | [] [] [] | |
549 | + keytouch-editor | [] | |
550 | + keytouch-keyboa... | [] [] | |
551 | + latrine | [] [] | |
552 | + ld | [] [] [] [] | |
553 | + leafpad | [] [] [] [] [] [] | |
554 | + libc | [] [] [] [] [] | |
555 | + libexif | [] | |
556 | + libextractor | [] | |
557 | + libgpewidget | [] [] [] [] [] | |
558 | + libgpg-error | [] | |
559 | + libgphoto2 | [] [] [] | |
560 | + libgphoto2_port | [] [] | |
561 | + libgsasl | [] [] | |
562 | + libiconv | [] [] [] | |
563 | + libidn | [] [] | |
564 | + lifelines | () | |
565 | + lilypond | [] [] [] | |
566 | + lingoteach | [] [] [] | |
567 | + lprng | | |
568 | + lynx | [] [] [] | |
569 | + m4 | [] [] [] [] | |
570 | + mailfromd | | |
571 | + mailutils | [] [] | |
572 | + make | [] [] [] [] [] [] [] [] | |
573 | + man-db | [] | |
574 | + minicom | [] [] [] [] | |
575 | + nano | [] [] [] [] [] [] [] | |
576 | + opcodes | [] [] [] [] | |
577 | + parted | [] [] [] | |
578 | + pilot-qof | | |
579 | + popt | [] [] [] [] | |
580 | + psmisc | [] [] | |
581 | + pwdutils | | |
582 | + qof | [] | |
583 | + radius | [] [] | |
584 | + recode | [] [] [] [] [] [] [] [] | |
585 | + rpm | [] [] | |
586 | + screem | | |
587 | + scrollkeeper | [] [] [] | |
588 | + sed | [] [] [] [] [] | |
589 | + shared-mime-info | [] [] [] [] [] [] | |
590 | + sharutils | [] [] [] [] [] [] [] [] | |
591 | + shishi | [] | |
592 | + skencil | [] [] | |
593 | + solfege | [] | |
594 | + soundtracker | [] [] [] | |
595 | + sp | [] | |
596 | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | |
597 | + tar | [] [] [] [] [] | |
598 | + texinfo | [] [] [] | |
599 | + tin | [] () | |
600 | + tuxpaint | [] [] | |
601 | + unicode-han-tra... | | |
602 | + unicode-transla... | [] [] | |
603 | + util-linux | [] [] [] [] [] [] [] | |
604 | + util-linux-ng | [] [] [] [] [] [] [] | |
605 | + vorbis-tools | | |
606 | + wastesedge | () | |
607 | + wdiff | [] [] [] [] [] [] [] [] | |
608 | + wget | [] [] [] [] [] [] [] [] | |
609 | + xchat | [] [] [] [] [] [] [] | |
610 | + xkeyboard-config | [] [] [] [] | |
611 | + xpad | [] [] [] | |
612 | + +--------------------------------------------------+ |
613 | + es et eu fa fi fr ga gl gu he hi hr hu id is it |
614 | + 85 22 14 2 48 101 61 12 2 8 2 6 53 29 1 52 |
615 | + |
616 | + ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn |
617 | + +--------------------------------------------------+ |
618 | + Compendium | [] | |
619 | + a2ps | () [] [] | |
620 | + aegis | () | |
621 | + ant-phone | [] | |
622 | + anubis | [] [] [] | |
623 | + ap-utils | [] | |
624 | + aspell | [] [] | |
625 | + bash | [] | |
626 | + bfd | | |
627 | + bibshelf | [] | |
628 | + binutils | | |
629 | + bison | [] [] [] | |
630 | + bison-runtime | [] [] [] | |
631 | + bluez-pin | [] [] [] | |
632 | + cflow | | |
633 | + clisp | [] | |
634 | + console-tools | | |
635 | + coreutils | [] | |
636 | + cpio | [] | |
637 | + cpplib | [] | |
638 | + cryptonit | [] | |
639 | + dialog | [] [] | |
640 | + diffutils | [] [] [] | |
641 | + doodle | | |
642 | + e2fsprogs | [] | |
643 | + enscript | [] | |
644 | + fetchmail | [] [] | |
645 | + findutils | [] | |
646 | + findutils_stable | [] | |
647 | + flex | [] [] | |
648 | + fslint | | |
649 | + gas | | |
650 | + gawk | [] [] | |
651 | + gcal | | |
652 | + gcc | | |
653 | + gettext-examples | [] [] [] | |
654 | + gettext-runtime | [] [] [] | |
655 | + gettext-tools | [] [] | |
656 | + gip | [] [] | |
657 | + gliv | [] | |
658 | + glunarclock | [] [] | |
659 | + gmult | [] [] [] | |
660 | + gnubiff | | |
661 | + gnucash | () () () | |
662 | + gnuedu | | |
663 | + gnulib | [] [] | |
664 | + gnunet | | |
665 | + gnunet-gtk | | |
666 | + gnutls | [] | |
667 | + gpe-aerial | [] | |
668 | + gpe-beam | [] | |
669 | + gpe-calendar | [] | |
670 | + gpe-clock | [] [] [] | |
671 | + gpe-conf | [] [] [] | |
672 | + gpe-contacts | [] | |
673 | + gpe-edit | [] [] [] | |
674 | + gpe-filemanager | [] [] | |
675 | + gpe-go | [] [] [] | |
676 | + gpe-login | [] [] [] | |
677 | + gpe-ownerinfo | [] [] | |
678 | + gpe-package | [] [] | |
679 | + gpe-sketchbook | [] [] | |
680 | + gpe-su | [] [] [] | |
681 | + gpe-taskmanager | [] [] [] [] | |
682 | + gpe-timesheet | [] | |
683 | + gpe-today | [] [] | |
684 | + gpe-todo | [] | |
685 | + gphoto2 | [] [] | |
686 | + gprof | [] | |
687 | + gpsdrive | [] | |
688 | + gramadoir | () | |
689 | + grep | [] [] | |
690 | + gretl | | |
691 | + gsasl | [] | |
692 | + gss | | |
693 | + gst-plugins-bad | [] | |
694 | + gst-plugins-base | [] | |
695 | + gst-plugins-good | [] | |
696 | + gst-plugins-ugly | [] | |
697 | + gstreamer | [] | |
698 | + gtick | [] | |
699 | + gtkam | [] [] | |
700 | + gtkorphan | [] | |
701 | + gtkspell | [] [] | |
702 | + gutenprint | [] | |
703 | + hello | [] [] [] [] [] [] [] | |
704 | + herrie | [] | |
705 | + hylafax | | |
706 | + idutils | [] | |
707 | + indent | [] [] | |
708 | + iso_15924 | [] | |
709 | + iso_3166 | [] [] [] [] [] [] [] [] | |
710 | + iso_3166_2 | [] | |
711 | + iso_4217 | [] [] [] | |
712 | + iso_639 | [] [] [] [] | |
713 | + jpilot | () () | |
714 | + jtag | | |
715 | + jwhois | [] | |
716 | + kbd | [] | |
717 | + keytouch | [] | |
718 | + keytouch-editor | [] | |
719 | + keytouch-keyboa... | | |
720 | + latrine | [] | |
721 | + ld | | |
722 | + leafpad | [] [] | |
723 | + libc | [] [] [] | |
724 | + libexif | | |
725 | + libextractor | | |
726 | + libgpewidget | [] | |
727 | + libgpg-error | | |
728 | + libgphoto2 | [] | |
729 | + libgphoto2_port | [] | |
730 | + libgsasl | [] | |
731 | + libiconv | [] | |
732 | + libidn | [] [] | |
733 | + lifelines | [] | |
734 | + lilypond | [] | |
735 | + lingoteach | [] | |
736 | + lprng | | |
737 | + lynx | [] [] | |
738 | + m4 | [] [] | |
739 | + mailfromd | | |
740 | + mailutils | | |
741 | + make | [] [] [] | |
742 | + man-db | | |
743 | + minicom | [] | |
744 | + nano | [] [] [] | |
745 | + opcodes | [] | |
746 | + parted | [] [] | |
747 | + pilot-qof | | |
748 | + popt | [] [] [] | |
749 | + psmisc | [] [] [] | |
750 | + pwdutils | | |
751 | + qof | | |
752 | + radius | | |
753 | + recode | [] | |
754 | + rpm | [] [] | |
755 | + screem | [] | |
756 | + scrollkeeper | [] [] [] [] | |
757 | + sed | [] [] | |
758 | + shared-mime-info | [] [] [] [] [] [] [] | |
759 | + sharutils | [] [] | |
760 | + shishi | | |
761 | + skencil | | |
762 | + solfege | () () | |
763 | + soundtracker | | |
764 | + sp | () | |
765 | + system-tools-ba... | [] [] [] [] | |
766 | + tar | [] [] [] | |
767 | + texinfo | [] [] | |
768 | + tin | | |
769 | + tuxpaint | () [] [] | |
770 | + unicode-han-tra... | | |
771 | + unicode-transla... | | |
772 | + util-linux | [] [] | |
773 | + util-linux-ng | [] [] | |
774 | + vorbis-tools | | |
775 | + wastesedge | [] | |
776 | + wdiff | [] [] | |
777 | + wget | [] [] | |
778 | + xchat | [] [] [] [] | |
779 | + xkeyboard-config | [] [] [] | |
780 | + xpad | [] [] [] | |
781 | + +--------------------------------------------------+ |
782 | + ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn |
783 | + 51 2 25 3 2 0 6 0 2 2 20 0 11 1 103 6 |
784 | + |
785 | + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta |
786 | + +--------------------------------------------------+ |
787 | + Compendium | [] [] [] [] [] | |
788 | + a2ps | () [] [] [] [] [] [] | |
789 | + aegis | () () | |
790 | + ant-phone | [] [] | |
791 | + anubis | [] [] [] | |
792 | + ap-utils | () | |
793 | + aspell | [] [] [] | |
794 | + bash | [] [] | |
795 | + bfd | | |
796 | + bibshelf | [] | |
797 | + binutils | [] [] | |
798 | + bison | [] [] [] [] [] | |
799 | + bison-runtime | [] [] [] [] [] | |
800 | + bluez-pin | [] [] [] [] [] [] [] [] [] | |
801 | + cflow | [] | |
802 | + clisp | [] | |
803 | + console-tools | [] | |
804 | + coreutils | [] [] [] [] | |
805 | + cpio | [] [] [] | |
806 | + cpplib | [] | |
807 | + cryptonit | [] [] | |
808 | + dialog | [] | |
809 | + diffutils | [] [] [] [] [] [] | |
810 | + doodle | [] [] | |
811 | + e2fsprogs | [] [] | |
812 | + enscript | [] [] [] [] [] | |
813 | + fetchmail | [] [] [] | |
814 | + findutils | [] [] [] | |
815 | + findutils_stable | [] [] [] [] [] [] | |
816 | + flex | [] [] [] [] [] | |
817 | + fslint | [] | |
818 | + gas | | |
819 | + gawk | [] [] [] [] | |
820 | + gcal | [] | |
821 | + gcc | [] [] | |
822 | + gettext-examples | [] [] [] [] [] [] [] [] | |
823 | + gettext-runtime | [] [] [] [] [] [] [] [] | |
824 | + gettext-tools | [] [] [] [] [] [] [] | |
825 | + gip | [] [] [] [] | |
826 | + gliv | [] [] [] [] [] [] | |
827 | + glunarclock | [] [] [] [] [] [] | |
828 | + gmult | [] [] [] [] | |
829 | + gnubiff | () [] | |
830 | + gnucash | () [] | |
831 | + gnuedu | | |
832 | + gnulib | [] [] [] | |
833 | + gnunet | | |
834 | + gnunet-gtk | [] | |
835 | + gnutls | [] [] | |
836 | + gpe-aerial | [] [] [] [] [] [] [] | |
837 | + gpe-beam | [] [] [] [] [] [] [] | |
838 | + gpe-calendar | [] [] [] [] | |
839 | + gpe-clock | [] [] [] [] [] [] [] [] | |
840 | + gpe-conf | [] [] [] [] [] [] [] | |
841 | + gpe-contacts | [] [] [] [] [] | |
842 | + gpe-edit | [] [] [] [] [] [] [] [] [] | |
843 | + gpe-filemanager | [] [] | |
844 | + gpe-go | [] [] [] [] [] [] [] [] | |
845 | + gpe-login | [] [] [] [] [] [] [] [] | |
846 | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | |
847 | + gpe-package | [] [] | |
848 | + gpe-sketchbook | [] [] [] [] [] [] [] [] | |
849 | + gpe-su | [] [] [] [] [] [] [] [] | |
850 | + gpe-taskmanager | [] [] [] [] [] [] [] [] | |
851 | + gpe-timesheet | [] [] [] [] [] [] [] [] | |
852 | + gpe-today | [] [] [] [] [] [] [] [] | |
853 | + gpe-todo | [] [] [] [] | |
854 | + gphoto2 | [] [] [] [] [] [] | |
855 | + gprof | [] [] [] | |
856 | + gpsdrive | [] [] | |
857 | + gramadoir | [] [] | |
858 | + grep | [] [] [] [] | |
859 | + gretl | [] [] [] | |
860 | + gsasl | [] [] [] | |
861 | + gss | [] [] [] [] | |
862 | + gst-plugins-bad | [] [] [] | |
863 | + gst-plugins-base | [] [] | |
864 | + gst-plugins-good | [] [] | |
865 | + gst-plugins-ugly | [] [] [] | |
866 | + gstreamer | [] [] [] [] | |
867 | + gtick | [] | |
868 | + gtkam | [] [] [] [] [] | |
869 | + gtkorphan | [] | |
870 | + gtkspell | [] [] [] [] [] [] [] [] | |
871 | + gutenprint | [] | |
872 | + hello | [] [] [] [] [] [] [] [] | |
873 | + herrie | [] [] [] | |
874 | + hylafax | | |
875 | + idutils | [] [] [] [] [] | |
876 | + indent | [] [] [] [] [] [] [] | |
877 | + iso_15924 | | |
878 | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | |
879 | + iso_3166_2 | | |
880 | + iso_4217 | [] [] [] [] [] [] [] | |
881 | + iso_639 | [] [] [] [] [] [] [] | |
882 | + jpilot | | |
883 | + jtag | [] | |
884 | + jwhois | [] [] [] [] | |
885 | + kbd | [] [] [] | |
886 | + keytouch | [] | |
887 | + keytouch-editor | [] | |
888 | + keytouch-keyboa... | [] | |
889 | + latrine | | |
890 | + ld | [] | |
891 | + leafpad | [] [] [] [] [] [] | |
892 | + libc | [] [] [] [] | |
893 | + libexif | [] [] | |
894 | + libextractor | [] [] | |
895 | + libgpewidget | [] [] [] [] [] [] [] [] | |
896 | + libgpg-error | [] [] [] | |
897 | + libgphoto2 | [] | |
898 | + libgphoto2_port | [] [] [] | |
899 | + libgsasl | [] [] [] [] | |
900 | + libiconv | [] [] [] | |
901 | + libidn | [] [] () | |
902 | + lifelines | [] [] | |
903 | + lilypond | | |
904 | + lingoteach | [] | |
905 | + lprng | [] | |
906 | + lynx | [] [] [] | |
907 | + m4 | [] [] [] [] [] | |
908 | + mailfromd | [] | |
909 | + mailutils | [] [] [] | |
910 | + make | [] [] [] [] | |
911 | + man-db | [] [] [] [] | |
912 | + minicom | [] [] [] [] [] | |
913 | + nano | [] [] [] [] | |
914 | + opcodes | [] [] | |
915 | + parted | [] | |
916 | + pilot-qof | | |
917 | + popt | [] [] [] [] | |
918 | + psmisc | [] [] | |
919 | + pwdutils | [] [] | |
920 | + qof | [] [] | |
921 | + radius | [] [] | |
922 | + recode | [] [] [] [] [] [] [] | |
923 | + rpm | [] [] [] [] | |
924 | + screem | | |
925 | + scrollkeeper | [] [] [] [] [] [] [] | |
926 | + sed | [] [] [] [] [] [] [] [] [] | |
927 | + shared-mime-info | [] [] [] [] [] [] | |
928 | + sharutils | [] [] [] [] | |
929 | + shishi | [] | |
930 | + skencil | [] [] [] | |
931 | + solfege | [] | |
932 | + soundtracker | [] [] | |
933 | + sp | | |
934 | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | |
935 | + tar | [] [] [] [] | |
936 | + texinfo | [] [] [] [] | |
937 | + tin | () | |
938 | + tuxpaint | [] [] [] [] [] [] | |
939 | + unicode-han-tra... | | |
940 | + unicode-transla... | | |
941 | + util-linux | [] [] [] [] | |
942 | + util-linux-ng | [] [] [] [] | |
943 | + vorbis-tools | [] | |
944 | + wastesedge | | |
945 | + wdiff | [] [] [] [] [] [] [] | |
946 | + wget | [] [] [] [] | |
947 | + xchat | [] [] [] [] [] [] [] | |
948 | + xkeyboard-config | [] [] [] | |
949 | + xpad | [] [] [] | |
950 | + +--------------------------------------------------+ |
951 | + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta |
952 | + 0 5 77 31 53 4 58 72 3 45 46 9 45 122 3 |
953 | + |
954 | + tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu |
955 | + +---------------------------------------------------+ |
956 | + Compendium | [] [] [] [] | 19 |
957 | + a2ps | [] [] [] | 19 |
958 | + aegis | [] | 1 |
959 | + ant-phone | [] [] | 6 |
960 | + anubis | [] [] [] | 11 |
961 | + ap-utils | () [] | 4 |
962 | + aspell | [] [] [] | 16 |
963 | + bash | [] | 6 |
964 | + bfd | | 2 |
965 | + bibshelf | [] | 7 |
966 | + binutils | [] [] [] [] | 9 |
967 | + bison | [] [] [] [] | 20 |
968 | + bison-runtime | [] [] [] [] | 18 |
969 | + bluez-pin | [] [] [] [] [] [] | 28 |
970 | + cflow | [] [] | 5 |
971 | + clisp | | 9 |
972 | + console-tools | [] [] | 5 |
973 | + coreutils | [] [] [] | 18 |
974 | + cpio | [] [] [] [] | 11 |
975 | + cpplib | [] [] [] [] [] | 12 |
976 | + cryptonit | [] | 6 |
977 | + dialog | [] [] [] | 9 |
978 | + diffutils | [] [] [] [] [] | 29 |
979 | + doodle | [] | 6 |
980 | + e2fsprogs | [] [] | 10 |
981 | + enscript | [] [] [] | 16 |
982 | + fetchmail | [] [] | 12 |
983 | + findutils | [] [] [] | 11 |
984 | + findutils_stable | [] [] [] [] | 18 |
985 | + flex | [] [] | 15 |
986 | + fslint | [] | 2 |
987 | + gas | [] | 3 |
988 | + gawk | [] [] [] | 16 |
989 | + gcal | [] | 5 |
990 | + gcc | [] [] [] | 7 |
991 | + gettext-examples | [] [] [] [] [] [] | 29 |
992 | + gettext-runtime | [] [] [] [] [] [] | 28 |
993 | + gettext-tools | [] [] [] [] [] | 20 |
994 | + gip | [] [] | 13 |
995 | + gliv | [] [] | 11 |
996 | + glunarclock | [] [] [] | 15 |
997 | + gmult | [] [] [] [] | 16 |
998 | + gnubiff | [] | 2 |
999 | + gnucash | () [] | 5 |
1000 | + gnuedu | [] | 2 |
1001 | + gnulib | [] | 10 |
1002 | + gnunet | | 0 |
1003 | + gnunet-gtk | [] [] | 3 |
1004 | + gnutls | | 4 |
1005 | + gpe-aerial | [] [] | 14 |
1006 | + gpe-beam | [] [] | 14 |
1007 | + gpe-calendar | [] [] | 7 |
1008 | + gpe-clock | [] [] [] [] | 21 |
1009 | + gpe-conf | [] [] [] | 16 |
1010 | + gpe-contacts | [] [] | 10 |
1011 | + gpe-edit | [] [] [] [] [] | 22 |
1012 | + gpe-filemanager | [] [] | 7 |
1013 | + gpe-go | [] [] [] [] | 19 |
1014 | + gpe-login | [] [] [] [] [] | 21 |
1015 | + gpe-ownerinfo | [] [] [] [] | 21 |
1016 | + gpe-package | [] | 6 |
1017 | + gpe-sketchbook | [] [] | 16 |
1018 | + gpe-su | [] [] [] [] | 21 |
1019 | + gpe-taskmanager | [] [] [] [] | 21 |
1020 | + gpe-timesheet | [] [] [] [] | 18 |
1021 | + gpe-today | [] [] [] [] [] | 21 |
1022 | + gpe-todo | [] [] | 8 |
1023 | + gphoto2 | [] [] [] [] | 21 |
1024 | + gprof | [] [] | 13 |
1025 | + gpsdrive | [] | 5 |
1026 | + gramadoir | [] | 7 |
1027 | + grep | [] | 12 |
1028 | + gretl | | 6 |
1029 | + gsasl | [] [] [] | 9 |
1030 | + gss | [] | 7 |
1031 | + gst-plugins-bad | [] [] [] | 13 |
1032 | + gst-plugins-base | [] [] | 11 |
1033 | + gst-plugins-good | [] [] [] [] [] | 16 |
1034 | + gst-plugins-ugly | [] [] [] | 13 |
1035 | + gstreamer | [] [] [] | 18 |
1036 | + gtick | [] [] | 7 |
1037 | + gtkam | [] | 16 |
1038 | + gtkorphan | [] | 7 |
1039 | + gtkspell | [] [] [] [] [] [] | 27 |
1040 | + gutenprint | | 4 |
1041 | + hello | [] [] [] [] [] | 38 |
1042 | + herrie | [] [] | 8 |
1043 | + hylafax | | 0 |
1044 | + idutils | [] [] | 15 |
1045 | + indent | [] [] [] [] [] | 28 |
1046 | + iso_15924 | [] [] | 4 |
1047 | + iso_3166 | [] [] [] [] [] [] [] [] [] | 54 |
1048 | + iso_3166_2 | [] [] | 4 |
1049 | + iso_4217 | [] [] [] [] [] | 24 |
1050 | + iso_639 | [] [] [] [] [] | 26 |
1051 | + jpilot | [] [] [] [] | 7 |
1052 | + jtag | [] | 3 |
1053 | + jwhois | [] [] [] | 13 |
1054 | + kbd | [] [] [] | 13 |
1055 | + keytouch | [] | 8 |
1056 | + keytouch-editor | [] | 5 |
1057 | + keytouch-keyboa... | [] | 5 |
1058 | + latrine | [] [] | 5 |
1059 | + ld | [] [] [] [] | 10 |
1060 | + leafpad | [] [] [] [] [] | 24 |
1061 | + libc | [] [] [] | 19 |
1062 | + libexif | [] | 5 |
1063 | + libextractor | [] | 5 |
1064 | + libgpewidget | [] [] [] | 20 |
1065 | + libgpg-error | [] | 6 |
1066 | + libgphoto2 | [] [] | 9 |
1067 | + libgphoto2_port | [] [] [] | 11 |
1068 | + libgsasl | [] | 8 |
1069 | + libiconv | [] [] | 11 |
1070 | + libidn | [] [] | 11 |
1071 | + lifelines | | 4 |
1072 | + lilypond | [] | 6 |
1073 | + lingoteach | [] | 6 |
1074 | + lprng | [] | 2 |
1075 | + lynx | [] [] [] | 15 |
1076 | + m4 | [] [] [] | 18 |
1077 | + mailfromd | [] [] | 3 |
1078 | + mailutils | [] [] | 8 |
1079 | + make | [] [] [] | 20 |
1080 | + man-db | [] | 9 |
1081 | + minicom | [] | 14 |
1082 | + nano | [] [] [] | 20 |
1083 | + opcodes | [] [] | 10 |
1084 | + parted | [] [] [] | 11 |
1085 | + pilot-qof | [] | 1 |
1086 | + popt | [] [] [] [] | 18 |
1087 | + psmisc | [] [] | 10 |
1088 | + pwdutils | [] | 3 |
1089 | + qof | [] | 4 |
1090 | + radius | [] [] | 7 |
1091 | + recode | [] [] [] | 25 |
1092 | + rpm | [] [] [] [] | 13 |
1093 | + screem | [] | 2 |
1094 | + scrollkeeper | [] [] [] [] | 26 |
1095 | + sed | [] [] [] [] | 23 |
1096 | + shared-mime-info | [] [] [] | 29 |
1097 | + sharutils | [] [] [] | 23 |
1098 | + shishi | [] | 3 |
1099 | + skencil | [] | 7 |
1100 | + solfege | [] | 3 |
1101 | + soundtracker | [] [] | 9 |
1102 | + sp | [] | 3 |
1103 | + system-tools-ba... | [] [] [] [] [] [] [] | 38 |
1104 | + tar | [] [] [] | 17 |
1105 | + texinfo | [] [] [] | 15 |
1106 | + tin | | 1 |
1107 | + tuxpaint | [] [] [] | 19 |
1108 | + unicode-han-tra... | | 0 |
1109 | + unicode-transla... | | 2 |
1110 | + util-linux | [] [] [] | 20 |
1111 | + util-linux-ng | [] [] [] | 20 |
1112 | + vorbis-tools | [] [] | 4 |
1113 | + wastesedge | | 1 |
1114 | + wdiff | [] [] | 23 |
1115 | + wget | [] [] [] | 20 |
1116 | + xchat | [] [] [] [] | 29 |
1117 | + xkeyboard-config | [] [] [] | 14 |
1118 | + xpad | [] [] [] | 15 |
1119 | + +---------------------------------------------------+ |
1120 | + 76 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu |
1121 | + 163 domains 0 3 1 74 51 0 143 21 1 57 7 45 0 2036 |
1122 | + |
1123 | + Some counters in the preceding matrix are higher than the number of |
1124 | +visible blocks let us expect. This is because a few extra PO files are |
1125 | +used for implementing regional variants of languages, or language |
1126 | +dialects. |
1127 | + |
1128 | + For a PO file in the matrix above to be effective, the package to |
1129 | +which it applies should also have been internationalized and |
1130 | +distributed as such by its maintainer. There might be an observable |
1131 | +lag between the mere existence a PO file and its wide availability in a |
1132 | +distribution. |
1133 | + |
1134 | + If November 2007 seems to be old, you may fetch a more recent copy |
1135 | +of this `ABOUT-NLS' file on most GNU archive sites. The most |
1136 | +up-to-date matrix with full percentage details can be found at |
1137 | +`http://translationproject.org/extra/matrix.html'. |
1138 | + |
1139 | +1.6 Using `gettext' in new packages |
1140 | +=================================== |
1141 | + |
1142 | +If you are writing a freely available program and want to |
1143 | +internationalize it you are welcome to use GNU `gettext' in your |
1144 | +package. Of course you have to respect the GNU Library General Public |
1145 | +License which covers the use of the GNU `gettext' library. This means |
1146 | +in particular that even non-free programs can use `libintl' as a shared |
1147 | +library, whereas only free software can use `libintl' as a static |
1148 | +library or use modified versions of `libintl'. |
1149 | + |
1150 | + Once the sources are changed appropriately and the setup can handle |
1151 | +the use of `gettext' the only thing missing are the translations. The |
1152 | +Free Translation Project is also available for packages which are not |
1153 | +developed inside the GNU project. Therefore the information given above |
1154 | +applies also for every other Free Software Project. Contact |
1155 | +`coordinator@translationproject.org' to make the `.pot' files available |
1156 | +to the translation teams. |
1157 | + |
1158 | |
1159 | === renamed file 'ABOUT-NLS' => 'ABOUT-NLS.moved' |
1160 | === added file 'Makefile.am' |
1161 | --- Makefile.am 1970-01-01 00:00:00 +0000 |
1162 | +++ Makefile.am 2011-01-31 11:12:59 +0000 |
1163 | @@ -0,0 +1,9 @@ |
1164 | +## Process this file with automake to produce Makefile.in |
1165 | + |
1166 | +SUBDIRS = desktop pixmaps po ubiquity src |
1167 | + |
1168 | +ACLOCAL_AMFLAGS = -I m4 |
1169 | + |
1170 | +EXTRA_DIST = m4/ChangeLog |
1171 | + |
1172 | +DISTCLEANFILES = intltool-extract intltool-merge intltool-update |
1173 | |
1174 | === renamed file 'Makefile.am' => 'Makefile.am.moved' |
1175 | === added file 'Makefile.in' |
1176 | --- Makefile.in 1970-01-01 00:00:00 +0000 |
1177 | +++ Makefile.in 2011-01-31 11:12:59 +0000 |
1178 | @@ -0,0 +1,779 @@ |
1179 | +# Makefile.in generated by automake 1.11.1 from Makefile.am. |
1180 | +# @configure_input@ |
1181 | + |
1182 | +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
1183 | +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, |
1184 | +# Inc. |
1185 | +# This Makefile.in is free software; the Free Software Foundation |
1186 | +# gives unlimited permission to copy and/or distribute it, |
1187 | +# with or without modifications, as long as this notice is preserved. |
1188 | + |
1189 | +# This program is distributed in the hope that it will be useful, |
1190 | +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
1191 | +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
1192 | +# PARTICULAR PURPOSE. |
1193 | + |
1194 | +@SET_MAKE@ |
1195 | +VPATH = @srcdir@ |
1196 | +pkgdatadir = $(datadir)/@PACKAGE@ |
1197 | +pkgincludedir = $(includedir)/@PACKAGE@ |
1198 | +pkglibdir = $(libdir)/@PACKAGE@ |
1199 | +pkglibexecdir = $(libexecdir)/@PACKAGE@ |
1200 | +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
1201 | +install_sh_DATA = $(install_sh) -c -m 644 |
1202 | +install_sh_PROGRAM = $(install_sh) -c |
1203 | +install_sh_SCRIPT = $(install_sh) -c |
1204 | +INSTALL_HEADER = $(INSTALL_DATA) |
1205 | +transform = $(program_transform_name) |
1206 | +NORMAL_INSTALL = : |
1207 | +PRE_INSTALL = : |
1208 | +POST_INSTALL = : |
1209 | +NORMAL_UNINSTALL = : |
1210 | +PRE_UNINSTALL = : |
1211 | +POST_UNINSTALL = : |
1212 | +build_triplet = @build@ |
1213 | +host_triplet = @host@ |
1214 | +subdir = . |
1215 | +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ |
1216 | + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ |
1217 | + $(top_srcdir)/configure ABOUT-NLS build/compile \ |
1218 | + build/config.guess build/config.rpath build/config.sub \ |
1219 | + build/depcomp build/install-sh build/ltmain.sh build/missing \ |
1220 | + build/mkinstalldirs |
1221 | +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
1222 | +am__aclocal_m4_deps = $(top_srcdir)/m4/am-check-python-headers.m4 \ |
1223 | + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ |
1224 | + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intltool.m4 \ |
1225 | + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ |
1226 | + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ |
1227 | + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ |
1228 | + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ |
1229 | + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ |
1230 | + $(top_srcdir)/m4/progtest.m4 \ |
1231 | + $(top_srcdir)/m4/ubiquity-python.m4 $(top_srcdir)/configure.ac |
1232 | +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
1233 | + $(ACLOCAL_M4) |
1234 | +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ |
1235 | + configure.lineno config.status.lineno |
1236 | +mkinstalldirs = $(SHELL) $(top_srcdir)/build/mkinstalldirs |
1237 | +CONFIG_HEADER = config.h |
1238 | +CONFIG_CLEAN_FILES = |
1239 | +CONFIG_CLEAN_VPATH_FILES = |
1240 | +SOURCES = |
1241 | +DIST_SOURCES = |
1242 | +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ |
1243 | + html-recursive info-recursive install-data-recursive \ |
1244 | + install-dvi-recursive install-exec-recursive \ |
1245 | + install-html-recursive install-info-recursive \ |
1246 | + install-pdf-recursive install-ps-recursive install-recursive \ |
1247 | + installcheck-recursive installdirs-recursive pdf-recursive \ |
1248 | + ps-recursive uninstall-recursive |
1249 | +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ |
1250 | + distclean-recursive maintainer-clean-recursive |
1251 | +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ |
1252 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ |
1253 | + distdir dist dist-all distcheck |
1254 | +ETAGS = etags |
1255 | +CTAGS = ctags |
1256 | +DIST_SUBDIRS = $(SUBDIRS) |
1257 | +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
1258 | +distdir = $(PACKAGE)-$(VERSION) |
1259 | +top_distdir = $(distdir) |
1260 | +am__remove_distdir = \ |
1261 | + { test ! -d "$(distdir)" \ |
1262 | + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ |
1263 | + && rm -fr "$(distdir)"; }; } |
1264 | +am__relativize = \ |
1265 | + dir0=`pwd`; \ |
1266 | + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ |
1267 | + sed_rest='s,^[^/]*/*,,'; \ |
1268 | + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ |
1269 | + sed_butlast='s,/*[^/]*$$,,'; \ |
1270 | + while test -n "$$dir1"; do \ |
1271 | + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ |
1272 | + if test "$$first" != "."; then \ |
1273 | + if test "$$first" = ".."; then \ |
1274 | + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ |
1275 | + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ |
1276 | + else \ |
1277 | + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ |
1278 | + if test "$$first2" = "$$first"; then \ |
1279 | + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ |
1280 | + else \ |
1281 | + dir2="../$$dir2"; \ |
1282 | + fi; \ |
1283 | + dir0="$$dir0"/"$$first"; \ |
1284 | + fi; \ |
1285 | + fi; \ |
1286 | + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ |
1287 | + done; \ |
1288 | + reldir="$$dir2" |
1289 | +DIST_ARCHIVES = $(distdir).tar.gz |
1290 | +GZIP_ENV = --best |
1291 | +distuninstallcheck_listfiles = find . -type f -print |
1292 | +distcleancheck_listfiles = find . -type f -print |
1293 | +ACLOCAL = @ACLOCAL@ |
1294 | +ALL_LINGUAS = @ALL_LINGUAS@ |
1295 | +AMTAR = @AMTAR@ |
1296 | +AR = @AR@ |
1297 | +AUTOCONF = @AUTOCONF@ |
1298 | +AUTOHEADER = @AUTOHEADER@ |
1299 | +AUTOMAKE = @AUTOMAKE@ |
1300 | +AWK = @AWK@ |
1301 | +BASE_CFLAGS = @BASE_CFLAGS@ |
1302 | +BASE_LIBS = @BASE_LIBS@ |
1303 | +CC = @CC@ |
1304 | +CCDEPMODE = @CCDEPMODE@ |
1305 | +CFLAGS = @CFLAGS@ |
1306 | +CHEESE_CFLAGS = @CHEESE_CFLAGS@ |
1307 | +CHEESE_LIBS = @CHEESE_LIBS@ |
1308 | +CPP = @CPP@ |
1309 | +CPPFLAGS = @CPPFLAGS@ |
1310 | +CYGPATH_W = @CYGPATH_W@ |
1311 | +DATADIRNAME = @DATADIRNAME@ |
1312 | +DEFS = @DEFS@ |
1313 | +DEPDIR = @DEPDIR@ |
1314 | +DSYMUTIL = @DSYMUTIL@ |
1315 | +DUMPBIN = @DUMPBIN@ |
1316 | +ECHO_C = @ECHO_C@ |
1317 | +ECHO_N = @ECHO_N@ |
1318 | +ECHO_T = @ECHO_T@ |
1319 | +EGREP = @EGREP@ |
1320 | +EXEEXT = @EXEEXT@ |
1321 | +FGREP = @FGREP@ |
1322 | +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ |
1323 | +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ |
1324 | +GMSGFMT = @GMSGFMT@ |
1325 | +GMSGFMT_015 = @GMSGFMT_015@ |
1326 | +GREP = @GREP@ |
1327 | +GTK_CFLAGS = @GTK_CFLAGS@ |
1328 | +GTK_LIBS = @GTK_LIBS@ |
1329 | +INSTALL = @INSTALL@ |
1330 | +INSTALL_DATA = @INSTALL_DATA@ |
1331 | +INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
1332 | +INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
1333 | +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
1334 | +INTLLIBS = @INTLLIBS@ |
1335 | +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ |
1336 | +INTLTOOL_MERGE = @INTLTOOL_MERGE@ |
1337 | +INTLTOOL_PERL = @INTLTOOL_PERL@ |
1338 | +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ |
1339 | +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ |
1340 | +LD = @LD@ |
1341 | +LDFLAGS = @LDFLAGS@ |
1342 | +LIBICONV = @LIBICONV@ |
1343 | +LIBINTL = @LIBINTL@ |
1344 | +LIBOBJS = @LIBOBJS@ |
1345 | +LIBS = @LIBS@ |
1346 | +LIBTOOL = @LIBTOOL@ |
1347 | +LIPO = @LIPO@ |
1348 | +LN_S = @LN_S@ |
1349 | +LTLIBICONV = @LTLIBICONV@ |
1350 | +LTLIBINTL = @LTLIBINTL@ |
1351 | +LTLIBOBJS = @LTLIBOBJS@ |
1352 | +MAINT = @MAINT@ |
1353 | +MAKEINFO = @MAKEINFO@ |
1354 | +MKDIR_P = @MKDIR_P@ |
1355 | +MSGFMT = @MSGFMT@ |
1356 | +MSGFMT_015 = @MSGFMT_015@ |
1357 | +MSGMERGE = @MSGMERGE@ |
1358 | +NM = @NM@ |
1359 | +NMEDIT = @NMEDIT@ |
1360 | +OBJDUMP = @OBJDUMP@ |
1361 | +OBJEXT = @OBJEXT@ |
1362 | +OTOOL = @OTOOL@ |
1363 | +OTOOL64 = @OTOOL64@ |
1364 | +PACKAGE = @PACKAGE@ |
1365 | +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
1366 | +PACKAGE_NAME = @PACKAGE_NAME@ |
1367 | +PACKAGE_STRING = @PACKAGE_STRING@ |
1368 | +PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
1369 | +PACKAGE_URL = @PACKAGE_URL@ |
1370 | +PACKAGE_VERSION = @PACKAGE_VERSION@ |
1371 | +PANEL_CFLAGS = @PANEL_CFLAGS@ |
1372 | +PANEL_LIBS = @PANEL_LIBS@ |
1373 | +PATH_SEPARATOR = @PATH_SEPARATOR@ |
1374 | +PKG_CONFIG = @PKG_CONFIG@ |
1375 | +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
1376 | +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
1377 | +POSUB = @POSUB@ |
1378 | +PYGOBJECT_CODEGEN = @PYGOBJECT_CODEGEN@ |
1379 | +PYGOBJECT_DEFSDIR = @PYGOBJECT_DEFSDIR@ |
1380 | +PYGOBJECT_H2DEF = @PYGOBJECT_H2DEF@ |
1381 | +PYGTK_DEFS_DIR = @PYGTK_DEFS_DIR@ |
1382 | +PYTHON = @PYTHON@ |
1383 | +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ |
1384 | +PYTHON_INCLUDES = @PYTHON_INCLUDES@ |
1385 | +PYTHON_PLATFORM = @PYTHON_PLATFORM@ |
1386 | +PYTHON_PREFIX = @PYTHON_PREFIX@ |
1387 | +PYTHON_VERSION = @PYTHON_VERSION@ |
1388 | +RANLIB = @RANLIB@ |
1389 | +SED = @SED@ |
1390 | +SET_MAKE = @SET_MAKE@ |
1391 | +SHELL = @SHELL@ |
1392 | +STRIP = @STRIP@ |
1393 | +USE_NLS = @USE_NLS@ |
1394 | +VERSION = @VERSION@ |
1395 | +XGETTEXT = @XGETTEXT@ |
1396 | +XGETTEXT_015 = @XGETTEXT_015@ |
1397 | +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ |
1398 | +abs_builddir = @abs_builddir@ |
1399 | +abs_srcdir = @abs_srcdir@ |
1400 | +abs_top_builddir = @abs_top_builddir@ |
1401 | +abs_top_srcdir = @abs_top_srcdir@ |
1402 | +ac_ct_CC = @ac_ct_CC@ |
1403 | +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
1404 | +am__include = @am__include@ |
1405 | +am__leading_dot = @am__leading_dot@ |
1406 | +am__quote = @am__quote@ |
1407 | +am__tar = @am__tar@ |
1408 | +am__untar = @am__untar@ |
1409 | +bindir = @bindir@ |
1410 | +build = @build@ |
1411 | +build_alias = @build_alias@ |
1412 | +build_cpu = @build_cpu@ |
1413 | +build_os = @build_os@ |
1414 | +build_vendor = @build_vendor@ |
1415 | +builddir = @builddir@ |
1416 | +datadir = @datadir@ |
1417 | +datarootdir = @datarootdir@ |
1418 | +docdir = @docdir@ |
1419 | +dvidir = @dvidir@ |
1420 | +exec_prefix = @exec_prefix@ |
1421 | +host = @host@ |
1422 | +host_alias = @host_alias@ |
1423 | +host_cpu = @host_cpu@ |
1424 | +host_os = @host_os@ |
1425 | +host_vendor = @host_vendor@ |
1426 | +htmldir = @htmldir@ |
1427 | +includedir = @includedir@ |
1428 | +infodir = @infodir@ |
1429 | +install_sh = @install_sh@ |
1430 | +libdir = @libdir@ |
1431 | +libexecdir = @libexecdir@ |
1432 | +localedir = @localedir@ |
1433 | +localstatedir = @localstatedir@ |
1434 | +lt_ECHO = @lt_ECHO@ |
1435 | +mandir = @mandir@ |
1436 | +mkdir_p = @mkdir_p@ |
1437 | +oldincludedir = @oldincludedir@ |
1438 | +pdfdir = @pdfdir@ |
1439 | +pixmapsdir = @pixmapsdir@ |
1440 | +pkgpyexecdir = @pkgpyexecdir@ |
1441 | +pkgpythondir = @pkgpythondir@ |
1442 | +prefix = @prefix@ |
1443 | +program_transform_name = @program_transform_name@ |
1444 | +psdir = @psdir@ |
1445 | +pyexecdir = @pyexecdir@ |
1446 | +pythondir = @pythondir@ |
1447 | +sbindir = @sbindir@ |
1448 | +sharedstatedir = @sharedstatedir@ |
1449 | +srcdir = @srcdir@ |
1450 | +sysconfdir = @sysconfdir@ |
1451 | +target_alias = @target_alias@ |
1452 | +top_build_prefix = @top_build_prefix@ |
1453 | +top_builddir = @top_builddir@ |
1454 | +top_srcdir = @top_srcdir@ |
1455 | +SUBDIRS = desktop pixmaps po ubiquity src |
1456 | +ACLOCAL_AMFLAGS = -I m4 |
1457 | +EXTRA_DIST = m4/ChangeLog |
1458 | +DISTCLEANFILES = intltool-extract intltool-merge intltool-update |
1459 | +all: config.h |
1460 | + $(MAKE) $(AM_MAKEFLAGS) all-recursive |
1461 | + |
1462 | +.SUFFIXES: |
1463 | +am--refresh: |
1464 | + @: |
1465 | +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) |
1466 | + @for dep in $?; do \ |
1467 | + case '$(am__configure_deps)' in \ |
1468 | + *$$dep*) \ |
1469 | + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ |
1470 | + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ |
1471 | + && exit 0; \ |
1472 | + exit 1;; \ |
1473 | + esac; \ |
1474 | + done; \ |
1475 | + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ |
1476 | + $(am__cd) $(top_srcdir) && \ |
1477 | + $(AUTOMAKE) --foreign Makefile |
1478 | +.PRECIOUS: Makefile |
1479 | +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
1480 | + @case '$?' in \ |
1481 | + *config.status*) \ |
1482 | + echo ' $(SHELL) ./config.status'; \ |
1483 | + $(SHELL) ./config.status;; \ |
1484 | + *) \ |
1485 | + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ |
1486 | + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ |
1487 | + esac; |
1488 | + |
1489 | +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
1490 | + $(SHELL) ./config.status --recheck |
1491 | + |
1492 | +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
1493 | + $(am__cd) $(srcdir) && $(AUTOCONF) |
1494 | +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) |
1495 | + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) |
1496 | +$(am__aclocal_m4_deps): |
1497 | + |
1498 | +config.h: stamp-h1 |
1499 | + @if test ! -f $@; then \ |
1500 | + rm -f stamp-h1; \ |
1501 | + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ |
1502 | + else :; fi |
1503 | + |
1504 | +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status |
1505 | + @rm -f stamp-h1 |
1506 | + cd $(top_builddir) && $(SHELL) ./config.status config.h |
1507 | +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
1508 | + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) |
1509 | + rm -f stamp-h1 |
1510 | + touch $@ |
1511 | + |
1512 | +distclean-hdr: |
1513 | + -rm -f config.h stamp-h1 |
1514 | + |
1515 | +mostlyclean-libtool: |
1516 | + -rm -f *.lo |
1517 | + |
1518 | +clean-libtool: |
1519 | + -rm -rf .libs _libs |
1520 | + |
1521 | +distclean-libtool: |
1522 | + -rm -f libtool config.lt |
1523 | + |
1524 | +# This directory's subdirectories are mostly independent; you can cd |
1525 | +# into them and run `make' without going through this Makefile. |
1526 | +# To change the values of `make' variables: instead of editing Makefiles, |
1527 | +# (1) if the variable is set in `config.status', edit `config.status' |
1528 | +# (which will cause the Makefiles to be regenerated when you run `make'); |
1529 | +# (2) otherwise, pass the desired values on the `make' command line. |
1530 | +$(RECURSIVE_TARGETS): |
1531 | + @fail= failcom='exit 1'; \ |
1532 | + for f in x $$MAKEFLAGS; do \ |
1533 | + case $$f in \ |
1534 | + *=* | --[!k]*);; \ |
1535 | + *k*) failcom='fail=yes';; \ |
1536 | + esac; \ |
1537 | + done; \ |
1538 | + dot_seen=no; \ |
1539 | + target=`echo $@ | sed s/-recursive//`; \ |
1540 | + list='$(SUBDIRS)'; for subdir in $$list; do \ |
1541 | + echo "Making $$target in $$subdir"; \ |
1542 | + if test "$$subdir" = "."; then \ |
1543 | + dot_seen=yes; \ |
1544 | + local_target="$$target-am"; \ |
1545 | + else \ |
1546 | + local_target="$$target"; \ |
1547 | + fi; \ |
1548 | + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ |
1549 | + || eval $$failcom; \ |
1550 | + done; \ |
1551 | + if test "$$dot_seen" = "no"; then \ |
1552 | + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ |
1553 | + fi; test -z "$$fail" |
1554 | + |
1555 | +$(RECURSIVE_CLEAN_TARGETS): |
1556 | + @fail= failcom='exit 1'; \ |
1557 | + for f in x $$MAKEFLAGS; do \ |
1558 | + case $$f in \ |
1559 | + *=* | --[!k]*);; \ |
1560 | + *k*) failcom='fail=yes';; \ |
1561 | + esac; \ |
1562 | + done; \ |
1563 | + dot_seen=no; \ |
1564 | + case "$@" in \ |
1565 | + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ |
1566 | + *) list='$(SUBDIRS)' ;; \ |
1567 | + esac; \ |
1568 | + rev=''; for subdir in $$list; do \ |
1569 | + if test "$$subdir" = "."; then :; else \ |
1570 | + rev="$$subdir $$rev"; \ |
1571 | + fi; \ |
1572 | + done; \ |
1573 | + rev="$$rev ."; \ |
1574 | + target=`echo $@ | sed s/-recursive//`; \ |
1575 | + for subdir in $$rev; do \ |
1576 | + echo "Making $$target in $$subdir"; \ |
1577 | + if test "$$subdir" = "."; then \ |
1578 | + local_target="$$target-am"; \ |
1579 | + else \ |
1580 | + local_target="$$target"; \ |
1581 | + fi; \ |
1582 | + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ |
1583 | + || eval $$failcom; \ |
1584 | + done && test -z "$$fail" |
1585 | +tags-recursive: |
1586 | + list='$(SUBDIRS)'; for subdir in $$list; do \ |
1587 | + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ |
1588 | + done |
1589 | +ctags-recursive: |
1590 | + list='$(SUBDIRS)'; for subdir in $$list; do \ |
1591 | + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ |
1592 | + done |
1593 | + |
1594 | +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) |
1595 | + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ |
1596 | + unique=`for i in $$list; do \ |
1597 | + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
1598 | + done | \ |
1599 | + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
1600 | + END { if (nonempty) { for (i in files) print i; }; }'`; \ |
1601 | + mkid -fID $$unique |
1602 | +tags: TAGS |
1603 | + |
1604 | +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
1605 | + $(TAGS_FILES) $(LISP) |
1606 | + set x; \ |
1607 | + here=`pwd`; \ |
1608 | + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ |
1609 | + include_option=--etags-include; \ |
1610 | + empty_fix=.; \ |
1611 | + else \ |
1612 | + include_option=--include; \ |
1613 | + empty_fix=; \ |
1614 | + fi; \ |
1615 | + list='$(SUBDIRS)'; for subdir in $$list; do \ |
1616 | + if test "$$subdir" = .; then :; else \ |
1617 | + test ! -f $$subdir/TAGS || \ |
1618 | + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ |
1619 | + fi; \ |
1620 | + done; \ |
1621 | + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ |
1622 | + unique=`for i in $$list; do \ |
1623 | + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
1624 | + done | \ |
1625 | + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
1626 | + END { if (nonempty) { for (i in files) print i; }; }'`; \ |
1627 | + shift; \ |
1628 | + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
1629 | + test -n "$$unique" || unique=$$empty_fix; \ |
1630 | + if test $$# -gt 0; then \ |
1631 | + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
1632 | + "$$@" $$unique; \ |
1633 | + else \ |
1634 | + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
1635 | + $$unique; \ |
1636 | + fi; \ |
1637 | + fi |
1638 | +ctags: CTAGS |
1639 | +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
1640 | + $(TAGS_FILES) $(LISP) |
1641 | + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ |
1642 | + unique=`for i in $$list; do \ |
1643 | + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
1644 | + done | \ |
1645 | + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
1646 | + END { if (nonempty) { for (i in files) print i; }; }'`; \ |
1647 | + test -z "$(CTAGS_ARGS)$$unique" \ |
1648 | + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
1649 | + $$unique |
1650 | + |
1651 | +GTAGS: |
1652 | + here=`$(am__cd) $(top_builddir) && pwd` \ |
1653 | + && $(am__cd) $(top_srcdir) \ |
1654 | + && gtags -i $(GTAGS_ARGS) "$$here" |
1655 | + |
1656 | +distclean-tags: |
1657 | + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
1658 | + |
1659 | +distdir: $(DISTFILES) |
1660 | + $(am__remove_distdir) |
1661 | + test -d "$(distdir)" || mkdir "$(distdir)" |
1662 | + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
1663 | + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
1664 | + list='$(DISTFILES)'; \ |
1665 | + dist_files=`for file in $$list; do echo $$file; done | \ |
1666 | + sed -e "s|^$$srcdirstrip/||;t" \ |
1667 | + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
1668 | + case $$dist_files in \ |
1669 | + */*) $(MKDIR_P) `echo "$$dist_files" | \ |
1670 | + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
1671 | + sort -u` ;; \ |
1672 | + esac; \ |
1673 | + for file in $$dist_files; do \ |
1674 | + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
1675 | + if test -d $$d/$$file; then \ |
1676 | + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
1677 | + if test -d "$(distdir)/$$file"; then \ |
1678 | + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
1679 | + fi; \ |
1680 | + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
1681 | + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
1682 | + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
1683 | + fi; \ |
1684 | + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
1685 | + else \ |
1686 | + test -f "$(distdir)/$$file" \ |
1687 | + || cp -p $$d/$$file "$(distdir)/$$file" \ |
1688 | + || exit 1; \ |
1689 | + fi; \ |
1690 | + done |
1691 | + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ |
1692 | + if test "$$subdir" = .; then :; else \ |
1693 | + test -d "$(distdir)/$$subdir" \ |
1694 | + || $(MKDIR_P) "$(distdir)/$$subdir" \ |
1695 | + || exit 1; \ |
1696 | + fi; \ |
1697 | + done |
1698 | + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ |
1699 | + if test "$$subdir" = .; then :; else \ |
1700 | + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ |
1701 | + $(am__relativize); \ |
1702 | + new_distdir=$$reldir; \ |
1703 | + dir1=$$subdir; dir2="$(top_distdir)"; \ |
1704 | + $(am__relativize); \ |
1705 | + new_top_distdir=$$reldir; \ |
1706 | + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ |
1707 | + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ |
1708 | + ($(am__cd) $$subdir && \ |
1709 | + $(MAKE) $(AM_MAKEFLAGS) \ |
1710 | + top_distdir="$$new_top_distdir" \ |
1711 | + distdir="$$new_distdir" \ |
1712 | + am__remove_distdir=: \ |
1713 | + am__skip_length_check=: \ |
1714 | + am__skip_mode_fix=: \ |
1715 | + distdir) \ |
1716 | + || exit 1; \ |
1717 | + fi; \ |
1718 | + done |
1719 | + -test -n "$(am__skip_mode_fix)" \ |
1720 | + || find "$(distdir)" -type d ! -perm -755 \ |
1721 | + -exec chmod u+rwx,go+rx {} \; -o \ |
1722 | + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ |
1723 | + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ |
1724 | + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ |
1725 | + || chmod -R a+r "$(distdir)" |
1726 | +dist-gzip: distdir |
1727 | + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz |
1728 | + $(am__remove_distdir) |
1729 | + |
1730 | +dist-bzip2: distdir |
1731 | + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 |
1732 | + $(am__remove_distdir) |
1733 | + |
1734 | +dist-lzma: distdir |
1735 | + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma |
1736 | + $(am__remove_distdir) |
1737 | + |
1738 | +dist-xz: distdir |
1739 | + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz |
1740 | + $(am__remove_distdir) |
1741 | + |
1742 | +dist-tarZ: distdir |
1743 | + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z |
1744 | + $(am__remove_distdir) |
1745 | + |
1746 | +dist-shar: distdir |
1747 | + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz |
1748 | + $(am__remove_distdir) |
1749 | + |
1750 | +dist-zip: distdir |
1751 | + -rm -f $(distdir).zip |
1752 | + zip -rq $(distdir).zip $(distdir) |
1753 | + $(am__remove_distdir) |
1754 | + |
1755 | +dist dist-all: distdir |
1756 | + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz |
1757 | + $(am__remove_distdir) |
1758 | + |
1759 | +# This target untars the dist file and tries a VPATH configuration. Then |
1760 | +# it guarantees that the distribution is self-contained by making another |
1761 | +# tarfile. |
1762 | +distcheck: dist |
1763 | + case '$(DIST_ARCHIVES)' in \ |
1764 | + *.tar.gz*) \ |
1765 | + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ |
1766 | + *.tar.bz2*) \ |
1767 | + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ |
1768 | + *.tar.lzma*) \ |
1769 | + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ |
1770 | + *.tar.xz*) \ |
1771 | + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ |
1772 | + *.tar.Z*) \ |
1773 | + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ |
1774 | + *.shar.gz*) \ |
1775 | + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ |
1776 | + *.zip*) \ |
1777 | + unzip $(distdir).zip ;;\ |
1778 | + esac |
1779 | + chmod -R a-w $(distdir); chmod a+w $(distdir) |
1780 | + mkdir $(distdir)/_build |
1781 | + mkdir $(distdir)/_inst |
1782 | + chmod a-w $(distdir) |
1783 | + test -d $(distdir)/_build || exit 0; \ |
1784 | + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ |
1785 | + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ |
1786 | + && am__cwd=`pwd` \ |
1787 | + && $(am__cd) $(distdir)/_build \ |
1788 | + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ |
1789 | + $(DISTCHECK_CONFIGURE_FLAGS) \ |
1790 | + && $(MAKE) $(AM_MAKEFLAGS) \ |
1791 | + && $(MAKE) $(AM_MAKEFLAGS) dvi \ |
1792 | + && $(MAKE) $(AM_MAKEFLAGS) check \ |
1793 | + && $(MAKE) $(AM_MAKEFLAGS) install \ |
1794 | + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ |
1795 | + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ |
1796 | + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ |
1797 | + distuninstallcheck \ |
1798 | + && chmod -R a-w "$$dc_install_base" \ |
1799 | + && ({ \ |
1800 | + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ |
1801 | + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ |
1802 | + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ |
1803 | + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ |
1804 | + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ |
1805 | + } || { rm -rf "$$dc_destdir"; exit 1; }) \ |
1806 | + && rm -rf "$$dc_destdir" \ |
1807 | + && $(MAKE) $(AM_MAKEFLAGS) dist \ |
1808 | + && rm -rf $(DIST_ARCHIVES) \ |
1809 | + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ |
1810 | + && cd "$$am__cwd" \ |
1811 | + || exit 1 |
1812 | + $(am__remove_distdir) |
1813 | + @(echo "$(distdir) archives ready for distribution: "; \ |
1814 | + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ |
1815 | + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' |
1816 | +distuninstallcheck: |
1817 | + @$(am__cd) '$(distuninstallcheck_dir)' \ |
1818 | + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ |
1819 | + || { echo "ERROR: files left after uninstall:" ; \ |
1820 | + if test -n "$(DESTDIR)"; then \ |
1821 | + echo " (check DESTDIR support)"; \ |
1822 | + fi ; \ |
1823 | + $(distuninstallcheck_listfiles) ; \ |
1824 | + exit 1; } >&2 |
1825 | +distcleancheck: distclean |
1826 | + @if test '$(srcdir)' = . ; then \ |
1827 | + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ |
1828 | + exit 1 ; \ |
1829 | + fi |
1830 | + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ |
1831 | + || { echo "ERROR: files left in build directory after distclean:" ; \ |
1832 | + $(distcleancheck_listfiles) ; \ |
1833 | + exit 1; } >&2 |
1834 | +check-am: all-am |
1835 | +check: check-recursive |
1836 | +all-am: Makefile config.h |
1837 | +installdirs: installdirs-recursive |
1838 | +installdirs-am: |
1839 | +install: install-recursive |
1840 | +install-exec: install-exec-recursive |
1841 | +install-data: install-data-recursive |
1842 | +uninstall: uninstall-recursive |
1843 | + |
1844 | +install-am: all-am |
1845 | + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
1846 | + |
1847 | +installcheck: installcheck-recursive |
1848 | +install-strip: |
1849 | + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
1850 | + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
1851 | + `test -z '$(STRIP)' || \ |
1852 | + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install |
1853 | +mostlyclean-generic: |
1854 | + |
1855 | +clean-generic: |
1856 | + |
1857 | +distclean-generic: |
1858 | + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
1859 | + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
1860 | + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) |
1861 | + |
1862 | +maintainer-clean-generic: |
1863 | + @echo "This command is intended for maintainers to use" |
1864 | + @echo "it deletes files that may require special tools to rebuild." |
1865 | +clean: clean-recursive |
1866 | + |
1867 | +clean-am: clean-generic clean-libtool mostlyclean-am |
1868 | + |
1869 | +distclean: distclean-recursive |
1870 | + -rm -f $(am__CONFIG_DISTCLEAN_FILES) |
1871 | + -rm -f Makefile |
1872 | +distclean-am: clean-am distclean-generic distclean-hdr \ |
1873 | + distclean-libtool distclean-tags |
1874 | + |
1875 | +dvi: dvi-recursive |
1876 | + |
1877 | +dvi-am: |
1878 | + |
1879 | +html: html-recursive |
1880 | + |
1881 | +html-am: |
1882 | + |
1883 | +info: info-recursive |
1884 | + |
1885 | +info-am: |
1886 | + |
1887 | +install-data-am: |
1888 | + |
1889 | +install-dvi: install-dvi-recursive |
1890 | + |
1891 | +install-dvi-am: |
1892 | + |
1893 | +install-exec-am: |
1894 | + |
1895 | +install-html: install-html-recursive |
1896 | + |
1897 | +install-html-am: |
1898 | + |
1899 | +install-info: install-info-recursive |
1900 | + |
1901 | +install-info-am: |
1902 | + |
1903 | +install-man: |
1904 | + |
1905 | +install-pdf: install-pdf-recursive |
1906 | + |
1907 | +install-pdf-am: |
1908 | + |
1909 | +install-ps: install-ps-recursive |
1910 | + |
1911 | +install-ps-am: |
1912 | + |
1913 | +installcheck-am: |
1914 | + |
1915 | +maintainer-clean: maintainer-clean-recursive |
1916 | + -rm -f $(am__CONFIG_DISTCLEAN_FILES) |
1917 | + -rm -rf $(top_srcdir)/autom4te.cache |
1918 | + -rm -f Makefile |
1919 | +maintainer-clean-am: distclean-am maintainer-clean-generic |
1920 | + |
1921 | +mostlyclean: mostlyclean-recursive |
1922 | + |
1923 | +mostlyclean-am: mostlyclean-generic mostlyclean-libtool |
1924 | + |
1925 | +pdf: pdf-recursive |
1926 | + |
1927 | +pdf-am: |
1928 | + |
1929 | +ps: ps-recursive |
1930 | + |
1931 | +ps-am: |
1932 | + |
1933 | +uninstall-am: |
1934 | + |
1935 | +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ |
1936 | + ctags-recursive install-am install-strip tags-recursive |
1937 | + |
1938 | +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ |
1939 | + all all-am am--refresh check check-am clean clean-generic \ |
1940 | + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ |
1941 | + dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ |
1942 | + distcheck distclean distclean-generic distclean-hdr \ |
1943 | + distclean-libtool distclean-tags distcleancheck distdir \ |
1944 | + distuninstallcheck dvi dvi-am html html-am info info-am \ |
1945 | + install install-am install-data install-data-am install-dvi \ |
1946 | + install-dvi-am install-exec install-exec-am install-html \ |
1947 | + install-html-am install-info install-info-am install-man \ |
1948 | + install-pdf install-pdf-am install-ps install-ps-am \ |
1949 | + install-strip installcheck installcheck-am installdirs \ |
1950 | + installdirs-am maintainer-clean maintainer-clean-generic \ |
1951 | + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ |
1952 | + ps ps-am tags tags-recursive uninstall uninstall-am |
1953 | + |
1954 | + |
1955 | +# Tell versions [3.59,3.63) of GNU make to not export all variables. |
1956 | +# Otherwise a system limit (for SysV at least) may be exceeded. |
1957 | +.NOEXPORT: |
1958 | |
1959 | === renamed file 'Makefile.in' => 'Makefile.in.moved' |
1960 | === added file 'aclocal.m4' |
1961 | --- aclocal.m4 1970-01-01 00:00:00 +0000 |
1962 | +++ aclocal.m4 2011-01-31 11:12:59 +0000 |
1963 | @@ -0,0 +1,1597 @@ |
1964 | +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- |
1965 | + |
1966 | +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
1967 | +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. |
1968 | +# This file is free software; the Free Software Foundation |
1969 | +# gives unlimited permission to copy and/or distribute it, |
1970 | +# with or without modifications, as long as this notice is preserved. |
1971 | + |
1972 | +# This program is distributed in the hope that it will be useful, |
1973 | +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
1974 | +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
1975 | +# PARTICULAR PURPOSE. |
1976 | + |
1977 | +m4_ifndef([AC_AUTOCONF_VERSION], |
1978 | + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
1979 | +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, |
1980 | +[m4_warning([this file was generated for autoconf 2.67. |
1981 | +You have another version of autoconf. It may work, but is not guaranteed to. |
1982 | +If you have problems, you may need to regenerate the build system entirely. |
1983 | +To do so, use the procedure documented by the package, typically `autoreconf'.])]) |
1984 | + |
1985 | +# Configure paths for GTK+ |
1986 | +# Owen Taylor 1997-2001 |
1987 | + |
1988 | +dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) |
1989 | +dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, |
1990 | +dnl pass to pkg-config |
1991 | +dnl |
1992 | +AC_DEFUN([AM_PATH_GTK_2_0], |
1993 | +[dnl |
1994 | +dnl Get the cflags and libraries from pkg-config |
1995 | +dnl |
1996 | +AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], |
1997 | + , enable_gtktest=yes) |
1998 | + |
1999 | + pkg_config_args=gtk+-2.0 |
2000 | + for module in . $4 |
2001 | + do |
2002 | + case "$module" in |
2003 | + gthread) |
2004 | + pkg_config_args="$pkg_config_args gthread-2.0" |
2005 | + ;; |
2006 | + esac |
2007 | + done |
2008 | + |
2009 | + no_gtk="" |
2010 | + |
2011 | + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) |
2012 | + |
2013 | + if test x$PKG_CONFIG != xno ; then |
2014 | + if pkg-config --atleast-pkgconfig-version 0.7 ; then |
2015 | + : |
2016 | + else |
2017 | + echo "*** pkg-config too old; version 0.7 or better required." |
2018 | + no_gtk=yes |
2019 | + PKG_CONFIG=no |
2020 | + fi |
2021 | + else |
2022 | + no_gtk=yes |
2023 | + fi |
2024 | + |
2025 | + min_gtk_version=ifelse([$1], ,2.0.0,$1) |
2026 | + AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) |
2027 | + |
2028 | + if test x$PKG_CONFIG != xno ; then |
2029 | + ## don't try to run the test against uninstalled libtool libs |
2030 | + if $PKG_CONFIG --uninstalled $pkg_config_args; then |
2031 | + echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" |
2032 | + enable_gtktest=no |
2033 | + fi |
2034 | + |
2035 | + if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then |
2036 | + : |
2037 | + else |
2038 | + no_gtk=yes |
2039 | + fi |
2040 | + fi |
2041 | + |
2042 | + if test x"$no_gtk" = x ; then |
2043 | + GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` |
2044 | + GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` |
2045 | + gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ |
2046 | + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` |
2047 | + gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ |
2048 | + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` |
2049 | + gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ |
2050 | + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` |
2051 | + if test "x$enable_gtktest" = "xyes" ; then |
2052 | + ac_save_CFLAGS="$CFLAGS" |
2053 | + ac_save_LIBS="$LIBS" |
2054 | + CFLAGS="$CFLAGS $GTK_CFLAGS" |
2055 | + LIBS="$GTK_LIBS $LIBS" |
2056 | +dnl |
2057 | +dnl Now check if the installed GTK+ is sufficiently new. (Also sanity |
2058 | +dnl checks the results of pkg-config to some extent) |
2059 | +dnl |
2060 | + rm -f conf.gtktest |
2061 | + AC_TRY_RUN([ |
2062 | +#include <gtk/gtk.h> |
2063 | +#include <stdio.h> |
2064 | +#include <stdlib.h> |
2065 | + |
2066 | +int |
2067 | +main () |
2068 | +{ |
2069 | + int major, minor, micro; |
2070 | + char *tmp_version; |
2071 | + |
2072 | + fclose (fopen ("conf.gtktest", "w")); |
2073 | + |
2074 | + /* HP/UX 9 (%@#!) writes to sscanf strings */ |
2075 | + tmp_version = g_strdup("$min_gtk_version"); |
2076 | + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { |
2077 | + printf("%s, bad version string\n", "$min_gtk_version"); |
2078 | + exit(1); |
2079 | + } |
2080 | + |
2081 | + if ((gtk_major_version != $gtk_config_major_version) || |
2082 | + (gtk_minor_version != $gtk_config_minor_version) || |
2083 | + (gtk_micro_version != $gtk_config_micro_version)) |
2084 | + { |
2085 | + printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", |
2086 | + $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, |
2087 | + gtk_major_version, gtk_minor_version, gtk_micro_version); |
2088 | + printf ("*** was found! If pkg-config was correct, then it is best\n"); |
2089 | + printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); |
2090 | + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); |
2091 | + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); |
2092 | + printf("*** required on your system.\n"); |
2093 | + printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); |
2094 | + printf("*** to point to the correct configuration files\n"); |
2095 | + } |
2096 | + else if ((gtk_major_version != GTK_MAJOR_VERSION) || |
2097 | + (gtk_minor_version != GTK_MINOR_VERSION) || |
2098 | + (gtk_micro_version != GTK_MICRO_VERSION)) |
2099 | + { |
2100 | + printf("*** GTK+ header files (version %d.%d.%d) do not match\n", |
2101 | + GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); |
2102 | + printf("*** library (version %d.%d.%d)\n", |
2103 | + gtk_major_version, gtk_minor_version, gtk_micro_version); |
2104 | + } |
2105 | + else |
2106 | + { |
2107 | + if ((gtk_major_version > major) || |
2108 | + ((gtk_major_version == major) && (gtk_minor_version > minor)) || |
2109 | + ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) |
2110 | + { |
2111 | + return 0; |
2112 | + } |
2113 | + else |
2114 | + { |
2115 | + printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", |
2116 | + gtk_major_version, gtk_minor_version, gtk_micro_version); |
2117 | + printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", |
2118 | + major, minor, micro); |
2119 | + printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); |
2120 | + printf("***\n"); |
2121 | + printf("*** If you have already installed a sufficiently new version, this error\n"); |
2122 | + printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); |
2123 | + printf("*** being found. The easiest way to fix this is to remove the old version\n"); |
2124 | + printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); |
2125 | + printf("*** correct copy of pkg-config. (In this case, you will have to\n"); |
2126 | + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); |
2127 | + printf("*** so that the correct libraries are found at run-time))\n"); |
2128 | + } |
2129 | + } |
2130 | + return 1; |
2131 | +} |
2132 | +],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) |
2133 | + CFLAGS="$ac_save_CFLAGS" |
2134 | + LIBS="$ac_save_LIBS" |
2135 | + fi |
2136 | + fi |
2137 | + if test "x$no_gtk" = x ; then |
2138 | + AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) |
2139 | + ifelse([$2], , :, [$2]) |
2140 | + else |
2141 | + AC_MSG_RESULT(no) |
2142 | + if test "$PKG_CONFIG" = "no" ; then |
2143 | + echo "*** A new enough version of pkg-config was not found." |
2144 | + echo "*** See http://pkgconfig.sourceforge.net" |
2145 | + else |
2146 | + if test -f conf.gtktest ; then |
2147 | + : |
2148 | + else |
2149 | + echo "*** Could not run GTK+ test program, checking why..." |
2150 | + ac_save_CFLAGS="$CFLAGS" |
2151 | + ac_save_LIBS="$LIBS" |
2152 | + CFLAGS="$CFLAGS $GTK_CFLAGS" |
2153 | + LIBS="$LIBS $GTK_LIBS" |
2154 | + AC_TRY_LINK([ |
2155 | +#include <gtk/gtk.h> |
2156 | +#include <stdio.h> |
2157 | +], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], |
2158 | + [ echo "*** The test program compiled, but did not run. This usually means" |
2159 | + echo "*** that the run-time linker is not finding GTK+ or finding the wrong" |
2160 | + echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" |
2161 | + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" |
2162 | + echo "*** to the installed location Also, make sure you have run ldconfig if that" |
2163 | + echo "*** is required on your system" |
2164 | + echo "***" |
2165 | + echo "*** If you have an old version installed, it is best to remove it, although" |
2166 | + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], |
2167 | + [ echo "*** The test program failed to compile or link. See the file config.log for the" |
2168 | + echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) |
2169 | + CFLAGS="$ac_save_CFLAGS" |
2170 | + LIBS="$ac_save_LIBS" |
2171 | + fi |
2172 | + fi |
2173 | + GTK_CFLAGS="" |
2174 | + GTK_LIBS="" |
2175 | + ifelse([$3], , :, [$3]) |
2176 | + fi |
2177 | + AC_SUBST(GTK_CFLAGS) |
2178 | + AC_SUBST(GTK_LIBS) |
2179 | + rm -f conf.gtktest |
2180 | +]) |
2181 | + |
2182 | +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- |
2183 | +# serial 1 (pkg-config-0.24) |
2184 | +# |
2185 | +# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. |
2186 | +# |
2187 | +# This program is free software; you can redistribute it and/or modify |
2188 | +# it under the terms of the GNU General Public License as published by |
2189 | +# the Free Software Foundation; either version 2 of the License, or |
2190 | +# (at your option) any later version. |
2191 | +# |
2192 | +# This program is distributed in the hope that it will be useful, but |
2193 | +# WITHOUT ANY WARRANTY; without even the implied warranty of |
2194 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
2195 | +# General Public License for more details. |
2196 | +# |
2197 | +# You should have received a copy of the GNU General Public License |
2198 | +# along with this program; if not, write to the Free Software |
2199 | +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
2200 | +# |
2201 | +# As a special exception to the GNU General Public License, if you |
2202 | +# distribute this file as part of a program that contains a |
2203 | +# configuration script generated by Autoconf, you may include it under |
2204 | +# the same distribution terms that you use for the rest of that program. |
2205 | + |
2206 | +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) |
2207 | +# ---------------------------------- |
2208 | +AC_DEFUN([PKG_PROG_PKG_CONFIG], |
2209 | +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) |
2210 | +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) |
2211 | +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) |
2212 | +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) |
2213 | +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) |
2214 | + |
2215 | +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then |
2216 | + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) |
2217 | +fi |
2218 | +if test -n "$PKG_CONFIG"; then |
2219 | + _pkg_min_version=m4_default([$1], [0.9.0]) |
2220 | + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) |
2221 | + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then |
2222 | + AC_MSG_RESULT([yes]) |
2223 | + else |
2224 | + AC_MSG_RESULT([no]) |
2225 | + PKG_CONFIG="" |
2226 | + fi |
2227 | +fi[]dnl |
2228 | +])# PKG_PROG_PKG_CONFIG |
2229 | + |
2230 | +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) |
2231 | +# |
2232 | +# Check to see whether a particular set of modules exists. Similar |
2233 | +# to PKG_CHECK_MODULES(), but does not set variables or print errors. |
2234 | +# |
2235 | +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
2236 | +# only at the first occurence in configure.ac, so if the first place |
2237 | +# it's called might be skipped (such as if it is within an "if", you |
2238 | +# have to call PKG_CHECK_EXISTS manually |
2239 | +# -------------------------------------------------------------- |
2240 | +AC_DEFUN([PKG_CHECK_EXISTS], |
2241 | +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl |
2242 | +if test -n "$PKG_CONFIG" && \ |
2243 | + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then |
2244 | + m4_default([$2], [:]) |
2245 | +m4_ifvaln([$3], [else |
2246 | + $3])dnl |
2247 | +fi]) |
2248 | + |
2249 | +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) |
2250 | +# --------------------------------------------- |
2251 | +m4_define([_PKG_CONFIG], |
2252 | +[if test -n "$$1"; then |
2253 | + pkg_cv_[]$1="$$1" |
2254 | + elif test -n "$PKG_CONFIG"; then |
2255 | + PKG_CHECK_EXISTS([$3], |
2256 | + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], |
2257 | + [pkg_failed=yes]) |
2258 | + else |
2259 | + pkg_failed=untried |
2260 | +fi[]dnl |
2261 | +])# _PKG_CONFIG |
2262 | + |
2263 | +# _PKG_SHORT_ERRORS_SUPPORTED |
2264 | +# ----------------------------- |
2265 | +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], |
2266 | +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
2267 | +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then |
2268 | + _pkg_short_errors_supported=yes |
2269 | +else |
2270 | + _pkg_short_errors_supported=no |
2271 | +fi[]dnl |
2272 | +])# _PKG_SHORT_ERRORS_SUPPORTED |
2273 | + |
2274 | + |
2275 | +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], |
2276 | +# [ACTION-IF-NOT-FOUND]) |
2277 | +# |
2278 | +# |
2279 | +# Note that if there is a possibility the first call to |
2280 | +# PKG_CHECK_MODULES might not happen, you should be sure to include an |
2281 | +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac |
2282 | +# |
2283 | +# |
2284 | +# -------------------------------------------------------------- |
2285 | +AC_DEFUN([PKG_CHECK_MODULES], |
2286 | +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl |
2287 | +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl |
2288 | +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl |
2289 | + |
2290 | +pkg_failed=no |
2291 | +AC_MSG_CHECKING([for $1]) |
2292 | + |
2293 | +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) |
2294 | +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) |
2295 | + |
2296 | +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS |
2297 | +and $1[]_LIBS to avoid the need to call pkg-config. |
2298 | +See the pkg-config man page for more details.]) |
2299 | + |
2300 | +if test $pkg_failed = yes; then |
2301 | + AC_MSG_RESULT([no]) |
2302 | + _PKG_SHORT_ERRORS_SUPPORTED |
2303 | + if test $_pkg_short_errors_supported = yes; then |
2304 | + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` |
2305 | + else |
2306 | + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` |
2307 | + fi |
2308 | + # Put the nasty error message in config.log where it belongs |
2309 | + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD |
2310 | + |
2311 | + m4_default([$4], [AC_MSG_ERROR( |
2312 | +[Package requirements ($2) were not met: |
2313 | + |
2314 | +$$1_PKG_ERRORS |
2315 | + |
2316 | +Consider adjusting the PKG_CONFIG_PATH environment variable if you |
2317 | +installed software in a non-standard prefix. |
2318 | + |
2319 | +_PKG_TEXT])dnl |
2320 | + ]) |
2321 | +elif test $pkg_failed = untried; then |
2322 | + AC_MSG_RESULT([no]) |
2323 | + m4_default([$4], [AC_MSG_FAILURE( |
2324 | +[The pkg-config script could not be found or is too old. Make sure it |
2325 | +is in your PATH or set the PKG_CONFIG environment variable to the full |
2326 | +path to pkg-config. |
2327 | + |
2328 | +_PKG_TEXT |
2329 | + |
2330 | +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl |
2331 | + ]) |
2332 | +else |
2333 | + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS |
2334 | + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS |
2335 | + AC_MSG_RESULT([yes]) |
2336 | + $3 |
2337 | +fi[]dnl |
2338 | +])# PKG_CHECK_MODULES |
2339 | + |
2340 | +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
2341 | +# |
2342 | +# This file is free software; the Free Software Foundation |
2343 | +# gives unlimited permission to copy and/or distribute it, |
2344 | +# with or without modifications, as long as this notice is preserved. |
2345 | + |
2346 | +# AM_AUTOMAKE_VERSION(VERSION) |
2347 | +# ---------------------------- |
2348 | +# Automake X.Y traces this macro to ensure aclocal.m4 has been |
2349 | +# generated from the m4 files accompanying Automake X.Y. |
2350 | +# (This private macro should not be called outside this file.) |
2351 | +AC_DEFUN([AM_AUTOMAKE_VERSION], |
2352 | +[am__api_version='1.11' |
2353 | +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
2354 | +dnl require some minimum version. Point them to the right macro. |
2355 | +m4_if([$1], [1.11.1], [], |
2356 | + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
2357 | +]) |
2358 | + |
2359 | +# _AM_AUTOCONF_VERSION(VERSION) |
2360 | +# ----------------------------- |
2361 | +# aclocal traces this macro to find the Autoconf version. |
2362 | +# This is a private macro too. Using m4_define simplifies |
2363 | +# the logic in aclocal, which can simply ignore this definition. |
2364 | +m4_define([_AM_AUTOCONF_VERSION], []) |
2365 | + |
2366 | +# AM_SET_CURRENT_AUTOMAKE_VERSION |
2367 | +# ------------------------------- |
2368 | +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
2369 | +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. |
2370 | +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
2371 | +[AM_AUTOMAKE_VERSION([1.11.1])dnl |
2372 | +m4_ifndef([AC_AUTOCONF_VERSION], |
2373 | + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
2374 | +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) |
2375 | + |
2376 | +# AM_AUX_DIR_EXPAND -*- Autoconf -*- |
2377 | + |
2378 | +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. |
2379 | +# |
2380 | +# This file is free software; the Free Software Foundation |
2381 | +# gives unlimited permission to copy and/or distribute it, |
2382 | +# with or without modifications, as long as this notice is preserved. |
2383 | + |
2384 | +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets |
2385 | +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to |
2386 | +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. |
2387 | +# |
2388 | +# Of course, Automake must honor this variable whenever it calls a |
2389 | +# tool from the auxiliary directory. The problem is that $srcdir (and |
2390 | +# therefore $ac_aux_dir as well) can be either absolute or relative, |
2391 | +# depending on how configure is run. This is pretty annoying, since |
2392 | +# it makes $ac_aux_dir quite unusable in subdirectories: in the top |
2393 | +# source directory, any form will work fine, but in subdirectories a |
2394 | +# relative path needs to be adjusted first. |
2395 | +# |
2396 | +# $ac_aux_dir/missing |
2397 | +# fails when called from a subdirectory if $ac_aux_dir is relative |
2398 | +# $top_srcdir/$ac_aux_dir/missing |
2399 | +# fails if $ac_aux_dir is absolute, |
2400 | +# fails when called from a subdirectory in a VPATH build with |
2401 | +# a relative $ac_aux_dir |
2402 | +# |
2403 | +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir |
2404 | +# are both prefixed by $srcdir. In an in-source build this is usually |
2405 | +# harmless because $srcdir is `.', but things will broke when you |
2406 | +# start a VPATH build or use an absolute $srcdir. |
2407 | +# |
2408 | +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, |
2409 | +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: |
2410 | +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` |
2411 | +# and then we would define $MISSING as |
2412 | +# MISSING="\${SHELL} $am_aux_dir/missing" |
2413 | +# This will work as long as MISSING is not called from configure, because |
2414 | +# unfortunately $(top_srcdir) has no meaning in configure. |
2415 | +# However there are other variables, like CC, which are often used in |
2416 | +# configure, and could therefore not use this "fixed" $ac_aux_dir. |
2417 | +# |
2418 | +# Another solution, used here, is to always expand $ac_aux_dir to an |
2419 | +# absolute PATH. The drawback is that using absolute paths prevent a |
2420 | +# configured tree to be moved without reconfiguration. |
2421 | + |
2422 | +AC_DEFUN([AM_AUX_DIR_EXPAND], |
2423 | +[dnl Rely on autoconf to set up CDPATH properly. |
2424 | +AC_PREREQ([2.50])dnl |
2425 | +# expand $ac_aux_dir to an absolute path |
2426 | +am_aux_dir=`cd $ac_aux_dir && pwd` |
2427 | +]) |
2428 | + |
2429 | +# AM_CONDITIONAL -*- Autoconf -*- |
2430 | + |
2431 | +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 |
2432 | +# Free Software Foundation, Inc. |
2433 | +# |
2434 | +# This file is free software; the Free Software Foundation |
2435 | +# gives unlimited permission to copy and/or distribute it, |
2436 | +# with or without modifications, as long as this notice is preserved. |
2437 | + |
2438 | +# serial 9 |
2439 | + |
2440 | +# AM_CONDITIONAL(NAME, SHELL-CONDITION) |
2441 | +# ------------------------------------- |
2442 | +# Define a conditional. |
2443 | +AC_DEFUN([AM_CONDITIONAL], |
2444 | +[AC_PREREQ(2.52)dnl |
2445 | + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], |
2446 | + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl |
2447 | +AC_SUBST([$1_TRUE])dnl |
2448 | +AC_SUBST([$1_FALSE])dnl |
2449 | +_AM_SUBST_NOTMAKE([$1_TRUE])dnl |
2450 | +_AM_SUBST_NOTMAKE([$1_FALSE])dnl |
2451 | +m4_define([_AM_COND_VALUE_$1], [$2])dnl |
2452 | +if $2; then |
2453 | + $1_TRUE= |
2454 | + $1_FALSE='#' |
2455 | +else |
2456 | + $1_TRUE='#' |
2457 | + $1_FALSE= |
2458 | +fi |
2459 | +AC_CONFIG_COMMANDS_PRE( |
2460 | +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then |
2461 | + AC_MSG_ERROR([[conditional "$1" was never defined. |
2462 | +Usually this means the macro was only invoked conditionally.]]) |
2463 | +fi])]) |
2464 | + |
2465 | +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 |
2466 | +# Free Software Foundation, Inc. |
2467 | +# |
2468 | +# This file is free software; the Free Software Foundation |
2469 | +# gives unlimited permission to copy and/or distribute it, |
2470 | +# with or without modifications, as long as this notice is preserved. |
2471 | + |
2472 | +# serial 10 |
2473 | + |
2474 | +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be |
2475 | +# written in clear, in which case automake, when reading aclocal.m4, |
2476 | +# will think it sees a *use*, and therefore will trigger all it's |
2477 | +# C support machinery. Also note that it means that autoscan, seeing |
2478 | +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... |
2479 | + |
2480 | + |
2481 | +# _AM_DEPENDENCIES(NAME) |
2482 | +# ---------------------- |
2483 | +# See how the compiler implements dependency checking. |
2484 | +# NAME is "CC", "CXX", "GCJ", or "OBJC". |
2485 | +# We try a few techniques and use that to set a single cache variable. |
2486 | +# |
2487 | +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was |
2488 | +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular |
2489 | +# dependency, and given that the user is not expected to run this macro, |
2490 | +# just rely on AC_PROG_CC. |
2491 | +AC_DEFUN([_AM_DEPENDENCIES], |
2492 | +[AC_REQUIRE([AM_SET_DEPDIR])dnl |
2493 | +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl |
2494 | +AC_REQUIRE([AM_MAKE_INCLUDE])dnl |
2495 | +AC_REQUIRE([AM_DEP_TRACK])dnl |
2496 | + |
2497 | +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], |
2498 | + [$1], CXX, [depcc="$CXX" am_compiler_list=], |
2499 | + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], |
2500 | + [$1], UPC, [depcc="$UPC" am_compiler_list=], |
2501 | + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], |
2502 | + [depcc="$$1" am_compiler_list=]) |
2503 | + |
2504 | +AC_CACHE_CHECK([dependency style of $depcc], |
2505 | + [am_cv_$1_dependencies_compiler_type], |
2506 | +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then |
2507 | + # We make a subdir and do the tests there. Otherwise we can end up |
2508 | + # making bogus files that we don't know about and never remove. For |
2509 | + # instance it was reported that on HP-UX the gcc test will end up |
2510 | + # making a dummy file named `D' -- because `-MD' means `put the output |
2511 | + # in D'. |
2512 | + mkdir conftest.dir |
2513 | + # Copy depcomp to subdir because otherwise we won't find it if we're |
2514 | + # using a relative directory. |
2515 | + cp "$am_depcomp" conftest.dir |
2516 | + cd conftest.dir |
2517 | + # We will build objects and dependencies in a subdirectory because |
2518 | + # it helps to detect inapplicable dependency modes. For instance |
2519 | + # both Tru64's cc and ICC support -MD to output dependencies as a |
2520 | + # side effect of compilation, but ICC will put the dependencies in |
2521 | + # the current directory while Tru64 will put them in the object |
2522 | + # directory. |
2523 | + mkdir sub |
2524 | + |
2525 | + am_cv_$1_dependencies_compiler_type=none |
2526 | + if test "$am_compiler_list" = ""; then |
2527 | + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` |
2528 | + fi |
2529 | + am__universal=false |
2530 | + m4_case([$1], [CC], |
2531 | + [case " $depcc " in #( |
2532 | + *\ -arch\ *\ -arch\ *) am__universal=true ;; |
2533 | + esac], |
2534 | + [CXX], |
2535 | + [case " $depcc " in #( |
2536 | + *\ -arch\ *\ -arch\ *) am__universal=true ;; |
2537 | + esac]) |
2538 | + |
2539 | + for depmode in $am_compiler_list; do |
2540 | + # Setup a source with many dependencies, because some compilers |
2541 | + # like to wrap large dependency lists on column 80 (with \), and |
2542 | + # we should not choose a depcomp mode which is confused by this. |
2543 | + # |
2544 | + # We need to recreate these files for each test, as the compiler may |
2545 | + # overwrite some of them when testing with obscure command lines. |
2546 | + # This happens at least with the AIX C compiler. |
2547 | + : > sub/conftest.c |
2548 | + for i in 1 2 3 4 5 6; do |
2549 | + echo '#include "conftst'$i'.h"' >> sub/conftest.c |
2550 | + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with |
2551 | + # Solaris 8's {/usr,}/bin/sh. |
2552 | + touch sub/conftst$i.h |
2553 | + done |
2554 | + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf |
2555 | + |
2556 | + # We check with `-c' and `-o' for the sake of the "dashmstdout" |
2557 | + # mode. It turns out that the SunPro C++ compiler does not properly |
2558 | + # handle `-M -o', and we need to detect this. Also, some Intel |
2559 | + # versions had trouble with output in subdirs |
2560 | + am__obj=sub/conftest.${OBJEXT-o} |
2561 | + am__minus_obj="-o $am__obj" |
2562 | + case $depmode in |
2563 | + gcc) |
2564 | + # This depmode causes a compiler race in universal mode. |
2565 | + test "$am__universal" = false || continue |
2566 | + ;; |
2567 | + nosideeffect) |
2568 | + # after this tag, mechanisms are not by side-effect, so they'll |
2569 | + # only be used when explicitly requested |
2570 | + if test "x$enable_dependency_tracking" = xyes; then |
2571 | + continue |
2572 | + else |
2573 | + break |
2574 | + fi |
2575 | + ;; |
2576 | + msvisualcpp | msvcmsys) |
2577 | + # This compiler won't grok `-c -o', but also, the minuso test has |
2578 | + # not run yet. These depmodes are late enough in the game, and |
2579 | + # so weak that their functioning should not be impacted. |
2580 | + am__obj=conftest.${OBJEXT-o} |
2581 | + am__minus_obj= |
2582 | + ;; |
2583 | + none) break ;; |
2584 | + esac |
2585 | + if depmode=$depmode \ |
2586 | + source=sub/conftest.c object=$am__obj \ |
2587 | + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ |
2588 | + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ |
2589 | + >/dev/null 2>conftest.err && |
2590 | + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && |
2591 | + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && |
2592 | + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && |
2593 | + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then |
2594 | + # icc doesn't choke on unknown options, it will just issue warnings |
2595 | + # or remarks (even with -Werror). So we grep stderr for any message |
2596 | + # that says an option was ignored or not supported. |
2597 | + # When given -MP, icc 7.0 and 7.1 complain thusly: |
2598 | + # icc: Command line warning: ignoring option '-M'; no argument required |
2599 | + # The diagnosis changed in icc 8.0: |
2600 | + # icc: Command line remark: option '-MP' not supported |
2601 | + if (grep 'ignoring option' conftest.err || |
2602 | + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else |
2603 | + am_cv_$1_dependencies_compiler_type=$depmode |
2604 | + break |
2605 | + fi |
2606 | + fi |
2607 | + done |
2608 | + |
2609 | + cd .. |
2610 | + rm -rf conftest.dir |
2611 | +else |
2612 | + am_cv_$1_dependencies_compiler_type=none |
2613 | +fi |
2614 | +]) |
2615 | +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) |
2616 | +AM_CONDITIONAL([am__fastdep$1], [ |
2617 | + test "x$enable_dependency_tracking" != xno \ |
2618 | + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) |
2619 | +]) |
2620 | + |
2621 | + |
2622 | +# AM_SET_DEPDIR |
2623 | +# ------------- |
2624 | +# Choose a directory name for dependency files. |
2625 | +# This macro is AC_REQUIREd in _AM_DEPENDENCIES |
2626 | +AC_DEFUN([AM_SET_DEPDIR], |
2627 | +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl |
2628 | +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl |
2629 | +]) |
2630 | + |
2631 | + |
2632 | +# AM_DEP_TRACK |
2633 | +# ------------ |
2634 | +AC_DEFUN([AM_DEP_TRACK], |
2635 | +[AC_ARG_ENABLE(dependency-tracking, |
2636 | +[ --disable-dependency-tracking speeds up one-time build |
2637 | + --enable-dependency-tracking do not reject slow dependency extractors]) |
2638 | +if test "x$enable_dependency_tracking" != xno; then |
2639 | + am_depcomp="$ac_aux_dir/depcomp" |
2640 | + AMDEPBACKSLASH='\' |
2641 | +fi |
2642 | +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) |
2643 | +AC_SUBST([AMDEPBACKSLASH])dnl |
2644 | +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl |
2645 | +]) |
2646 | + |
2647 | +# Generate code to set up dependency tracking. -*- Autoconf -*- |
2648 | + |
2649 | +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 |
2650 | +# Free Software Foundation, Inc. |
2651 | +# |
2652 | +# This file is free software; the Free Software Foundation |
2653 | +# gives unlimited permission to copy and/or distribute it, |
2654 | +# with or without modifications, as long as this notice is preserved. |
2655 | + |
2656 | +#serial 5 |
2657 | + |
2658 | +# _AM_OUTPUT_DEPENDENCY_COMMANDS |
2659 | +# ------------------------------ |
2660 | +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], |
2661 | +[{ |
2662 | + # Autoconf 2.62 quotes --file arguments for eval, but not when files |
2663 | + # are listed without --file. Let's play safe and only enable the eval |
2664 | + # if we detect the quoting. |
2665 | + case $CONFIG_FILES in |
2666 | + *\'*) eval set x "$CONFIG_FILES" ;; |
2667 | + *) set x $CONFIG_FILES ;; |
2668 | + esac |
2669 | + shift |
2670 | + for mf |
2671 | + do |
2672 | + # Strip MF so we end up with the name of the file. |
2673 | + mf=`echo "$mf" | sed -e 's/:.*$//'` |
2674 | + # Check whether this is an Automake generated Makefile or not. |
2675 | + # We used to match only the files named `Makefile.in', but |
2676 | + # some people rename them; so instead we look at the file content. |
2677 | + # Grep'ing the first line is not enough: some people post-process |
2678 | + # each Makefile.in and add a new line on top of each file to say so. |
2679 | + # Grep'ing the whole file is not good either: AIX grep has a line |
2680 | + # limit of 2048, but all sed's we know have understand at least 4000. |
2681 | + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then |
2682 | + dirpart=`AS_DIRNAME("$mf")` |
2683 | + else |
2684 | + continue |
2685 | + fi |
2686 | + # Extract the definition of DEPDIR, am__include, and am__quote |
2687 | + # from the Makefile without running `make'. |
2688 | + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` |
2689 | + test -z "$DEPDIR" && continue |
2690 | + am__include=`sed -n 's/^am__include = //p' < "$mf"` |
2691 | + test -z "am__include" && continue |
2692 | + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` |
2693 | + # When using ansi2knr, U may be empty or an underscore; expand it |
2694 | + U=`sed -n 's/^U = //p' < "$mf"` |
2695 | + # Find all dependency output files, they are included files with |
2696 | + # $(DEPDIR) in their names. We invoke sed twice because it is the |
2697 | + # simplest approach to changing $(DEPDIR) to its actual value in the |
2698 | + # expansion. |
2699 | + for file in `sed -n " |
2700 | + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ |
2701 | + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do |
2702 | + # Make sure the directory exists. |
2703 | + test -f "$dirpart/$file" && continue |
2704 | + fdir=`AS_DIRNAME(["$file"])` |
2705 | + AS_MKDIR_P([$dirpart/$fdir]) |
2706 | + # echo "creating $dirpart/$file" |
2707 | + echo '# dummy' > "$dirpart/$file" |
2708 | + done |
2709 | + done |
2710 | +} |
2711 | +])# _AM_OUTPUT_DEPENDENCY_COMMANDS |
2712 | + |
2713 | + |
2714 | +# AM_OUTPUT_DEPENDENCY_COMMANDS |
2715 | +# ----------------------------- |
2716 | +# This macro should only be invoked once -- use via AC_REQUIRE. |
2717 | +# |
2718 | +# This code is only required when automatic dependency tracking |
2719 | +# is enabled. FIXME. This creates each `.P' file that we will |
2720 | +# need in order to bootstrap the dependency handling code. |
2721 | +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], |
2722 | +[AC_CONFIG_COMMANDS([depfiles], |
2723 | + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], |
2724 | + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) |
2725 | +]) |
2726 | + |
2727 | +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 |
2728 | +# Free Software Foundation, Inc. |
2729 | +# |
2730 | +# This file is free software; the Free Software Foundation |
2731 | +# gives unlimited permission to copy and/or distribute it, |
2732 | +# with or without modifications, as long as this notice is preserved. |
2733 | + |
2734 | +# serial 8 |
2735 | + |
2736 | +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. |
2737 | +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) |
2738 | + |
2739 | +# Do all the work for Automake. -*- Autoconf -*- |
2740 | + |
2741 | +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
2742 | +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. |
2743 | +# |
2744 | +# This file is free software; the Free Software Foundation |
2745 | +# gives unlimited permission to copy and/or distribute it, |
2746 | +# with or without modifications, as long as this notice is preserved. |
2747 | + |
2748 | +# serial 16 |
2749 | + |
2750 | +# This macro actually does too much. Some checks are only needed if |
2751 | +# your package does certain things. But this isn't really a big deal. |
2752 | + |
2753 | +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) |
2754 | +# AM_INIT_AUTOMAKE([OPTIONS]) |
2755 | +# ----------------------------------------------- |
2756 | +# The call with PACKAGE and VERSION arguments is the old style |
2757 | +# call (pre autoconf-2.50), which is being phased out. PACKAGE |
2758 | +# and VERSION should now be passed to AC_INIT and removed from |
2759 | +# the call to AM_INIT_AUTOMAKE. |
2760 | +# We support both call styles for the transition. After |
2761 | +# the next Automake release, Autoconf can make the AC_INIT |
2762 | +# arguments mandatory, and then we can depend on a new Autoconf |
2763 | +# release and drop the old call support. |
2764 | +AC_DEFUN([AM_INIT_AUTOMAKE], |
2765 | +[AC_PREREQ([2.62])dnl |
2766 | +dnl Autoconf wants to disallow AM_ names. We explicitly allow |
2767 | +dnl the ones we care about. |
2768 | +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl |
2769 | +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl |
2770 | +AC_REQUIRE([AC_PROG_INSTALL])dnl |
2771 | +if test "`cd $srcdir && pwd`" != "`pwd`"; then |
2772 | + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output |
2773 | + # is not polluted with repeated "-I." |
2774 | + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl |
2775 | + # test to see if srcdir already configured |
2776 | + if test -f $srcdir/config.status; then |
2777 | + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) |
2778 | + fi |
2779 | +fi |
2780 | + |
2781 | +# test whether we have cygpath |
2782 | +if test -z "$CYGPATH_W"; then |
2783 | + if (cygpath --version) >/dev/null 2>/dev/null; then |
2784 | + CYGPATH_W='cygpath -w' |
2785 | + else |
2786 | + CYGPATH_W=echo |
2787 | + fi |
2788 | +fi |
2789 | +AC_SUBST([CYGPATH_W]) |
2790 | + |
2791 | +# Define the identity of the package. |
2792 | +dnl Distinguish between old-style and new-style calls. |
2793 | +m4_ifval([$2], |
2794 | +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl |
2795 | + AC_SUBST([PACKAGE], [$1])dnl |
2796 | + AC_SUBST([VERSION], [$2])], |
2797 | +[_AM_SET_OPTIONS([$1])dnl |
2798 | +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. |
2799 | +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, |
2800 | + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl |
2801 | + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl |
2802 | + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl |
2803 | + |
2804 | +_AM_IF_OPTION([no-define],, |
2805 | +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) |
2806 | + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl |
2807 | + |
2808 | +# Some tools Automake needs. |
2809 | +AC_REQUIRE([AM_SANITY_CHECK])dnl |
2810 | +AC_REQUIRE([AC_ARG_PROGRAM])dnl |
2811 | +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) |
2812 | +AM_MISSING_PROG(AUTOCONF, autoconf) |
2813 | +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) |
2814 | +AM_MISSING_PROG(AUTOHEADER, autoheader) |
2815 | +AM_MISSING_PROG(MAKEINFO, makeinfo) |
2816 | +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl |
2817 | +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl |
2818 | +AC_REQUIRE([AM_PROG_MKDIR_P])dnl |
2819 | +# We need awk for the "check" target. The system "awk" is bad on |
2820 | +# some platforms. |
2821 | +AC_REQUIRE([AC_PROG_AWK])dnl |
2822 | +AC_REQUIRE([AC_PROG_MAKE_SET])dnl |
2823 | +AC_REQUIRE([AM_SET_LEADING_DOT])dnl |
2824 | +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], |
2825 | + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], |
2826 | + [_AM_PROG_TAR([v7])])]) |
2827 | +_AM_IF_OPTION([no-dependencies],, |
2828 | +[AC_PROVIDE_IFELSE([AC_PROG_CC], |
2829 | + [_AM_DEPENDENCIES(CC)], |
2830 | + [define([AC_PROG_CC], |
2831 | + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl |
2832 | +AC_PROVIDE_IFELSE([AC_PROG_CXX], |
2833 | + [_AM_DEPENDENCIES(CXX)], |
2834 | + [define([AC_PROG_CXX], |
2835 | + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl |
2836 | +AC_PROVIDE_IFELSE([AC_PROG_OBJC], |
2837 | + [_AM_DEPENDENCIES(OBJC)], |
2838 | + [define([AC_PROG_OBJC], |
2839 | + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl |
2840 | +]) |
2841 | +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl |
2842 | +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the |
2843 | +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro |
2844 | +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. |
2845 | +AC_CONFIG_COMMANDS_PRE(dnl |
2846 | +[m4_provide_if([_AM_COMPILER_EXEEXT], |
2847 | + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl |
2848 | +]) |
2849 | + |
2850 | +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not |
2851 | +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further |
2852 | +dnl mangled by Autoconf and run in a shell conditional statement. |
2853 | +m4_define([_AC_COMPILER_EXEEXT], |
2854 | +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) |
2855 | + |
2856 | + |
2857 | +# When config.status generates a header, we must update the stamp-h file. |
2858 | +# This file resides in the same directory as the config header |
2859 | +# that is generated. The stamp files are numbered to have different names. |
2860 | + |
2861 | +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the |
2862 | +# loop where config.status creates the headers, so we can generate |
2863 | +# our stamp files there. |
2864 | +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], |
2865 | +[# Compute $1's index in $config_headers. |
2866 | +_am_arg=$1 |
2867 | +_am_stamp_count=1 |
2868 | +for _am_header in $config_headers :; do |
2869 | + case $_am_header in |
2870 | + $_am_arg | $_am_arg:* ) |
2871 | + break ;; |
2872 | + * ) |
2873 | + _am_stamp_count=`expr $_am_stamp_count + 1` ;; |
2874 | + esac |
2875 | +done |
2876 | +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) |
2877 | + |
2878 | +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. |
2879 | +# |
2880 | +# This file is free software; the Free Software Foundation |
2881 | +# gives unlimited permission to copy and/or distribute it, |
2882 | +# with or without modifications, as long as this notice is preserved. |
2883 | + |
2884 | +# AM_PROG_INSTALL_SH |
2885 | +# ------------------ |
2886 | +# Define $install_sh. |
2887 | +AC_DEFUN([AM_PROG_INSTALL_SH], |
2888 | +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl |
2889 | +if test x"${install_sh}" != xset; then |
2890 | + case $am_aux_dir in |
2891 | + *\ * | *\ *) |
2892 | + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; |
2893 | + *) |
2894 | + install_sh="\${SHELL} $am_aux_dir/install-sh" |
2895 | + esac |
2896 | +fi |
2897 | +AC_SUBST(install_sh)]) |
2898 | + |
2899 | +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. |
2900 | +# |
2901 | +# This file is free software; the Free Software Foundation |
2902 | +# gives unlimited permission to copy and/or distribute it, |
2903 | +# with or without modifications, as long as this notice is preserved. |
2904 | + |
2905 | +# serial 2 |
2906 | + |
2907 | +# Check whether the underlying file-system supports filenames |
2908 | +# with a leading dot. For instance MS-DOS doesn't. |
2909 | +AC_DEFUN([AM_SET_LEADING_DOT], |
2910 | +[rm -rf .tst 2>/dev/null |
2911 | +mkdir .tst 2>/dev/null |
2912 | +if test -d .tst; then |
2913 | + am__leading_dot=. |
2914 | +else |
2915 | + am__leading_dot=_ |
2916 | +fi |
2917 | +rmdir .tst 2>/dev/null |
2918 | +AC_SUBST([am__leading_dot])]) |
2919 | + |
2920 | +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- |
2921 | +# From Jim Meyering |
2922 | + |
2923 | +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 |
2924 | +# Free Software Foundation, Inc. |
2925 | +# |
2926 | +# This file is free software; the Free Software Foundation |
2927 | +# gives unlimited permission to copy and/or distribute it, |
2928 | +# with or without modifications, as long as this notice is preserved. |
2929 | + |
2930 | +# serial 5 |
2931 | + |
2932 | +# AM_MAINTAINER_MODE([DEFAULT-MODE]) |
2933 | +# ---------------------------------- |
2934 | +# Control maintainer-specific portions of Makefiles. |
2935 | +# Default is to disable them, unless `enable' is passed literally. |
2936 | +# For symmetry, `disable' may be passed as well. Anyway, the user |
2937 | +# can override the default with the --enable/--disable switch. |
2938 | +AC_DEFUN([AM_MAINTAINER_MODE], |
2939 | +[m4_case(m4_default([$1], [disable]), |
2940 | + [enable], [m4_define([am_maintainer_other], [disable])], |
2941 | + [disable], [m4_define([am_maintainer_other], [enable])], |
2942 | + [m4_define([am_maintainer_other], [enable]) |
2943 | + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) |
2944 | +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) |
2945 | + dnl maintainer-mode's default is 'disable' unless 'enable' is passed |
2946 | + AC_ARG_ENABLE([maintainer-mode], |
2947 | +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful |
2948 | + (and sometimes confusing) to the casual installer], |
2949 | + [USE_MAINTAINER_MODE=$enableval], |
2950 | + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) |
2951 | + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) |
2952 | + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) |
2953 | + MAINT=$MAINTAINER_MODE_TRUE |
2954 | + AC_SUBST([MAINT])dnl |
2955 | +] |
2956 | +) |
2957 | + |
2958 | +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) |
2959 | + |
2960 | +# Check to see how 'make' treats includes. -*- Autoconf -*- |
2961 | + |
2962 | +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. |
2963 | +# |
2964 | +# This file is free software; the Free Software Foundation |
2965 | +# gives unlimited permission to copy and/or distribute it, |
2966 | +# with or without modifications, as long as this notice is preserved. |
2967 | + |
2968 | +# serial 4 |
2969 | + |
2970 | +# AM_MAKE_INCLUDE() |
2971 | +# ----------------- |
2972 | +# Check to see how make treats includes. |
2973 | +AC_DEFUN([AM_MAKE_INCLUDE], |
2974 | +[am_make=${MAKE-make} |
2975 | +cat > confinc << 'END' |
2976 | +am__doit: |
2977 | + @echo this is the am__doit target |
2978 | +.PHONY: am__doit |
2979 | +END |
2980 | +# If we don't find an include directive, just comment out the code. |
2981 | +AC_MSG_CHECKING([for style of include used by $am_make]) |
2982 | +am__include="#" |
2983 | +am__quote= |
2984 | +_am_result=none |
2985 | +# First try GNU make style include. |
2986 | +echo "include confinc" > confmf |
2987 | +# Ignore all kinds of additional output from `make'. |
2988 | +case `$am_make -s -f confmf 2> /dev/null` in #( |
2989 | +*the\ am__doit\ target*) |
2990 | + am__include=include |
2991 | + am__quote= |
2992 | + _am_result=GNU |
2993 | + ;; |
2994 | +esac |
2995 | +# Now try BSD make style include. |
2996 | +if test "$am__include" = "#"; then |
2997 | + echo '.include "confinc"' > confmf |
2998 | + case `$am_make -s -f confmf 2> /dev/null` in #( |
2999 | + *the\ am__doit\ target*) |
3000 | + am__include=.include |
3001 | + am__quote="\"" |
3002 | + _am_result=BSD |
3003 | + ;; |
3004 | + esac |
3005 | +fi |
3006 | +AC_SUBST([am__include]) |
3007 | +AC_SUBST([am__quote]) |
3008 | +AC_MSG_RESULT([$_am_result]) |
3009 | +rm -f confinc confmf |
3010 | +]) |
3011 | + |
3012 | +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- |
3013 | + |
3014 | +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 |
3015 | +# Free Software Foundation, Inc. |
3016 | +# |
3017 | +# This file is free software; the Free Software Foundation |
3018 | +# gives unlimited permission to copy and/or distribute it, |
3019 | +# with or without modifications, as long as this notice is preserved. |
3020 | + |
3021 | +# serial 6 |
3022 | + |
3023 | +# AM_MISSING_PROG(NAME, PROGRAM) |
3024 | +# ------------------------------ |
3025 | +AC_DEFUN([AM_MISSING_PROG], |
3026 | +[AC_REQUIRE([AM_MISSING_HAS_RUN]) |
3027 | +$1=${$1-"${am_missing_run}$2"} |
3028 | +AC_SUBST($1)]) |
3029 | + |
3030 | + |
3031 | +# AM_MISSING_HAS_RUN |
3032 | +# ------------------ |
3033 | +# Define MISSING if not defined so far and test if it supports --run. |
3034 | +# If it does, set am_missing_run to use it, otherwise, to nothing. |
3035 | +AC_DEFUN([AM_MISSING_HAS_RUN], |
3036 | +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl |
3037 | +AC_REQUIRE_AUX_FILE([missing])dnl |
3038 | +if test x"${MISSING+set}" != xset; then |
3039 | + case $am_aux_dir in |
3040 | + *\ * | *\ *) |
3041 | + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; |
3042 | + *) |
3043 | + MISSING="\${SHELL} $am_aux_dir/missing" ;; |
3044 | + esac |
3045 | +fi |
3046 | +# Use eval to expand $SHELL |
3047 | +if eval "$MISSING --run true"; then |
3048 | + am_missing_run="$MISSING --run " |
3049 | +else |
3050 | + am_missing_run= |
3051 | + AC_MSG_WARN([`missing' script is too old or missing]) |
3052 | +fi |
3053 | +]) |
3054 | + |
3055 | +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
3056 | +# |
3057 | +# This file is free software; the Free Software Foundation |
3058 | +# gives unlimited permission to copy and/or distribute it, |
3059 | +# with or without modifications, as long as this notice is preserved. |
3060 | + |
3061 | +# AM_PROG_MKDIR_P |
3062 | +# --------------- |
3063 | +# Check for `mkdir -p'. |
3064 | +AC_DEFUN([AM_PROG_MKDIR_P], |
3065 | +[AC_PREREQ([2.60])dnl |
3066 | +AC_REQUIRE([AC_PROG_MKDIR_P])dnl |
3067 | +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, |
3068 | +dnl while keeping a definition of mkdir_p for backward compatibility. |
3069 | +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. |
3070 | +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of |
3071 | +dnl Makefile.ins that do not define MKDIR_P, so we do our own |
3072 | +dnl adjustment using top_builddir (which is defined more often than |
3073 | +dnl MKDIR_P). |
3074 | +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl |
3075 | +case $mkdir_p in |
3076 | + [[\\/$]]* | ?:[[\\/]]*) ;; |
3077 | + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; |
3078 | +esac |
3079 | +]) |
3080 | + |
3081 | +# Helper functions for option handling. -*- Autoconf -*- |
3082 | + |
3083 | +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. |
3084 | +# |
3085 | +# This file is free software; the Free Software Foundation |
3086 | +# gives unlimited permission to copy and/or distribute it, |
3087 | +# with or without modifications, as long as this notice is preserved. |
3088 | + |
3089 | +# serial 4 |
3090 | + |
3091 | +# _AM_MANGLE_OPTION(NAME) |
3092 | +# ----------------------- |
3093 | +AC_DEFUN([_AM_MANGLE_OPTION], |
3094 | +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) |
3095 | + |
3096 | +# _AM_SET_OPTION(NAME) |
3097 | +# ------------------------------ |
3098 | +# Set option NAME. Presently that only means defining a flag for this option. |
3099 | +AC_DEFUN([_AM_SET_OPTION], |
3100 | +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) |
3101 | + |
3102 | +# _AM_SET_OPTIONS(OPTIONS) |
3103 | +# ---------------------------------- |
3104 | +# OPTIONS is a space-separated list of Automake options. |
3105 | +AC_DEFUN([_AM_SET_OPTIONS], |
3106 | +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) |
3107 | + |
3108 | +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) |
3109 | +# ------------------------------------------- |
3110 | +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. |
3111 | +AC_DEFUN([_AM_IF_OPTION], |
3112 | +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) |
3113 | + |
3114 | +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 |
3115 | +# Free Software Foundation, Inc. |
3116 | +# |
3117 | +# This file is free software; the Free Software Foundation |
3118 | +# gives unlimited permission to copy and/or distribute it, |
3119 | +# with or without modifications, as long as this notice is preserved. |
3120 | + |
3121 | +# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) |
3122 | +# --------------------------------------------------------------------------- |
3123 | +# Adds support for distributing Python modules and packages. To |
3124 | +# install modules, copy them to $(pythondir), using the python_PYTHON |
3125 | +# automake variable. To install a package with the same name as the |
3126 | +# automake package, install to $(pkgpythondir), or use the |
3127 | +# pkgpython_PYTHON automake variable. |
3128 | +# |
3129 | +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as |
3130 | +# locations to install python extension modules (shared libraries). |
3131 | +# Another macro is required to find the appropriate flags to compile |
3132 | +# extension modules. |
3133 | +# |
3134 | +# If your package is configured with a different prefix to python, |
3135 | +# users will have to add the install directory to the PYTHONPATH |
3136 | +# environment variable, or create a .pth file (see the python |
3137 | +# documentation for details). |
3138 | +# |
3139 | +# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will |
3140 | +# cause an error if the version of python installed on the system |
3141 | +# doesn't meet the requirement. MINIMUM-VERSION should consist of |
3142 | +# numbers and dots only. |
3143 | +AC_DEFUN([AM_PATH_PYTHON], |
3144 | + [ |
3145 | + dnl Find a Python interpreter. Python versions prior to 2.0 are not |
3146 | + dnl supported. (2.0 was released on October 16, 2000). |
3147 | + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], |
3148 | + [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl |
3149 | +python2.1 python2.0]) |
3150 | + |
3151 | + m4_if([$1],[],[ |
3152 | + dnl No version check is needed. |
3153 | + # Find any Python interpreter. |
3154 | + if test -z "$PYTHON"; then |
3155 | + AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) |
3156 | + fi |
3157 | + am_display_PYTHON=python |
3158 | + ], [ |
3159 | + dnl A version check is needed. |
3160 | + if test -n "$PYTHON"; then |
3161 | + # If the user set $PYTHON, use it and don't search something else. |
3162 | + AC_MSG_CHECKING([whether $PYTHON version >= $1]) |
3163 | + AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], |
3164 | + [AC_MSG_RESULT(yes)], |
3165 | + [AC_MSG_ERROR(too old)]) |
3166 | + am_display_PYTHON=$PYTHON |
3167 | + else |
3168 | + # Otherwise, try each interpreter until we find one that satisfies |
3169 | + # VERSION. |
3170 | + AC_CACHE_CHECK([for a Python interpreter with version >= $1], |
3171 | + [am_cv_pathless_PYTHON],[ |
3172 | + for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do |
3173 | + test "$am_cv_pathless_PYTHON" = none && break |
3174 | + AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) |
3175 | + done]) |
3176 | + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. |
3177 | + if test "$am_cv_pathless_PYTHON" = none; then |
3178 | + PYTHON=: |
3179 | + else |
3180 | + AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) |
3181 | + fi |
3182 | + am_display_PYTHON=$am_cv_pathless_PYTHON |
3183 | + fi |
3184 | + ]) |
3185 | + |
3186 | + if test "$PYTHON" = :; then |
3187 | + dnl Run any user-specified action, or abort. |
3188 | + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) |
3189 | + else |
3190 | + |
3191 | + dnl Query Python for its version number. Getting [:3] seems to be |
3192 | + dnl the best way to do this; it's what "site.py" does in the standard |
3193 | + dnl library. |
3194 | + |
3195 | + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], |
3196 | + [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) |
3197 | + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) |
3198 | + |
3199 | + dnl Use the values of $prefix and $exec_prefix for the corresponding |
3200 | + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made |
3201 | + dnl distinct variables so they can be overridden if need be. However, |
3202 | + dnl general consensus is that you shouldn't need this ability. |
3203 | + |
3204 | + AC_SUBST([PYTHON_PREFIX], ['${prefix}']) |
3205 | + AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) |
3206 | + |
3207 | + dnl At times (like when building shared libraries) you may want |
3208 | + dnl to know which OS platform Python thinks this is. |
3209 | + |
3210 | + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], |
3211 | + [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) |
3212 | + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) |
3213 | + |
3214 | + |
3215 | + dnl Set up 4 directories: |
3216 | + |
3217 | + dnl pythondir -- where to install python scripts. This is the |
3218 | + dnl site-packages directory, not the python standard library |
3219 | + dnl directory like in previous automake betas. This behavior |
3220 | + dnl is more consistent with lispdir.m4 for example. |
3221 | + dnl Query distutils for this directory. distutils does not exist in |
3222 | + dnl Python 1.5, so we fall back to the hardcoded directory if it |
3223 | + dnl doesn't work. |
3224 | + AC_CACHE_CHECK([for $am_display_PYTHON script directory], |
3225 | + [am_cv_python_pythondir], |
3226 | + [if test "x$prefix" = xNONE |
3227 | + then |
3228 | + am_py_prefix=$ac_default_prefix |
3229 | + else |
3230 | + am_py_prefix=$prefix |
3231 | + fi |
3232 | + am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null || |
3233 | + echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` |
3234 | + case $am_cv_python_pythondir in |
3235 | + $am_py_prefix*) |
3236 | + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` |
3237 | + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` |
3238 | + ;; |
3239 | + *) |
3240 | + case $am_py_prefix in |
3241 | + /usr|/System*) ;; |
3242 | + *) |
3243 | + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages |
3244 | + ;; |
3245 | + esac |
3246 | + ;; |
3247 | + esac |
3248 | + ]) |
3249 | + AC_SUBST([pythondir], [$am_cv_python_pythondir]) |
3250 | + |
3251 | + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was |
3252 | + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is |
3253 | + dnl more consistent with the rest of automake. |
3254 | + |
3255 | + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) |
3256 | + |
3257 | + dnl pyexecdir -- directory for installing python extension modules |
3258 | + dnl (shared libraries) |
3259 | + dnl Query distutils for this directory. distutils does not exist in |
3260 | + dnl Python 1.5, so we fall back to the hardcoded directory if it |
3261 | + dnl doesn't work. |
3262 | + AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], |
3263 | + [am_cv_python_pyexecdir], |
3264 | + [if test "x$exec_prefix" = xNONE |
3265 | + then |
3266 | + am_py_exec_prefix=$am_py_prefix |
3267 | + else |
3268 | + am_py_exec_prefix=$exec_prefix |
3269 | + fi |
3270 | + am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null || |
3271 | + echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` |
3272 | + case $am_cv_python_pyexecdir in |
3273 | + $am_py_exec_prefix*) |
3274 | + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` |
3275 | + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` |
3276 | + ;; |
3277 | + *) |
3278 | + case $am_py_exec_prefix in |
3279 | + /usr|/System*) ;; |
3280 | + *) |
3281 | + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages |
3282 | + ;; |
3283 | + esac |
3284 | + ;; |
3285 | + esac |
3286 | + ]) |
3287 | + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) |
3288 | + |
3289 | + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) |
3290 | + |
3291 | + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) |
3292 | + |
3293 | + dnl Run any user-specified action. |
3294 | + $2 |
3295 | + fi |
3296 | + |
3297 | +]) |
3298 | + |
3299 | + |
3300 | +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) |
3301 | +# --------------------------------------------------------------------------- |
3302 | +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. |
3303 | +# Run ACTION-IF-FALSE otherwise. |
3304 | +# This test uses sys.hexversion instead of the string equivalent (first |
3305 | +# word of sys.version), in order to cope with versions such as 2.2c1. |
3306 | +# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). |
3307 | +AC_DEFUN([AM_PYTHON_CHECK_VERSION], |
3308 | + [prog="import sys |
3309 | +# split strings by '.' and convert to numeric. Append some zeros |
3310 | +# because we need at least 4 digits for the hex conversion. |
3311 | +# map returns an iterator in Python 3.0 and a list in 2.x |
3312 | +minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] |
3313 | +minverhex = 0 |
3314 | +# xrange is not present in Python 3.0 and range returns an iterator |
3315 | +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] |
3316 | +sys.exit(sys.hexversion < minverhex)" |
3317 | + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) |
3318 | + |
3319 | +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. |
3320 | +# |
3321 | +# This file is free software; the Free Software Foundation |
3322 | +# gives unlimited permission to copy and/or distribute it, |
3323 | +# with or without modifications, as long as this notice is preserved. |
3324 | + |
3325 | +# AM_RUN_LOG(COMMAND) |
3326 | +# ------------------- |
3327 | +# Run COMMAND, save the exit status in ac_status, and log it. |
3328 | +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) |
3329 | +AC_DEFUN([AM_RUN_LOG], |
3330 | +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD |
3331 | + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD |
3332 | + ac_status=$? |
3333 | + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD |
3334 | + (exit $ac_status); }]) |
3335 | + |
3336 | +# Check to make sure that the build environment is sane. -*- Autoconf -*- |
3337 | + |
3338 | +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 |
3339 | +# Free Software Foundation, Inc. |
3340 | +# |
3341 | +# This file is free software; the Free Software Foundation |
3342 | +# gives unlimited permission to copy and/or distribute it, |
3343 | +# with or without modifications, as long as this notice is preserved. |
3344 | + |
3345 | +# serial 5 |
3346 | + |
3347 | +# AM_SANITY_CHECK |
3348 | +# --------------- |
3349 | +AC_DEFUN([AM_SANITY_CHECK], |
3350 | +[AC_MSG_CHECKING([whether build environment is sane]) |
3351 | +# Just in case |
3352 | +sleep 1 |
3353 | +echo timestamp > conftest.file |
3354 | +# Reject unsafe characters in $srcdir or the absolute working directory |
3355 | +# name. Accept space and tab only in the latter. |
3356 | +am_lf=' |
3357 | +' |
3358 | +case `pwd` in |
3359 | + *[[\\\"\#\$\&\'\`$am_lf]]*) |
3360 | + AC_MSG_ERROR([unsafe absolute working directory name]);; |
3361 | +esac |
3362 | +case $srcdir in |
3363 | + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) |
3364 | + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; |
3365 | +esac |
3366 | + |
3367 | +# Do `set' in a subshell so we don't clobber the current shell's |
3368 | +# arguments. Must try -L first in case configure is actually a |
3369 | +# symlink; some systems play weird games with the mod time of symlinks |
3370 | +# (eg FreeBSD returns the mod time of the symlink's containing |
3371 | +# directory). |
3372 | +if ( |
3373 | + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` |
3374 | + if test "$[*]" = "X"; then |
3375 | + # -L didn't work. |
3376 | + set X `ls -t "$srcdir/configure" conftest.file` |
3377 | + fi |
3378 | + rm -f conftest.file |
3379 | + if test "$[*]" != "X $srcdir/configure conftest.file" \ |
3380 | + && test "$[*]" != "X conftest.file $srcdir/configure"; then |
3381 | + |
3382 | + # If neither matched, then we have a broken ls. This can happen |
3383 | + # if, for instance, CONFIG_SHELL is bash and it inherits a |
3384 | + # broken ls alias from the environment. This has actually |
3385 | + # happened. Such a system could not be considered "sane". |
3386 | + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken |
3387 | +alias in your environment]) |
3388 | + fi |
3389 | + |
3390 | + test "$[2]" = conftest.file |
3391 | + ) |
3392 | +then |
3393 | + # Ok. |
3394 | + : |
3395 | +else |
3396 | + AC_MSG_ERROR([newly created file is older than distributed files! |
3397 | +Check your system clock]) |
3398 | +fi |
3399 | +AC_MSG_RESULT(yes)]) |
3400 | + |
3401 | +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. |
3402 | +# |
3403 | +# This file is free software; the Free Software Foundation |
3404 | +# gives unlimited permission to copy and/or distribute it, |
3405 | +# with or without modifications, as long as this notice is preserved. |
3406 | + |
3407 | +# AM_PROG_INSTALL_STRIP |
3408 | +# --------------------- |
3409 | +# One issue with vendor `install' (even GNU) is that you can't |
3410 | +# specify the program used to strip binaries. This is especially |
3411 | +# annoying in cross-compiling environments, where the build's strip |
3412 | +# is unlikely to handle the host's binaries. |
3413 | +# Fortunately install-sh will honor a STRIPPROG variable, so we |
3414 | +# always use install-sh in `make install-strip', and initialize |
3415 | +# STRIPPROG with the value of the STRIP variable (set by the user). |
3416 | +AC_DEFUN([AM_PROG_INSTALL_STRIP], |
3417 | +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl |
3418 | +# Installed binaries are usually stripped using `strip' when the user |
3419 | +# run `make install-strip'. However `strip' might not be the right |
3420 | +# tool to use in cross-compilation environments, therefore Automake |
3421 | +# will honor the `STRIP' environment variable to overrule this program. |
3422 | +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. |
3423 | +if test "$cross_compiling" != no; then |
3424 | + AC_CHECK_TOOL([STRIP], [strip], :) |
3425 | +fi |
3426 | +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" |
3427 | +AC_SUBST([INSTALL_STRIP_PROGRAM])]) |
3428 | + |
3429 | +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. |
3430 | +# |
3431 | +# This file is free software; the Free Software Foundation |
3432 | +# gives unlimited permission to copy and/or distribute it, |
3433 | +# with or without modifications, as long as this notice is preserved. |
3434 | + |
3435 | +# serial 2 |
3436 | + |
3437 | +# _AM_SUBST_NOTMAKE(VARIABLE) |
3438 | +# --------------------------- |
3439 | +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. |
3440 | +# This macro is traced by Automake. |
3441 | +AC_DEFUN([_AM_SUBST_NOTMAKE]) |
3442 | + |
3443 | +# AM_SUBST_NOTMAKE(VARIABLE) |
3444 | +# --------------------------- |
3445 | +# Public sister of _AM_SUBST_NOTMAKE. |
3446 | +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) |
3447 | + |
3448 | +# Check how to create a tarball. -*- Autoconf -*- |
3449 | + |
3450 | +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. |
3451 | +# |
3452 | +# This file is free software; the Free Software Foundation |
3453 | +# gives unlimited permission to copy and/or distribute it, |
3454 | +# with or without modifications, as long as this notice is preserved. |
3455 | + |
3456 | +# serial 2 |
3457 | + |
3458 | +# _AM_PROG_TAR(FORMAT) |
3459 | +# -------------------- |
3460 | +# Check how to create a tarball in format FORMAT. |
3461 | +# FORMAT should be one of `v7', `ustar', or `pax'. |
3462 | +# |
3463 | +# Substitute a variable $(am__tar) that is a command |
3464 | +# writing to stdout a FORMAT-tarball containing the directory |
3465 | +# $tardir. |
3466 | +# tardir=directory && $(am__tar) > result.tar |
3467 | +# |
3468 | +# Substitute a variable $(am__untar) that extract such |
3469 | +# a tarball read from stdin. |
3470 | +# $(am__untar) < result.tar |
3471 | +AC_DEFUN([_AM_PROG_TAR], |
3472 | +[# Always define AMTAR for backward compatibility. |
3473 | +AM_MISSING_PROG([AMTAR], [tar]) |
3474 | +m4_if([$1], [v7], |
3475 | + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], |
3476 | + [m4_case([$1], [ustar],, [pax],, |
3477 | + [m4_fatal([Unknown tar format])]) |
3478 | +AC_MSG_CHECKING([how to create a $1 tar archive]) |
3479 | +# Loop over all known methods to create a tar archive until one works. |
3480 | +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' |
3481 | +_am_tools=${am_cv_prog_tar_$1-$_am_tools} |
3482 | +# Do not fold the above two line into one, because Tru64 sh and |
3483 | +# Solaris sh will not grok spaces in the rhs of `-'. |
3484 | +for _am_tool in $_am_tools |
3485 | +do |
3486 | + case $_am_tool in |
3487 | + gnutar) |
3488 | + for _am_tar in tar gnutar gtar; |
3489 | + do |
3490 | + AM_RUN_LOG([$_am_tar --version]) && break |
3491 | + done |
3492 | + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' |
3493 | + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' |
3494 | + am__untar="$_am_tar -xf -" |
3495 | + ;; |
3496 | + plaintar) |
3497 | + # Must skip GNU tar: if it does not support --format= it doesn't create |
3498 | + # ustar tarball either. |
3499 | + (tar --version) >/dev/null 2>&1 && continue |
3500 | + am__tar='tar chf - "$$tardir"' |
3501 | + am__tar_='tar chf - "$tardir"' |
3502 | + am__untar='tar xf -' |
3503 | + ;; |
3504 | + pax) |
3505 | + am__tar='pax -L -x $1 -w "$$tardir"' |
3506 | + am__tar_='pax -L -x $1 -w "$tardir"' |
3507 | + am__untar='pax -r' |
3508 | + ;; |
3509 | + cpio) |
3510 | + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' |
3511 | + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' |
3512 | + am__untar='cpio -i -H $1 -d' |
3513 | + ;; |
3514 | + none) |
3515 | + am__tar=false |
3516 | + am__tar_=false |
3517 | + am__untar=false |
3518 | + ;; |
3519 | + esac |
3520 | + |
3521 | + # If the value was cached, stop now. We just wanted to have am__tar |
3522 | + # and am__untar set. |
3523 | + test -n "${am_cv_prog_tar_$1}" && break |
3524 | + |
3525 | + # tar/untar a dummy directory, and stop if the command works |
3526 | + rm -rf conftest.dir |
3527 | + mkdir conftest.dir |
3528 | + echo GrepMe > conftest.dir/file |
3529 | + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) |
3530 | + rm -rf conftest.dir |
3531 | + if test -s conftest.tar; then |
3532 | + AM_RUN_LOG([$am__untar <conftest.tar]) |
3533 | + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break |
3534 | + fi |
3535 | +done |
3536 | +rm -rf conftest.dir |
3537 | + |
3538 | +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) |
3539 | +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) |
3540 | +AC_SUBST([am__tar]) |
3541 | +AC_SUBST([am__untar]) |
3542 | +]) # _AM_PROG_TAR |
3543 | + |
3544 | +m4_include([m4/am-check-python-headers.m4]) |
3545 | +m4_include([m4/gettext.m4]) |
3546 | +m4_include([m4/iconv.m4]) |
3547 | +m4_include([m4/intlmacosx.m4]) |
3548 | +m4_include([m4/intltool.m4]) |
3549 | +m4_include([m4/lib-ld.m4]) |
3550 | +m4_include([m4/lib-link.m4]) |
3551 | +m4_include([m4/lib-prefix.m4]) |
3552 | +m4_include([m4/libtool.m4]) |
3553 | +m4_include([m4/ltoptions.m4]) |
3554 | +m4_include([m4/ltsugar.m4]) |
3555 | +m4_include([m4/ltversion.m4]) |
3556 | +m4_include([m4/lt~obsolete.m4]) |
3557 | +m4_include([m4/nls.m4]) |
3558 | +m4_include([m4/po.m4]) |
3559 | +m4_include([m4/progtest.m4]) |
3560 | +m4_include([m4/ubiquity-python.m4]) |
3561 | |
3562 | === renamed file 'aclocal.m4' => 'aclocal.m4.moved' |
3563 | === added file 'autogen.sh' |
3564 | --- autogen.sh 1970-01-01 00:00:00 +0000 |
3565 | +++ autogen.sh 2011-01-31 11:12:59 +0000 |
3566 | @@ -0,0 +1,10 @@ |
3567 | +#! /bin/sh -e |
3568 | +if ! type intltool-update >/dev/null 2>&1; then |
3569 | + echo "Install intltool and try again." >&2 |
3570 | + exit 1 |
3571 | +fi |
3572 | +AUTOMAKE=automake-1.11 ACLOCAL=aclocal-1.11 autoreconf -I m4 -fi |
3573 | +intltoolize --copy --force --automake |
3574 | +# We want to keep po/ubiquity.pot in the source package. |
3575 | +sed -i '/rm .*\$(GETTEXT_PACKAGE)\.pot/s/ \$(GETTEXT_PACKAGE)\.pot//' \ |
3576 | + po/Makefile.in.in |
3577 | |
3578 | === renamed file 'autogen.sh' => 'autogen.sh.moved' |
3579 | === added directory 'bin' |
3580 | === renamed directory 'bin' => 'bin.moved' |
3581 | === added file 'bin/oem-config-firstboot' |
3582 | --- bin/oem-config-firstboot 1970-01-01 00:00:00 +0000 |
3583 | +++ bin/oem-config-firstboot 2011-01-31 11:12:59 +0000 |
3584 | @@ -0,0 +1,123 @@ |
3585 | +#! /bin/bash |
3586 | +# Run oem-config on the first boot after shipping to the end user. |
3587 | +set -e |
3588 | + |
3589 | +DEBUG= |
3590 | +if [ "$1" = '--debug' ]; then |
3591 | + DEBUG=--debug |
3592 | +fi |
3593 | + |
3594 | +# KDM stores the default user here, and apparently gets upset that we've |
3595 | +# just removed its previous default user. |
3596 | +rm -f /var/lib/kdm/kdmsts |
3597 | +# Revert to creating a user at uid 1000. |
3598 | +echo RESET passwd/user-uid | debconf-communicate >/dev/null |
3599 | +# These two templates have been preseeded, which does nasty things to their |
3600 | +# templates. It's probably a bug in cdebconf's debconf-copydb that they end |
3601 | +# up still registered to debian-installer/dummy at this point, but let's |
3602 | +# just work around it for now so that we get sensible translated |
3603 | +# descriptions. |
3604 | +for q in passwd/user-fullname passwd/username; do |
3605 | + echo REGISTER "$q" "$q" |
3606 | + echo RESET "$q" |
3607 | +done | debconf-communicate oem-config >/dev/null |
3608 | +# Remove the oem-config-prepare menu item. |
3609 | +rm -f /usr/share/applications/oem-config-prepare-gtk.desktop \ |
3610 | + /usr/share/applications/kde4/oem-config-prepare-kde.desktop |
3611 | +# Adjust fontconfig configuration, if possible. |
3612 | +if type fontconfig-voodoo >/dev/null 2>&1; then |
3613 | + RET="$(echo GET debian-installer/locale | debconf-communicate)" |
3614 | + if [ "${RET%% *}" = 0 ]; then |
3615 | + LC_ALL="${RET#* }" fontconfig-voodoo --auto --force --quiet \ |
3616 | + || true |
3617 | + fi |
3618 | +fi |
3619 | +# Run a command just before starting oem-config. |
3620 | +RET="$(echo GET oem-config/early_command | debconf-communicate)" || true |
3621 | +if [ "${RET%% *}" = 0 ]; then |
3622 | + command="${RET#* }" |
3623 | + log-output sh -c "$command" || true |
3624 | +fi |
3625 | + |
3626 | +# TODO: will this work for X-based frontends when X isn't up yet? |
3627 | +FRONTEND="$(/usr/sbin/oem-config -q)" |
3628 | + |
3629 | +if [ ! -e '/var/log/installer' ]; then |
3630 | + mkdir -p /var/log/installer |
3631 | +fi |
3632 | + |
3633 | +if [ "$DEBUG" ]; then |
3634 | + TRY=1 |
3635 | +else |
3636 | + TRY=5 |
3637 | +fi |
3638 | +for try in $(seq 1 $TRY); do |
3639 | + CODE=0 |
3640 | + if [ "$FRONTEND" = debconf_ui ]; then |
3641 | + plymouth quit || true |
3642 | + LANG=en_US.UTF-8 FRONTEND="$FRONTEND" \ |
3643 | + /usr/sbin/oem-config-wrapper $DEBUG --only \ |
3644 | + 2>>/var/log/oem-config.log \ |
3645 | + || CODE=$? |
3646 | + else |
3647 | + FRONTEND="$FRONTEND" \ |
3648 | + /usr/bin/ubiquity-dm vt7 :0 oem \ |
3649 | + /usr/sbin/oem-config-wrapper $DEBUG --only || CODE=$? |
3650 | + fi |
3651 | + if [ "$CODE" -eq 0 ]; then |
3652 | + exit 0 |
3653 | + elif [ "$CODE" -eq 10 ]; then |
3654 | + cat <<EOF |
3655 | +Your system is not yet configured. Press 'a' to try again, 's' for a |
3656 | +recovery shell, or 'r' to reboot. |
3657 | +EOF |
3658 | + while :; do |
3659 | + read -p '[asr] ' -n 1 REPLY |
3660 | + echo |
3661 | + case $REPLY in |
3662 | + A|a) continue 2 ;; |
3663 | + S|s) |
3664 | + cat <<EOF |
3665 | +After you type 'exit', your system will reboot. |
3666 | +EOF |
3667 | + bash |
3668 | + reboot |
3669 | + sleep 3600 |
3670 | + exit 1 |
3671 | + ;; |
3672 | + R|r) reboot; sleep 3600; exit 1 ;; |
3673 | + esac |
3674 | + done |
3675 | + exit 1 |
3676 | + fi |
3677 | +done |
3678 | + |
3679 | +if [ -z "$DEBUG" ]; then |
3680 | + # Panic. At this point, probably the best thing we can do is drop to |
3681 | + # a shell so that the user has some hope of fixing things up. |
3682 | + cat <<EOF |
3683 | +ERROR: The OEM installer failed. Your system may not be usable yet. Please |
3684 | +report this as a bug to your vendor. |
3685 | + |
3686 | +To create a user so that you can use your new system normally, type: |
3687 | + |
3688 | + adduser USERNAME |
3689 | + |
3690 | +... replacing USERNAME with the username you would like to use (your first |
3691 | +name in lower case is normally a reasonable choice), and follow the prompts. |
3692 | +If this succeeds, type 'exit' to reboot the system. |
3693 | + |
3694 | +EOF |
3695 | + bash |
3696 | + |
3697 | + # Don't run again. |
3698 | + rm -f /var/lib/oem-config/run |
3699 | + RET="$(echo GET oem-config/remove | debconf-communicate)" |
3700 | + if [ "${RET#* }" = true ]; then |
3701 | + apt-get -y purge ubiquity >>/var/log/oem-config.log 2>&1 |
3702 | + fi |
3703 | + |
3704 | + reboot |
3705 | +fi |
3706 | + |
3707 | +exit 0 |
3708 | |
3709 | === added file 'bin/oem-config-prepare' |
3710 | --- bin/oem-config-prepare 1970-01-01 00:00:00 +0000 |
3711 | +++ bin/oem-config-prepare 2011-01-31 11:12:59 +0000 |
3712 | @@ -0,0 +1,79 @@ |
3713 | +#! /bin/sh |
3714 | +set -e |
3715 | + |
3716 | +# Try to detect which frontend will be used by looking for a frontend |
3717 | +# module. |
3718 | +frontend= |
3719 | +for f in gtk_ui kde_ui debconf_ui; do |
3720 | + if [ -f "/usr/lib/ubiquity/ubiquity/frontend/$f.py" ]; then |
3721 | + frontend="$f" |
3722 | + break |
3723 | + fi |
3724 | +done |
3725 | + |
3726 | +if [ "$(id -u)" = 0 ]; then |
3727 | + # no privilege escalation required |
3728 | + : |
3729 | +else |
3730 | + case $frontend in |
3731 | + gtk_ui) |
3732 | + exec gksudo --desktop /usr/share/applications/oem-config-prepare-gtk.desktop -- "$0" "$@" |
3733 | + ;; |
3734 | + kde_ui) |
3735 | + echo kde_ui |
3736 | + kdesu= |
3737 | + #kdesudo seems to have issues with this, so default to the original kdesu |
3738 | + if [ -x /usr/lib/kde4/libexec/kdesu.distrib ]; then |
3739 | + kdesu=/usr/lib/kde4/libexec/kdesu.distrib |
3740 | + elif [ -x /usr/lib/kde4/libexec/kdesu ]; then |
3741 | + kdesu=/usr/lib/kde4/libexec/kdesu |
3742 | + fi |
3743 | + if [ "$kdesu" ]; then |
3744 | + exec $kdesu -- "$0" "$@" |
3745 | + else |
3746 | + exec sudo "$0" "$@" |
3747 | + fi |
3748 | + ;; |
3749 | + *) |
3750 | + exec sudo "$0" "$@" |
3751 | + ;; |
3752 | + esac |
3753 | +fi |
3754 | + |
3755 | +quiet= |
3756 | +if [ "$1" = --quiet ]; then |
3757 | + quiet=1 |
3758 | + shift |
3759 | +fi |
3760 | + |
3761 | +# Machine-specific, so remove in case this system is going to be cloned. |
3762 | +# These will be regenerated on the first boot. |
3763 | +rm -f /etc/udev/rules.d/70-persistent-cd.rules \ |
3764 | + /etc/udev/rules.d/70-persistent-net.rules |
3765 | + |
3766 | +# Potentially sensitive. |
3767 | +rm -f /home/oem/.ssh/known_hosts |
3768 | + |
3769 | +touch /var/lib/oem-config/run |
3770 | + |
3771 | +if [ -z "$quiet" ]; then |
3772 | + MESSAGE='oem-config will run the next time the system boots.' |
3773 | + case $frontend in |
3774 | + gtk_ui) |
3775 | + if [ "$DISPLAY" ] && type zenity >/dev/null 2>&1; then |
3776 | + zenity --title oem-config-prepare --info --text \ |
3777 | + "$MESSAGE" |
3778 | + exit 0 |
3779 | + fi |
3780 | + ;; |
3781 | + kde_ui) |
3782 | + if [ "$DISPLAY" ] && type kdialog >/dev/null 2>&1; then |
3783 | + kdialog --title oem-config-prepare --msgbox "$MESSAGE" |
3784 | + exit 0 |
3785 | + fi |
3786 | + ;; |
3787 | + esac |
3788 | + echo "$MESSAGE" |
3789 | +fi |
3790 | + |
3791 | +exit 0 |
3792 | |
3793 | === added file 'bin/oem-config-remaster' |
3794 | --- bin/oem-config-remaster 1970-01-01 00:00:00 +0000 |
3795 | +++ bin/oem-config-remaster 2011-01-31 11:12:59 +0000 |
3796 | @@ -0,0 +1,121 @@ |
3797 | +#!/bin/sh |
3798 | +# |
3799 | +# «oem-config-remaster» - Remaster an Ubuntu ISO with an additional repository |
3800 | +# and preseed data for oem-config. |
3801 | +# |
3802 | +# Copyright (C) 2010 Canonical Ltd. |
3803 | +# |
3804 | +# Authors: |
3805 | +# |
3806 | +# - Evan Dandrea <evand@ubuntu.com> |
3807 | +# |
3808 | +# This program is free software: you can redistribute it and/or modify it under |
3809 | +# the terms of the GNU General Public License as published by the Free Software |
3810 | +# Foundation, either version 3 of the License, or (at your option) any later |
3811 | +# version. |
3812 | +# |
3813 | +# This program is distributed in the hope that it will be useful, but WITHOUT |
3814 | +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
3815 | +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
3816 | +# details. |
3817 | +# |
3818 | +# You should have received a copy of the GNU General Public License along with |
3819 | +# this program. If not, see <http://www.gnu.org/licenses/>. |
3820 | + |
3821 | +set -e |
3822 | + |
3823 | +if ! [ -w / ]; then |
3824 | + echo "This program must be run as root." |
3825 | + exit 1 |
3826 | +fi |
3827 | +cleanup() { |
3828 | + echo "Cleaning up." |
3829 | + set +e |
3830 | + if [ -n "$cd_writable" ]; then |
3831 | + (umount $cd_writable && rm -rf $cd_backing $cd_writable) || \ |
3832 | + rmdir $cd_writable $cd_backing |
3833 | + fi |
3834 | + if [ -n "$writable" ]; then |
3835 | + (umount $writable && rm -rf $backing $writable) || \ |
3836 | + rmdir $writable $backing |
3837 | + fi |
3838 | + if [ -n "$squash" ]; then |
3839 | + (umount $squash && rm -rf $squash) || \ |
3840 | + rmdir $squash |
3841 | + fi |
3842 | + if [ -n "$iso" ]; then |
3843 | + (umount $iso && rm -rf $iso) || \ |
3844 | + rmdir $iso |
3845 | + fi |
3846 | + echo "All done." |
3847 | +} |
3848 | +usage() { |
3849 | + echo "Usage: $0 [-i gpg-key-id] [-t cd-title] [-o output-file] [-r extra-repository] [-e early-command] [-l late-command] cd-image packages" |
3850 | +} |
3851 | +set -- $(getopt i:t:o:r:e: "$@") |
3852 | +if [ $# -lt 2 ]; then |
3853 | + usage |
3854 | +fi |
3855 | +# TODO: Support passing an argument for packages to explicitly not include |
3856 | +# (with the assumption being that they'll be downloaded from the network in |
3857 | +# oem-config). |
3858 | +while [ $# -gt 0 ]; do |
3859 | + case "$1" in |
3860 | + -i) KEY_ID="$2"; shift;; |
3861 | + -t) CD_TITLE="$2"; shift;; |
3862 | + -o) CD_FILE="$2"; shift;; |
3863 | + -r) REPO="$2"; shift;; |
3864 | + -e) EARLY="$2"; shift;; |
3865 | + -l) LATE="$2"; shift;; |
3866 | + --) shift; break;; |
3867 | + -*) usage;; |
3868 | + *) break;; |
3869 | + esac |
3870 | + shift |
3871 | +done |
3872 | +trap cleanup EXIT HUP INT QUIT TERM |
3873 | +image="$1" |
3874 | +pkgs="$2" |
3875 | + |
3876 | +iso=$(mktemp -d) |
3877 | +mount -o loop $image $iso |
3878 | +s="$iso/casper/filesystem.squashfs" |
3879 | +if ! [ -e "$s" ]; then |
3880 | + echo "Could not find the squashfs at '$s'." |
3881 | + umount $iso || true |
3882 | + exit 1 |
3883 | +fi |
3884 | +cd_backing=$(mktemp -d) |
3885 | +cd_writable=$(mktemp -d) |
3886 | +mount -t aufs -o br=$cd_backing:$iso none $cd_writable |
3887 | + |
3888 | +squash=$(mktemp -d) |
3889 | +mount -o loop $s $squash |
3890 | +backing=$(mktemp -d) |
3891 | +writable=$(mktemp -d) |
3892 | +mount -t aufs -o br=$backing:$squash none $writable |
3893 | + |
3894 | +# TODO: Support additional sources. |
3895 | +sed -i 's/main /main universe multiverse /g' $writable/etc/apt/sources.list |
3896 | +cp /etc/resolv.conf $writable/etc |
3897 | +chroot $writable apt-get update #|| true |
3898 | +chroot $writable apt-get -d -y install $pkgs |
3899 | +mkdir $cd_writable/extra |
3900 | +find $writable/var/cache/apt/archives -name "*.deb" -exec cp {} $cd_writable/extra \; |
3901 | +apt-ftparchive packages $cd_writable/extra >$cd_writable/extra/Packages |
3902 | +apt-ftparchive release $cd_writable/extra >$cd_writable/extra/Release |
3903 | +gpg_args="-abs" |
3904 | +[ -n "$KEY_ID" ] && gpg_args="$gpg_args --default-key $KEY_ID" |
3905 | +gpg $gpg_args -o $cd_writable/extra/Release.gpg $cd_writable/extra/Release |
3906 | +gpg --export --armor $KEY_ID > $cd_writable/extra/key.pub |
3907 | +cat >> $cd_writable/preseed/ubuntu.seed << EOF |
3908 | +oem-config oem-config/key string /cdrom/extra/key.pub |
3909 | +oem-config oem-config/repository string $REPO |
3910 | +oem-config oem-config/extra_packages string $pkgs |
3911 | +oem-config oem-config/early_command string $EARLY |
3912 | +oem-config oem-config/late_command string $LATE |
3913 | +EOF |
3914 | +save=$(pwd) |
3915 | +cd $cd_writable |
3916 | +mkisofs -D -r -V "${CD_TITLE:-Ubuntu}" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o "$save/${CD_FILE:-custom.iso}" . |
3917 | +cd $save |
3918 | |
3919 | === added file 'bin/oem-config-remove' |
3920 | --- bin/oem-config-remove 1970-01-01 00:00:00 +0000 |
3921 | +++ bin/oem-config-remove 2011-01-31 11:12:59 +0000 |
3922 | @@ -0,0 +1,27 @@ |
3923 | +#! /bin/sh |
3924 | +# Remove oem-config. |
3925 | +# TODO: all of this should be moved into oem-config itself, but that's far |
3926 | +# too risky for 10.04 LTS since we have to be very careful not to open any |
3927 | +# files shipped by any ubiquity binary package after removing them. |
3928 | +set -e |
3929 | + |
3930 | +case $1 in |
3931 | + '') |
3932 | + eval "$(debconf-apt-progress --config)" |
3933 | + "$0" debconf |
3934 | + ;; |
3935 | + debconf) |
3936 | + . /usr/share/debconf/confmodule |
3937 | + |
3938 | + db_progress START 0 100 oem-config/removing |
3939 | + db_progress INFO debconf-apt-progress/preparing |
3940 | + |
3941 | + debconf-apt-progress --from 0 --to 100 \ |
3942 | + --logfile /var/log/oem-config.log -- \ |
3943 | + apt-get -y purge ubiquity ubiquity-casper ubiquity-ubuntu-artwork ubiquity-slideshow-ubuntu |
3944 | + |
3945 | + debconf-apt-progress --stop |
3946 | + ;; |
3947 | +esac |
3948 | + |
3949 | +exit 0 |
3950 | |
3951 | === added file 'bin/oem-config-remove-gtk' |
3952 | --- bin/oem-config-remove-gtk 1970-01-01 00:00:00 +0000 |
3953 | +++ bin/oem-config-remove-gtk 2011-01-31 11:12:59 +0000 |
3954 | @@ -0,0 +1,74 @@ |
3955 | +#!/usr/bin/python |
3956 | +## -*- coding: utf-8 -*- |
3957 | +# |
3958 | +# «oem-config-remove-gtk» - remove-oem-config after completing |
3959 | +# |
3960 | +# Copyright (C) 2010, Mario Limonciello |
3961 | +# Copyright (C) 2010, Sebastian Heinlein |
3962 | +# |
3963 | +# |
3964 | +# Ubiquity is free software; you can redistribute it and/or modify it under |
3965 | +# the terms of the GNU General Public License as published by the Free |
3966 | +# Software Foundation; either version 2 of the License, or at your option) |
3967 | +# any later version. |
3968 | +# |
3969 | +# This program is distributed in the hope that it will be useful, |
3970 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
3971 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3972 | +# GNU General Public License for more details. |
3973 | +# |
3974 | +# You should have received a copy of the GNU General Public License along |
3975 | +# with this application; if not, write to the Free Software Foundation, Inc., 51 |
3976 | +# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
3977 | +################################################################################ |
3978 | + |
3979 | +import os |
3980 | +import sys |
3981 | + |
3982 | +from aptdaemon import client, enums |
3983 | +from aptdaemon.gtkwidgets import AptProgressDialog |
3984 | +import gobject |
3985 | +import gtk |
3986 | + |
3987 | +loop = gobject.MainLoop() |
3988 | + |
3989 | +def _on_failure(error): |
3990 | + dia = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, |
3991 | + buttons=gtk.BUTTONS_CLOSE, |
3992 | + message_format=error.message) |
3993 | + dia.run() |
3994 | + dia.hide() |
3995 | + loop.quit() |
3996 | + sys.exit(1) |
3997 | + |
3998 | +def _on_finished(dia): |
3999 | + loop.quit() |
4000 | + if dia._transaction.exit == enums.EXIT_SUCCESS: |
4001 | + sys.exit(0) |
4002 | + else: |
4003 | + sys.exit(1) |
4004 | + |
4005 | +def _on_transaction(trans): |
4006 | + apt_dialog = AptProgressDialog(trans) |
4007 | + theme = gtk.icon_theme_get_default() |
4008 | + apt_dialog.set_icon(icon = theme.load_icon("update-manager", 16, 0)) |
4009 | + apt_dialog.set_position('center-always') |
4010 | + apt_dialog.run() |
4011 | + apt_dialog.connect("finished", _on_finished) |
4012 | + |
4013 | +def main(): |
4014 | + purge = [] |
4015 | + for pkg in ('ubiquity', 'ubiquity-casper', |
4016 | + 'ubiquity-ubuntu-artwork', 'ubiquity-slideshow-ubuntu'): |
4017 | + if os.path.exists("/var/lib/dpkg/info/%s.list" % pkg): |
4018 | + purge.append(pkg) |
4019 | + |
4020 | + ac = client.AptClient() |
4021 | + ac.commit_packages(install=[], reinstall=[], remove=[], purge=purge, upgrade=[], |
4022 | + downgrade=[], |
4023 | + error_handler=_on_failure, |
4024 | + reply_handler=_on_transaction) |
4025 | + loop.run() |
4026 | + |
4027 | +if __name__ == "__main__": |
4028 | + main() |
4029 | |
4030 | === added file 'bin/oem-config-wrapper' |
4031 | --- bin/oem-config-wrapper 1970-01-01 00:00:00 +0000 |
4032 | +++ bin/oem-config-wrapper 2011-01-31 11:12:59 +0000 |
4033 | @@ -0,0 +1,49 @@ |
4034 | +#! /bin/sh |
4035 | +# Run oem-config, plus other things that need to run after it in X. |
4036 | +set -e |
4037 | + |
4038 | +oem-config "$@" |
4039 | + |
4040 | +# 'set -e' will cause us to exit if oem-config fails. Otherwise: |
4041 | + |
4042 | +# Don't run again. |
4043 | +rm -f /var/lib/oem-config/run |
4044 | + |
4045 | +# Remove the temporary OEM configuration user, if possible. |
4046 | +if getent passwd oem >/dev/null; then |
4047 | + userdel --force --remove oem || true |
4048 | +fi |
4049 | + |
4050 | +# Cleanup from anything the early command prepared |
4051 | +RET="$(echo GET oem-config/late_command | debconf-communicate)" || true |
4052 | +if [ "${RET%% *}" = 0 ]; then |
4053 | + command="${RET#* }" |
4054 | + log-output sh -c "$command" || true |
4055 | +fi |
4056 | +RET="$(echo GET oem-config/remove | debconf-communicate)" |
4057 | +if [ "${RET#* }" = true ]; then |
4058 | + #debconf crashes with this set (LP: #641478) |
4059 | + unset DBUS_SESSION_BUS_ADDRESS |
4060 | + #mandb postinst doesn't like not knowing the locale |
4061 | + if [ -r /etc/default/locale ]; then |
4062 | + . /etc/default/locale |
4063 | + export LANG LANGUAGE |
4064 | + fi |
4065 | + # We're about to pull the rug out from under our own feet, so this |
4066 | + # has to run very late. |
4067 | + case $FRONTEND in |
4068 | + debconf_ui) |
4069 | + export DEBIAN_FRONTEND=dialog |
4070 | + oem-config-remove || true |
4071 | + ;; |
4072 | + gtk_ui) |
4073 | + oem-config-remove-gtk || true |
4074 | + ;; |
4075 | + kde_ui) |
4076 | + export DEBIAN_FRONTEND=kde |
4077 | + oem-config-remove || true |
4078 | + ;; |
4079 | + esac |
4080 | +fi |
4081 | + |
4082 | +exit 0 |
4083 | |
4084 | === added file 'bin/ubiquity' |
4085 | --- bin/ubiquity 1970-01-01 00:00:00 +0000 |
4086 | +++ bin/ubiquity 2011-01-31 11:12:59 +0000 |
4087 | @@ -0,0 +1,535 @@ |
4088 | +#!/usr/bin/python |
4089 | + |
4090 | +''' |
4091 | +Installer |
4092 | + |
4093 | +This is a installer program for a Ubuntu or Metadistros Live system. |
4094 | +This is the main program, but there are also a couple of libraries to |
4095 | +help it to work, such as the frontend. |
4096 | +The way it works is simple. It detects the frontend to use, then |
4097 | +load the module for that frontend. After that, it makes some calls |
4098 | +through the frontend in order to get the info necessary to install. |
4099 | + |
4100 | +Once it has the info, partitioning, format, copy the distro to the disk |
4101 | +and configure everything. |
4102 | +''' |
4103 | + |
4104 | +import sys |
4105 | +import os |
4106 | +import errno |
4107 | +import fcntl |
4108 | +import shutil |
4109 | +import syslog |
4110 | +import atexit |
4111 | +import optparse |
4112 | +import subprocess |
4113 | + |
4114 | +sys.path.insert(0, '/usr/lib/ubiquity') |
4115 | + |
4116 | +from ubiquity import misc |
4117 | +from ubiquity import im_switch |
4118 | +from ubiquity import osextras |
4119 | + |
4120 | +VERSION = '@VERSION@' |
4121 | +TARGET = '/target' |
4122 | +LOCKFILE = '/var/lock/ubiquity' |
4123 | +lock = None |
4124 | + |
4125 | +def distribution(): |
4126 | + """Returns the name of the running distribution.""" |
4127 | + |
4128 | + proc = subprocess.Popen(['lsb_release', '-is'], stdout=subprocess.PIPE) |
4129 | + return proc.communicate()[0].strip() |
4130 | + |
4131 | +def disable_autologin(): |
4132 | + import traceback |
4133 | + |
4134 | + # Reverse actions of user-setup-apply. |
4135 | + for name in ('/etc/gdm/custom.conf', '/etc/kde4/kdm/kdmrc'): |
4136 | + if os.path.exists('%s.oem' % name): |
4137 | + try: |
4138 | + os.rename('%s.oem' % name, name) |
4139 | + except OSError: |
4140 | + traceback.print_exc() |
4141 | + |
4142 | +def open_terminal(): |
4143 | + """Set up the terminal to run ubiquity's debconf frontend.""" |
4144 | + |
4145 | + # Set up a framebuffer and start bterm if debian-installer/framebuffer |
4146 | + # says to do so. See |
4147 | + # rootskel/src/lib/debian-installer-startup.d/S40framebuffer-module-linux-x86. |
4148 | + # TODO: more careful architecture handling |
4149 | + |
4150 | + import debconf |
4151 | + |
4152 | + # Start a new session and start a controlling terminal. Approach loosely |
4153 | + # borrowed from util-linux. |
4154 | + |
4155 | + if 'UBIQUITY_CTTY' not in os.environ: |
4156 | + os.environ['UBIQUITY_CTTY'] = '1' |
4157 | + |
4158 | + import termios |
4159 | + |
4160 | + try: |
4161 | + os.setsid() |
4162 | + except OSError: |
4163 | + pass |
4164 | + |
4165 | + ttyn = os.ttyname(0) |
4166 | + tty = os.open(ttyn, os.O_RDWR | os.O_NONBLOCK) |
4167 | + flags = fcntl.fcntl(tty, fcntl.F_GETFL) |
4168 | + fcntl.fcntl(tty, fcntl.F_SETFL, flags) |
4169 | + # Leave stderr alone in the following; it's already redirected to |
4170 | + # our log file. |
4171 | + for i in range(tty): |
4172 | + if i != 2: |
4173 | + os.close(i) |
4174 | + for i in range(2): |
4175 | + if tty != i: |
4176 | + os.dup2(tty, i) |
4177 | + if tty >= 3: |
4178 | + os.close(tty) |
4179 | + |
4180 | + fcntl.ioctl(0, termios.TIOCSCTTY, 1) |
4181 | + |
4182 | + if 'UBIQUITY_BTERM' not in os.environ: |
4183 | + os.environ['UBIQUITY_BTERM'] = '1' |
4184 | + |
4185 | + framebuffer = False |
4186 | + dccomm = subprocess.Popen(['debconf-communicate', |
4187 | + '-fnoninteractive', 'ubiquity'], |
4188 | + stdin=subprocess.PIPE, |
4189 | + stdout=subprocess.PIPE, close_fds=True) |
4190 | + try: |
4191 | + dc = debconf.Debconf(read=dccomm.stdout, write=dccomm.stdin) |
4192 | + try: |
4193 | + if dc.get('debian-installer/framebuffer') == 'true': |
4194 | + framebuffer = True |
4195 | + except debconf.DebconfError: |
4196 | + pass |
4197 | + finally: |
4198 | + dccomm.stdin.close() |
4199 | + dccomm.wait() |
4200 | + |
4201 | + if framebuffer: |
4202 | + def fb_has(substring): |
4203 | + try: |
4204 | + fb = open('/proc/fb') |
4205 | + except IOError: |
4206 | + return False |
4207 | + try: |
4208 | + for line in fb: |
4209 | + if substring in line: |
4210 | + return True |
4211 | + finally: |
4212 | + fb.close() |
4213 | + return False |
4214 | + |
4215 | + got_fb = False |
4216 | + if fb_has('VESA'): |
4217 | + got_fb = True |
4218 | + |
4219 | + devnull = open('/dev/null', 'w') |
4220 | + |
4221 | + if not got_fb: |
4222 | + subprocess.call(['modprobe', '-q', 'vesafb'], |
4223 | + stdout=devnull, stderr=devnull) |
4224 | + if fb_has(''): |
4225 | + got_fb = True |
4226 | + |
4227 | + if not got_fb: |
4228 | + subprocess.call(['modprobe', '-q', 'vga16fb'], |
4229 | + stdout=devnull, stderr=devnull) |
4230 | + if fb_has(''): |
4231 | + got_fb = True |
4232 | + |
4233 | + if got_fb: |
4234 | + if not os.path.isdir('/sys/class/graphics/fbcon'): |
4235 | + subprocess.call(['modprobe', '-q', 'fbcon'], |
4236 | + stdout=devnull, stderr=devnull) |
4237 | + |
4238 | + # TODO: import debian-installer-utils and use update-dev? |
4239 | + subprocess.call(['udevadm', 'settle']) |
4240 | + |
4241 | + devnull.close() |
4242 | + |
4243 | + if os.path.exists('/dev/fb0'): |
4244 | + bterm_args = ['bterm', |
4245 | + '-f', '/usr/share/ubiquity/unifont.bgf', '--'] |
4246 | + bterm_args.extend(sys.argv) |
4247 | + os.execvp('bterm', bterm_args) |
4248 | + |
4249 | +def start_debconf(): |
4250 | + """debconf_ui needs to run within a debconf frontend.""" |
4251 | + |
4252 | + if 'DEBIAN_HAS_FRONTEND' in os.environ: |
4253 | + # debconf already started, so just clean up the configuration file |
4254 | + # if any (debconf has already read it by now). |
4255 | + if 'DEBCONF_SYSTEMRC' in os.environ: |
4256 | + osextras.unlink_force(os.environ['DEBCONF_SYSTEMRC']) |
4257 | + return |
4258 | + |
4259 | + print >>sys.stderr, "debconf_ui selected; starting debconf frontend" |
4260 | + |
4261 | + if 'DEBCONF_USE_CDEBCONF' not in os.environ: |
4262 | + # This is rather unsatisfactory. Perhaps it would be better to |
4263 | + # have a custom debconf program, a bit like dpkg-reconfigure. |
4264 | + import tempfile |
4265 | + debconfrc_fd, debconfrc = tempfile.mkstemp() |
4266 | + os.chmod(debconfrc, 0644) |
4267 | + debconfrc_file = os.fdopen(debconfrc_fd, 'w') |
4268 | + orig_debconfrc = open('/etc/debconf.conf') |
4269 | + state = 0 |
4270 | + for line in orig_debconfrc: |
4271 | + if (state == 0 and |
4272 | + line.rstrip('\n') and not line.startswith('#')): |
4273 | + state = 1 |
4274 | + elif state == 1 and not line.rstrip('\n'): |
4275 | + print >>debconfrc_file, 'Reshow: true' |
4276 | + state = 2 |
4277 | + print >>debconfrc_file, line, |
4278 | + orig_debconfrc.close() |
4279 | + debconfrc_file.close() |
4280 | + os.environ['DEBCONF_SYSTEMRC'] = debconfrc |
4281 | + |
4282 | + os.environ['DEBCONF_PACKAGE'] = 'ubiquity' |
4283 | + else: |
4284 | + os.environ['DEBCONF_SHOWOLD'] = 'true' |
4285 | + # TODO: need to set owner somehow |
4286 | + |
4287 | + import debconf |
4288 | + debconf.runFrontEnd() # re-execs this program |
4289 | + |
4290 | +def install(frontend=None, query=False): |
4291 | + '''install(frontend=None) -> none |
4292 | + |
4293 | + Get the type of frontend to use and load the module for that. |
4294 | + If frontend is None, defaults to the first of |
4295 | + gtk_ui, kde_ui, and debconf_ui that exists. |
4296 | + ''' |
4297 | + if frontend is None: |
4298 | + frontends = ['gtk_ui', 'kde_ui', 'debconf_ui'] |
4299 | + else: |
4300 | + frontends = [frontend] |
4301 | + chosen = None |
4302 | + mod = __import__('ubiquity.frontend', globals(), locals(), frontends) |
4303 | + for f in frontends: |
4304 | + if hasattr(mod, f): |
4305 | + chosen = f |
4306 | + ui = getattr(mod, f) |
4307 | + # Noninteractive implies automatic mode. |
4308 | + if f == 'noninteractive': |
4309 | + os.environ['UBIQUITY_AUTOMATIC'] = '1' |
4310 | + # Migration Assistant does not support KDE. |
4311 | + if f == 'kde_ui': |
4312 | + if 'UBIQUITY_MIGRATION_ASSISTANT' in os.environ: |
4313 | + del os.environ['UBIQUITY_MIGRATION_ASSISTANT'] |
4314 | + break |
4315 | + else: |
4316 | + raise AttributeError('No frontend available; tried %s' % |
4317 | + ', '.join(frontends)) |
4318 | + os.environ['UBIQUITY_FRONTEND'] = chosen |
4319 | + if query: |
4320 | + print >> sys.__stdout__, os.environ['UBIQUITY_FRONTEND'] |
4321 | + sys.exit(0) |
4322 | + |
4323 | + unmount_target() |
4324 | + distro = distribution().lower() |
4325 | + wizard = ui.Wizard(distro) |
4326 | + if os.environ['UBIQUITY_FRONTEND'] == 'debconf_ui': |
4327 | + open_terminal() |
4328 | + start_debconf() |
4329 | + ret = wizard.run() |
4330 | + wizard.stop_debconf() |
4331 | + if ret != 10 and 'UBIQUITY_GREETER' in os.environ: |
4332 | + import traceback |
4333 | + try: |
4334 | + apply_keyboard() |
4335 | + except: |
4336 | + traceback.print_exc() |
4337 | + copy_debconf() |
4338 | + unmount_target() |
4339 | + if ret == 10: |
4340 | + wizard.do_reboot() |
4341 | + if ret == 11: |
4342 | + wizard.do_shutdown() |
4343 | + |
4344 | + |
4345 | +@misc.raise_privileges |
4346 | +def apply_keyboard(): |
4347 | + '''Set the keyboard layout to the default layout for the language selected. |
4348 | + If a user wants a different layout, they can be reasonably expected to |
4349 | + change it in System -> Preferences -> Keyboard.''' |
4350 | + |
4351 | + # Mostly taken from ubi-console-setup. |
4352 | + |
4353 | + # We need to get rid of /etc/default/keyboard, or keyboard-configuration |
4354 | + # will think it's already configured and behave differently. Try to save |
4355 | + # the old file for interest's sake, but it's not a big deal if we can't. |
4356 | + osextras.unlink_force('/etc/default/keyboard.pre-ubiquity') |
4357 | + try: |
4358 | + os.rename('/etc/default/keyboard', |
4359 | + '/etc/default/keyboard.pre-ubiquity') |
4360 | + except OSError: |
4361 | + osextras.unlink_force('/etc/default/keyboard') |
4362 | + |
4363 | + import debconf |
4364 | + dccomm = subprocess.Popen(['debconf-communicate', |
4365 | + '-fnoninteractive', 'ubiquity'], |
4366 | + stdin=subprocess.PIPE, |
4367 | + stdout=subprocess.PIPE, close_fds=True) |
4368 | + try: |
4369 | + dc = debconf.Debconf(read=dccomm.stdout, write=dccomm.stdin) |
4370 | + try: |
4371 | + # Make sure debconf doesn't do anything with crazy "preseeded" |
4372 | + # answers to these questions. If you want to preseed these, use the |
4373 | + # *code variants. |
4374 | + dc.fset('keyboard-configuration/layout', 'seen', 'false') |
4375 | + dc.fset('keyboard-configuration/variant', 'seen', 'false') |
4376 | + dc.fset('keyboard-configuration/model', 'seen', 'false') |
4377 | + dc.fset('console-setup/codeset47', 'seen', 'false') |
4378 | + except debconf.DebconfError: |
4379 | + return |
4380 | + finally: |
4381 | + dccomm.stdin.close() |
4382 | + dccomm.wait() |
4383 | + |
4384 | + # Accept all the defaults, given the preseeded language. |
4385 | + child_env = dict(os.environ) |
4386 | + child_env['OVERRIDE_ALLOW_PRESEEDING'] = '1' |
4387 | + subprocess.call(['dpkg-reconfigure', '-fnoninteractive', |
4388 | + 'keyboard-configuration'], |
4389 | + env=child_env) |
4390 | + misc.execute('setupcon', '--save-only') |
4391 | + # Reprocess /lib/udev/rules.d/64-xorg-xkb.rules |
4392 | + misc.execute('udevadm', 'trigger', '--subsystem-match=input', |
4393 | + '--action=change') |
4394 | + misc.execute('udevadm', 'settle') |
4395 | + |
4396 | +def copy_debconf(): |
4397 | + """Copy a few important questions into the installed system.""" |
4398 | + if not TARGET: |
4399 | + return |
4400 | + targetdb = TARGET + '/var/cache/debconf/config.dat' |
4401 | + for q in ('^keyboard-configuration/', '^console-setup/', '^oem-config/'): |
4402 | + misc.execute_root('debconf-copydb', 'configdb', 'targetdb', '-p', q, |
4403 | + '--config=Name:targetdb', '--config=Driver:File', |
4404 | + '--config=Filename:%s' % targetdb) |
4405 | + |
4406 | +def unmount_target(): |
4407 | + if not TARGET: |
4408 | + return |
4409 | + paths = [] |
4410 | + mounts = open('/proc/mounts') |
4411 | + for line in mounts: |
4412 | + path = line.split(' ')[1] |
4413 | + if path == TARGET or path.startswith(TARGET + '/'): |
4414 | + paths.append(path) |
4415 | + mounts.close() |
4416 | + paths.sort() |
4417 | + paths.reverse() |
4418 | + for path in paths: |
4419 | + misc.execute_root('umount', path) |
4420 | + |
4421 | +def prepend_path(directory): |
4422 | + if 'PATH' in os.environ and os.environ['PATH'] != '': |
4423 | + os.environ['PATH'] = '%s:%s' % (directory, os.environ['PATH']) |
4424 | + else: |
4425 | + os.environ['PATH'] = directory |
4426 | + |
4427 | +def release_lock(): |
4428 | + global lock |
4429 | + osextras.unlink_force(LOCKFILE) |
4430 | + if lock is not None: |
4431 | + lock.close() |
4432 | + lock = None |
4433 | + |
4434 | +def acquire_lock(): |
4435 | + global lock |
4436 | + lock = open(LOCKFILE, 'w') |
4437 | + try: |
4438 | + fcntl.flock(lock, fcntl.LOCK_EX | fcntl.LOCK_NB) |
4439 | + except IOError, e: |
4440 | + if e.errno in (errno.EACCES, errno.EAGAIN, errno.EWOULDBLOCK): |
4441 | + print "Ubiquity is already running!" |
4442 | + sys.exit(1) |
4443 | + raise |
4444 | + atexit.register(release_lock) |
4445 | + fcntl.fcntl(lock, fcntl.F_SETFD, fcntl.FD_CLOEXEC) |
4446 | + print >>lock, os.getpid() |
4447 | + lock.flush() |
4448 | + os.fsync(lock.fileno()) |
4449 | + |
4450 | +def run_oem_hooks(): |
4451 | + """Run hook scripts from /usr/lib/oem-config/post-install.""" |
4452 | + |
4453 | + hookdir = '/usr/lib/oem-config/post-install' |
4454 | + |
4455 | + if os.path.isdir(hookdir): |
4456 | + # Exclude hooks containing '.', so that *.dpkg-* et al are avoided. |
4457 | + hooks = filter(lambda entry: '.' not in entry, os.listdir(hookdir)) |
4458 | + child_env = dict(os.environ) |
4459 | + child_env['DEBIAN_FRONTEND'] = 'noninteractive' |
4460 | + if 'DEBIAN_HAS_FRONTEND' in child_env: |
4461 | + del child_env['DEBIAN_HAS_FRONTEND'] |
4462 | + for hookentry in hooks: |
4463 | + hook = os.path.join(hookdir, hookentry) |
4464 | + if os.access(hook, os.X_OK): |
4465 | + # Errors are ignored at present, although this may change. |
4466 | + subprocess.call([hook], env=child_env) |
4467 | + |
4468 | +def main(oem_config): |
4469 | + usage = '%prog [options] [frontend]' |
4470 | + parser = optparse.OptionParser(usage=usage, version=VERSION) |
4471 | + parser.set_defaults( |
4472 | + debug=('UBIQUITY_DEBUG' in os.environ), |
4473 | + debug_pdb=False, |
4474 | + cdebconf=False, |
4475 | + automatic=False, |
4476 | + query=False, |
4477 | + migration_assistant=(not oem_config)) |
4478 | + parser.add_option('-d', '--debug', dest='debug', action='store_true', |
4479 | + help='debug mode (warning: passwords will be logged!)') |
4480 | + parser.add_option('--pdb', dest='debug_pdb', action='store_true', |
4481 | + help='drop into Python debugger on a crash') |
4482 | + parser.add_option('--cdebconf', dest='cdebconf', action='store_true', |
4483 | + help='use cdebconf instead of debconf (experimental)') |
4484 | + if not oem_config: |
4485 | + parser.add_option('--no-migration-assistant', dest='migration_assistant', |
4486 | + action='store_false', |
4487 | + help='disable Migration Assistant') |
4488 | + parser.add_option('--automatic', dest='automatic', action='store_true', |
4489 | + help='do not ignore the "seen" flag (useful for ' \ |
4490 | + 'unattended installations).') |
4491 | + parser.add_option('--only', dest='only', action='store_true', |
4492 | + help='tell the application that it is the only desktop ' \ |
4493 | + 'program running so that it can customize its UI to ' \ |
4494 | + 'better suit a minimal environment.') |
4495 | + parser.add_option('-q', '--query', dest='query', action='store_true', |
4496 | + help='find out which frontend will be used by default') |
4497 | + parser.add_option('-g', '--greeter', dest='greeter', action='store_true', |
4498 | + help='allow the user to leave the installer and enter ' \ |
4499 | + 'a live desktop (for the initial boot).') |
4500 | + parser.add_option('-b', '--no-bootloader', dest='bootloader', |
4501 | + action='store_true', |
4502 | + help='Do not install a bootloader.') |
4503 | + (options, args) = parser.parse_args() |
4504 | + |
4505 | + if options.debug: |
4506 | + os.environ['UBIQUITY_DEBUG'] = '1' |
4507 | + |
4508 | + if options.debug_pdb: |
4509 | + os.environ['UBIQUITY_DEBUG_PDB'] = '1' |
4510 | + |
4511 | + if options.cdebconf: |
4512 | + # Note that this needs to be set before DebconfCommunicate is |
4513 | + # imported by anything. |
4514 | + os.environ['DEBCONF_USE_CDEBCONF'] = '1' |
4515 | + prepend_path('/usr/lib/cdebconf') |
4516 | + prepend_path('/usr/lib/ubiquity/compat') |
4517 | + |
4518 | + if options.automatic: |
4519 | + os.environ['UBIQUITY_AUTOMATIC'] = '1' |
4520 | + |
4521 | + if options.migration_assistant: |
4522 | + os.environ['UBIQUITY_MIGRATION_ASSISTANT'] = '1' |
4523 | + |
4524 | + if options.greeter: |
4525 | + os.environ['UBIQUITY_GREETER'] = '1' |
4526 | + |
4527 | + if options.only: |
4528 | + os.environ['UBIQUITY_ONLY'] = '1' |
4529 | + |
4530 | + if options.bootloader: |
4531 | + os.environ['UBIQUITY_NO_BOOTLOADER'] = '1' |
4532 | + |
4533 | + if oem_config: |
4534 | + os.environ['UBIQUITY_OEM_USER_CONFIG'] = '1' |
4535 | + global TARGET |
4536 | + TARGET = '' |
4537 | + |
4538 | + acquire_lock() |
4539 | + |
4540 | + try: |
4541 | + os.makedirs('/var/log/installer') |
4542 | + except OSError, e: |
4543 | + # be happy if someone already created the path |
4544 | + if e.errno != errno.EEXIST: |
4545 | + raise |
4546 | + syslog.openlog('ubiquity', syslog.LOG_NOWAIT | syslog.LOG_PID) |
4547 | + |
4548 | + if oem_config: |
4549 | + syslog.syslog("Ubiquity %s (oem-config)" % VERSION) |
4550 | + else: |
4551 | + syslog.syslog("Ubiquity %s" % VERSION) |
4552 | + version_file = open('/var/log/installer/version', 'w') |
4553 | + print >>version_file, 'ubiquity %s' % VERSION |
4554 | + version_file.close() |
4555 | + |
4556 | + if 'UBIQUITY_DEBUG' in os.environ: |
4557 | + if 'UBIQUITY_DEBUG_CORE' not in os.environ: |
4558 | + os.environ['UBIQUITY_DEBUG_CORE'] = '1' |
4559 | + if 'DEBCONF_DEBUG' not in os.environ: |
4560 | + os.environ['DEBCONF_DEBUG'] = 'developer' |
4561 | + # The frontend should take care of displaying a helpful message if |
4562 | + # we are being run without root privileges. |
4563 | + if not (options.query and args and args[0] == 'noninteractive'): |
4564 | + try: |
4565 | + if oem_config: |
4566 | + logfile = '/var/log/oem-config.log' |
4567 | + else: |
4568 | + logfile = '/var/log/installer/debug' |
4569 | + log = os.open(logfile, os.O_WRONLY | os.O_CREAT | os.O_APPEND, |
4570 | + 0644) |
4571 | + os.dup2(log, 2) |
4572 | + os.close(log) |
4573 | + sys.stderr = os.fdopen(2, 'a', 1) |
4574 | + if oem_config: |
4575 | + print >>sys.stderr, "Ubiquity %s (oem-config)" % VERSION |
4576 | + else: |
4577 | + print >>sys.stderr, "Ubiquity %s" % VERSION |
4578 | + except (IOError, OSError), err: |
4579 | + if err.errno != errno.EACCES: |
4580 | + raise |
4581 | + |
4582 | + # Default to enabling internal (non-debconf) debugging except for when |
4583 | + # using --automatic. |
4584 | + if 'UBIQUITY_DEBUG_CORE' not in os.environ: |
4585 | + if options.automatic: |
4586 | + os.environ['UBIQUITY_DEBUG_CORE'] = '1' |
4587 | + |
4588 | + # Initialise cdebconf if necessary, to work around |
4589 | + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=451130. |
4590 | + if options.cdebconf: |
4591 | + for package in ('ubiquity', 'keyboard-configuration', 'console-setup'): |
4592 | + subprocess.call(['debconf-loadtemplate', package, |
4593 | + '/var/lib/dpkg/info/%s.templates' % package]) |
4594 | + |
4595 | + # Clean up old state. |
4596 | + for name in ('apt-installed', 'apt-install-direct', 'remove-kernels', 'apt-removed'): |
4597 | + osextras.unlink_force(os.path.join('/var/lib/ubiquity', name)) |
4598 | + shutil.rmtree("/var/lib/partman", ignore_errors=True) |
4599 | + misc.remove_os_prober_cache() |
4600 | + |
4601 | + if oem_config and not options.query: |
4602 | + disable_autologin() |
4603 | + |
4604 | + if args: |
4605 | + install(args[0], query=options.query) |
4606 | + else: |
4607 | + install(query=options.query) |
4608 | + |
4609 | + if oem_config: |
4610 | + run_oem_hooks() |
4611 | + im_switch.kill_im() |
4612 | + |
4613 | +if __name__ == '__main__': |
4614 | + # Are we running as ubiquity or oem-config? |
4615 | + oem_config = False |
4616 | + script_name = os.path.basename(sys.argv[0]) |
4617 | + if script_name == 'oem-config': |
4618 | + oem_config = True |
4619 | + |
4620 | + main(oem_config) |
4621 | + |
4622 | +# vim:ai:et:sts=4:tw=80:sw=4: |
4623 | |
4624 | === added file 'bin/ubiquity-dm' |
4625 | --- bin/ubiquity-dm 1970-01-01 00:00:00 +0000 |
4626 | +++ bin/ubiquity-dm 2011-01-31 11:12:59 +0000 |
4627 | @@ -0,0 +1,556 @@ |
4628 | +#!/usr/bin/python |
4629 | + |
4630 | +import os |
4631 | +import sys |
4632 | +import subprocess |
4633 | +import time |
4634 | +import signal |
4635 | +import errno |
4636 | +import imp |
4637 | +import grp |
4638 | + |
4639 | +import debconf |
4640 | + |
4641 | +sys.path.insert(0, '/usr/lib/ubiquity') |
4642 | + |
4643 | +import ubiquity.frontend |
4644 | +import pwd |
4645 | + |
4646 | +from ubiquity import osextras |
4647 | +from ubiquity.misc import create_bool |
4648 | +from ubiquity.casper import get_casper |
4649 | +from ubiquity.debconfcommunicator import DebconfCommunicator |
4650 | + |
4651 | +background = '/usr/share/backgrounds/warty-final-ubuntu.png' |
4652 | + |
4653 | +def ck_open_session(uid): |
4654 | + import dbus |
4655 | + bus = dbus.SystemBus () |
4656 | + manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', |
4657 | + '/org/freedesktop/ConsoleKit/Manager') |
4658 | + manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager') |
4659 | + params = dbus.Array ([], signature = "(sv)") |
4660 | + params.append(("unix-user", dbus.Int32(uid))) |
4661 | + params.append(("session-type", dbus.String(""))) |
4662 | + params.append(("x11-display", dbus.String(os.environ['DISPLAY']))) |
4663 | + params.append(("x11-display-device", dbus.String('/dev/tty7'))) |
4664 | + params.append(("is-local", dbus.Boolean(True))) |
4665 | + cookie = manager.OpenSessionWithParameters(params) |
4666 | + os.environ['XDG_SESSION_COOKIE'] = cookie |
4667 | + |
4668 | +def set_locale(): |
4669 | + db = DebconfCommunicator('ubiquity', cloexec=True) |
4670 | + locale = '' |
4671 | + try: |
4672 | + locale = db.get('debian-installer/locale') |
4673 | + except debconf.DebconfError: |
4674 | + pass |
4675 | + db.shutdown() |
4676 | + |
4677 | + if not locale: |
4678 | + return |
4679 | + |
4680 | + default_locale = open('/etc/default/locale', 'w') |
4681 | + print >>default_locale, 'LANG="%s"' % locale |
4682 | + default_locale.close() |
4683 | + |
4684 | + environment = open('/etc/environment') |
4685 | + environment_lines = environment.readlines() |
4686 | + environment.close() |
4687 | + environment = open('/etc/environment', 'w') |
4688 | + seen_lang = False |
4689 | + for line in environment_lines: |
4690 | + if line.startswith('LANG='): |
4691 | + print >>environment, 'LANG="%s"' % locale |
4692 | + seen_lang = True |
4693 | + else: |
4694 | + print >>environment, line.rstrip('\n') |
4695 | + if not seen_lang: |
4696 | + print >>environment, 'LANG="%s"' % locale |
4697 | + environment.close() |
4698 | + |
4699 | + locale_gen = open('/etc/locale.gen', 'w') |
4700 | + print >>locale_gen, '%s UTF-8' % locale |
4701 | + locale_gen.close() |
4702 | + |
4703 | + logfile = open('/var/log/installer/dm', 'a') |
4704 | + subprocess.call(['/usr/sbin/locale-gen', locale], |
4705 | + stdout=logfile, stderr=logfile) |
4706 | + logfile.close() |
4707 | + |
4708 | +class XStartupError(EnvironmentError): |
4709 | + pass |
4710 | + |
4711 | +class MissingProgramError(EnvironmentError): |
4712 | + pass |
4713 | + |
4714 | +class DM: |
4715 | + def __init__(self, vt, display, default_username): |
4716 | + self.vt = vt |
4717 | + self.display = display |
4718 | + self.server_started = False |
4719 | + |
4720 | + self.username = get_casper('USERNAME', default_username) |
4721 | + try: |
4722 | + self.uid, self.gid = pwd.getpwnam(self.username)[2:4] |
4723 | + except KeyError: |
4724 | + import syslog |
4725 | + syslog.syslog('Could not find %s, falling back to root.' % |
4726 | + self.username) |
4727 | + self.username = 'root' |
4728 | + self.uid, self.gid = 0, 0 |
4729 | + self.homedir = pwd.getpwnam(self.username)[5] |
4730 | + self.uid = int(self.uid) |
4731 | + self.gid = int(self.gid) |
4732 | + self.groups = [] |
4733 | + for g in grp.getgrall(): |
4734 | + if self.username in g[3] or g[0] == self.username: |
4735 | + self.groups.append(g[2]) |
4736 | + |
4737 | + # Look for a frontend module; we won't actually use it (yet), but |
4738 | + # this lets us find out which window manager etc. to launch. Be |
4739 | + # careful that importing this here will cause the underlying library |
4740 | + # to try to talk to the X server, which won't go well. |
4741 | + frontend_names = ['gtk_ui', 'kde_ui'] |
4742 | + self.frontend = None |
4743 | + for f in frontend_names: |
4744 | + try: |
4745 | + imp.find_module(f, ubiquity.frontend.__path__) |
4746 | + self.frontend = f |
4747 | + break |
4748 | + except ImportError: |
4749 | + pass |
4750 | + else: |
4751 | + raise AttributeError('No frontend available; tried %s' % |
4752 | + ', '.join(frontend_names)) |
4753 | + |
4754 | + db = DebconfCommunicator('ubiquity', cloexec=True) |
4755 | + try: |
4756 | + self.force_failsafe = create_bool(db.get('ubiquity/force_failsafe_graphics')) |
4757 | + except debconf.DebconfError: |
4758 | + self.force_failsafe = False |
4759 | + db.shutdown() |
4760 | + |
4761 | + def sigusr1_handler(self, signum, frame): |
4762 | + self.server_started = True |
4763 | + |
4764 | + def active_vt(self): |
4765 | + import fcntl |
4766 | + import array |
4767 | + |
4768 | + console = os.open('/dev/tty0', os.O_RDONLY | os.O_NOCTTY) |
4769 | + try: |
4770 | + VT_GETSTATE = 0x5603 |
4771 | + vt_stat = array.array('H', [0, 0, 0]) |
4772 | + fcntl.ioctl(console, VT_GETSTATE, vt_stat) |
4773 | + return vt_stat[0] |
4774 | + finally: |
4775 | + os.close(console) |
4776 | + |
4777 | + def drop_privileges(self): |
4778 | + os.setgroups(self.groups) |
4779 | + os.setgid(self.gid) |
4780 | + os.setuid(self.uid) |
4781 | + |
4782 | + def server_preexec(self): |
4783 | + signal.signal(signal.SIGUSR1, signal.SIG_IGN) |
4784 | + |
4785 | + def run(self, *program): |
4786 | + null = open('/dev/null', 'w') |
4787 | + try: |
4788 | + os.makedirs('/var/log/installer') |
4789 | + except OSError, e: |
4790 | + # be happy if someone already created the path |
4791 | + if e.errno != errno.EEXIST: |
4792 | + raise |
4793 | + logfile = open('/var/log/installer/dm', 'w') |
4794 | + |
4795 | + signal.signal(signal.SIGUSR1, self.sigusr1_handler) |
4796 | + signal.signal(signal.SIGTTIN, signal.SIG_IGN) |
4797 | + signal.signal(signal.SIGTTOU, signal.SIG_IGN) |
4798 | + |
4799 | + servercommand = ['X', '-br', '-ac', '-noreset', '-nolisten', 'tcp'] |
4800 | + |
4801 | + try: |
4802 | + plymouth_running = subprocess.call(['plymouth', '--ping']) == 0 |
4803 | + except OSError: |
4804 | + plymouth_running = False |
4805 | + if plymouth_running: |
4806 | + subprocess.call(['plymouth', 'deactivate']) |
4807 | + if subprocess.call(['plymouth', '--has-active-vt']) == 0: |
4808 | + self.vt = 'vt%d' % self.active_vt() |
4809 | + servercommand.append('-nr') |
4810 | + else: |
4811 | + subprocess.call(['plymouth', 'quit']) |
4812 | + plymouth_running = False |
4813 | + |
4814 | + servercommand.extend([self.vt, self.display]) |
4815 | + |
4816 | + for attempt in ('main', 'failsafe'): |
4817 | + command = list(servercommand) |
4818 | + if attempt == 'main' and self.force_failsafe: |
4819 | + continue |
4820 | + elif attempt == 'failsafe': |
4821 | + # TODO cjwatson 2010-02-11: This is a bodge. The |
4822 | + # duplication is nasty, but fortunately bullet-proof X |
4823 | + # actually turns out not to be very complicated nowadays. |
4824 | + # Most of the complexity is in the fallback session, which I |
4825 | + # haven't attempted to integrate here, so you won't get |
4826 | + # things like interactive reconfiguration. I believe Evan |
4827 | + # is working on doing that, but is blocked on a couple of |
4828 | + # Upstart bugs; once all that's resolved, we should back |
4829 | + # this out. |
4830 | + if os.path.exists('/dev/fb0'): |
4831 | + driver = 'fbdev' |
4832 | + else: |
4833 | + driver = 'vesa' |
4834 | + xorg_conf_failsafe = '/etc/X11/xorg.conf.failsafe' |
4835 | + command.extend(['-config', xorg_conf_failsafe]) |
4836 | + command.extend(['-logfile', '/var/log/Xorg.failsafe.log']) |
4837 | + |
4838 | + if not os.path.exists(xorg_conf_failsafe): |
4839 | + xorg_conf_failsafe_file = open(xorg_conf_failsafe, 'w') |
4840 | + print >>xorg_conf_failsafe_file, '''\ |
4841 | +Section "Device" |
4842 | + Identifier "Configured Video Device" |
4843 | + Driver "%s" |
4844 | +EndSection |
4845 | + |
4846 | +Section "Monitor" |
4847 | + Identifier "Configured Monitor" |
4848 | +EndSection |
4849 | + |
4850 | +Section "Screen" |
4851 | + Identifier "Default Screen" |
4852 | + Monitor "Configured Monitor" |
4853 | + Device "Configured Video Device" |
4854 | +EndSection |
4855 | +''' % driver |
4856 | + xorg_conf_failsafe_file.close() |
4857 | + |
4858 | + server = subprocess.Popen( |
4859 | + command, stdin=null, stdout=logfile, stderr=logfile, |
4860 | + preexec_fn=self.server_preexec) |
4861 | + |
4862 | + # Really we should select on a pipe or something, but it's not |
4863 | + # worth the effort for now. |
4864 | + try: |
4865 | + timeout = 60 |
4866 | + while not self.server_started: |
4867 | + status = server.poll() |
4868 | + if type(status) is int and status != 0: |
4869 | + if plymouth_running: |
4870 | + subprocess.call(['plymouth', 'quit']) |
4871 | + raise XStartupError('X server exited with return code ' |
4872 | + + str(status)) |
4873 | + if timeout == 0: |
4874 | + if plymouth_running: |
4875 | + subprocess.call(['plymouth', 'quit']) |
4876 | + raise XStartupError('X server failed to start after 60' |
4877 | + ' seconds') |
4878 | + time.sleep(1) |
4879 | + timeout -= 1 |
4880 | + if plymouth_running: |
4881 | + subprocess.call(['plymouth', 'quit', '--retain-splash']) |
4882 | + except XStartupError: |
4883 | + if attempt == 'failsafe': |
4884 | + raise |
4885 | + |
4886 | + if self.server_started: |
4887 | + break |
4888 | + |
4889 | + os.environ['DISPLAY'] = self.display |
4890 | + os.environ['HOME'] = self.homedir |
4891 | + # Give ubiquity a UID and GID that it can drop privileges to. |
4892 | + os.environ['SUDO_UID'] = str(self.uid) |
4893 | + os.environ['SUDO_GID'] = str(self.gid) |
4894 | + os.environ['GVFS_DISABLE_FUSE' ] = '1' |
4895 | + |
4896 | + ck_open_session(self.uid) |
4897 | + |
4898 | + # Session bus, apparently needed by most interfaces now |
4899 | + if ('DBUS_SESSION_BUS_ADDRESS' not in os.environ and |
4900 | + osextras.find_on_path('dbus-launch')): |
4901 | + dbus_subp = subprocess.Popen( |
4902 | + ['dbus-launch', '--exit-with-session'], |
4903 | + stdin=null, stdout=subprocess.PIPE, stderr=logfile, |
4904 | + preexec_fn=self.drop_privileges) |
4905 | + for line in dbus_subp.stdout: |
4906 | + try: |
4907 | + name, value = line.rstrip('\n').split('=', 1) |
4908 | + os.environ[name] = value |
4909 | + except ValueError: |
4910 | + pass |
4911 | + dbus_subp.stdout.close() |
4912 | + dbus_subp.wait() |
4913 | + |
4914 | + gconfd_running = False |
4915 | + if (self.frontend == 'gtk_ui' and |
4916 | + osextras.find_on_path('gconftool-2')): |
4917 | + subprocess.call(['gconftool-2', '--spawn'], |
4918 | + stdin=null, stdout=logfile, stderr=logfile, |
4919 | + preexec_fn=self.drop_privileges) |
4920 | + gconfd_running = True |
4921 | + |
4922 | + extras = [] |
4923 | + if self.frontend == 'gtk_ui': |
4924 | + gconf_dir = ('xml:readwrite:%s' % |
4925 | + os.path.expanduser('~%s/.gconf' % |
4926 | + self.username)) |
4927 | + accessibility = 'false' |
4928 | + if osextras.find_on_path('gconftool-2'): |
4929 | + subprocess.call( |
4930 | + ['gconftool-2', '--config-source', gconf_dir, |
4931 | + '--type', 'int', '--set', |
4932 | + '/apps/metacity/general/num_workspaces', '1', |
4933 | + '--type', 'boolean', '--set', |
4934 | + '/desktop/gnome/lockdown/disable_user_switching', 'true', |
4935 | + '--type', 'boolean', '--set', |
4936 | + '/desktop/gnome/lockdown/disable_lock_screen', 'true'], |
4937 | + stdin=null, stdout=logfile, stderr=logfile, |
4938 | + preexec_fn=self.drop_privileges) |
4939 | + subp = subprocess.Popen( |
4940 | + ['gconftool-2', '--config-source', gconf_dir, |
4941 | + '--get', '/desktop/gnome/interface/accessibility'], |
4942 | + stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
4943 | + preexec_fn=self.drop_privileges) |
4944 | + accessibility = subp.communicate()[0].rstrip('\n') |
4945 | + # Accessibility infrastructure |
4946 | + if accessibility == 'true': |
4947 | + if os.path.exists('/usr/lib/at-spi/at-spi-registryd'): |
4948 | + extras.append(subprocess.Popen( |
4949 | + ['/usr/lib/at-spi/at-spi-registryd'], |
4950 | + stdin=null, stdout=logfile, stderr=logfile)) |
4951 | + os.environ['GTK_MODULES'] = 'gail:atk-bridge' |
4952 | + |
4953 | + maybe_drop_privileges = {} |
4954 | + if accessibility != 'true': |
4955 | + maybe_drop_privileges['preexec_fn'] = self.drop_privileges |
4956 | + |
4957 | + # Don't show the background image in v1 accessibility profile. It |
4958 | + # is not shown in the GNOME desktop after all. |
4959 | + fp = open('/proc/cmdline', 'r') |
4960 | + if (os.access(background, os.R_OK) and |
4961 | + not 'access=v1' in fp.readline()): |
4962 | + import gtk |
4963 | + pixbuf = gtk.gdk.pixbuf_new_from_file(background) |
4964 | + root = gtk.gdk.get_default_root_window() |
4965 | + (root_width, root_height) = root.get_size() |
4966 | + scaled = pixbuf.scale_simple(root_width, root_height, gtk.gdk.INTERP_BILINEAR) |
4967 | + (pixmap, mask) = scaled.render_pixmap_and_mask(0) |
4968 | + root.set_back_pixmap(pixmap, False) |
4969 | + root.clear() |
4970 | + gtk.gdk.flush() |
4971 | + fp.close() |
4972 | + |
4973 | + if self.frontend == 'gtk_ui': |
4974 | + if gconfd_running and osextras.find_on_path('metacity'): |
4975 | + wm_cmd = ['metacity', '--sm-disable'] |
4976 | + elif osextras.find_on_path('xfwm4'): |
4977 | + wm_cmd = ['xfwm4'] |
4978 | + elif osextras.find_on_path('matchbox-window-manager'): |
4979 | + wm_cmd = ['matchbox-window-manager'] |
4980 | + elif osextras.find_on_path('openbox-lubuntu'): |
4981 | + wm_cmd = ['openbox-lubuntu'] |
4982 | + else: |
4983 | + raise MissingProgramError('No window manager found (tried ' |
4984 | + 'metacity, xfwm4, matchbox-window-manager, ' |
4985 | + 'openbox-lubuntu)') |
4986 | + wm = subprocess.Popen(wm_cmd, |
4987 | + stdin=null, stdout=logfile, stderr=logfile, |
4988 | + **maybe_drop_privileges) |
4989 | + |
4990 | + if os.path.exists('/usr/lib/gnome-settings-daemon/gnome-settings-daemon'): |
4991 | + proc = subprocess.Popen( |
4992 | + ['/usr/lib/gnome-settings-daemon/gnome-settings-daemon'], |
4993 | + stdin=null, stdout=logfile, stderr=logfile, |
4994 | + **maybe_drop_privileges) |
4995 | + proc.wait() |
4996 | + extras.append(proc) |
4997 | + |
4998 | + if os.path.exists('/usr/bin/xfsettingsd'): |
4999 | + extras.append(subprocess.Popen( |
5000 | + ['xsetroot', '-solid', 'black'], |
The diff has been truncated for viewing.
Please resubmit this as a merge against lp:ubiquity (which is the same
as lp:~ubuntu-installer/ubiquity/trunk). Regrettably,
lp:ubuntu/ubiquity is not the same thing at the moment and we don't use
it; merges proposed against it are unreadable.
review resubmit